"use strict"; var __getOwnPropNames = Object.getOwnPropertyNames; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; // src/compression-utils.js var require_compression_utils = __commonJS({ "src/compression-utils.js"(exports2, module2) { "use strict"; var daikon2 = daikon2 || {}; daikon2.CompressionUtils = daikon2.CompressionUtils || {}; daikon2.CompressionUtils.JPEG_MAGIC_NUMBER = [255, 216]; daikon2.CompressionUtils.JPEG2000_MAGIC_NUMBER = [255, 79, 255, 81]; daikon2.CompressionUtils.isHeaderJPEG = function(data) { if (data) { if (data.getUint8(0) !== daikon2.CompressionUtils.JPEG_MAGIC_NUMBER[0]) { return false; } if (data.getUint8(1) !== daikon2.CompressionUtils.JPEG_MAGIC_NUMBER[1]) { return false; } return true; } return false; }; daikon2.CompressionUtils.isHeaderJPEG2000 = function(data) { var ctr; if (data) { for (ctr = 0; ctr < daikon2.CompressionUtils.JPEG2000_MAGIC_NUMBER.length; ctr += 1) { if (data.getUint8(ctr) !== daikon2.CompressionUtils.JPEG2000_MAGIC_NUMBER[ctr]) { return false; } } return true; } return false; }; var moduleType3 = typeof module2; if (moduleType3 !== "undefined" && module2.exports) { module2.exports = daikon2.CompressionUtils; } } }); // src/utilities.js var require_utilities = __commonJS({ "src/utilities.js"(exports2, module2) { "use strict"; var daikon2 = daikon2 || {}; daikon2.Utils = daikon2.Utils || {}; daikon2.Utils.crcTable = null; daikon2.Utils.MAX_VALUE = 9007199254740991; daikon2.Utils.MIN_VALUE = -9007199254740991; daikon2.Utils.dec2hex = function(i2) { return (i2 + 65536).toString(16).substr(-4).toUpperCase(); }; daikon2.Utils.createArray = function(length) { var arr = new Array(length || 0), i2 = length; if (arguments.length > 1) { var args = Array.prototype.slice.call(arguments, 1); while (i2--) arr[length - 1 - i2] = daikon2.Utils.createArray.apply(this, args); } return arr; }; daikon2.Utils.getStringAt = function(dataview, start, length, charset, vr) { var str = "", ctr, ch; for (ctr = 0; ctr < length; ctr += 1) { ch = dataview.getUint8(start + ctr); if (ch !== 0) { str += String.fromCharCode(ch); } } return str; }; daikon2.Utils.trim = function(str) { return str.replace(/^\s\s*/, "").replace(/\s\s*$/, ""); }; daikon2.Utils.stripLeadingZeros = function(str) { return str.replace(/^[0]+/g, ""); }; daikon2.Utils.safeParseInt = function(str) { str = daikon2.Utils.stripLeadingZeros(str); if (str.length > 0) { return parseInt(str, 10); } return 0; }; daikon2.Utils.convertCamcelCaseToTitleCase = function(str) { var result = str.replace(/([A-Z][a-z])/g, " $1"); return daikon2.Utils.trim(result.charAt(0).toUpperCase() + result.slice(1)); }; daikon2.Utils.safeParseFloat = function(str) { str = daikon2.Utils.stripLeadingZeros(str); if (str.length > 0) { return parseFloat(str); } return 0; }; daikon2.Utils.bytesToDouble = function(data) { var sign = (data[0] & 1 << 7) >> 7; var exponent = (data[0] & 127) << 4 | (data[1] & 15 << 4) >> 4; if (exponent == 0) return 0; if (exponent == 2047) return sign ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; var mul = Math.pow(2, exponent - 1023 - 52); var mantissa = data[7] + data[6] * Math.pow(2, 8) + data[5] * Math.pow(2, 8 * 2) + data[4] * Math.pow(2, 8 * 3) + data[3] * Math.pow(2, 8 * 4) + data[2] * Math.pow(2, 8 * 5) + (data[1] & 15) * Math.pow(2, 8 * 6) + Math.pow(2, 52); return Math.pow(-1, sign) * mantissa * mul; }; daikon2.Utils.concatArrayBuffers = function(buffer1, buffer2) { var tmp = new Uint8Array(buffer1.byteLength + buffer2.byteLength); tmp.set(new Uint8Array(buffer1), 0); tmp.set(new Uint8Array(buffer2), buffer1.byteLength); return tmp.buffer; }; daikon2.Utils.concatArrayBuffers2 = function(buffers) { var length = 0, offset = 0, ctr; for (ctr = 0; ctr < buffers.length; ctr += 1) { length += buffers[ctr].byteLength; } var tmp = new Uint8Array(length); for (ctr = 0; ctr < buffers.length; ctr += 1) { tmp.set(new Uint8Array(buffers[ctr]), offset); offset += buffers[ctr].byteLength; } return tmp.buffer; }; daikon2.Utils.fillBuffer = function(array, buffer2, offset, numBytes) { var ctr; if (numBytes === 1) { for (ctr = 0; ctr < array.length; ctr += 1) { buffer2.setUint8(offset + ctr, array[ctr]); } } else if (numBytes === 2) { for (ctr = 0; ctr < array.length; ctr += 1) { buffer2.setUint16(offset + ctr * 2, array[ctr], true); } } }; daikon2.Utils.fillBufferRGB = function(array, buffer2, offset) { var r, g, b, ctr, numElements = parseInt(array.length / 3); for (ctr = 0; ctr < numElements; ctr += 1) { r = array[ctr * 3]; g = array[ctr * 3 + 1]; b = array[ctr * 3 + 2]; buffer2.setUint8(offset + ctr, parseInt((r + b + g) / 3), true); } }; daikon2.Utils.bind = function(scope, fn, args, appendArgs) { if (arguments.length === 2) { return function() { return fn.apply(scope, arguments); }; } var method = fn, slice = Array.prototype.slice; return function() { var callArgs = args || arguments; if (appendArgs === true) { callArgs = slice.call(arguments, 0); callArgs = callArgs.concat(args); } else if (typeof appendArgs === "number") { callArgs = slice.call(arguments, 0); Ext.Array.insert(callArgs, appendArgs, args); } return method.apply(scope || window, callArgs); }; }; daikon2.Utils.toArrayBuffer = function(buffer2) { var ab, view, i2; ab = new ArrayBuffer(buffer2.length); view = new Uint8Array(ab); for (i2 = 0; i2 < buffer2.length; i2 += 1) { view[i2] = buffer2[i2]; } return ab; }; daikon2.Utils.isString = function(s) { return typeof s === "string" || s instanceof String; }; daikon2.Utils.isValidDate = function(d) { if (Object.prototype.toString.call(d) === "[object Date]") { if (isNaN(d.getTime())) { return false; } else { return true; } } else { return false; } }; daikon2.Utils.swap32 = function(val) { return (val & 255) << 24 | (val & 65280) << 8 | val >> 8 & 65280 | val >> 24 & 255; }; daikon2.Utils.swap16 = function(val) { return ((val & 255) << 8 | val >> 8 & 255) << 16 >> 16; }; daikon2.Utils.makeCRCTable = function() { var c; var crcTable = []; for (var n = 0; n < 256; n++) { c = n; for (var k = 0; k < 8; k++) { c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1; } crcTable[n] = c; } return crcTable; }; daikon2.Utils.crc32 = function(dataView) { var crcTable = daikon2.Utils.crcTable || (daikon2.Utils.crcTable = daikon2.Utils.makeCRCTable()); var crc = 0 ^ -1; for (var i2 = 0; i2 < dataView.byteLength; i2++) { crc = crc >>> 8 ^ crcTable[(crc ^ dataView.getUint8(i2)) & 255]; } return (crc ^ -1) >>> 0; }; daikon2.Utils.createBitMask = function(numBytes, bitsStored, unsigned) { var mask = 4294967295; mask >>>= (4 - numBytes) * 8 + (numBytes * 8 - bitsStored); if (unsigned) { if (numBytes == 1) { mask &= 255; } else if (numBytes == 2) { mask &= 65535; } else if (numBytes == 4) { mask &= 4294967295; } else if (numBytes == 8) { mask = 4294967295; } } else { mask = 4294967295; } return mask; }; var moduleType3 = typeof module2; if (moduleType3 !== "undefined" && module2.exports) { module2.exports = daikon2.Utils; } } }); // src/dictionary.js var require_dictionary = __commonJS({ "src/dictionary.js"(exports2, module2) { "use strict"; var daikon2 = daikon2 || {}; daikon2.Dictionary = daikon2.Dictionary || {}; daikon2.Utils = daikon2.Utils || (typeof require !== "undefined" ? require_utilities() : null); daikon2.Dictionary.dictPrivate = { "0207": { "101F": ["FE", "ElscintDataScale"] // uses special Elscint double type (see Tag class) } }; daikon2.Dictionary.dict = { "0002": { "0001": ["OB", "FileMetaInformationVersion"], "0002": ["UI", "MediaStoredSOPClassUID"], "0003": ["UI", "MediaStoredSOPInstanceUID"], "0010": ["UI", "TransferSyntaxUID"], "0012": ["UI", "ImplementationClassUID"], "0013": ["SH", "ImplementationVersionName"], "0016": ["AE", "SourceApplicationEntityTitle"], "0100": ["UI", "PrivateInformationCreatorUID"], "0102": ["OB", "PrivateInformation"] }, "0004": { "1130": ["CS", "FilesetID"], "1141": ["CS", "FilesetDescriptorFileFileID"], "1142": ["CS", "FilesetDescriptorFileFormat"], "1200": ["UL", "RootDirectoryEntitysFirstDirectoryRecordOffset"], "1202": ["UL", "RootDirectoryEntitysLastDirectoryRecordOffset"], "1212": ["US", "File-setConsistenceFlag"], "1220": ["SQ", "DirectoryRecordSequence"], "1400": ["UL", "NextDirectoryRecordOffset"], "1410": ["US", "RecordInuseFlag"], "1420": ["UL", "ReferencedLowerlevelDirectoryEntityOffset"], "1430": ["CS", "DirectoryRecordType"], "1432": ["UI", "PrivateRecordUID"], "1500": ["CS", "ReferencedFileID"], "1510": ["UI", "ReferencedSOPClassUIDInFile"], "1511": ["UI", "ReferencedSOPInstanceUIDInFile"], "1600": ["UL", "NumberOfReferences"] }, "0008": { "0001": ["UL", "LengthToEnd"], "0005": ["CS", "SpecificCharacterSet"], "0006": ["SQ", "LanguageCodeSequence"], "0008": ["CS", "ImageType"], "0010": ["SH", "RecognitionCode"], "0012": ["DA", "InstanceCreationDate"], "0013": ["TM", "InstanceCreationTime"], "0014": ["UI", "InstanceCreatorUID"], "0016": ["UI", "SOPClassUID"], "0018": ["UI", "SOPInstanceUID"], "001A": ["UI", "RelatedGeneralSOPClassUID"], "001B": ["UI", "OriginalSpecializedSOPClassUID"], "0020": ["DA", "StudyDate"], "0021": ["DA", "SeriesDate"], "0022": ["DA", "AcquisitionDate"], "0023": ["DA", "ContentDate"], "0024": ["DA", "OverlayDate"], "0025": ["DA", "CurveDate"], "002A": ["DT", "AcquisitionDateTime"], "0030": ["TM", "StudyTime"], "0031": ["TM", "SeriesTime"], "0032": ["TM", "AcquisitionTime"], "0033": ["TM", "ContentTime"], "0034": ["TM", "OverlayTime"], "0035": ["TM", "CurveTime"], "0040": ["US", "DataSetType"], "0041": ["LO", "DataSetSubtype"], "0042": ["CS", "NuclearMedicineSeriesType"], "0050": ["SH", "AccessionNumber"], "0051": ["SQ", "IssuerOfAccessionNumberSequence"], "0052": ["CS", "QueryRetrieveLevel"], "0054": ["AE", "RetrieveAETitle"], "0056": ["CS", "InstanceAvailability"], "0058": ["UI", "FailedSOPInstanceUIDList"], "0060": ["CS", "Modality"], "0061": ["CS", "ModalitiesInStudy"], "0062": ["UI", "SOPClassesInStudy"], "0064": ["CS", "ConversionType"], "0068": ["CS", "PresentationIntentType"], "0070": ["LO", "Manufacturer"], "0080": ["LO", "InstitutionName"], "0081": ["ST", "InstitutionAddress"], "0082": ["SQ", "InstitutionCodeSequence"], "0090": ["PN", "ReferringPhysicianName"], "0092": ["ST", "ReferringPhysicianAddress"], "0094": ["SH", "ReferringPhysicianTelephoneNumbers"], "0096": ["SQ", "ReferringPhysicianIdentificationSequence"], "0100": ["SH", "CodeValue"], "0102": ["SH", "CodingSchemeDesignator"], "0103": ["SH", "CodingSchemeVersion"], "0104": ["LO", "CodeMeaning"], "0105": ["CS", "MappingResource"], "0106": ["DT", "ContextGroupVersion"], "0107": ["DT", "ContextGroupLocalVersion"], "010B": ["CS", "ContextGroupExtensionFlag"], "010C": ["UI", "CodingSchemeUID"], "010D": ["UI", "ContextGroupExtensionCreatorUID"], "010F": ["CS", "ContextIdentifier"], "0110": ["SQ", "CodingSchemeIdentificationSequence"], "0112": ["LO", "CodingSchemeRegistry"], "0114": ["ST", "CodingSchemeExternalID"], "0115": ["ST", "CodingSchemeName"], "0116": ["ST", "CodingSchemeResponsibleOrganization"], "0117": ["UI", "ContextUID"], "0201": ["SH", "TimezoneOffsetFromUTC"], "1000": ["AE", "NetworkID"], "1010": ["SH", "StationName"], "1030": ["LO", "StudyDescription"], "1032": ["SQ", "ProcedureCodeSequence"], "103E": ["LO", "SeriesDescription"], "103F": ["SQ", "SeriesDescriptionCodeSequence"], "1040": ["LO", "InstitutionalDepartmentName"], "1048": ["PN", "PhysiciansOfRecord"], "1049": ["SQ", "PhysiciansOfRecordIdentificationSequence"], "1050": ["PN", "PerformingPhysicianName"], "1052": ["SQ", "PerformingPhysicianIdentificationSequence"], "1060": ["PN", "NameOfPhysiciansReadingStudy"], "1062": ["SQ", "PhysiciansReadingStudyIdentificationSequence"], "1070": ["PN", "OperatorsName"], "1072": ["SQ", "OperatorIdentificationSequence"], "1080": ["LO", "AdmittingDiagnosesDescription"], "1084": ["SQ", "AdmittingDiagnosesCodeSequence"], "1090": ["LO", "ManufacturerModelName"], "1100": ["SQ", "ReferencedResultsSequence"], "1110": ["SQ", "ReferencedStudySequence"], "1111": ["SQ", "ReferencedPerformedProcedureStepSequence"], "1115": ["SQ", "ReferencedSeriesSequence"], "1120": ["SQ", "ReferencedPatientSequence"], "1125": ["SQ", "ReferencedVisitSequence"], "1130": ["SQ", "ReferencedOverlaySequence"], "1134": ["SQ", "ReferencedStereometricInstanceSequence"], "113A": ["SQ", "ReferencedWaveformSequence"], "1140": ["SQ", "ReferencedImageSequence"], "1145": ["SQ", "ReferencedCurveSequence"], "114A": ["SQ", "ReferencedInstanceSequence"], "114B": ["SQ", "ReferencedRealWorldValueMappingInstanceSequence"], "1150": ["UI", "ReferencedSOPClassUID"], "1155": ["UI", "ReferencedSOPInstanceUID"], "115A": ["UI", "SOPClassesSupported"], "1160": ["IS", "ReferencedFrameNumber"], "1161": ["UL", "SimpleFrameList"], "1162": ["UL", "CalculatedFrameList"], "1163": ["FD", "TimeRange"], "1164": ["SQ", "FrameExtractionSequence"], "1167": ["UI", "MultiFrameSourceSOPInstanceUID"], "1195": ["UI", "TransactionUID"], "1197": ["US", "FailureReason"], "1198": ["SQ", "FailedSOPSequence"], "1199": ["SQ", "ReferencedSOPSequence"], "1200": ["SQ", "StudiesContainingOtherReferencedInstancesSequence"], "1250": ["SQ", "RelatedSeriesSequence"], "2110": ["CS", "LossyImageCompressionRetired"], "2111": ["ST", "DerivationDescription"], "2112": ["SQ", "SourceImageSequence"], "2120": ["SH", "StageName"], "2122": ["IS", "StageNumber"], "2124": ["IS", "NumberOfStages"], "2127": ["SH", "ViewName"], "2128": ["IS", "ViewNumber"], "2129": ["IS", "NumberOfEventTimers"], "212A": ["IS", "NumberOfViewsInStage"], "2130": ["DS", "EventElapsedTimes"], "2132": ["LO", "EventTimerNames"], "2133": ["SQ", "EventTimerSequence"], "2134": ["FD", "EventTimeOffset"], "2135": ["SQ", "EventCodeSequence"], "2142": ["IS", "StartTrim"], "2143": ["IS", "StopTrim"], "2144": ["IS", "RecommendedDisplayFrameRate"], "2200": ["CS", "TransducerPosition"], "2204": ["CS", "TransducerOrientation"], "2208": ["CS", "AnatomicStructure"], "2218": ["SQ", "AnatomicRegionSequence"], "2220": ["SQ", "AnatomicRegionModifierSequence"], "2228": ["SQ", "PrimaryAnatomicStructureSequence"], "2229": ["SQ", "AnatomicStructureSpaceOrRegionSequence"], "2230": ["SQ", "PrimaryAnatomicStructureModifierSequence"], "2240": ["SQ", "TransducerPositionSequence"], "2242": ["SQ", "TransducerPositionModifierSequence"], "2244": ["SQ", "TransducerOrientationSequence"], "2246": ["SQ", "TransducerOrientationModifierSequence"], "2251": ["SQ", "AnatomicStructureSpaceOrRegionCodeSequenceTrial"], "2253": ["SQ", "AnatomicPortalOfEntranceCodeSequenceTrial"], "2255": ["SQ", "AnatomicApproachDirectionCodeSequenceTrial"], "2256": ["ST", "AnatomicPerspectiveDescriptionTrial"], "2257": ["SQ", "AnatomicPerspectiveCodeSequenceTrial"], "2258": ["ST", "AnatomicLocationOfExaminingInstrumentDescriptionTrial"], "2259": ["SQ", "AnatomicLocationOfExaminingInstrumentCodeSequenceTrial"], "225A": ["SQ", "AnatomicStructureSpaceOrRegionModifierCodeSequenceTrial"], "225C": ["SQ", "OnAxisBackgroundAnatomicStructureCodeSequenceTrial"], "3001": ["SQ", "AlternateRepresentationSequence"], "3010": ["UI", "IrradiationEventUID"], "4000": ["LT", "IdentifyingComments"], "9007": ["CS", "FrameType"], "9092": ["SQ", "ReferencedImageEvidenceSequence"], "9121": ["SQ", "ReferencedRawDataSequence"], "9123": ["UI", "CreatorVersionUID"], "9124": ["SQ", "DerivationImageSequence"], "9154": ["SQ", "SourceImageEvidenceSequence"], "9205": ["CS", "PixelPresentation"], "9206": ["CS", "VolumetricProperties"], "9207": ["CS", "VolumeBasedCalculationTechnique"], "9208": ["CS", "ComplexImageComponent"], "9209": ["CS", "AcquisitionContrast"], "9215": ["SQ", "DerivationCodeSequence"], "9237": ["SQ", "ReferencedPresentationStateSequence"], "9410": ["SQ", "ReferencedOtherPlaneSequence"], "9458": ["SQ", "FrameDisplaySequence"], "9459": ["FL", "RecommendedDisplayFrameRateInFloat"], "9460": ["CS", "SkipFrameRangeFlag"] }, "0010": { "0010": ["PN", "PatientName"], "0020": ["LO", "PatientID"], "0021": ["LO", "IssuerOfPatientID"], "0022": ["CS", "TypeOfPatientID"], "0024": ["SQ", "IssuerOfPatientIDQualifiersSequence"], "0030": ["DA", "PatientBirthDate"], "0032": ["TM", "PatientBirthTime"], "0040": ["CS", "PatientSex"], "0050": ["SQ", "PatientInsurancePlanCodeSequence"], "0101": ["SQ", "PatientPrimaryLanguageCodeSequence"], "0102": ["SQ", "PatientPrimaryLanguageModifierCodeSequence"], "1000": ["LO", "OtherPatientIDs"], "1001": ["PN", "OtherPatientNames"], "1002": ["SQ", "OtherPatientIDsSequence"], "1005": ["PN", "PatientBirthName"], "1010": ["AS", "PatientAge"], "1020": ["DS", "PatientSize"], "1021": ["SQ", "PatientSizeCodeSequence"], "1030": ["DS", "PatientWeight"], "1040": ["LO", "PatientAddress"], "1050": ["LO", "InsurancePlanIdentification"], "1060": ["PN", "PatientMotherBirthName"], "1080": ["LO", "MilitaryRank"], "1081": ["LO", "BranchOfService"], "1090": ["LO", "MedicalRecordLocator"], "2000": ["LO", "MedicalAlerts"], "2110": ["LO", "Allergies"], "2150": ["LO", "CountryOfResidence"], "2152": ["LO", "RegionOfResidence"], "2154": ["SH", "PatientTelephoneNumbers"], "2160": ["SH", "EthnicGroup"], "2180": ["SH", "Occupation"], "21A0": ["CS", "SmokingStatus"], "21B0": ["LT", "AdditionalPatientHistory"], "21C0": ["US", "PregnancyStatus"], "21D0": ["DA", "LastMenstrualDate"], "21F0": ["LO", "PatientReligiousPreference"], "2201": ["LO", "PatientSpeciesDescription"], "2202": ["SQ", "PatientSpeciesCodeSequence"], "2203": ["CS", "PatientSexNeutered"], "2210": ["CS", "AnatomicalOrientationType"], "2292": ["LO", "PatientBreedDescription"], "2293": ["SQ", "PatientBreedCodeSequence"], "2294": ["SQ", "BreedRegistrationSequence"], "2295": ["LO", "BreedRegistrationNumber"], "2296": ["SQ", "BreedRegistryCodeSequence"], "2297": ["PN", "ResponsiblePerson"], "2298": ["CS", "ResponsiblePersonRole"], "2299": ["LO", "ResponsibleOrganization"], "4000": ["LT", "PatientComments"], "9431": ["FL", "ExaminedBodyThickness"] }, "0012": { "0010": ["LO", "ClinicalTrialSponsorName"], "0020": ["LO", "ClinicalTrialProtocolID"], "0021": ["LO", "ClinicalTrialProtocolName"], "0030": ["LO", "ClinicalTrialSiteID"], "0031": ["LO", "ClinicalTrialSiteName"], "0040": ["LO", "ClinicalTrialSubjectID"], "0042": ["LO", "ClinicalTrialSubjectReadingID"], "0050": ["LO", "ClinicalTrialTimePointID"], "0051": ["ST", "ClinicalTrialTimePointDescription"], "0060": ["LO", "ClinicalTrialCoordinatingCenterName"], "0062": ["CS", "PatientIdentityRemoved"], "0063": ["LO", "DeidentificationMethod"], "0064": ["SQ", "DeidentificationMethodCodeSequence"], "0071": ["LO", "ClinicalTrialSeriesID"], "0072": ["LO", "ClinicalTrialSeriesDescription"], "0081": ["LO", "ClinicalTrialProtocolEthicsCommitteeName"], "0082": ["LO", "ClinicalTrialProtocolEthicsCommitteeApprovalNumber"], "0083": ["SQ", "ConsentForClinicalTrialUseSequence"], "0084": ["CS", "DistributionType"], "0085": ["CS", "ConsentForDistributionFlag"] }, "0014": { "0023": ["ST", "CADFileFormat"], "0024": ["ST", "ComponentReferenceSystem"], "0025": ["ST", "ComponentManufacturingProcedure"], "0028": ["ST", "ComponentManufacturer"], "0030": ["DS", "MaterialThickness"], "0032": ["DS", "MaterialPipeDiameter"], "0034": ["DS", "MaterialIsolationDiameter"], "0042": ["ST", "MaterialGrade"], "0044": ["ST", "MaterialPropertiesFileID"], "0045": ["ST", "MaterialPropertiesFileFormat"], "0046": ["LT", "MaterialNotes"], "0050": ["CS", "ComponentShape"], "0052": ["CS", "CurvatureType"], "0054": ["DS", "OuterDiameter"], "0056": ["DS", "InnerDiameter"], "1010": ["ST", "ActualEnvironmentalConditions"], "1020": ["DA", "ExpiryDate"], "1040": ["ST", "EnvironmentalConditions"], "2002": ["SQ", "EvaluatorSequence"], "2004": ["IS", "EvaluatorNumber"], "2006": ["PN", "EvaluatorName"], "2008": ["IS", "EvaluationAttempt"], "2012": ["SQ", "IndicationSequence"], "2014": ["IS", "IndicationNumber "], "2016": ["SH", "IndicationLabel"], "2018": ["ST", "IndicationDescription"], "201A": ["CS", "IndicationType"], "201C": ["CS", "IndicationDisposition"], "201E": ["SQ", "IndicationROISequence"], "2030": ["SQ", "IndicationPhysicalPropertySequence"], "2032": ["SH", "PropertyLabel"], "2202": ["IS", "CoordinateSystemNumberOfAxes "], "2204": ["SQ", "CoordinateSystemAxesSequence"], "2206": ["ST", "CoordinateSystemAxisDescription"], "2208": ["CS", "CoordinateSystemDataSetMapping"], "220A": ["IS", "CoordinateSystemAxisNumber"], "220C": ["CS", "CoordinateSystemAxisType"], "220E": ["CS", "CoordinateSystemAxisUnits"], "2210": ["OB", "CoordinateSystemAxisValues"], "2220": ["SQ", "CoordinateSystemTransformSequence"], "2222": ["ST", "TransformDescription"], "2224": ["IS", "TransformNumberOfAxes"], "2226": ["IS", "TransformOrderOfAxes"], "2228": ["CS", "TransformedAxisUnits"], "222A": ["DS", "CoordinateSystemTransformRotationAndScaleMatrix"], "222C": ["DS", "CoordinateSystemTransformTranslationMatrix"], "3011": ["DS", "InternalDetectorFrameTime"], "3012": ["DS", "NumberOfFramesIntegrated"], "3020": ["SQ", "DetectorTemperatureSequence"], "3022": ["DS", "SensorName"], "3024": ["DS", "HorizontalOffsetOfSensor"], "3026": ["DS", "VerticalOffsetOfSensor"], "3028": ["DS", "SensorTemperature"], "3040": ["SQ", "DarkCurrentSequence"], "3050": ["OB", "DarkCurrentCounts"], "3060": ["SQ", "GainCorrectionReferenceSequence"], "3070": ["OB", "AirCounts"], "3071": ["DS", "KVUsedInGainCalibration"], "3072": ["DS", "MAUsedInGainCalibration"], "3073": ["DS", "NumberOfFramesUsedForIntegration"], "3074": ["LO", "FilterMaterialUsedInGainCalibration"], "3075": ["DS", "FilterThicknessUsedInGainCalibration"], "3076": ["DA", "DateOfGainCalibration"], "3077": ["TM", "TimeOfGainCalibration"], "3080": ["OB", "BadPixelImage"], "3099": ["LT", "CalibrationNotes"], "4002": ["SQ", "PulserEquipmentSequence"], "4004": ["CS", "PulserType"], "4006": ["LT", "PulserNotes"], "4008": ["SQ", "ReceiverEquipmentSequence"], "400A": ["CS", "AmplifierType"], "400C": ["LT", "ReceiverNotes"], "400E": ["SQ", "PreAmplifierEquipmentSequence"], "400F": ["LT", "PreAmplifierNotes"], "4010": ["SQ", "TransmitTransducerSequence"], "4011": ["SQ", "ReceiveTransducerSequence"], "4012": ["US", "NumberOfElements"], "4013": ["CS", "ElementShape"], "4014": ["DS", "ElementDimensionA"], "4015": ["DS", "ElementDimensionB"], "4016": ["DS", "ElementPitch"], "4017": ["DS", "MeasuredBeamDimensionA"], "4018": ["DS", "MeasuredBeamDimensionB"], "4019": ["DS", "LocationOfMeasuredBeamDiameter"], "401A": ["DS", "NominalFrequency"], "401B": ["DS", "MeasuredCenterFrequency"], "401C": ["DS", "MeasuredBandwidth"], "4020": ["SQ", "PulserSettingsSequence"], "4022": ["DS", "PulseWidth"], "4024": ["DS", "ExcitationFrequency"], "4026": ["CS", "ModulationType"], "4028": ["DS", "Damping"], "4030": ["SQ", "ReceiverSettingsSequence"], "4031": ["DS", "AcquiredSoundpathLength"], "4032": ["CS", "AcquisitionCompressionType"], "4033": ["IS", "AcquisitionSampleSize"], "4034": ["DS", "RectifierSmoothing"], "4035": ["SQ", "DACSequence"], "4036": ["CS", "DACType"], "4038": ["DS", "DACGainPoints"], "403A": ["DS", "DACTimePoints"], "403C": ["DS", "DACAmplitude"], "4040": ["SQ", "PreAmplifierSettingsSequence"], "4050": ["SQ", "TransmitTransducerSettingsSequence"], "4051": ["SQ", "ReceiveTransducerSettingsSequence"], "4052": ["DS", "IncidentAngle"], "4054": ["ST", "CouplingTechnique"], "4056": ["ST", "CouplingMedium"], "4057": ["DS", "CouplingVelocity"], "4058": ["DS", "CrystalCenterLocationX"], "4059": ["DS", "CrystalCenterLocationZ"], "405A": ["DS", "SoundPathLength"], "405C": ["ST", "DelayLawIdentifier"], "4060": ["SQ", "GateSettingsSequence"], "4062": ["DS", "GateThreshold"], "4064": ["DS", "VelocityOfSound"], "4070": ["SQ", "CalibrationSettingsSequence"], "4072": ["ST", "CalibrationProcedure"], "4074": ["SH", "ProcedureVersion"], "4076": ["DA", "ProcedureCreationDate"], "4078": ["DA", "ProcedureExpirationDate"], "407A": ["DA", "ProcedureLastModifiedDate"], "407C": ["TM", "CalibrationTime"], "407E": ["DA", "CalibrationDate"], "5002": ["IS", "LINACEnergy"], "5004": ["IS", "LINACOutput"] }, "0018": { "0010": ["LO", "ContrastBolusAgent"], "0012": ["SQ", "ContrastBolusAgentSequence"], "0014": ["SQ", "ContrastBolusAdministrationRouteSequence"], "0015": ["CS", "BodyPartExamined"], "0020": ["CS", "ScanningSequence"], "0021": ["CS", "SequenceVariant"], "0022": ["CS", "ScanOptions"], "0023": ["CS", "MRAcquisitionType"], "0024": ["SH", "SequenceName"], "0025": ["CS", "AngioFlag"], "0026": ["SQ", "InterventionDrugInformationSequence"], "0027": ["TM", "InterventionDrugStopTime"], "0028": ["DS", "InterventionDrugDose"], "0029": ["SQ", "InterventionDrugCodeSequence"], "002A": ["SQ", "AdditionalDrugSequence"], "0030": ["LO", "Radionuclide"], "0031": ["LO", "Radiopharmaceutical"], "0032": ["DS", "EnergyWindowCenterline"], "0033": ["DS", "EnergyWindowTotalWidth"], "0034": ["LO", "InterventionDrugName"], "0035": ["TM", "InterventionDrugStartTime"], "0036": ["SQ", "InterventionSequence"], "0037": ["CS", "TherapyType"], "0038": ["CS", "InterventionStatus"], "0039": ["CS", "TherapyDescription"], "003A": ["ST", "InterventionDescription"], "0040": ["IS", "CineRate"], "0042": ["CS", "InitialCineRunState"], "0050": ["DS", "SliceThickness"], "0060": ["DS", "KVP"], "0070": ["IS", "CountsAccumulated"], "0071": ["CS", "AcquisitionTerminationCondition"], "0072": ["DS", "EffectiveDuration"], "0073": ["CS", "AcquisitionStartCondition"], "0074": ["IS", "AcquisitionStartConditionData"], "0075": ["IS", "AcquisitionTerminationConditionData"], "0080": ["DS", "RepetitionTime"], "0081": ["DS", "EchoTime"], "0082": ["DS", "InversionTime"], "0083": ["DS", "NumberOfAverages"], "0084": ["DS", "ImagingFrequency"], "0085": ["SH", "ImagedNucleus"], "0086": ["IS", "EchoNumbers"], "0087": ["DS", "MagneticFieldStrength"], "0088": ["DS", "SpacingBetweenSlices"], "0089": ["IS", "NumberOfPhaseEncodingSteps"], "0090": ["DS", "DataCollectionDiameter"], "0091": ["IS", "EchoTrainLength"], "0093": ["DS", "PercentSampling"], "0094": ["DS", "PercentPhaseFieldOfView"], "0095": ["DS", "PixelBandwidth"], "1000": ["LO", "DeviceSerialNumber"], "1002": ["UI", "DeviceUID"], "1003": ["LO", "DeviceID"], "1004": ["LO", "PlateID"], "1005": ["LO", "GeneratorID"], "1006": ["LO", "GridID"], "1007": ["LO", "CassetteID"], "1008": ["LO", "GantryID"], "1010": ["LO", "SecondaryCaptureDeviceID"], "1011": ["LO", "HardcopyCreationDeviceID"], "1012": ["DA", "DateOfSecondaryCapture"], "1014": ["TM", "TimeOfSecondaryCapture"], "1016": ["LO", "SecondaryCaptureDeviceManufacturer"], "1017": ["LO", "HardcopyDeviceManufacturer"], "1018": ["LO", "SecondaryCaptureDeviceManufacturerModelName"], "1019": ["LO", "SecondaryCaptureDeviceSoftwareVersions"], "101A": ["LO", "HardcopyDeviceSoftwareVersion"], "101B": ["LO", "HardcopyDeviceManufacturerModelName"], "1020": ["LO", "SoftwareVersions"], "1022": ["SH", "VideoImageFormatAcquired"], "1023": ["LO", "DigitalImageFormatAcquired"], "1030": ["LO", "ProtocolName"], "1040": ["LO", "ContrastBolusRoute"], "1041": ["DS", "ContrastBolusVolume"], "1042": ["TM", "ContrastBolusStartTime"], "1043": ["TM", "ContrastBolusStopTime"], "1044": ["DS", "ContrastBolusTotalDose"], "1045": ["IS", "SyringeCounts"], "1046": ["DS", "ContrastFlowRate"], "1047": ["DS", "ContrastFlowDuration"], "1048": ["CS", "ContrastBolusIngredient"], "1049": ["DS", "ContrastBolusIngredientConcentration"], "1050": ["DS", "SpatialResolution"], "1060": ["DS", "TriggerTime"], "1061": ["LO", "TriggerSourceOrType"], "1062": ["IS", "NominalInterval"], "1063": ["DS", "FrameTime"], "1064": ["LO", "CardiacFramingType"], "1065": ["DS", "FrameTimeVector"], "1066": ["DS", "FrameDelay"], "1067": ["DS", "ImageTriggerDelay"], "1068": ["DS", "MultiplexGroupTimeOffset"], "1069": ["DS", "TriggerTimeOffset"], "106A": ["CS", "SynchronizationTrigger"], "106C": ["US", "SynchronizationChannel"], "106E": ["UL", "TriggerSamplePosition"], "1070": ["LO", "RadiopharmaceuticalRoute"], "1071": ["DS", "RadiopharmaceuticalVolume"], "1072": ["TM", "RadiopharmaceuticalStartTime"], "1073": ["TM", "RadiopharmaceuticalStopTime"], "1074": ["DS", "RadionuclideTotalDose"], "1075": ["DS", "RadionuclideHalfLife"], "1076": ["DS", "RadionuclidePositronFraction"], "1077": ["DS", "RadiopharmaceuticalSpecificActivity"], "1078": ["DT", "RadiopharmaceuticalStartDateTime"], "1079": ["DT", "RadiopharmaceuticalStopDateTime"], "1080": ["CS", "BeatRejectionFlag"], "1081": ["IS", "LowRRValue"], "1082": ["IS", "HighRRValue"], "1083": ["IS", "IntervalsAcquired"], "1084": ["IS", "IntervalsRejected"], "1085": ["LO", "PVCRejection"], "1086": ["IS", "SkipBeats"], "1088": ["IS", "HeartRate"], "1090": ["IS", "CardiacNumberOfImages"], "1094": ["IS", "TriggerWindow"], "1100": ["DS", "ReconstructionDiameter"], "1110": ["DS", "DistanceSourceToDetector"], "1111": ["DS", "DistanceSourceToPatient"], "1114": ["DS", "EstimatedRadiographicMagnificationFactor"], "1120": ["DS", "GantryDetectorTilt"], "1121": ["DS", "GantryDetectorSlew"], "1130": ["DS", "TableHeight"], "1131": ["DS", "TableTraverse"], "1134": ["CS", "TableMotion"], "1135": ["DS", "TableVerticalIncrement"], "1136": ["DS", "TableLateralIncrement"], "1137": ["DS", "TableLongitudinalIncrement"], "1138": ["DS", "TableAngle"], "113A": ["CS", "TableType"], "1140": ["CS", "RotationDirection"], "1141": ["DS", "AngularPosition"], "1142": ["DS", "RadialPosition"], "1143": ["DS", "ScanArc"], "1144": ["DS", "AngularStep"], "1145": ["DS", "CenterOfRotationOffset"], "1146": ["DS", "RotationOffset"], "1147": ["CS", "FieldOfViewShape"], "1149": ["IS", "FieldOfViewDimensions"], "1150": ["IS", "ExposureTime"], "1151": ["IS", "XRayTubeCurrent"], "1152": ["IS", "Exposure"], "1153": ["IS", "ExposureInuAs"], "1154": ["DS", "AveragePulseWidth"], "1155": ["CS", "RadiationSetting"], "1156": ["CS", "RectificationType"], "115A": ["CS", "RadiationMode"], "115E": ["DS", "ImageAndFluoroscopyAreaDoseProduct"], "1160": ["SH", "FilterType"], "1161": ["LO", "TypeOfFilters"], "1162": ["DS", "IntensifierSize"], "1164": ["DS", "ImagerPixelSpacing"], "1166": ["CS", "Grid"], "1170": ["IS", "GeneratorPower"], "1180": ["SH", "CollimatorGridName"], "1181": ["CS", "CollimatorType"], "1182": ["IS", "FocalDistance"], "1183": ["DS", "XFocusCenter"], "1184": ["DS", "YFocusCenter"], "1190": ["DS", "FocalSpots"], "1191": ["CS", "AnodeTargetMaterial"], "11A0": ["DS", "BodyPartThickness"], "11A2": ["DS", "CompressionForce"], "1200": ["DA", "DateOfLastCalibration"], "1201": ["TM", "TimeOfLastCalibration"], "1210": ["SH", "ConvolutionKernel"], "1240": ["IS", "UpperLowerPixelValues"], "1242": ["IS", "ActualFrameDuration"], "1243": ["IS", "CountRate"], "1244": ["US", "PreferredPlaybackSequencing"], "1250": ["SH", "ReceiveCoilName"], "1251": ["SH", "TransmitCoilName"], "1260": ["SH", "PlateType"], "1261": ["LO", "PhosphorType"], "1300": ["DS", "ScanVelocity"], "1301": ["CS", "WholeBodyTechnique"], "1302": ["IS", "ScanLength"], "1310": ["US", "AcquisitionMatrix"], "1312": ["CS", "InPlanePhaseEncodingDirection"], "1314": ["DS", "FlipAngle"], "1315": ["CS", "VariableFlipAngleFlag"], "1316": ["DS", "SAR"], "1318": ["DS", "dBdt"], "1400": ["LO", "AcquisitionDeviceProcessingDescription"], "1401": ["LO", "AcquisitionDeviceProcessingCode"], "1402": ["CS", "CassetteOrientation"], "1403": ["CS", "CassetteSize"], "1404": ["US", "ExposuresOnPlate"], "1405": ["IS", "RelativeXRayExposure"], "1411": ["DS", "ExposureIndex"], "1412": ["DS", "TargetExposureIndex"], "1413": ["DS", "DeviationIndex"], "1450": ["DS", "ColumnAngulation"], "1460": ["DS", "TomoLayerHeight"], "1470": ["DS", "TomoAngle"], "1480": ["DS", "TomoTime"], "1490": ["CS", "TomoType"], "1491": ["CS", "TomoClass"], "1495": ["IS", "NumberOfTomosynthesisSourceImages"], "1500": ["CS", "PositionerMotion"], "1508": ["CS", "PositionerType"], "1510": ["DS", "PositionerPrimaryAngle"], "1511": ["DS", "PositionerSecondaryAngle"], "1520": ["DS", "PositionerPrimaryAngleIncrement"], "1521": ["DS", "PositionerSecondaryAngleIncrement"], "1530": ["DS", "DetectorPrimaryAngle"], "1531": ["DS", "DetectorSecondaryAngle"], "1600": ["CS", "ShutterShape"], "1602": ["IS", "ShutterLeftVerticalEdge"], "1604": ["IS", "ShutterRightVerticalEdge"], "1606": ["IS", "ShutterUpperHorizontalEdge"], "1608": ["IS", "ShutterLowerHorizontalEdge"], "1610": ["IS", "CenterOfCircularShutter"], "1612": ["IS", "RadiusOfCircularShutter"], "1620": ["IS", "VerticesOfThePolygonalShutter"], "1622": ["US", "ShutterPresentationValue"], "1623": ["US", "ShutterOverlayGroup"], "1624": ["US", "ShutterPresentationColorCIELabValue"], "1700": ["CS", "CollimatorShape"], "1702": ["IS", "CollimatorLeftVerticalEdge"], "1704": ["IS", "CollimatorRightVerticalEdge"], "1706": ["IS", "CollimatorUpperHorizontalEdge"], "1708": ["IS", "CollimatorLowerHorizontalEdge"], "1710": ["IS", "CenterOfCircularCollimator"], "1712": ["IS", "RadiusOfCircularCollimator"], "1720": ["IS", "VerticesOfThePolygonalCollimator"], "1800": ["CS", "AcquisitionTimeSynchronized"], "1801": ["SH", "TimeSource"], "1802": ["CS", "TimeDistributionProtocol"], "1803": ["LO", "NTPSourceAddress"], "2001": ["IS", "PageNumberVector"], "2002": ["SH", "FrameLabelVector"], "2003": ["DS", "FramePrimaryAngleVector"], "2004": ["DS", "FrameSecondaryAngleVector"], "2005": ["DS", "SliceLocationVector"], "2006": ["SH", "DisplayWindowLabelVector"], "2010": ["DS", "NominalScannedPixelSpacing"], "2020": ["CS", "DigitizingDeviceTransportDirection"], "2030": ["DS", "RotationOfScannedFilm"], "3100": ["CS", "IVUSAcquisition"], "3101": ["DS", "IVUSPullbackRate"], "3102": ["DS", "IVUSGatedRate"], "3103": ["IS", "IVUSPullbackStartFrameNumber"], "3104": ["IS", "IVUSPullbackStopFrameNumber"], "3105": ["IS", "LesionNumber"], "4000": ["LT", "AcquisitionComments"], "5000": ["SH", "OutputPower"], "5010": ["LO", "TransducerData"], "5012": ["DS", "FocusDepth"], "5020": ["LO", "ProcessingFunction"], "5021": ["LO", "PostprocessingFunction"], "5022": ["DS", "MechanicalIndex"], "5024": ["DS", "BoneThermalIndex"], "5026": ["DS", "CranialThermalIndex"], "5027": ["DS", "SoftTissueThermalIndex"], "5028": ["DS", "SoftTissueFocusThermalIndex"], "5029": ["DS", "SoftTissueSurfaceThermalIndex"], "5030": ["DS", "DynamicRange"], "5040": ["DS", "TotalGain"], "5050": ["IS", "DepthOfScanField"], "5100": ["CS", "PatientPosition"], "5101": ["CS", "ViewPosition"], "5104": ["SQ", "ProjectionEponymousNameCodeSequence"], "5210": ["DS", "ImageTransformationMatrix"], "5212": ["DS", "ImageTranslationVector"], "6000": ["DS", "Sensitivity"], "6011": ["SQ", "SequenceOfUltrasoundRegions"], "6012": ["US", "RegionSpatialFormat"], "6014": ["US", "RegionDataType"], "6016": ["UL", "RegionFlags"], "6018": ["UL", "RegionLocationMinX0"], "601A": ["UL", "RegionLocationMinY0"], "601C": ["UL", "RegionLocationMaxX1"], "601E": ["UL", "RegionLocationMaxY1"], "6020": ["SL", "ReferencePixelX0"], "6022": ["SL", "ReferencePixelY0"], "6024": ["US", "PhysicalUnitsXDirection"], "6026": ["US", "PhysicalUnitsYDirection"], "6028": ["FD", "ReferencePixelPhysicalValueX"], "602A": ["FD", "ReferencePixelPhysicalValueY"], "602C": ["FD", "PhysicalDeltaX"], "602E": ["FD", "PhysicalDeltaY"], "6030": ["UL", "TransducerFrequency"], "6031": ["CS", "TransducerType"], "6032": ["UL", "PulseRepetitionFrequency"], "6034": ["FD", "DopplerCorrectionAngle"], "6036": ["FD", "SteeringAngle"], "6038": ["UL", "DopplerSampleVolumeXPositionRetired"], "6039": ["SL", "DopplerSampleVolumeXPosition"], "603A": ["UL", "DopplerSampleVolumeYPositionRetired"], "603B": ["SL", "DopplerSampleVolumeYPosition"], "603C": ["UL", "TMLinePositionX0Retired"], "603D": ["SL", "TMLinePositionX0"], "603E": ["UL", "TMLinePositionY0Retired"], "603F": ["SL", "TMLinePositionY0"], "6040": ["UL", "TMLinePositionX1Retired"], "6041": ["SL", "TMLinePositionX1"], "6042": ["UL", "TMLinePositionY1Retired"], "6043": ["SL", "TMLinePositionY1"], "6044": ["US", "PixelComponentOrganization"], "6046": ["UL", "PixelComponentMask"], "6048": ["UL", "PixelComponentRangeStart"], "604A": ["UL", "PixelComponentRangeStop"], "604C": ["US", "PixelComponentPhysicalUnits"], "604E": ["US", "PixelComponentDataType"], "6050": ["UL", "NumberOfTableBreakPoints"], "6052": ["UL", "TableOfXBreakPoints"], "6054": ["FD", "TableOfYBreakPoints"], "6056": ["UL", "NumberOfTableEntries"], "6058": ["UL", "TableOfPixelValues"], "605A": ["FL", "TableOfParameterValues"], "6060": ["FL", "RWaveTimeVector"], "7000": ["CS", "DetectorConditionsNominalFlag"], "7001": ["DS", "DetectorTemperature"], "7004": ["CS", "DetectorType"], "7005": ["CS", "DetectorConfiguration"], "7006": ["LT", "DetectorDescription"], "7008": ["LT", "DetectorMode"], "700A": ["SH", "DetectorID"], "700C": ["DA", "DateOfLastDetectorCalibration"], "700E": ["TM", "TimeOfLastDetectorCalibration"], "7010": ["IS", "ExposuresOnDetectorSinceLastCalibration"], "7011": ["IS", "ExposuresOnDetectorSinceManufactured"], "7012": ["DS", "DetectorTimeSinceLastExposure"], "7014": ["DS", "DetectorActiveTime"], "7016": ["DS", "DetectorActivationOffsetFromExposure"], "701A": ["DS", "DetectorBinning"], "7020": ["DS", "DetectorElementPhysicalSize"], "7022": ["DS", "DetectorElementSpacing"], "7024": ["CS", "DetectorActiveShape"], "7026": ["DS", "DetectorActiveDimensions"], "7028": ["DS", "DetectorActiveOrigin"], "702A": ["LO", "DetectorManufacturerName"], "702B": ["LO", "DetectorManufacturerModelName"], "7030": ["DS", "FieldOfViewOrigin"], "7032": ["DS", "FieldOfViewRotation"], "7034": ["CS", "FieldOfViewHorizontalFlip"], "7036": ["FL", "PixelDataAreaOriginRelativeToFOV"], "7038": ["FL", "PixelDataAreaRotationAngleRelativeToFOV"], "7040": ["LT", "GridAbsorbingMaterial"], "7041": ["LT", "GridSpacingMaterial"], "7042": ["DS", "GridThickness"], "7044": ["DS", "GridPitch"], "7046": ["IS", "GridAspectRatio"], "7048": ["DS", "GridPeriod"], "704C": ["DS", "GridFocalDistance"], "7050": ["CS", "FilterMaterial"], "7052": ["DS", "FilterThicknessMinimum"], "7054": ["DS", "FilterThicknessMaximum"], "7056": ["FL", "FilterBeamPathLengthMinimum"], "7058": ["FL", "FilterBeamPathLengthMaximum"], "7060": ["CS", "ExposureControlMode"], "7062": ["LT", "ExposureControlModeDescription"], "7064": ["CS", "ExposureStatus"], "7065": ["DS", "PhototimerSetting"], "8150": ["DS", "ExposureTimeInuS"], "8151": ["DS", "XRayTubeCurrentInuA"], "9004": ["CS", "ContentQualification"], "9005": ["SH", "PulseSequenceName"], "9006": ["SQ", "MRImagingModifierSequence"], "9008": ["CS", "EchoPulseSequence"], "9009": ["CS", "InversionRecovery"], "9010": ["CS", "FlowCompensation"], "9011": ["CS", "MultipleSpinEcho"], "9012": ["CS", "MultiPlanarExcitation"], "9014": ["CS", "PhaseContrast"], "9015": ["CS", "TimeOfFlightContrast"], "9016": ["CS", "Spoiling"], "9017": ["CS", "SteadyStatePulseSequence"], "9018": ["CS", "EchoPlanarPulseSequence"], "9019": ["FD", "TagAngleFirstAxis"], "9020": ["CS", "MagnetizationTransfer"], "9021": ["CS", "T2Preparation"], "9022": ["CS", "BloodSignalNulling"], "9024": ["CS", "SaturationRecovery"], "9025": ["CS", "SpectrallySelectedSuppression"], "9026": ["CS", "SpectrallySelectedExcitation"], "9027": ["CS", "SpatialPresaturation"], "9028": ["CS", "Tagging"], "9029": ["CS", "OversamplingPhase"], "9030": ["FD", "TagSpacingFirstDimension"], "9032": ["CS", "GeometryOfKSpaceTraversal"], "9033": ["CS", "SegmentedKSpaceTraversal"], "9034": ["CS", "RectilinearPhaseEncodeReordering"], "9035": ["FD", "TagThickness"], "9036": ["CS", "PartialFourierDirection"], "9037": ["CS", "CardiacSynchronizationTechnique"], "9041": ["LO", "ReceiveCoilManufacturerName"], "9042": ["SQ", "MRReceiveCoilSequence"], "9043": ["CS", "ReceiveCoilType"], "9044": ["CS", "QuadratureReceiveCoil"], "9045": ["SQ", "MultiCoilDefinitionSequence"], "9046": ["LO", "MultiCoilConfiguration"], "9047": ["SH", "MultiCoilElementName"], "9048": ["CS", "MultiCoilElementUsed"], "9049": ["SQ", "MRTransmitCoilSequence"], "9050": ["LO", "TransmitCoilManufacturerName"], "9051": ["CS", "TransmitCoilType"], "9052": ["FD", "SpectralWidth"], "9053": ["FD", "ChemicalShiftReference"], "9054": ["CS", "VolumeLocalizationTechnique"], "9058": ["US", "MRAcquisitionFrequencyEncodingSteps"], "9059": ["CS", "Decoupling"], "9060": ["CS", "DecoupledNucleus"], "9061": ["FD", "DecouplingFrequency"], "9062": ["CS", "DecouplingMethod"], "9063": ["FD", "DecouplingChemicalShiftReference"], "9064": ["CS", "KSpaceFiltering"], "9065": ["CS", "TimeDomainFiltering"], "9066": ["US", "NumberOfZeroFills"], "9067": ["CS", "BaselineCorrection"], "9069": ["FD", "ParallelReductionFactorInPlane"], "9070": ["FD", "CardiacRRIntervalSpecified"], "9073": ["FD", "AcquisitionDuration"], "9074": ["DT", "FrameAcquisitionDateTime"], "9075": ["CS", "DiffusionDirectionality"], "9076": ["SQ", "DiffusionGradientDirectionSequence"], "9077": ["CS", "ParallelAcquisition"], "9078": ["CS", "ParallelAcquisitionTechnique"], "9079": ["FD", "InversionTimes"], "9080": ["ST", "MetaboliteMapDescription"], "9081": ["CS", "PartialFourier"], "9082": ["FD", "EffectiveEchoTime"], "9083": ["SQ", "MetaboliteMapCodeSequence"], "9084": ["SQ", "ChemicalShiftSequence"], "9085": ["CS", "CardiacSignalSource"], "9087": ["FD", "DiffusionBValue"], "9089": ["FD", "DiffusionGradientOrientation"], "9090": ["FD", "VelocityEncodingDirection"], "9091": ["FD", "VelocityEncodingMinimumValue"], "9092": ["SQ", "VelocityEncodingAcquisitionSequence"], "9093": ["US", "NumberOfKSpaceTrajectories"], "9094": ["CS", "CoverageOfKSpace"], "9095": ["UL", "SpectroscopyAcquisitionPhaseRows"], "9096": ["FD", "ParallelReductionFactorInPlaneRetired"], "9098": ["FD", "TransmitterFrequency"], "9100": ["CS", "ResonantNucleus"], "9101": ["CS", "FrequencyCorrection"], "9103": ["SQ", "MRSpectroscopyFOVGeometrySequence"], "9104": ["FD", "SlabThickness"], "9105": ["FD", "SlabOrientation"], "9106": ["FD", "MidSlabPosition"], "9107": ["SQ", "MRSpatialSaturationSequence"], "9112": ["SQ", "MRTimingAndRelatedParametersSequence"], "9114": ["SQ", "MREchoSequence"], "9115": ["SQ", "MRModifierSequence"], "9117": ["SQ", "MRDiffusionSequence"], "9118": ["SQ", "CardiacSynchronizationSequence"], "9119": ["SQ", "MRAveragesSequence"], "9125": ["SQ", "MRFOVGeometrySequence"], "9126": ["SQ", "VolumeLocalizationSequence"], "9127": ["UL", "SpectroscopyAcquisitionDataColumns"], "9147": ["CS", "DiffusionAnisotropyType"], "9151": ["DT", "FrameReferenceDateTime"], "9152": ["SQ", "MRMetaboliteMapSequence"], "9155": ["FD", "ParallelReductionFactorOutOfPlane"], "9159": ["UL", "SpectroscopyAcquisitionOutOfPlanePhaseSteps"], "9166": ["CS", "BulkMotionStatus"], "9168": ["FD", "ParallelReductionFactorSecondInPlane"], "9169": ["CS", "CardiacBeatRejectionTechnique"], "9170": ["CS", "RespiratoryMotionCompensationTechnique"], "9171": ["CS", "RespiratorySignalSource"], "9172": ["CS", "BulkMotionCompensationTechnique"], "9173": ["CS", "BulkMotionSignalSource"], "9174": ["CS", "ApplicableSafetyStandardAgency"], "9175": ["LO", "ApplicableSafetyStandardDescription"], "9176": ["SQ", "OperatingModeSequence"], "9177": ["CS", "OperatingModeType"], "9178": ["CS", "OperatingMode"], "9179": ["CS", "SpecificAbsorptionRateDefinition"], "9180": ["CS", "GradientOutputType"], "9181": ["FD", "SpecificAbsorptionRateValue"], "9182": ["FD", "GradientOutput"], "9183": ["CS", "FlowCompensationDirection"], "9184": ["FD", "TaggingDelay"], "9185": ["ST", "RespiratoryMotionCompensationTechniqueDescription"], "9186": ["SH", "RespiratorySignalSourceID"], "9195": ["FD", "ChemicalShiftMinimumIntegrationLimitInHz"], "9196": ["FD", "ChemicalShiftMaximumIntegrationLimitInHz"], "9197": ["SQ", "MRVelocityEncodingSequence"], "9198": ["CS", "FirstOrderPhaseCorrection"], "9199": ["CS", "WaterReferencedPhaseCorrection"], "9200": ["CS", "MRSpectroscopyAcquisitionType"], "9214": ["CS", "RespiratoryCyclePosition"], "9217": ["FD", "VelocityEncodingMaximumValue"], "9218": ["FD", "TagSpacingSecondDimension"], "9219": ["SS", "TagAngleSecondAxis"], "9220": ["FD", "FrameAcquisitionDuration"], "9226": ["SQ", "MRImageFrameTypeSequence"], "9227": ["SQ", "MRSpectroscopyFrameTypeSequence"], "9231": ["US", "MRAcquisitionPhaseEncodingStepsInPlane"], "9232": ["US", "MRAcquisitionPhaseEncodingStepsOutOfPlane"], "9234": ["UL", "SpectroscopyAcquisitionPhaseColumns"], "9236": ["CS", "CardiacCyclePosition"], "9239": ["SQ", "SpecificAbsorptionRateSequence"], "9240": ["US", "RFEchoTrainLength"], "9241": ["US", "GradientEchoTrainLength"], "9250": ["CS", "ArterialSpinLabelingContrast"], "9251": ["SQ", "MRArterialSpinLabelingSequence"], "9252": ["LO", "ASLTechniqueDescription"], "9253": ["US", "ASLSlabNumber"], "9254": ["FD ", "ASLSlabThickness"], "9255": ["FD ", "ASLSlabOrientation"], "9256": ["FD ", "ASLMidSlabPosition"], "9257": ["CS", "ASLContext"], "9258": ["UL", "ASLPulseTrainDuration"], "9259": ["CS", "ASLCrusherFlag"], "925A": ["FD", "ASLCrusherFlow"], "925B": ["LO", "ASLCrusherDescription"], "925C": ["CS", "ASLBolusCutoffFlag"], "925D": ["SQ", "ASLBolusCutoffTimingSequence"], "925E": ["LO", "ASLBolusCutoffTechnique"], "925F": ["UL", "ASLBolusCutoffDelayTime"], "9260": ["SQ", "ASLSlabSequence"], "9295": ["FD", "ChemicalShiftMinimumIntegrationLimitInppm"], "9296": ["FD", "ChemicalShiftMaximumIntegrationLimitInppm"], "9301": ["SQ", "CTAcquisitionTypeSequence"], "9302": ["CS", "AcquisitionType"], "9303": ["FD", "TubeAngle"], "9304": ["SQ", "CTAcquisitionDetailsSequence"], "9305": ["FD", "RevolutionTime"], "9306": ["FD", "SingleCollimationWidth"], "9307": ["FD", "TotalCollimationWidth"], "9308": ["SQ", "CTTableDynamicsSequence"], "9309": ["FD", "TableSpeed"], "9310": ["FD", "TableFeedPerRotation"], "9311": ["FD", "SpiralPitchFactor"], "9312": ["SQ", "CTGeometrySequence"], "9313": ["FD", "DataCollectionCenterPatient"], "9314": ["SQ", "CTReconstructionSequence"], "9315": ["CS", "ReconstructionAlgorithm"], "9316": ["CS", "ConvolutionKernelGroup"], "9317": ["FD", "ReconstructionFieldOfView"], "9318": ["FD", "ReconstructionTargetCenterPatient"], "9319": ["FD", "ReconstructionAngle"], "9320": ["SH", "ImageFilter"], "9321": ["SQ", "CTExposureSequence"], "9322": ["FD", "ReconstructionPixelSpacing"], "9323": ["CS", "ExposureModulationType"], "9324": ["FD", "EstimatedDoseSaving"], "9325": ["SQ", "CTXRayDetailsSequence"], "9326": ["SQ", "CTPositionSequence"], "9327": ["FD", "TablePosition"], "9328": ["FD", "ExposureTimeInms"], "9329": ["SQ", "CTImageFrameTypeSequence"], "9330": ["FD", "XRayTubeCurrentInmA"], "9332": ["FD", "ExposureInmAs"], "9333": ["CS", "ConstantVolumeFlag"], "9334": ["CS", "FluoroscopyFlag"], "9335": ["FD", "DistanceSourceToDataCollectionCenter"], "9337": ["US", "ContrastBolusAgentNumber"], "9338": ["SQ", "ContrastBolusIngredientCodeSequence"], "9340": ["SQ", "ContrastAdministrationProfileSequence"], "9341": ["SQ", "ContrastBolusUsageSequence"], "9342": ["CS", "ContrastBolusAgentAdministered"], "9343": ["CS", "ContrastBolusAgentDetected"], "9344": ["CS", "ContrastBolusAgentPhase"], "9345": ["FD", "CTDIvol"], "9346": ["SQ", "CTDIPhantomTypeCodeSequence"], "9351": ["FL", "CalciumScoringMassFactorPatient"], "9352": ["FL", "CalciumScoringMassFactorDevice"], "9353": ["FL", "EnergyWeightingFactor"], "9360": ["SQ", "CTAdditionalXRaySourceSequence"], "9401": ["SQ", "ProjectionPixelCalibrationSequence"], "9402": ["FL", "DistanceSourceToIsocenter"], "9403": ["FL", "DistanceObjectToTableTop"], "9404": ["FL", "ObjectPixelSpacingInCenterOfBeam"], "9405": ["SQ", "PositionerPositionSequence"], "9406": ["SQ", "TablePositionSequence"], "9407": ["SQ", "CollimatorShapeSequence"], "9410": ["CS", "PlanesInAcquisition"], "9412": ["SQ", "XAXRFFrameCharacteristicsSequence"], "9417": ["SQ", "FrameAcquisitionSequence"], "9420": ["CS", "XRayReceptorType"], "9423": ["LO", "AcquisitionProtocolName"], "9424": ["LT", "AcquisitionProtocolDescription"], "9425": ["CS", "ContrastBolusIngredientOpaque"], "9426": ["FL", "DistanceReceptorPlaneToDetectorHousing"], "9427": ["CS", "IntensifierActiveShape"], "9428": ["FL", "IntensifierActiveDimensions"], "9429": ["FL", "PhysicalDetectorSize"], "9430": ["FL", "PositionOfIsocenterProjection"], "9432": ["SQ", "FieldOfViewSequence"], "9433": ["LO", "FieldOfViewDescription"], "9434": ["SQ", "ExposureControlSensingRegionsSequence"], "9435": ["CS", "ExposureControlSensingRegionShape"], "9436": ["SS", "ExposureControlSensingRegionLeftVerticalEdge"], "9437": ["SS", "ExposureControlSensingRegionRightVerticalEdge"], "9438": ["SS", "ExposureControlSensingRegionUpperHorizontalEdge"], "9439": ["SS", "ExposureControlSensingRegionLowerHorizontalEdge"], "9440": ["SS", "CenterOfCircularExposureControlSensingRegion"], "9441": ["US", "RadiusOfCircularExposureControlSensingRegion"], "9442": ["SS", "VerticesOfThePolygonalExposureControlSensingRegion"], "9447": ["FL", "ColumnAngulationPatient"], "9449": ["FL", "BeamAngle"], "9451": ["SQ", "FrameDetectorParametersSequence"], "9452": ["FL", "CalculatedAnatomyThickness"], "9455": ["SQ", "CalibrationSequence"], "9456": ["SQ", "ObjectThicknessSequence"], "9457": ["CS", "PlaneIdentification"], "9461": ["FL", "FieldOfViewDimensionsInFloat"], "9462": ["SQ", "IsocenterReferenceSystemSequence"], "9463": ["FL", "PositionerIsocenterPrimaryAngle"], "9464": ["FL", "PositionerIsocenterSecondaryAngle"], "9465": ["FL", "PositionerIsocenterDetectorRotationAngle"], "9466": ["FL", "TableXPositionToIsocenter"], "9467": ["FL", "TableYPositionToIsocenter"], "9468": ["FL", "TableZPositionToIsocenter"], "9469": ["FL", "TableHorizontalRotationAngle"], "9470": ["FL", "TableHeadTiltAngle"], "9471": ["FL", "TableCradleTiltAngle"], "9472": ["SQ", "FrameDisplayShutterSequence"], "9473": ["FL", "AcquiredImageAreaDoseProduct"], "9474": ["CS", "CArmPositionerTabletopRelationship"], "9476": ["SQ", "XRayGeometrySequence"], "9477": ["SQ", "IrradiationEventIdentificationSequence"], "9504": ["SQ", "XRay3DFrameTypeSequence"], "9506": ["SQ", "ContributingSourcesSequence"], "9507": ["SQ", "XRay3DAcquisitionSequence"], "9508": ["FL", "PrimaryPositionerScanArc"], "9509": ["FL", "SecondaryPositionerScanArc"], "9510": ["FL ", "PrimaryPositionerScanStartAngle"], "9511": ["FL", "SecondaryPositionerScanStartAngle"], "9514": ["FL", "PrimaryPositionerIncrement"], "9515": ["FL", "SecondaryPositionerIncrement"], "9516": ["DT", "StartAcquisitionDateTime"], "9517": ["DT", "EndAcquisitionDateTime"], "9524": ["LO", "ApplicationName"], "9525": ["LO", "ApplicationVersion"], "9526": ["LO", "ApplicationManufacturer"], "9527": ["CS", "AlgorithmType"], "9528": ["LO", "AlgorithmDescription"], "9530": ["SQ", "XRay3DReconstructionSequence"], "9531": ["LO", "ReconstructionDescription"], "9538": ["SQ", "PerProjectionAcquisitionSequence"], "9601": ["SQ", "DiffusionBMatrixSequence"], "9602": ["FD", "DiffusionBValueXX"], "9603": ["FD", "DiffusionBValueXY"], "9604": ["FD", "DiffusionBValueXZ"], "9605": ["FD", "DiffusionBValueYY"], "9606": ["FD", "DiffusionBValueYZ"], "9607": ["FD", "DiffusionBValueZZ"], "9701": ["DT", "DecayCorrectionDateTime"], "9715": ["FD", "StartDensityThreshold"], "9716": ["FD", "StartRelativeDensityDifferenceThreshold"], "9717": ["FD", "StartCardiacTriggerCountThreshold"], "9718": ["FD", "StartRespiratoryTriggerCountThreshold"], "9719": ["FD", "TerminationCountsThreshold"], "9720": ["FD", "TerminationDensityThreshold"], "9721": ["FD", "TerminationRelativeDensityThreshold"], "9722": ["FD", "TerminationTimeThreshold"], "9723": ["FD", "TerminationCardiacTriggerCountThreshold"], "9724": ["FD", "TerminationRespiratoryTriggerCountThreshold"], "9725": ["CS", "DetectorGeometry"], "9726": ["FD", "TransverseDetectorSeparation"], "9727": ["FD", "AxialDetectorDimension"], "9729": ["US", "RadiopharmaceuticalAgentNumber"], "9732": ["SQ", "PETFrameAcquisitionSequence"], "9733": ["SQ", "PETDetectorMotionDetailsSequence"], "9734": ["SQ", "PETTableDynamicsSequence"], "9735": ["SQ", "PETPositionSequence"], "9736": ["SQ", "PETFrameCorrectionFactorsSequence"], "9737": ["SQ", "RadiopharmaceuticalUsageSequence"], "9738": ["CS", "AttenuationCorrectionSource"], "9739": ["US", "NumberOfIterations"], "9740": ["US", "NumberOfSubsets"], "9749": ["SQ", "PETReconstructionSequence"], "9751": ["SQ", "PETFrameTypeSequence"], "9755": ["CS", "TimeOfFlightInformationUsed"], "9756": ["CS", "ReconstructionType"], "9758": ["CS", "DecayCorrected"], "9759": ["CS", "AttenuationCorrected"], "9760": ["CS", "ScatterCorrected"], "9761": ["CS", "DeadTimeCorrected"], "9762": ["CS", "GantryMotionCorrected"], "9763": ["CS", "PatientMotionCorrected"], "9764": ["CS", "CountLossNormalizationCorrected"], "9765": ["CS", "RandomsCorrected"], "9766": ["CS", "NonUniformRadialSamplingCorrected"], "9767": ["CS", "SensitivityCalibrated"], "9768": ["CS", "DetectorNormalizationCorrection"], "9769": ["CS", "IterativeReconstructionMethod"], "9770": ["CS", "AttenuationCorrectionTemporalRelationship"], "9771": ["SQ", "PatientPhysiologicalStateSequence"], "9772": ["SQ", "PatientPhysiologicalStateCodeSequence"], "9801": ["FD", "DepthsOfFocus"], "9803": ["SQ", "ExcludedIntervalsSequence"], "9804": ["DT", "ExclusionStartDatetime"], "9805": ["FD", "ExclusionDuration"], "9806": ["SQ", "USImageDescriptionSequence"], "9807": ["SQ", "ImageDataTypeSequence"], "9808": ["CS", "DataType"], "9809": ["SQ", "TransducerScanPatternCodeSequence"], "980B": ["CS", "AliasedDataType"], "980C": ["CS", "PositionMeasuringDeviceUsed"], "980D": ["SQ", "TransducerGeometryCodeSequence"], "980E": ["SQ", "TransducerBeamSteeringCodeSequence"], "980F": ["SQ", "TransducerApplicationCodeSequence"], "A001": ["SQ", "ContributingEquipmentSequence"], "A002": ["DT", "ContributionDateTime"], "A003": ["ST", "ContributionDescription"] }, "0020": { "000D": ["UI", "StudyInstanceUID"], "000E": ["UI", "SeriesInstanceUID"], "0010": ["SH", "StudyID"], "0011": ["IS", "SeriesNumber"], "0012": ["IS", "AcquisitionNumber"], "0013": ["IS", "InstanceNumber"], "0014": ["IS", "IsotopeNumber"], "0015": ["IS", "PhaseNumber"], "0016": ["IS", "IntervalNumber"], "0017": ["IS", "TimeSlotNumber"], "0018": ["IS", "AngleNumber"], "0019": ["IS", "ItemNumber"], "0020": ["CS", "PatientOrientation"], "0022": ["IS", "OverlayNumber"], "0024": ["IS", "CurveNumber"], "0026": ["IS", "LUTNumber"], "0030": ["DS", "ImagePosition"], "0032": ["DS", "ImagePositionPatient"], "0035": ["DS", "ImageOrientation"], "0037": ["DS", "ImageOrientationPatient"], "0050": ["DS", "Location"], "0052": ["UI", "FrameOfReferenceUID"], "0060": ["CS", "Laterality"], "0062": ["CS", "ImageLaterality"], "0070": ["LO", "ImageGeometryType"], "0080": ["CS", "MaskingImage"], "00AA": ["IS", "ReportNumber"], "0100": ["IS", "TemporalPositionIdentifier"], "0105": ["IS", "NumberOfTemporalPositions"], "0110": ["DS", "TemporalResolution"], "0200": ["UI", "SynchronizationFrameOfReferenceUID"], "0242": ["UI", "SOPInstanceUIDOfConcatenationSource"], "1000": ["IS", "SeriesInStudy"], "1001": ["IS", "AcquisitionsInSeries"], "1002": ["IS", "ImagesInAcquisition"], "1003": ["IS", "ImagesInSeries"], "1004": ["IS", "AcquisitionsInStudy"], "1005": ["IS", "ImagesInStudy"], "1020": ["LO", "Reference"], "1040": ["LO", "PositionReferenceIndicator"], "1041": ["DS", "SliceLocation"], "1070": ["IS", "OtherStudyNumbers"], "1200": ["IS", "NumberOfPatientRelatedStudies"], "1202": ["IS", "NumberOfPatientRelatedSeries"], "1204": ["IS", "NumberOfPatientRelatedInstances"], "1206": ["IS", "NumberOfStudyRelatedSeries"], "1208": ["IS", "NumberOfStudyRelatedInstances"], "1209": ["IS", "NumberOfSeriesRelatedInstances"], "3401": ["CS", "ModifyingDeviceID"], "3402": ["CS", "ModifiedImageID"], "3403": ["DA", "ModifiedImageDate"], "3404": ["LO", "ModifyingDeviceManufacturer"], "3405": ["TM", "ModifiedImageTime"], "3406": ["LO", "ModifiedImageDescription"], "4000": ["LT", "ImageComments"], "5000": ["AT", "OriginalImageIdentification"], "5002": ["LO", "OriginalImageIdentificationNomenclature"], "9056": ["SH", "StackID"], "9057": ["UL", "InStackPositionNumber"], "9071": ["SQ", "FrameAnatomySequence"], "9072": ["CS", "FrameLaterality"], "9111": ["SQ", "FrameContentSequence"], "9113": ["SQ", "PlanePositionSequence"], "9116": ["SQ", "PlaneOrientationSequence"], "9128": ["UL", "TemporalPositionIndex"], "9153": ["FD", "NominalCardiacTriggerDelayTime"], "9154": ["FL", "NominalCardiacTriggerTimePriorToRPeak"], "9155": ["FL", "ActualCardiacTriggerTimePriorToRPeak"], "9156": ["US", "FrameAcquisitionNumber"], "9157": ["UL", "DimensionIndexValues"], "9158": ["LT", "FrameComments"], "9161": ["UI", "ConcatenationUID"], "9162": ["US", "InConcatenationNumber"], "9163": ["US", "InConcatenationTotalNumber"], "9164": ["UI", "DimensionOrganizationUID"], "9165": ["AT", "DimensionIndexPointer"], "9167": ["AT", "FunctionalGroupPointer"], "9213": ["LO", "DimensionIndexPrivateCreator"], "9221": ["SQ", "DimensionOrganizationSequence"], "9222": ["SQ", "DimensionIndexSequence"], "9228": ["UL", "ConcatenationFrameOffsetNumber"], "9238": ["LO", "FunctionalGroupPrivateCreator"], "9241": ["FL", "NominalPercentageOfCardiacPhase"], "9245": ["FL", "NominalPercentageOfRespiratoryPhase"], "9246": ["FL", "StartingRespiratoryAmplitude"], "9247": ["CS", "StartingRespiratoryPhase"], "9248": ["FL", "EndingRespiratoryAmplitude"], "9249": ["CS", "EndingRespiratoryPhase"], "9250": ["CS", "RespiratoryTriggerType"], "9251": ["FD", "RRIntervalTimeNominal"], "9252": ["FD", "ActualCardiacTriggerDelayTime"], "9253": ["SQ", "RespiratorySynchronizationSequence"], "9254": ["FD", "RespiratoryIntervalTime"], "9255": ["FD", "NominalRespiratoryTriggerDelayTime"], "9256": ["FD", "RespiratoryTriggerDelayThreshold"], "9257": ["FD", "ActualRespiratoryTriggerDelayTime"], "9301": ["FD", "ImagePositionVolume"], "9302": ["FD", "ImageOrientationVolume"], "9307": ["CS", "UltrasoundAcquisitionGeometry"], "9308": ["FD", "ApexPosition"], "9309": ["FD", "VolumeToTransducerMappingMatrix"], "930A": ["FD", "VolumeToTableMappingMatrix"], "930C": ["CS", "PatientFrameOfReferenceSource"], "930D": ["FD", "TemporalPositionTimeOffset"], "930E": ["SQ", "PlanePositionVolumeSequence"], "930F": ["SQ", "PlaneOrientationVolumeSequence"], "9310": ["SQ", "TemporalPositionSequence"], "9311": ["CS", "DimensionOrganizationType"], "9312": ["UI", "VolumeFrameOfReferenceUID"], "9313": ["UI", "TableFrameOfReferenceUID"], "9421": ["LO", "DimensionDescriptionLabel"], "9450": ["SQ", "PatientOrientationInFrameSequence"], "9453": ["LO", "FrameLabel"], "9518": ["US", "AcquisitionIndex"], "9529": ["SQ", "ContributingSOPInstancesReferenceSequence"], "9536": ["US", "ReconstructionIndex"] }, "0022": { "0001": ["US", "LightPathFilterPassThroughWavelength"], "0002": ["US", "LightPathFilterPassBand"], "0003": ["US", "ImagePathFilterPassThroughWavelength"], "0004": ["US", "ImagePathFilterPassBand"], "0005": ["CS", "PatientEyeMovementCommanded"], "0006": ["SQ", "PatientEyeMovementCommandCodeSequence"], "0007": ["FL", "SphericalLensPower"], "0008": ["FL", "CylinderLensPower"], "0009": ["FL", "CylinderAxis"], "000A": ["FL", "EmmetropicMagnification"], "000B": ["FL", "IntraOcularPressure"], "000C": ["FL", "HorizontalFieldOfView"], "000D": ["CS", "PupilDilated"], "000E": ["FL", "DegreeOfDilation"], "0010": ["FL", "StereoBaselineAngle"], "0011": ["FL", "StereoBaselineDisplacement"], "0012": ["FL", "StereoHorizontalPixelOffset"], "0013": ["FL", "StereoVerticalPixelOffset"], "0014": ["FL", "StereoRotation"], "0015": ["SQ", "AcquisitionDeviceTypeCodeSequence"], "0016": ["SQ", "IlluminationTypeCodeSequence"], "0017": ["SQ", "LightPathFilterTypeStackCodeSequence"], "0018": ["SQ", "ImagePathFilterTypeStackCodeSequence"], "0019": ["SQ", "LensesCodeSequence"], "001A": ["SQ", "ChannelDescriptionCodeSequence"], "001B": ["SQ", "RefractiveStateSequence"], "001C": ["SQ", "MydriaticAgentCodeSequence"], "001D": ["SQ", "RelativeImagePositionCodeSequence"], "001E": ["FL", "CameraAngleOfView"], "0020": ["SQ", "StereoPairsSequence"], "0021": ["SQ", "LeftImageSequence"], "0022": ["SQ", "RightImageSequence"], "0030": ["FL", "AxialLengthOfTheEye"], "0031": ["SQ", "OphthalmicFrameLocationSequence"], "0032": ["FL", "ReferenceCoordinates"], "0035": ["FL", "DepthSpatialResolution"], "0036": ["FL", "MaximumDepthDistortion"], "0037": ["FL", "AlongScanSpatialResolution"], "0038": ["FL", "MaximumAlongScanDistortion"], "0039": ["CS", "OphthalmicImageOrientation"], "0041": ["FL", "DepthOfTransverseImage"], "0042": ["SQ", "MydriaticAgentConcentrationUnitsSequence"], "0048": ["FL", "AcrossScanSpatialResolution"], "0049": ["FL", "MaximumAcrossScanDistortion"], "004E": ["DS", "MydriaticAgentConcentration"], "0055": ["FL", "IlluminationWaveLength"], "0056": ["FL", "IlluminationPower"], "0057": ["FL", "IlluminationBandwidth"], "0058": ["SQ", "MydriaticAgentSequence"], "1007": ["SQ", "OphthalmicAxialMeasurementsRightEyeSequence"], "1008": ["SQ", "OphthalmicAxialMeasurementsLeftEyeSequence"], "1010": ["CS", "OphthalmicAxialLengthMeasurementsType"], "1019": ["FL", "OphthalmicAxialLength"], "1024": ["SQ", "LensStatusCodeSequence"], "1025": ["SQ", "VitreousStatusCodeSequence"], "1028": ["SQ", "IOLFormulaCodeSequence"], "1029": ["LO", "IOLFormulaDetail"], "1033": ["FL", "KeratometerIndex"], "1035": ["SQ", "SourceOfOphthalmicAxialLengthCodeSequence"], "1037": ["FL", "TargetRefraction"], "1039": ["CS", "RefractiveProcedureOccurred"], "1040": ["SQ", "RefractiveSurgeryTypeCodeSequence"], "1044": ["SQ", "OphthalmicUltrasoundAxialMeasurementsTypeCodeSequence"], "1050": ["SQ", "OphthalmicAxialLengthMeasurementsSequence"], "1053": ["FL", "IOLPower"], "1054": ["FL", "PredictedRefractiveError"], "1059": ["FL", "OphthalmicAxialLengthVelocity"], "1065": ["LO", "LensStatusDescription"], "1066": ["LO", "VitreousStatusDescription"], "1090": ["SQ", "IOLPowerSequence"], "1092": ["SQ", "LensConstantSequence"], "1093": ["LO", "IOLManufacturer"], "1094": ["LO", "LensConstantDescription"], "1096": ["SQ", "KeratometryMeasurementTypeCodeSequence"], "1100": ["SQ", "ReferencedOphthalmicAxialMeasurementsSequence"], "1101": ["SQ", "OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence"], "1103": ["SQ", "RefractiveErrorBeforeRefractiveSurgeryCodeSequence"], "1121": ["FL", "IOLPowerForExactEmmetropia"], "1122": ["FL", "IOLPowerForExactTargetRefraction"], "1125": ["SQ", "AnteriorChamberDepthDefinitionCodeSequence"], "1130": ["FL", "LensThickness"], "1131": ["FL", "AnteriorChamberDepth"], "1132": ["SQ", "SourceOfLensThicknessDataCodeSequence"], "1133": ["SQ", "SourceOfAnteriorChamberDepthDataCodeSequence"], "1135": ["SQ", "SourceOfRefractiveErrorDataCodeSequence"], "1140": ["CS", "OphthalmicAxialLengthMeasurementModified"], "1150": ["SQ", "OphthalmicAxialLengthDataSourceCodeSequence"], "1153": ["SQ", "OphthalmicAxialLengthAcquisitionMethodCodeSequence"], "1155": ["FL", "SignalToNoiseRatio"], "1159": ["LO", "OphthalmicAxialLengthDataSourceDescription"], "1210": ["SQ", "OphthalmicAxialLengthMeasurementsTotalLengthSequence"], "1211": ["SQ", "OphthalmicAxialLengthMeasurementsSegmentalLengthSequence"], "1212": ["SQ", "OphthalmicAxialLengthMeasurementsLengthSummationSequence"], "1220": ["SQ", "UltrasoundOphthalmicAxialLengthMeasurementsSequence"], "1225": ["SQ", "OpticalOphthalmicAxialLengthMeasurementsSequence"], "1230": ["SQ", "UltrasoundSelectedOphthalmicAxialLengthSequence"], "1250": ["SQ", "OphthalmicAxialLengthSelectionMethodCodeSequence"], "1255": ["SQ", "OpticalSelectedOphthalmicAxialLengthSequence"], "1257": ["SQ", "SelectedSegmentalOphthalmicAxialLengthSequence"], "1260": ["SQ", "SelectedTotalOphthalmicAxialLengthSequence"], "1262": ["SQ", "OphthalmicAxialLengthQualityMetricSequence"], "1273": ["LO", "OphthalmicAxialLengthQualityMetricTypeDescription"], "1300": ["SQ", "IntraocularLensCalculationsRightEyeSequence"], "1310": ["SQ", "IntraocularLensCalculationsLeftEyeSequence"], "1330": ["SQ", "ReferencedOphthalmicAxialLengthMeasurementQCImageSequence"] }, "0024": { "0010": ["FL", "VisualFieldHorizontalExtent"], "0011": ["FL", "VisualFieldVerticalExtent"], "0012": ["CS", "VisualFieldShape"], "0016": ["SQ", "ScreeningTestModeCodeSequence"], "0018": ["FL", "MaximumStimulusLuminance"], "0020": ["FL", "BackgroundLuminance"], "0021": ["SQ", "StimulusColorCodeSequence"], "0024": ["SQ", "BackgroundIlluminationColorCodeSequence"], "0025": ["FL", "StimulusArea"], "0028": ["FL", "StimulusPresentationTime"], "0032": ["SQ", "FixationSequence"], "0033": ["SQ", "FixationMonitoringCodeSequence"], "0034": ["SQ", "VisualFieldCatchTrialSequence"], "0035": ["US", "FixationCheckedQuantity"], "0036": ["US", "PatientNotProperlyFixatedQuantity"], "0037": ["CS", "PresentedVisualStimuliDataFlag"], "0038": ["US", "NumberOfVisualStimuli"], "0039": ["CS", "ExcessiveFixationLossesDataFlag"], "0040": ["CS", "ExcessiveFixationLosses"], "0042": ["US", "StimuliRetestingQuantity"], "0044": ["LT", "CommentsOnPatientPerformanceOfVisualField"], "0045": ["CS", "FalseNegativesEstimateFlag"], "0046": ["FL", "FalseNegativesEstimate"], "0048": ["US", "NegativeCatchTrialsQuantity"], "0050": ["US", "FalseNegativesQuantity"], "0051": ["CS", "ExcessiveFalseNegativesDataFlag"], "0052": ["CS", "ExcessiveFalseNegatives"], "0053": ["CS", "FalsePositivesEstimateFlag"], "0054": ["FL", "FalsePositivesEstimate"], "0055": ["CS", "CatchTrialsDataFlag"], "0056": ["US", "PositiveCatchTrialsQuantity"], "0057": ["CS", "TestPointNormalsDataFlag"], "0058": ["SQ", "TestPointNormalsSequence"], "0059": ["CS", "GlobalDeviationProbabilityNormalsFlag"], "0060": ["US", "FalsePositivesQuantity"], "0061": ["CS", "ExcessiveFalsePositivesDataFlag"], "0062": ["CS", "ExcessiveFalsePositives"], "0063": ["CS", "VisualFieldTestNormalsFlag"], "0064": ["SQ", "ResultsNormalsSequence"], "0065": ["SQ", "AgeCorrectedSensitivityDeviationAlgorithmSequence"], "0066": ["FL", "GlobalDeviationFromNormal"], "0067": ["SQ", "GeneralizedDefectSensitivityDeviationAlgorithmSequence"], "0068": ["FL", "LocalizedDeviationfromNormal"], "0069": ["LO", "PatientReliabilityIndicator"], "0070": ["FL", "VisualFieldMeanSensitivity"], "0071": ["FL", "GlobalDeviationProbability"], "0072": ["CS", "LocalDeviationProbabilityNormalsFlag"], "0073": ["FL", "LocalizedDeviationProbability"], "0074": ["CS", "ShortTermFluctuationCalculated"], "0075": ["FL", "ShortTermFluctuation"], "0076": ["CS", "ShortTermFluctuationProbabilityCalculated"], "0077": ["FL", "ShortTermFluctuationProbability"], "0078": ["CS", "CorrectedLocalizedDeviationFromNormalCalculated"], "0079": ["FL", "CorrectedLocalizedDeviationFromNormal"], "0080": ["CS", "CorrectedLocalizedDeviationFromNormalProbabilityCalculated"], "0081": ["FL", "CorrectedLocalizedDeviationFromNormalProbability"], "0083": ["SQ", "GlobalDeviationProbabilitySequence"], "0085": ["SQ", "LocalizedDeviationProbabilitySequence"], "0086": ["CS", "FovealSensitivityMeasured"], "0087": ["FL", "FovealSensitivity"], "0088": ["FL", "VisualFieldTestDuration"], "0089": ["SQ", "VisualFieldTestPointSequence"], "0090": ["FL", "VisualFieldTestPointXCoordinate"], "0091": ["FL", "VisualFieldTestPointYCoordinate"], "0092": ["FL", "AgeCorrectedSensitivityDeviationValue"], "0093": ["CS", "StimulusResults"], "0094": ["FL", "SensitivityValue"], "0095": ["CS", "RetestStimulusSeen"], "0096": ["FL", "RetestSensitivityValue"], "0097": ["SQ", "VisualFieldTestPointNormalsSequence"], "0098": ["FL", "QuantifiedDefect"], "0100": ["FL", "AgeCorrectedSensitivityDeviationProbabilityValue"], "0102": ["CS", "GeneralizedDefectCorrectedSensitivityDeviationFlag "], "0103": ["FL", "GeneralizedDefectCorrectedSensitivityDeviationValue "], "0104": ["FL", "GeneralizedDefectCorrectedSensitivityDeviationProbabilityValue"], "0105": ["FL ", "MinimumSensitivityValue"], "0106": ["CS", "BlindSpotLocalized"], "0107": ["FL", "BlindSpotXCoordinate"], "0108": ["FL", "BlindSpotYCoordinate "], "0110": ["SQ", "VisualAcuityMeasurementSequence"], "0112": ["SQ", "RefractiveParametersUsedOnPatientSequence"], "0113": ["CS", "MeasurementLaterality"], "0114": ["SQ", "OphthalmicPatientClinicalInformationLeftEyeSequence"], "0115": ["SQ", "OphthalmicPatientClinicalInformationRightEyeSequence"], "0117": ["CS", "FovealPointNormativeDataFlag"], "0118": ["FL", "FovealPointProbabilityValue"], "0120": ["CS", "ScreeningBaselineMeasured"], "0122": ["SQ", "ScreeningBaselineMeasuredSequence"], "0124": ["CS", "ScreeningBaselineType"], "0126": ["FL", "ScreeningBaselineValue"], "0202": ["LO", "AlgorithmSource"], "0306": ["LO", "DataSetName"], "0307": ["LO", "DataSetVersion"], "0308": ["LO", "DataSetSource"], "0309": ["LO", "DataSetDescription"], "0317": ["SQ", "VisualFieldTestReliabilityGlobalIndexSequence"], "0320": ["SQ", "VisualFieldGlobalResultsIndexSequence"], "0325": ["SQ", "DataObservationSequence"], "0338": ["CS", "IndexNormalsFlag"], "0341": ["FL", "IndexProbability"], "0344": ["SQ", "IndexProbabilitySequence"] }, "0028": { "0002": ["US", "SamplesPerPixel"], "0003": ["US", "SamplesPerPixelUsed"], "0004": ["CS", "PhotometricInterpretation"], "0005": ["US", "ImageDimensions"], "0006": ["US", "PlanarConfiguration"], "0008": ["IS", "NumberOfFrames"], "0009": ["AT", "FrameIncrementPointer"], "000A": ["AT", "FrameDimensionPointer"], "0010": ["US", "Rows"], "0011": ["US", "Columns"], "0012": ["US", "Planes"], "0014": ["US", "UltrasoundColorDataPresent"], "0030": ["DS", "PixelSpacing"], "0031": ["DS", "ZoomFactor"], "0032": ["DS", "ZoomCenter"], "0034": ["IS", "PixelAspectRatio"], "0040": ["CS", "ImageFormat"], "0050": ["LO", "ManipulatedImage"], "0051": ["CS", "CorrectedImage"], "005F": ["LO", "CompressionRecognitionCode"], "0060": ["CS", "CompressionCode"], "0061": ["SH", "CompressionOriginator"], "0062": ["LO", "CompressionLabel"], "0063": ["SH", "CompressionDescription"], "0065": ["CS", "CompressionSequence"], "0066": ["AT", "CompressionStepPointers"], "0068": ["US", "RepeatInterval"], "0069": ["US", "BitsGrouped"], "0070": ["US", "PerimeterTable"], "0071": ["SS", "PerimeterValue"], "0080": ["US", "PredictorRows"], "0081": ["US", "PredictorColumns"], "0082": ["US", "PredictorConstants"], "0090": ["CS", "BlockedPixels"], "0091": ["US", "BlockRows"], "0092": ["US", "BlockColumns"], "0093": ["US", "RowOverlap"], "0094": ["US", "ColumnOverlap"], "0100": ["US", "BitsAllocated"], "0101": ["US", "BitsStored"], "0102": ["US", "HighBit"], "0103": ["US", "PixelRepresentation"], "0104": ["SS", "SmallestValidPixelValue"], "0105": ["SS", "LargestValidPixelValue"], "0106": ["SS", "SmallestImagePixelValue"], "0107": ["SS", "LargestImagePixelValue"], "0108": ["SS", "SmallestPixelValueInSeries"], "0109": ["SS", "LargestPixelValueInSeries"], "0110": ["SS", "SmallestImagePixelValueInPlane"], "0111": ["SS", "LargestImagePixelValueInPlane"], "0120": ["SS", "PixelPaddingValue"], "0121": ["SS", "PixelPaddingRangeLimit"], "0200": ["US", "ImageLocation"], "0300": ["CS", "QualityControlImage"], "0301": ["CS", "BurnedInAnnotation"], "0302": ["CS", "RecognizableVisualFeatures"], "0303": ["CS", "LongitudinalTemporalInformationModified"], "0400": ["LO", "TransformLabel"], "0401": ["LO", "TransformVersionNumber"], "0402": ["US", "NumberOfTransformSteps"], "0403": ["LO", "SequenceOfCompressedData"], "0404": ["AT", "DetailsOfCoefficients"], "0700": ["LO", "DCTLabel"], "0701": ["CS", "DataBlockDescription"], "0702": ["AT", "DataBlock"], "0710": ["US", "NormalizationFactorFormat"], "0720": ["US", "ZonalMapNumberFormat"], "0721": ["AT", "ZonalMapLocation"], "0722": ["US", "ZonalMapFormat"], "0730": ["US", "AdaptiveMapFormat"], "0740": ["US", "CodeNumberFormat"], "0A02": ["CS", "PixelSpacingCalibrationType"], "0A04": ["LO", "PixelSpacingCalibrationDescription"], "1040": ["CS", "PixelIntensityRelationship"], "1041": ["SS", "PixelIntensityRelationshipSign"], "1050": ["DS", "WindowCenter"], "1051": ["DS", "WindowWidth"], "1052": ["DS", "RescaleIntercept"], "1053": ["DS", "RescaleSlope"], "1054": ["LO", "RescaleType"], "1055": ["LO", "WindowCenterWidthExplanation"], "1056": ["CS", "VOILUTFunction"], "1080": ["CS", "GrayScale"], "1090": ["CS", "RecommendedViewingMode"], "1100": ["SS", "GrayLookupTableDescriptor"], "1101": ["SS", "RedPaletteColorLookupTableDescriptor"], "1102": ["SS", "GreenPaletteColorLookupTableDescriptor"], "1103": ["SS", "BluePaletteColorLookupTableDescriptor"], "1104": ["US", "AlphaPaletteColorLookupTableDescriptor"], "1111": ["SS", "LargeRedPaletteColorLookupTableDescriptor"], "1112": ["SS", "LargeGreenPaletteColorLookupTableDescriptor"], "1113": ["SS", "LargeBluePaletteColorLookupTableDescriptor"], "1199": ["UI", "PaletteColorLookupTableUID"], "1200": ["OW", "GrayLookupTableData"], "1201": ["OW", "RedPaletteColorLookupTableData"], "1202": ["OW", "GreenPaletteColorLookupTableData"], "1203": ["OW", "BluePaletteColorLookupTableData"], "1204": ["OW", "AlphaPaletteColorLookupTableData"], "1211": ["OW", "LargeRedPaletteColorLookupTableData"], "1212": ["OW", "LargeGreenPaletteColorLookupTableData"], "1213": ["OW", "LargeBluePaletteColorLookupTableData"], "1214": ["UI", "LargePaletteColorLookupTableUID"], "1221": ["OW", "SegmentedRedPaletteColorLookupTableData"], "1222": ["OW", "SegmentedGreenPaletteColorLookupTableData"], "1223": ["OW", "SegmentedBluePaletteColorLookupTableData"], "1300": ["CS", "BreastImplantPresent"], "1350": ["CS", "PartialView"], "1351": ["ST", "PartialViewDescription"], "1352": ["SQ", "PartialViewCodeSequence"], "135A": ["CS", "SpatialLocationsPreserved"], "1401": ["SQ", "DataFrameAssignmentSequence"], "1402": ["CS", "DataPathAssignment"], "1403": ["US", "BitsMappedToColorLookupTable"], "1404": ["SQ", "BlendingLUT1Sequence"], "1405": ["CS", "BlendingLUT1TransferFunction"], "1406": ["FD", "BlendingWeightConstant"], "1407": ["US", "BlendingLookupTableDescriptor"], "1408": ["OW", "BlendingLookupTableData"], "140B": ["SQ", "EnhancedPaletteColorLookupTableSequence"], "140C": ["SQ", "BlendingLUT2Sequence"], "140D": ["CS", "BlendingLUT2TransferFunction"], "140E": ["CS", "DataPathID"], "140F": ["CS", "RGBLUTTransferFunction"], "1410": ["CS", "AlphaLUTTransferFunction"], "2000": ["OB", "ICCProfile"], "2110": ["CS", "LossyImageCompression"], "2112": ["DS", "LossyImageCompressionRatio"], "2114": ["CS", "LossyImageCompressionMethod"], "3000": ["SQ", "ModalityLUTSequence"], "3002": ["SS", "LUTDescriptor"], "3003": ["LO", "LUTExplanation"], "3004": ["LO", "ModalityLUTType"], "3006": ["OW", "LUTData"], "3010": ["SQ", "VOILUTSequence"], "3110": ["SQ", "SoftcopyVOILUTSequence"], "4000": ["LT", "ImagePresentationComments"], "5000": ["SQ", "BiPlaneAcquisitionSequence"], "6010": ["US", "RepresentativeFrameNumber"], "6020": ["US", "FrameNumbersOfInterest"], "6022": ["LO", "FrameOfInterestDescription"], "6023": ["CS", "FrameOfInterestType"], "6030": ["US", "MaskPointers"], "6040": ["US", "RWavePointer"], "6100": ["SQ", "MaskSubtractionSequence"], "6101": ["CS", "MaskOperation"], "6102": ["US", "ApplicableFrameRange"], "6110": ["US", "MaskFrameNumbers"], "6112": ["US", "ContrastFrameAveraging"], "6114": ["FL", "MaskSubPixelShift"], "6120": ["SS", "TIDOffset"], "6190": ["ST", "MaskOperationExplanation"], "7FE0": ["UT", "PixelDataProviderURL"], "9001": ["UL", "DataPointRows"], "9002": ["UL", "DataPointColumns"], "9003": ["CS", "SignalDomainColumns"], "9099": ["US", "LargestMonochromePixelValue"], "9108": ["CS", "DataRepresentation"], "9110": ["SQ", "PixelMeasuresSequence"], "9132": ["SQ", "FrameVOILUTSequence"], "9145": ["SQ", "PixelValueTransformationSequence"], "9235": ["CS", "SignalDomainRows"], "9411": ["FL", "DisplayFilterPercentage"], "9415": ["SQ", "FramePixelShiftSequence"], "9416": ["US", "SubtractionItemID"], "9422": ["SQ", "PixelIntensityRelationshipLUTSequence"], "9443": ["SQ", "FramePixelDataPropertiesSequence"], "9444": ["CS", "GeometricalProperties"], "9445": ["FL", "GeometricMaximumDistortion"], "9446": ["CS", "ImageProcessingApplied"], "9454": ["CS", "MaskSelectionMode"], "9474": ["CS", "LUTFunction"], "9478": ["FL", "MaskVisibilityPercentage"], "9501": ["SQ", "PixelShiftSequence"], "9502": ["SQ", "RegionPixelShiftSequence"], "9503": ["SS", "VerticesOfTheRegion"], "9505": ["SQ", "MultiFramePresentationSequence"], "9506": ["US", "PixelShiftFrameRange"], "9507": ["US", "LUTFrameRange"], "9520": ["DS", "ImageToEquipmentMappingMatrix"], "9537": ["CS", "EquipmentCoordinateSystemIdentification"] }, "0032": { "000A": ["CS", "StudyStatusID"], "000C": ["CS", "StudyPriorityID"], "0012": ["LO", "StudyIDIssuer"], "0032": ["DA", "StudyVerifiedDate"], "0033": ["TM", "StudyVerifiedTime"], "0034": ["DA", "StudyReadDate"], "0035": ["TM", "StudyReadTime"], "1000": ["DA", "ScheduledStudyStartDate"], "1001": ["TM", "ScheduledStudyStartTime"], "1010": ["DA", "ScheduledStudyStopDate"], "1011": ["TM", "ScheduledStudyStopTime"], "1020": ["LO", "ScheduledStudyLocation"], "1021": ["AE", "ScheduledStudyLocationAETitle"], "1030": ["LO", "ReasonForStudy"], "1031": ["SQ", "RequestingPhysicianIdentificationSequence"], "1032": ["PN", "RequestingPhysician"], "1033": ["LO", "RequestingService"], "1034": ["SQ", "RequestingServiceCodeSequence"], "1040": ["DA", "StudyArrivalDate"], "1041": ["TM", "StudyArrivalTime"], "1050": ["DA", "StudyCompletionDate"], "1051": ["TM", "StudyCompletionTime"], "1055": ["CS", "StudyComponentStatusID"], "1060": ["LO", "RequestedProcedureDescription"], "1064": ["SQ", "RequestedProcedureCodeSequence"], "1070": ["LO", "RequestedContrastAgent"], "4000": ["LT", "StudyComments"] }, "0038": { "0004": ["SQ", "ReferencedPatientAliasSequence"], "0008": ["CS", "VisitStatusID"], "0010": ["LO", "AdmissionID"], "0011": ["LO", "IssuerOfAdmissionID"], "0014": ["SQ", "IssuerOfAdmissionIDSequence"], "0016": ["LO", "RouteOfAdmissions"], "001A": ["DA", "ScheduledAdmissionDate"], "001B": ["TM", "ScheduledAdmissionTime"], "001C": ["DA", "ScheduledDischargeDate"], "001D": ["TM", "ScheduledDischargeTime"], "001E": ["LO", "ScheduledPatientInstitutionResidence"], "0020": ["DA", "AdmittingDate"], "0021": ["TM", "AdmittingTime"], "0030": ["DA", "DischargeDate"], "0032": ["TM", "DischargeTime"], "0040": ["LO", "DischargeDiagnosisDescription"], "0044": ["SQ", "DischargeDiagnosisCodeSequence"], "0050": ["LO", "SpecialNeeds"], "0060": ["LO", "ServiceEpisodeID"], "0061": ["LO", "IssuerOfServiceEpisodeID"], "0062": ["LO", "ServiceEpisodeDescription"], "0064": ["SQ", "IssuerOfServiceEpisodeIDSequence"], "0100": ["SQ", "PertinentDocumentsSequence"], "0300": ["LO", "CurrentPatientLocation"], "0400": ["LO", "PatientInstitutionResidence"], "0500": ["LO", "PatientState"], "0502": ["SQ", "PatientClinicalTrialParticipationSequence"], "4000": ["LT", "VisitComments"] }, "003A": { "0004": ["CS", "WaveformOriginality"], "0005": ["US", "NumberOfWaveformChannels"], "0010": ["UL", "NumberOfWaveformSamples"], "001A": ["DS", "SamplingFrequency"], "0020": ["SH", "MultiplexGroupLabel"], "0200": ["SQ", "ChannelDefinitionSequence"], "0202": ["IS", "WaveformChannelNumber"], "0203": ["SH", "ChannelLabel"], "0205": ["CS", "ChannelStatus"], "0208": ["SQ", "ChannelSourceSequence"], "0209": ["SQ", "ChannelSourceModifiersSequence"], "020A": ["SQ", "SourceWaveformSequence"], "020C": ["LO", "ChannelDerivationDescription"], "0210": ["DS", "ChannelSensitivity"], "0211": ["SQ", "ChannelSensitivityUnitsSequence"], "0212": ["DS", "ChannelSensitivityCorrectionFactor"], "0213": ["DS", "ChannelBaseline"], "0214": ["DS", "ChannelTimeSkew"], "0215": ["DS", "ChannelSampleSkew"], "0218": ["DS", "ChannelOffset"], "021A": ["US", "WaveformBitsStored"], "0220": ["DS", "FilterLowFrequency"], "0221": ["DS", "FilterHighFrequency"], "0222": ["DS", "NotchFilterFrequency"], "0223": ["DS", "NotchFilterBandwidth"], "0230": ["FL", "WaveformDataDisplayScale"], "0231": ["US", "WaveformDisplayBackgroundCIELabValue"], "0240": ["SQ", "WaveformPresentationGroupSequence"], "0241": ["US", "PresentationGroupNumber"], "0242": ["SQ", "ChannelDisplaySequence"], "0244": ["US", "ChannelRecommendedDisplayCIELabValue"], "0245": ["FL", "ChannelPosition"], "0246": ["CS", "DisplayShadingFlag"], "0247": ["FL", "FractionalChannelDisplayScale"], "0248": ["FL", "AbsoluteChannelDisplayScale"], "0300": ["SQ", "MultiplexedAudioChannelsDescriptionCodeSequence"], "0301": ["IS", "ChannelIdentificationCode"], "0302": ["CS", "ChannelMode"] }, "0040": { "0001": ["AE", "ScheduledStationAETitle"], "0002": ["DA", "ScheduledProcedureStepStartDate"], "0003": ["TM", "ScheduledProcedureStepStartTime"], "0004": ["DA", "ScheduledProcedureStepEndDate"], "0005": ["TM", "ScheduledProcedureStepEndTime"], "0006": ["PN", "ScheduledPerformingPhysicianName"], "0007": ["LO", "ScheduledProcedureStepDescription"], "0008": ["SQ", "ScheduledProtocolCodeSequence"], "0009": ["SH", "ScheduledProcedureStepID"], "000A": ["SQ", "StageCodeSequence"], "000B": ["SQ", "ScheduledPerformingPhysicianIdentificationSequence"], "0010": ["SH", "ScheduledStationName"], "0011": ["SH", "ScheduledProcedureStepLocation"], "0012": ["LO", "PreMedication"], "0020": ["CS", "ScheduledProcedureStepStatus"], "0026": ["SQ", "OrderPlacerIdentifierSequence"], "0027": ["SQ", "OrderFillerIdentifierSequence"], "0031": ["UT", "LocalNamespaceEntityID"], "0032": ["UT", "UniversalEntityID"], "0033": ["CS", "UniversalEntityIDType"], "0035": ["CS", "IdentifierTypeCode"], "0036": ["SQ", "AssigningFacilitySequence"], "0039": ["SQ", "AssigningJurisdictionCodeSequence"], "003A": ["SQ", "AssigningAgencyOrDepartmentCodeSequence"], "0100": ["SQ", "ScheduledProcedureStepSequence"], "0220": ["SQ", "ReferencedNonImageCompositeSOPInstanceSequence"], "0241": ["AE", "PerformedStationAETitle"], "0242": ["SH", "PerformedStationName"], "0243": ["SH", "PerformedLocation"], "0244": ["DA", "PerformedProcedureStepStartDate"], "0245": ["TM", "PerformedProcedureStepStartTime"], "0250": ["DA", "PerformedProcedureStepEndDate"], "0251": ["TM", "PerformedProcedureStepEndTime"], "0252": ["CS", "PerformedProcedureStepStatus"], "0253": ["SH", "PerformedProcedureStepID"], "0254": ["LO", "PerformedProcedureStepDescription"], "0255": ["LO", "PerformedProcedureTypeDescription"], "0260": ["SQ", "PerformedProtocolCodeSequence"], "0261": ["CS", "PerformedProtocolType"], "0270": ["SQ", "ScheduledStepAttributesSequence"], "0275": ["SQ", "RequestAttributesSequence"], "0280": ["ST", "CommentsOnThePerformedProcedureStep"], "0281": ["SQ", "PerformedProcedureStepDiscontinuationReasonCodeSequence"], "0293": ["SQ", "QuantitySequence"], "0294": ["DS", "Quantity"], "0295": ["SQ", "MeasuringUnitsSequence"], "0296": ["SQ", "BillingItemSequence"], "0300": ["US", "TotalTimeOfFluoroscopy"], "0301": ["US", "TotalNumberOfExposures"], "0302": ["US", "EntranceDose"], "0303": ["US", "ExposedArea"], "0306": ["DS", "DistanceSourceToEntrance"], "0307": ["DS", "DistanceSourceToSupport"], "030E": ["SQ", "ExposureDoseSequence"], "0310": ["ST", "CommentsOnRadiationDose"], "0312": ["DS", "XRayOutput"], "0314": ["DS", "HalfValueLayer"], "0316": ["DS", "OrganDose"], "0318": ["CS", "OrganExposed"], "0320": ["SQ", "BillingProcedureStepSequence"], "0321": ["SQ", "FilmConsumptionSequence"], "0324": ["SQ", "BillingSuppliesAndDevicesSequence"], "0330": ["SQ", "ReferencedProcedureStepSequence"], "0340": ["SQ", "PerformedSeriesSequence"], "0400": ["LT", "CommentsOnTheScheduledProcedureStep"], "0440": ["SQ", "ProtocolContextSequence"], "0441": ["SQ", "ContentItemModifierSequence"], "0500": ["SQ", "ScheduledSpecimenSequence"], "050A": ["LO", "SpecimenAccessionNumber"], "0512": ["LO", "ContainerIdentifier"], "0513": ["SQ", "IssuerOfTheContainerIdentifierSequence"], "0515": ["SQ", "AlternateContainerIdentifierSequence"], "0518": ["SQ", "ContainerTypeCodeSequence"], "051A": ["LO", "ContainerDescription"], "0520": ["SQ", "ContainerComponentSequence"], "0550": ["SQ", "SpecimenSequence"], "0551": ["LO", "SpecimenIdentifier"], "0552": ["SQ", "SpecimenDescriptionSequenceTrial"], "0553": ["ST", "SpecimenDescriptionTrial"], "0554": ["UI", "SpecimenUID"], "0555": ["SQ", "AcquisitionContextSequence"], "0556": ["ST", "AcquisitionContextDescription"], "059A": ["SQ", "SpecimenTypeCodeSequence"], "0560": ["SQ", "SpecimenDescriptionSequence"], "0562": ["SQ", "IssuerOfTheSpecimenIdentifierSequence"], "0600": ["LO", "SpecimenShortDescription"], "0602": ["UT", "SpecimenDetailedDescription"], "0610": ["SQ", "SpecimenPreparationSequence"], "0612": ["SQ", "SpecimenPreparationStepContentItemSequence"], "0620": ["SQ", "SpecimenLocalizationContentItemSequence"], "06FA": ["LO", "SlideIdentifier"], "071A": ["SQ", "ImageCenterPointCoordinatesSequence"], "072A": ["DS", "XOffsetInSlideCoordinateSystem"], "073A": ["DS", "YOffsetInSlideCoordinateSystem"], "074A": ["DS", "ZOffsetInSlideCoordinateSystem"], "08D8": ["SQ", "PixelSpacingSequence"], "08DA": ["SQ", "CoordinateSystemAxisCodeSequence"], "08EA": ["SQ", "MeasurementUnitsCodeSequence"], "09F8": ["SQ", "VitalStainCodeSequenceTrial"], "1001": ["SH", "RequestedProcedureID"], "1002": ["LO", "ReasonForTheRequestedProcedure"], "1003": ["SH", "RequestedProcedurePriority"], "1004": ["LO", "PatientTransportArrangements"], "1005": ["LO", "RequestedProcedureLocation"], "1006": ["SH", "PlacerOrderNumberProcedure"], "1007": ["SH", "FillerOrderNumberProcedure"], "1008": ["LO", "ConfidentialityCode"], "1009": ["SH", "ReportingPriority"], "100A": ["SQ", "ReasonForRequestedProcedureCodeSequence"], "1010": ["PN", "NamesOfIntendedRecipientsOfResults"], "1011": ["SQ", "IntendedRecipientsOfResultsIdentificationSequence"], "1012": ["SQ", "ReasonForPerformedProcedureCodeSequence"], "1060": ["LO", "RequestedProcedureDescriptionTrial"], "1101": ["SQ", "PersonIdentificationCodeSequence"], "1102": ["ST", "PersonAddress"], "1103": ["LO", "PersonTelephoneNumbers"], "1400": ["LT", "RequestedProcedureComments"], "2001": ["LO", "ReasonForTheImagingServiceRequest"], "2004": ["DA", "IssueDateOfImagingServiceRequest"], "2005": ["TM", "IssueTimeOfImagingServiceRequest"], "2006": ["SH", "PlacerOrderNumberImagingServiceRequestRetired"], "2007": ["SH", "FillerOrderNumberImagingServiceRequestRetired"], "2008": ["PN", "OrderEnteredBy"], "2009": ["SH", "OrderEntererLocation"], "2010": ["SH", "OrderCallbackPhoneNumber"], "2016": ["LO", "PlacerOrderNumberImagingServiceRequest"], "2017": ["LO", "FillerOrderNumberImagingServiceRequest"], "2400": ["LT", "ImagingServiceRequestComments"], "3001": ["LO", "ConfidentialityConstraintOnPatientDataDescription"], "4001": ["CS", "GeneralPurposeScheduledProcedureStepStatus"], "4002": ["CS", "GeneralPurposePerformedProcedureStepStatus"], "4003": ["CS", "GeneralPurposeScheduledProcedureStepPriority"], "4004": ["SQ", "ScheduledProcessingApplicationsCodeSequence"], "4005": ["DT", "ScheduledProcedureStepStartDateTime"], "4006": ["CS", "MultipleCopiesFlag"], "4007": ["SQ", "PerformedProcessingApplicationsCodeSequence"], "4009": ["SQ", "HumanPerformerCodeSequence"], "4010": ["DT", "ScheduledProcedureStepModificationDateTime"], "4011": ["DT", "ExpectedCompletionDateTime"], "4015": ["SQ", "ResultingGeneralPurposePerformedProcedureStepsSequence"], "4016": ["SQ", "ReferencedGeneralPurposeScheduledProcedureStepSequence"], "4018": ["SQ", "ScheduledWorkitemCodeSequence"], "4019": ["SQ", "PerformedWorkitemCodeSequence"], "4020": ["CS", "InputAvailabilityFlag"], "4021": ["SQ", "InputInformationSequence"], "4022": ["SQ", "RelevantInformationSequence"], "4023": ["UI", "ReferencedGeneralPurposeScheduledProcedureStepTransactionUID"], "4025": ["SQ", "ScheduledStationNameCodeSequence"], "4026": ["SQ", "ScheduledStationClassCodeSequence"], "4027": ["SQ", "ScheduledStationGeographicLocationCodeSequence"], "4028": ["SQ", "PerformedStationNameCodeSequence"], "4029": ["SQ", "PerformedStationClassCodeSequence"], "4030": ["SQ", "PerformedStationGeographicLocationCodeSequence"], "4031": ["SQ", "RequestedSubsequentWorkitemCodeSequence"], "4032": ["SQ", "NonDICOMOutputCodeSequence"], "4033": ["SQ", "OutputInformationSequence"], "4034": ["SQ", "ScheduledHumanPerformersSequence"], "4035": ["SQ", "ActualHumanPerformersSequence"], "4036": ["LO", "HumanPerformerOrganization"], "4037": ["PN", "HumanPerformerName"], "4040": ["CS", "RawDataHandling"], "4041": ["CS", "InputReadinessState"], "4050": ["DT", "PerformedProcedureStepStartDateTime"], "4051": ["DT", "PerformedProcedureStepEndDateTime"], "4052": ["DT", "ProcedureStepCancellationDateTime"], "8302": ["DS", "EntranceDoseInmGy"], "9094": ["SQ", "ReferencedImageRealWorldValueMappingSequence"], "9096": ["SQ", "RealWorldValueMappingSequence"], "9098": ["SQ", "PixelValueMappingCodeSequence"], "9210": ["SH", "LUTLabel"], "9211": ["SS", "RealWorldValueLastValueMapped"], "9212": ["FD", "RealWorldValueLUTData"], "9216": ["SS", "RealWorldValueFirstValueMapped"], "9224": ["FD", "RealWorldValueIntercept"], "9225": ["FD", "RealWorldValueSlope"], "A007": ["CS", "FindingsFlagTrial"], "A010": ["CS", "RelationshipType"], "A020": ["SQ", "FindingsSequenceTrial"], "A021": ["UI", "FindingsGroupUIDTrial"], "A022": ["UI", "ReferencedFindingsGroupUIDTrial"], "A023": ["DA", "FindingsGroupRecordingDateTrial"], "A024": ["TM", "FindingsGroupRecordingTimeTrial"], "A026": ["SQ", "FindingsSourceCategoryCodeSequenceTrial"], "A027": ["LO", "VerifyingOrganization"], "A028": ["SQ", "DocumentingOrganizationIdentifierCodeSequenceTrial"], "A030": ["DT", "VerificationDateTime"], "A032": ["DT", "ObservationDateTime"], "A040": ["CS", "ValueType"], "A043": ["SQ", "ConceptNameCodeSequence"], "A047": ["LO", "MeasurementPrecisionDescriptionTrial"], "A050": ["CS", "ContinuityOfContent"], "A057": ["CS", "UrgencyOrPriorityAlertsTrial"], "A060": ["LO", "SequencingIndicatorTrial"], "A066": ["SQ", "DocumentIdentifierCodeSequenceTrial"], "A067": ["PN", "DocumentAuthorTrial"], "A068": ["SQ", "DocumentAuthorIdentifierCodeSequenceTrial"], "A070": ["SQ", "IdentifierCodeSequenceTrial"], "A073": ["SQ", "VerifyingObserverSequence"], "A074": ["OB", "ObjectBinaryIdentifierTrial"], "A075": ["PN", "VerifyingObserverName"], "A076": ["SQ", "DocumentingObserverIdentifierCodeSequenceTrial"], "A078": ["SQ", "AuthorObserverSequence"], "A07A": ["SQ", "ParticipantSequence"], "A07C": ["SQ", "CustodialOrganizationSequence"], "A080": ["CS", "ParticipationType"], "A082": ["DT", "ParticipationDateTime"], "A084": ["CS", "ObserverType"], "A085": ["SQ", "ProcedureIdentifierCodeSequenceTrial"], "A088": ["SQ", "VerifyingObserverIdentificationCodeSequence"], "A089": ["OB", "ObjectDirectoryBinaryIdentifierTrial"], "A090": ["SQ", "EquivalentCDADocumentSequence"], "A0B0": ["US", "ReferencedWaveformChannels"], "A110": ["DA", "DateOfDocumentOrVerbalTransactionTrial"], "A112": ["TM", "TimeOfDocumentCreationOrVerbalTransactionTrial"], "A120": ["DT", "DateTime"], "A121": ["DA", "Date"], "A122": ["TM", "Time"], "A123": ["PN", "PersonName"], "A124": ["UI", "UID"], "A125": ["CS", "ReportStatusIDTrial"], "A130": ["CS", "TemporalRangeType"], "A132": ["UL", "ReferencedSamplePositions"], "A136": ["US", "ReferencedFrameNumbers"], "A138": ["DS", "ReferencedTimeOffsets"], "A13A": ["DT", "ReferencedDateTime"], "A160": ["UT", "TextValue"], "A167": ["SQ", "ObservationCategoryCodeSequenceTrial"], "A168": ["SQ", "ConceptCodeSequence"], "A16A": ["ST", "BibliographicCitationTrial"], "A170": ["SQ", "PurposeOfReferenceCodeSequence"], "A171": ["UI", "ObservationUIDTrial"], "A172": ["UI", "ReferencedObservationUIDTrial"], "A173": ["CS", "ReferencedObservationClassTrial"], "A174": ["CS", "ReferencedObjectObservationClassTrial"], "A180": ["US", "AnnotationGroupNumber"], "A192": ["DA", "ObservationDateTrial"], "A193": ["TM", "ObservationTimeTrial"], "A194": ["CS", "MeasurementAutomationTrial"], "A195": ["SQ", "ModifierCodeSequence"], "A224": ["ST", "IdentificationDescriptionTrial"], "A290": ["CS", "CoordinatesSetGeometricTypeTrial"], "A296": ["SQ", "AlgorithmCodeSequenceTrial"], "A297": ["ST", "AlgorithmDescriptionTrial"], "A29A": ["SL", "PixelCoordinatesSetTrial"], "A300": ["SQ", "MeasuredValueSequence"], "A301": ["SQ", "NumericValueQualifierCodeSequence"], "A307": ["PN", "CurrentObserverTrial"], "A30A": ["DS", "NumericValue"], "A313": ["SQ", "ReferencedAccessionSequenceTrial"], "A33A": ["ST", "ReportStatusCommentTrial"], "A340": ["SQ", "ProcedureContextSequenceTrial"], "A352": ["PN", "VerbalSourceTrial"], "A353": ["ST", "AddressTrial"], "A354": ["LO", "TelephoneNumberTrial"], "A358": ["SQ", "VerbalSourceIdentifierCodeSequenceTrial"], "A360": ["SQ", "PredecessorDocumentsSequence"], "A370": ["SQ", "ReferencedRequestSequence"], "A372": ["SQ", "PerformedProcedureCodeSequence"], "A375": ["SQ", "CurrentRequestedProcedureEvidenceSequence"], "A380": ["SQ", "ReportDetailSequenceTrial"], "A385": ["SQ", "PertinentOtherEvidenceSequence"], "A390": ["SQ", "HL7StructuredDocumentReferenceSequence"], "A402": ["UI", "ObservationSubjectUIDTrial"], "A403": ["CS", "ObservationSubjectClassTrial"], "A404": ["SQ", "ObservationSubjectTypeCodeSequenceTrial"], "A491": ["CS", "CompletionFlag"], "A492": ["LO", "CompletionFlagDescription"], "A493": ["CS", "VerificationFlag"], "A494": ["CS", "ArchiveRequested"], "A496": ["CS", "PreliminaryFlag"], "A504": ["SQ", "ContentTemplateSequence"], "A525": ["SQ", "IdenticalDocumentsSequence"], "A600": ["CS", "ObservationSubjectContextFlagTrial"], "A601": ["CS", "ObserverContextFlagTrial"], "A603": ["CS", "ProcedureContextFlagTrial"], "A730": ["SQ", "ContentSequence"], "A731": ["SQ", "RelationshipSequenceTrial"], "A732": ["SQ", "RelationshipTypeCodeSequenceTrial"], "A744": ["SQ", "LanguageCodeSequenceTrial"], "A992": ["ST", "UniformResourceLocatorTrial"], "B020": ["SQ", "WaveformAnnotationSequence"], "DB00": ["CS", "TemplateIdentifier"], "DB06": ["DT", "TemplateVersion"], "DB07": ["DT", "TemplateLocalVersion"], "DB0B": ["CS", "TemplateExtensionFlag"], "DB0C": ["UI", "TemplateExtensionOrganizationUID"], "DB0D": ["UI", "TemplateExtensionCreatorUID"], "DB73": ["UL", "ReferencedContentItemIdentifier"], "E001": ["ST", "HL7InstanceIdentifier"], "E004": ["DT", "HL7DocumentEffectiveTime"], "E006": ["SQ", "HL7DocumentTypeCodeSequence"], "E008": ["SQ", "DocumentClassCodeSequence"], "E010": ["UT", "RetrieveURI"], "E011": ["UI", "RetrieveLocationUID"], "E020": ["CS", "TypeOfInstances"], "E021": ["SQ", "DICOMRetrievalSequence"], "E022": ["SQ", "DICOMMediaRetrievalSequence"], "E023": ["SQ", "WADORetrievalSequence"], "E024": ["SQ", "XDSRetrievalSequence"], "E030": ["UI", "RepositoryUniqueID"], "E031": ["UI", "HomeCommunityID"] }, "0042": { "0010": ["ST", "DocumentTitle"], "0011": ["OB", "EncapsulatedDocument"], "0012": ["LO", "MIMETypeOfEncapsulatedDocument"], "0013": ["SQ", "SourceInstanceSequence"], "0014": ["LO", "ListOfMIMETypes"] }, "0044": { "0001": ["ST", "ProductPackageIdentifier"], "0002": ["CS", "SubstanceAdministrationApproval"], "0003": ["LT", "ApprovalStatusFurtherDescription"], "0004": ["DT", "ApprovalStatusDateTime"], "0007": ["SQ", "ProductTypeCodeSequence"], "0008": ["LO", "ProductName"], "0009": ["LT", "ProductDescription"], "000A": ["LO", "ProductLotIdentifier"], "000B": ["DT", "ProductExpirationDateTime"], "0010": ["DT", "SubstanceAdministrationDateTime"], "0011": ["LO", "SubstanceAdministrationNotes"], "0012": ["LO", "SubstanceAdministrationDeviceID"], "0013": ["SQ", "ProductParameterSequence"], "0019": ["SQ", "SubstanceAdministrationParameterSequence"] }, "0046": { "0012": ["LO", "LensDescription"], "0014": ["SQ", "RightLensSequence"], "0015": ["SQ", "LeftLensSequence"], "0016": ["SQ", "UnspecifiedLateralityLensSequence"], "0018": ["SQ", "CylinderSequence"], "0028": ["SQ", "PrismSequence"], "0030": ["FD", "HorizontalPrismPower"], "0032": ["CS", "HorizontalPrismBase"], "0034": ["FD", "VerticalPrismPower"], "0036": ["CS", "VerticalPrismBase"], "0038": ["CS", "LensSegmentType"], "0040": ["FD", "OpticalTransmittance"], "0042": ["FD", "ChannelWidth"], "0044": ["FD", "PupilSize"], "0046": ["FD", "CornealSize"], "0050": ["SQ", "AutorefractionRightEyeSequence"], "0052": ["SQ", "AutorefractionLeftEyeSequence"], "0060": ["FD", "DistancePupillaryDistance"], "0062": ["FD", "NearPupillaryDistance"], "0063": ["FD", "IntermediatePupillaryDistance"], "0064": ["FD", "OtherPupillaryDistance"], "0070": ["SQ", "KeratometryRightEyeSequence"], "0071": ["SQ", "KeratometryLeftEyeSequence"], "0074": ["SQ", "SteepKeratometricAxisSequence"], "0075": ["FD", "RadiusOfCurvature"], "0076": ["FD", "KeratometricPower"], "0077": ["FD", "KeratometricAxis"], "0080": ["SQ", "FlatKeratometricAxisSequence"], "0092": ["CS", "BackgroundColor"], "0094": ["CS", "Optotype"], "0095": ["CS", "OptotypePresentation"], "0097": ["SQ", "SubjectiveRefractionRightEyeSequence"], "0098": ["SQ", "SubjectiveRefractionLeftEyeSequence"], "0100": ["SQ", "AddNearSequence"], "0101": ["SQ", "AddIntermediateSequence"], "0102": ["SQ", "AddOtherSequence"], "0104": ["FD", "AddPower"], "0106": ["FD", "ViewingDistance"], "0121": ["SQ", "VisualAcuityTypeCodeSequence"], "0122": ["SQ", "VisualAcuityRightEyeSequence"], "0123": ["SQ", "VisualAcuityLeftEyeSequence"], "0124": ["SQ", "VisualAcuityBothEyesOpenSequence"], "0125": ["CS", "ViewingDistanceType"], "0135": ["SS", "VisualAcuityModifiers"], "0137": ["FD", "DecimalVisualAcuity"], "0139": ["LO", "OptotypeDetailedDefinition"], "0145": ["SQ", "ReferencedRefractiveMeasurementsSequence"], "0146": ["FD", "SpherePower"], "0147": ["FD", "CylinderPower"] }, "0048": { "0001": ["FL", "ImagedVolumeWidth"], "0002": ["FL", "ImagedVolumeHeight"], "0003": ["FL", "ImagedVolumeDepth"], "0006": ["UL", "TotalPixelMatrixColumns"], "0007": ["UL", "TotalPixelMatrixRows"], "0008": ["SQ", "TotalPixelMatrixOriginSequence"], "0010": ["CS", "SpecimenLabelInImage"], "0011": ["CS", "FocusMethod"], "0012": ["CS", "ExtendedDepthOfField"], "0013": ["US", "NumberOfFocalPlanes"], "0014": ["FL", "DistanceBetweenFocalPlanes"], "0015": ["US", "RecommendedAbsentPixelCIELabValue"], "0100": ["SQ", "IlluminatorTypeCodeSequence"], "0102": ["DS", "ImageOrientationSlide"], "0105": ["SQ", "OpticalPathSequence"], "0106": ["SH", "OpticalPathIdentifier"], "0107": ["ST", "OpticalPathDescription"], "0108": ["SQ", "IlluminationColorCodeSequence"], "0110": ["SQ", "SpecimenReferenceSequence"], "0111": ["DS", "CondenserLensPower"], "0112": ["DS", "ObjectiveLensPower"], "0113": ["DS", "ObjectiveLensNumericalAperture"], "0120": ["SQ", "PaletteColorLookupTableSequence"], "0200": ["SQ", "ReferencedImageNavigationSequence"], "0201": ["US", "TopLeftHandCornerOfLocalizerArea"], "0202": ["US", "BottomRightHandCornerOfLocalizerArea"], "0207": ["SQ", "OpticalPathIdentificationSequence"], "021A": ["SQ", "PlanePositionSlideSequence"], "021E": ["SL", "RowPositionInTotalImagePixelMatrix"], "021F": ["SL", "ColumnPositionInTotalImagePixelMatrix"], "0301": ["CS", "PixelOriginInterpretation"] }, "0050": { "0004": ["CS", "CalibrationImage"], "0010": ["SQ", "DeviceSequence"], "0012": ["SQ", "ContainerComponentTypeCodeSequence"], "0013": ["FD", "ContainerComponentThickness"], "0014": ["DS", "DeviceLength"], "0015": ["FD", "ContainerComponentWidth"], "0016": ["DS", "DeviceDiameter"], "0017": ["CS", "DeviceDiameterUnits"], "0018": ["DS", "DeviceVolume"], "0019": ["DS", "InterMarkerDistance"], "001A": ["CS", "ContainerComponentMaterial"], "001B": ["LO", "ContainerComponentID"], "001C": ["FD", "ContainerComponentLength"], "001D": ["FD", "ContainerComponentDiameter"], "001E": ["LO", "ContainerComponentDescription"], "0020": ["LO", "DeviceDescription"] }, "0052": { "0001": ["FL", "ContrastBolusIngredientPercentByVolume"], "0002": ["FD", "OCTFocalDistance"], "0003": ["FD", "BeamSpotSize"], "0004": ["FD", "EffectiveRefractiveIndex"], "0006": ["CS", "OCTAcquisitionDomain"], "0007": ["FD", "OCTOpticalCenterWavelength"], "0008": ["FD", "AxialResolution"], "0009": ["FD", "RangingDepth"], "0011": ["FD", "ALineRate"], "0012": ["US", "ALinesPerFrame"], "0013": ["FD", "CatheterRotationalRate"], "0014": ["FD", "ALinePixelSpacing"], "0016": ["SQ", "ModeOfPercutaneousAccessSequence"], "0025": ["SQ", "IntravascularOCTFrameTypeSequence"], "0026": ["CS", "OCTZOffsetApplied"], "0027": ["SQ", "IntravascularFrameContentSequence"], "0028": ["FD", "IntravascularLongitudinalDistance"], "0029": ["SQ", "IntravascularOCTFrameContentSequence"], "0030": ["SS", "OCTZOffsetCorrection"], "0031": ["CS", "CatheterDirectionOfRotation"], "0033": ["FD", "SeamLineLocation"], "0034": ["FD", "FirstALineLocation"], "0036": ["US", "SeamLineIndex"], "0038": ["US", "NumberOfPaddedAlines"], "0039": ["CS", "InterpolationType"], "003A": ["CS", "RefractiveIndexApplied"] }, "0054": { "0010": ["US", "EnergyWindowVector"], "0011": ["US", "NumberOfEnergyWindows"], "0012": ["SQ", "EnergyWindowInformationSequence"], "0013": ["SQ", "EnergyWindowRangeSequence"], "0014": ["DS", "EnergyWindowLowerLimit"], "0015": ["DS", "EnergyWindowUpperLimit"], "0016": ["SQ", "RadiopharmaceuticalInformationSequence"], "0017": ["IS", "ResidualSyringeCounts"], "0018": ["SH", "EnergyWindowName"], "0020": ["US", "DetectorVector"], "0021": ["US", "NumberOfDetectors"], "0022": ["SQ", "DetectorInformationSequence"], "0030": ["US", "PhaseVector"], "0031": ["US", "NumberOfPhases"], "0032": ["SQ", "PhaseInformationSequence"], "0033": ["US", "NumberOfFramesInPhase"], "0036": ["IS", "PhaseDelay"], "0038": ["IS", "PauseBetweenFrames"], "0039": ["CS", "PhaseDescription"], "0050": ["US", "RotationVector"], "0051": ["US", "NumberOfRotations"], "0052": ["SQ", "RotationInformationSequence"], "0053": ["US", "NumberOfFramesInRotation"], "0060": ["US", "RRIntervalVector"], "0061": ["US", "NumberOfRRIntervals"], "0062": ["SQ", "GatedInformationSequence"], "0063": ["SQ", "DataInformationSequence"], "0070": ["US", "TimeSlotVector"], "0071": ["US", "NumberOfTimeSlots"], "0072": ["SQ", "TimeSlotInformationSequence"], "0073": ["DS", "TimeSlotTime"], "0080": ["US", "SliceVector"], "0081": ["US", "NumberOfSlices"], "0090": ["US", "AngularViewVector"], "0100": ["US", "TimeSliceVector"], "0101": ["US", "NumberOfTimeSlices"], "0200": ["DS", "StartAngle"], "0202": ["CS", "TypeOfDetectorMotion"], "0210": ["IS", "TriggerVector"], "0211": ["US", "NumberOfTriggersInPhase"], "0220": ["SQ", "ViewCodeSequence"], "0222": ["SQ", "ViewModifierCodeSequence"], "0300": ["SQ", "RadionuclideCodeSequence"], "0302": ["SQ", "AdministrationRouteCodeSequence"], "0304": ["SQ", "RadiopharmaceuticalCodeSequence"], "0306": ["SQ", "CalibrationDataSequence"], "0308": ["US", "EnergyWindowNumber"], "0400": ["SH", "ImageID"], "0410": ["SQ", "PatientOrientationCodeSequence"], "0412": ["SQ", "PatientOrientationModifierCodeSequence"], "0414": ["SQ", "PatientGantryRelationshipCodeSequence"], "0500": ["CS", "SliceProgressionDirection"], "1000": ["CS", "SeriesType"], "1001": ["CS", "Units"], "1002": ["CS", "CountsSource"], "1004": ["CS", "ReprojectionMethod"], "1006": ["CS", "SUVType"], "1100": ["CS", "RandomsCorrectionMethod"], "1101": ["LO", "AttenuationCorrectionMethod"], "1102": ["CS", "DecayCorrection"], "1103": ["LO", "ReconstructionMethod"], "1104": ["LO", "DetectorLinesOfResponseUsed"], "1105": ["LO", "ScatterCorrectionMethod"], "1200": ["DS", "AxialAcceptance"], "1201": ["IS", "AxialMash"], "1202": ["IS", "TransverseMash"], "1203": ["DS", "DetectorElementSize"], "1210": ["DS", "CoincidenceWindowWidth"], "1220": ["CS", "SecondaryCountsType"], "1300": ["DS", "FrameReferenceTime"], "1310": ["IS", "PrimaryPromptsCountsAccumulated"], "1311": ["IS", "SecondaryCountsAccumulated"], "1320": ["DS", "SliceSensitivityFactor"], "1321": ["DS", "DecayFactor"], "1322": ["DS", "DoseCalibrationFactor"], "1323": ["DS", "ScatterFractionFactor"], "1324": ["DS", "DeadTimeFactor"], "1330": ["US", "ImageIndex"], "1400": ["CS", "CountsIncluded"], "1401": ["CS", "DeadTimeCorrectionFlag"] }, "0060": { "3000": ["SQ", "HistogramSequence"], "3002": ["US", "HistogramNumberOfBins"], "3004": ["SS", "HistogramFirstBinValue"], "3006": ["SS", "HistogramLastBinValue"], "3008": ["US", "HistogramBinWidth"], "3010": ["LO", "HistogramExplanation"], "3020": ["UL", "HistogramData"] }, "0062": { "0001": ["CS", "SegmentationType"], "0002": ["SQ", "SegmentSequence"], "0003": ["SQ", "SegmentedPropertyCategoryCodeSequence"], "0004": ["US", "SegmentNumber"], "0005": ["LO", "SegmentLabel"], "0006": ["ST", "SegmentDescription"], "0008": ["CS", "SegmentAlgorithmType"], "0009": ["LO", "SegmentAlgorithmName"], "000A": ["SQ", "SegmentIdentificationSequence"], "000B": ["US", "ReferencedSegmentNumber"], "000C": ["US", "RecommendedDisplayGrayscaleValue"], "000D": ["US", "RecommendedDisplayCIELabValue"], "000E": ["US", "MaximumFractionalValue"], "000F": ["SQ", "SegmentedPropertyTypeCodeSequence"], "0010": ["CS", "SegmentationFractionalType"] }, "0064": { "0002": ["SQ", "DeformableRegistrationSequence"], "0003": ["UI", "SourceFrameOfReferenceUID"], "0005": ["SQ", "DeformableRegistrationGridSequence"], "0007": ["UL", "GridDimensions"], "0008": ["FD", "GridResolution"], "0009": ["OF", "VectorGridData"], "000F": ["SQ", "PreDeformationMatrixRegistrationSequence"], "0010": ["SQ", "PostDeformationMatrixRegistrationSequence"] }, "0066": { "0001": ["UL", "NumberOfSurfaces"], "0002": ["SQ", "SurfaceSequence"], "0003": ["UL", "SurfaceNumber"], "0004": ["LT", "SurfaceComments"], "0009": ["CS", "SurfaceProcessing"], "000A": ["FL", "SurfaceProcessingRatio"], "000B": ["LO", "SurfaceProcessingDescription"], "000C": ["FL", "RecommendedPresentationOpacity"], "000D": ["CS", "RecommendedPresentationType"], "000E": ["CS", "FiniteVolume"], "0010": ["CS", "Manifold"], "0011": ["SQ", "SurfacePointsSequence"], "0012": ["SQ", "SurfacePointsNormalsSequence"], "0013": ["SQ", "SurfaceMeshPrimitivesSequence"], "0015": ["UL", "NumberOfSurfacePoints"], "0016": ["OF", "PointCoordinatesData"], "0017": ["FL", "PointPositionAccuracy"], "0018": ["FL", "MeanPointDistance"], "0019": ["FL", "MaximumPointDistance"], "001A": ["FL", "PointsBoundingBoxCoordinates"], "001B": ["FL", "AxisOfRotation"], "001C": ["FL", "CenterOfRotation"], "001E": ["UL", "NumberOfVectors"], "001F": ["US", "VectorDimensionality"], "0020": ["FL", "VectorAccuracy"], "0021": ["OF", "VectorCoordinateData"], "0023": ["OW", "TrianglePointIndexList"], "0024": ["OW", "EdgePointIndexList"], "0025": ["OW", "VertexPointIndexList"], "0026": ["SQ", "TriangleStripSequence"], "0027": ["SQ", "TriangleFanSequence"], "0028": ["SQ", "LineSequence"], "0029": ["OW", "PrimitivePointIndexList"], "002A": ["UL", "SurfaceCount"], "002B": ["SQ", "ReferencedSurfaceSequence"], "002C": ["UL", "ReferencedSurfaceNumber"], "002D": ["SQ", "SegmentSurfaceGenerationAlgorithmIdentificationSequence"], "002E": ["SQ", "SegmentSurfaceSourceInstanceSequence"], "002F": ["SQ", "AlgorithmFamilyCodeSequence"], "0030": ["SQ", "AlgorithmNameCodeSequence"], "0031": ["LO", "AlgorithmVersion"], "0032": ["LT", "AlgorithmParameters"], "0034": ["SQ", "FacetSequence"], "0035": ["SQ", "SurfaceProcessingAlgorithmIdentificationSequence"], "0036": ["LO", "AlgorithmName"] }, "0068": { "6210": ["LO", "ImplantSize"], "6221": ["LO", "ImplantTemplateVersion"], "6222": ["SQ", "ReplacedImplantTemplateSequence"], "6223": ["CS", "ImplantType"], "6224": ["SQ", "DerivationImplantTemplateSequence"], "6225": ["SQ", "OriginalImplantTemplateSequence"], "6226": ["DT", "EffectiveDateTime"], "6230": ["SQ", "ImplantTargetAnatomySequence"], "6260": ["SQ", "InformationFromManufacturerSequence"], "6265": ["SQ", "NotificationFromManufacturerSequence"], "6270": ["DT", "InformationIssueDateTime"], "6280": ["ST", "InformationSummary"], "62A0": ["SQ", "ImplantRegulatoryDisapprovalCodeSequence"], "62A5": ["FD", "OverallTemplateSpatialTolerance"], "62C0": ["SQ", "HPGLDocumentSequence"], "62D0": ["US", "HPGLDocumentID"], "62D5": ["LO", "HPGLDocumentLabel"], "62E0": ["SQ", "ViewOrientationCodeSequence"], "62F0": ["FD", "ViewOrientationModifier"], "62F2": ["FD", "HPGLDocumentScaling"], "6300": ["OB", "HPGLDocument"], "6310": ["US", "HPGLContourPenNumber"], "6320": ["SQ", "HPGLPenSequence"], "6330": ["US", "HPGLPenNumber"], "6340": ["LO", "HPGLPenLabel"], "6345": ["ST", "HPGLPenDescription"], "6346": ["FD", "RecommendedRotationPoint"], "6347": ["FD", "BoundingRectangle"], "6350": ["US", "ImplantTemplate3DModelSurfaceNumber"], "6360": ["SQ", "SurfaceModelDescriptionSequence"], "6380": ["LO", "SurfaceModelLabel"], "6390": ["FD", "SurfaceModelScalingFactor"], "63A0": ["SQ", "MaterialsCodeSequence"], "63A4": ["SQ", "CoatingMaterialsCodeSequence"], "63A8": ["SQ", "ImplantTypeCodeSequence"], "63AC": ["SQ", "FixationMethodCodeSequence"], "63B0": ["SQ", "MatingFeatureSetsSequence"], "63C0": ["US", "MatingFeatureSetID"], "63D0": ["LO", "MatingFeatureSetLabel"], "63E0": ["SQ", "MatingFeatureSequence"], "63F0": ["US", "MatingFeatureID"], "6400": ["SQ", "MatingFeatureDegreeOfFreedomSequence"], "6410": ["US", "DegreeOfFreedomID"], "6420": ["CS", "DegreeOfFreedomType"], "6430": ["SQ", "TwoDMatingFeatureCoordinatesSequence"], "6440": ["US", "ReferencedHPGLDocumentID"], "6450": ["FD", "TwoDMatingPoint"], "6460": ["FD", "TwoDMatingAxes"], "6470": ["SQ", "TwoDDegreeOfFreedomSequence"], "6490": ["FD", "ThreeDDegreeOfFreedomAxis"], "64A0": ["FD", "RangeOfFreedom"], "64C0": ["FD", "ThreeDMatingPoint"], "64D0": ["FD", "ThreeDMatingAxes"], "64F0": ["FD", "TwoDDegreeOfFreedomAxis"], "6500": ["SQ", "PlanningLandmarkPointSequence"], "6510": ["SQ", "PlanningLandmarkLineSequence"], "6520": ["SQ", "PlanningLandmarkPlaneSequence"], "6530": ["US", "PlanningLandmarkID"], "6540": ["LO", "PlanningLandmarkDescription"], "6545": ["SQ", "PlanningLandmarkIdentificationCodeSequence"], "6550": ["SQ", "TwoDPointCoordinatesSequence"], "6560": ["FD", "TwoDPointCoordinates"], "6590": ["FD", "ThreeDPointCoordinates"], "65A0": ["SQ", "TwoDLineCoordinatesSequence"], "65B0": ["FD", "TwoDLineCoordinates"], "65D0": ["FD", "ThreeDLineCoordinates"], "65E0": ["SQ", "TwoDPlaneCoordinatesSequence"], "65F0": ["FD", "TwoDPlaneIntersection"], "6610": ["FD", "ThreeDPlaneOrigin"], "6620": ["FD", "ThreeDPlaneNormal"] }, "0070": { "0001": ["SQ", "GraphicAnnotationSequence"], "0002": ["CS", "GraphicLayer"], "0003": ["CS", "BoundingBoxAnnotationUnits"], "0004": ["CS", "AnchorPointAnnotationUnits"], "0005": ["CS", "GraphicAnnotationUnits"], "0006": ["ST", "UnformattedTextValue"], "0008": ["SQ", "TextObjectSequence"], "0009": ["SQ", "GraphicObjectSequence"], "0010": ["FL", "BoundingBoxTopLeftHandCorner"], "0011": ["FL", "BoundingBoxBottomRightHandCorner"], "0012": ["CS", "BoundingBoxTextHorizontalJustification"], "0014": ["FL", "AnchorPoint"], "0015": ["CS", "AnchorPointVisibility"], "0020": ["US", "GraphicDimensions"], "0021": ["US", "NumberOfGraphicPoints"], "0022": ["FL", "GraphicData"], "0023": ["CS", "GraphicType"], "0024": ["CS", "GraphicFilled"], "0040": ["IS", "ImageRotationRetired"], "0041": ["CS", "ImageHorizontalFlip"], "0042": ["US", "ImageRotation"], "0050": ["US", "DisplayedAreaTopLeftHandCornerTrial"], "0051": ["US", "DisplayedAreaBottomRightHandCornerTrial"], "0052": ["SL", "DisplayedAreaTopLeftHandCorner"], "0053": ["SL", "DisplayedAreaBottomRightHandCorner"], "005A": ["SQ", "DisplayedAreaSelectionSequence"], "0060": ["SQ", "GraphicLayerSequence"], "0062": ["IS", "GraphicLayerOrder"], "0066": ["US", "GraphicLayerRecommendedDisplayGrayscaleValue"], "0067": ["US", "GraphicLayerRecommendedDisplayRGBValue"], "0068": ["LO", "GraphicLayerDescription"], "0080": ["CS", "ContentLabel"], "0081": ["LO", "ContentDescription"], "0082": ["DA", "PresentationCreationDate"], "0083": ["TM", "PresentationCreationTime"], "0084": ["PN", "ContentCreatorName"], "0086": ["SQ", "ContentCreatorIdentificationCodeSequence"], "0087": ["SQ", "AlternateContentDescriptionSequence"], "0100": ["CS", "PresentationSizeMode"], "0101": ["DS", "PresentationPixelSpacing"], "0102": ["IS", "PresentationPixelAspectRatio"], "0103": ["FL", "PresentationPixelMagnificationRatio"], "0207": ["LO", "GraphicGroupLabel"], "0208": ["ST", "GraphicGroupDescription"], "0209": ["SQ", "CompoundGraphicSequence"], "0226": ["UL", "CompoundGraphicInstanceID"], "0227": ["LO", "FontName"], "0228": ["CS", "FontNameType"], "0229": ["LO", "CSSFontName"], "0230": ["FD", "RotationAngle"], "0231": ["SQ", "TextStyleSequence"], "0232": ["SQ", "LineStyleSequence"], "0233": ["SQ", "FillStyleSequence"], "0234": ["SQ", "GraphicGroupSequence"], "0241": ["US", "TextColorCIELabValue"], "0242": ["CS", "HorizontalAlignment"], "0243": ["CS", "VerticalAlignment"], "0244": ["CS", "ShadowStyle"], "0245": ["FL", "ShadowOffsetX"], "0246": ["FL", "ShadowOffsetY"], "0247": ["US", "ShadowColorCIELabValue"], "0248": ["CS", "Underlined"], "0249": ["CS", "Bold"], "0250": ["CS", "Italic"], "0251": ["US", "PatternOnColorCIELabValue"], "0252": ["US", "PatternOffColorCIELabValue"], "0253": ["FL", "LineThickness"], "0254": ["CS", "LineDashingStyle"], "0255": ["UL", "LinePattern"], "0256": ["OB", "FillPattern"], "0257": ["CS", "FillMode"], "0258": ["FL", "ShadowOpacity"], "0261": ["FL", "GapLength"], "0262": ["FL", "DiameterOfVisibility"], "0273": ["FL", "RotationPoint"], "0274": ["CS", "TickAlignment"], "0278": ["CS", "ShowTickLabel"], "0279": ["CS", "TickLabelAlignment"], "0282": ["CS", "CompoundGraphicUnits"], "0284": ["FL", "PatternOnOpacity"], "0285": ["FL", "PatternOffOpacity"], "0287": ["SQ", "MajorTicksSequence"], "0288": ["FL", "TickPosition"], "0289": ["SH", "TickLabel"], "0294": ["CS", "CompoundGraphicType"], "0295": ["UL", "GraphicGroupID"], "0306": ["CS", "ShapeType"], "0308": ["SQ", "RegistrationSequence"], "0309": ["SQ", "MatrixRegistrationSequence"], "030A": ["SQ", "MatrixSequence"], "030C": ["CS", "FrameOfReferenceTransformationMatrixType"], "030D": ["SQ", "RegistrationTypeCodeSequence"], "030F": ["ST", "FiducialDescription"], "0310": ["SH", "FiducialIdentifier"], "0311": ["SQ", "FiducialIdentifierCodeSequence"], "0312": ["FD", "ContourUncertaintyRadius"], "0314": ["SQ", "UsedFiducialsSequence"], "0318": ["SQ", "GraphicCoordinatesDataSequence"], "031A": ["UI", "FiducialUID"], "031C": ["SQ", "FiducialSetSequence"], "031E": ["SQ", "FiducialSequence"], "0401": ["US", "GraphicLayerRecommendedDisplayCIELabValue"], "0402": ["SQ", "BlendingSequence"], "0403": ["FL", "RelativeOpacity"], "0404": ["SQ", "ReferencedSpatialRegistrationSequence"], "0405": ["CS", "BlendingPosition"] }, "0072": { "0002": ["SH", "HangingProtocolName"], "0004": ["LO", "HangingProtocolDescription"], "0006": ["CS", "HangingProtocolLevel"], "0008": ["LO", "HangingProtocolCreator"], "000A": ["DT", "HangingProtocolCreationDateTime"], "000C": ["SQ", "HangingProtocolDefinitionSequence"], "000E": ["SQ", "HangingProtocolUserIdentificationCodeSequence"], "0010": ["LO", "HangingProtocolUserGroupName"], "0012": ["SQ", "SourceHangingProtocolSequence"], "0014": ["US", "NumberOfPriorsReferenced"], "0020": ["SQ", "ImageSetsSequence"], "0022": ["SQ", "ImageSetSelectorSequence"], "0024": ["CS", "ImageSetSelectorUsageFlag"], "0026": ["AT", "SelectorAttribute"], "0028": ["US", "SelectorValueNumber"], "0030": ["SQ", "TimeBasedImageSetsSequence"], "0032": ["US", "ImageSetNumber"], "0034": ["CS", "ImageSetSelectorCategory"], "0038": ["US", "RelativeTime"], "003A": ["CS", "RelativeTimeUnits"], "003C": ["SS", "AbstractPriorValue"], "003E": ["SQ", "AbstractPriorCodeSequence"], "0040": ["LO", "ImageSetLabel"], "0050": ["CS", "SelectorAttributeVR"], "0052": ["AT", "SelectorSequencePointer"], "0054": ["LO", "SelectorSequencePointerPrivateCreator"], "0056": ["LO", "SelectorAttributePrivateCreator"], "0060": ["AT", "SelectorATValue"], "0062": ["CS", "SelectorCSValue"], "0064": ["IS", "SelectorISValue"], "0066": ["LO", "SelectorLOValue"], "0068": ["LT", "SelectorLTValue"], "006A": ["PN", "SelectorPNValue"], "006C": ["SH", "SelectorSHValue"], "006E": ["ST", "SelectorSTValue"], "0070": ["UT", "SelectorUTValue"], "0072": ["DS", "SelectorDSValue"], "0074": ["FD", "SelectorFDValue"], "0076": ["FL", "SelectorFLValue"], "0078": ["UL", "SelectorULValue"], "007A": ["US", "SelectorUSValue"], "007C": ["SL", "SelectorSLValue"], "007E": ["SS", "SelectorSSValue"], "0080": ["SQ", "SelectorCodeSequenceValue"], "0100": ["US", "NumberOfScreens"], "0102": ["SQ", "NominalScreenDefinitionSequence"], "0104": ["US", "NumberOfVerticalPixels"], "0106": ["US", "NumberOfHorizontalPixels"], "0108": ["FD", "DisplayEnvironmentSpatialPosition"], "010A": ["US", "ScreenMinimumGrayscaleBitDepth"], "010C": ["US", "ScreenMinimumColorBitDepth"], "010E": ["US", "ApplicationMaximumRepaintTime"], "0200": ["SQ", "DisplaySetsSequence"], "0202": ["US", "DisplaySetNumber"], "0203": ["LO", "DisplaySetLabel"], "0204": ["US", "DisplaySetPresentationGroup"], "0206": ["LO", "DisplaySetPresentationGroupDescription"], "0208": ["CS", "PartialDataDisplayHandling"], "0210": ["SQ", "SynchronizedScrollingSequence"], "0212": ["US", "DisplaySetScrollingGroup"], "0214": ["SQ", "NavigationIndicatorSequence"], "0216": ["US", "NavigationDisplaySet"], "0218": ["US", "ReferenceDisplaySets"], "0300": ["SQ", "ImageBoxesSequence"], "0302": ["US", "ImageBoxNumber"], "0304": ["CS", "ImageBoxLayoutType"], "0306": ["US", "ImageBoxTileHorizontalDimension"], "0308": ["US", "ImageBoxTileVerticalDimension"], "0310": ["CS", "ImageBoxScrollDirection"], "0312": ["CS", "ImageBoxSmallScrollType"], "0314": ["US", "ImageBoxSmallScrollAmount"], "0316": ["CS", "ImageBoxLargeScrollType"], "0318": ["US", "ImageBoxLargeScrollAmount"], "0320": ["US", "ImageBoxOverlapPriority"], "0330": ["FD", "CineRelativeToRealTime"], "0400": ["SQ", "FilterOperationsSequence"], "0402": ["CS", "FilterByCategory"], "0404": ["CS", "FilterByAttributePresence"], "0406": ["CS", "FilterByOperator"], "0420": ["US", "StructuredDisplayBackgroundCIELabValue"], "0421": ["US", "EmptyImageBoxCIELabValue"], "0422": ["SQ", "StructuredDisplayImageBoxSequence"], "0424": ["SQ", "StructuredDisplayTextBoxSequence"], "0427": ["SQ", "ReferencedFirstFrameSequence"], "0430": ["SQ", "ImageBoxSynchronizationSequence"], "0432": ["US", "SynchronizedImageBoxList"], "0434": ["CS", "TypeOfSynchronization"], "0500": ["CS", "BlendingOperationType"], "0510": ["CS", "ReformattingOperationType"], "0512": ["FD", "ReformattingThickness"], "0514": ["FD", "ReformattingInterval"], "0516": ["CS", "ReformattingOperationInitialViewDirection"], "0520": ["CS", "ThreeDRenderingType"], "0600": ["SQ", "SortingOperationsSequence"], "0602": ["CS", "SortByCategory"], "0604": ["CS", "SortingDirection"], "0700": ["CS", "DisplaySetPatientOrientation"], "0702": ["CS", "VOIType"], "0704": ["CS", "PseudoColorType"], "0705": ["SQ", "PseudoColorPaletteInstanceReferenceSequence"], "0706": ["CS", "ShowGrayscaleInverted"], "0710": ["CS", "ShowImageTrueSizeFlag"], "0712": ["CS", "ShowGraphicAnnotationFlag"], "0714": ["CS", "ShowPatientDemographicsFlag"], "0716": ["CS", "ShowAcquisitionTechniquesFlag"], "0717": ["CS", "DisplaySetHorizontalJustification"], "0718": ["CS", "DisplaySetVerticalJustification"] }, "0074": { "0120": ["FD", "ContinuationStartMeterset"], "0121": ["FD", "ContinuationEndMeterset"], "1000": ["CS", "ProcedureStepState"], "1002": ["SQ", "ProcedureStepProgressInformationSequence"], "1004": ["DS", "ProcedureStepProgress"], "1006": ["ST", "ProcedureStepProgressDescription"], "1008": ["SQ", "ProcedureStepCommunicationsURISequence"], "100A": ["ST", "ContactURI"], "100C": ["LO", "ContactDisplayName"], "100E": ["SQ", "ProcedureStepDiscontinuationReasonCodeSequence"], "1020": ["SQ", "BeamTaskSequence"], "1022": ["CS", "BeamTaskType"], "1024": ["IS", "BeamOrderIndexTrial"], "1026": ["FD", "TableTopVerticalAdjustedPosition"], "1027": ["FD", "TableTopLongitudinalAdjustedPosition"], "1028": ["FD", "TableTopLateralAdjustedPosition"], "102A": ["FD", "PatientSupportAdjustedAngle"], "102B": ["FD", "TableTopEccentricAdjustedAngle"], "102C": ["FD", "TableTopPitchAdjustedAngle"], "102D": ["FD", "TableTopRollAdjustedAngle"], "1030": ["SQ", "DeliveryVerificationImageSequence"], "1032": ["CS", "VerificationImageTiming"], "1034": ["CS", "DoubleExposureFlag"], "1036": ["CS", "DoubleExposureOrdering"], "1038": ["DS", "DoubleExposureMetersetTrial"], "103A": ["DS", "DoubleExposureFieldDeltaTrial"], "1040": ["SQ", "RelatedReferenceRTImageSequence"], "1042": ["SQ", "GeneralMachineVerificationSequence"], "1044": ["SQ", "ConventionalMachineVerificationSequence"], "1046": ["SQ", "IonMachineVerificationSequence"], "1048": ["SQ", "FailedAttributesSequence"], "104A": ["SQ", "OverriddenAttributesSequence"], "104C": ["SQ", "ConventionalControlPointVerificationSequence"], "104E": ["SQ", "IonControlPointVerificationSequence"], "1050": ["SQ", "AttributeOccurrenceSequence"], "1052": ["AT", "AttributeOccurrencePointer"], "1054": ["UL", "AttributeItemSelector"], "1056": ["LO", "AttributeOccurrencePrivateCreator"], "1057": ["IS", "SelectorSequencePointerItems"], "1200": ["CS", "ScheduledProcedureStepPriority"], "1202": ["LO", "WorklistLabel"], "1204": ["LO", "ProcedureStepLabel"], "1210": ["SQ", "ScheduledProcessingParametersSequence"], "1212": ["SQ", "PerformedProcessingParametersSequence"], "1216": ["SQ", "UnifiedProcedureStepPerformedProcedureSequence"], "1220": ["SQ", "RelatedProcedureStepSequence"], "1222": ["LO", "ProcedureStepRelationshipType"], "1224": ["SQ", "ReplacedProcedureStepSequence"], "1230": ["LO", "DeletionLock"], "1234": ["AE", "ReceivingAE"], "1236": ["AE", "RequestingAE"], "1238": ["LT", "ReasonForCancellation"], "1242": ["CS", "SCPStatus"], "1244": ["CS", "SubscriptionListStatus"], "1246": ["CS", "UnifiedProcedureStepListStatus"], "1324": ["UL", "BeamOrderIndex"], "1338": ["FD", "DoubleExposureMeterset"], "133A": ["FD", "DoubleExposureFieldDelta"] }, "0076": { "0001": ["LO", "ImplantAssemblyTemplateName"], "0003": ["LO", "ImplantAssemblyTemplateIssuer"], "0006": ["LO", "ImplantAssemblyTemplateVersion"], "0008": ["SQ", "ReplacedImplantAssemblyTemplateSequence"], "000A": ["CS", "ImplantAssemblyTemplateType"], "000C": ["SQ", "OriginalImplantAssemblyTemplateSequence"], "000E": ["SQ", "DerivationImplantAssemblyTemplateSequence"], "0010": ["SQ", "ImplantAssemblyTemplateTargetAnatomySequence"], "0020": ["SQ", "ProcedureTypeCodeSequence"], "0030": ["LO", "SurgicalTechnique"], "0032": ["SQ", "ComponentTypesSequence"], "0034": ["CS", "ComponentTypeCodeSequence"], "0036": ["CS", "ExclusiveComponentType"], "0038": ["CS", "MandatoryComponentType"], "0040": ["SQ", "ComponentSequence"], "0055": ["US", "ComponentID"], "0060": ["SQ", "ComponentAssemblySequence"], "0070": ["US", "Component1ReferencedID"], "0080": ["US", "Component1ReferencedMatingFeatureSetID"], "0090": ["US", "Component1ReferencedMatingFeatureID"], "00A0": ["US", "Component2ReferencedID"], "00B0": ["US", "Component2ReferencedMatingFeatureSetID"], "00C0": ["US", "Component2ReferencedMatingFeatureID"] }, "0078": { "0001": ["LO", "ImplantTemplateGroupName"], "0010": ["ST", "ImplantTemplateGroupDescription"], "0020": ["LO", "ImplantTemplateGroupIssuer"], "0024": ["LO", "ImplantTemplateGroupVersion"], "0026": ["SQ", "ReplacedImplantTemplateGroupSequence"], "0028": ["SQ", "ImplantTemplateGroupTargetAnatomySequence"], "002A": ["SQ", "ImplantTemplateGroupMembersSequence"], "002E": ["US", "ImplantTemplateGroupMemberID"], "0050": ["FD", "ThreeDImplantTemplateGroupMemberMatchingPoint"], "0060": ["FD", "ThreeDImplantTemplateGroupMemberMatchingAxes"], "0070": ["SQ", "ImplantTemplateGroupMemberMatching2DCoordinatesSequence"], "0090": ["FD", "TwoDImplantTemplateGroupMemberMatchingPoint"], "00A0": ["FD", "TwoDImplantTemplateGroupMemberMatchingAxes"], "00B0": ["SQ", "ImplantTemplateGroupVariationDimensionSequence"], "00B2": ["LO", "ImplantTemplateGroupVariationDimensionName"], "00B4": ["SQ", "ImplantTemplateGroupVariationDimensionRankSequence"], "00B6": ["US", "ReferencedImplantTemplateGroupMemberID"], "00B8": ["US", "ImplantTemplateGroupVariationDimensionRank"] }, "0088": { "0130": ["SH", "StorageMediaFileSetID"], "0140": ["UI", "StorageMediaFileSetUID"], "0200": ["SQ", "IconImageSequence"], "0904": ["LO", "TopicTitle"], "0906": ["ST", "TopicSubject"], "0910": ["LO", "TopicAuthor"], "0912": ["LO", "TopicKeywords"] }, "0100": { "0410": ["CS", "SOPInstanceStatus"], "0420": ["DT", "SOPAuthorizationDateTime"], "0424": ["LT", "SOPAuthorizationComment"], "0426": ["LO", "AuthorizationEquipmentCertificationNumber"] }, "0400": { "0005": ["US", "MACIDNumber"], "0010": ["UI", "MACCalculationTransferSyntaxUID"], "0015": ["CS", "MACAlgorithm"], "0020": ["AT", "DataElementsSigned"], "0100": ["UI", "DigitalSignatureUID"], "0105": ["DT", "DigitalSignatureDateTime"], "0110": ["CS", "CertificateType"], "0115": ["OB", "CertificateOfSigner"], "0120": ["OB", "Signature"], "0305": ["CS", "CertifiedTimestampType"], "0310": ["OB", "CertifiedTimestamp"], "0401": ["SQ", "DigitalSignaturePurposeCodeSequence"], "0402": ["SQ", "ReferencedDigitalSignatureSequence"], "0403": ["SQ", "ReferencedSOPInstanceMACSequence"], "0404": ["OB", "MAC"], "0500": ["SQ", "EncryptedAttributesSequence"], "0510": ["UI", "EncryptedContentTransferSyntaxUID"], "0520": ["OB", "EncryptedContent"], "0550": ["SQ", "ModifiedAttributesSequence"], "0561": ["SQ", "OriginalAttributesSequence"], "0562": ["DT", "AttributeModificationDateTime"], "0563": ["LO", "ModifyingSystem"], "0564": ["LO", "SourceOfPreviousValues"], "0565": ["CS", "ReasonForTheAttributeModification"] }, "2000": { "0010": ["IS", "NumberOfCopies"], "001E": ["SQ", "PrinterConfigurationSequence"], "0020": ["CS", "PrintPriority"], "0030": ["CS", "MediumType"], "0040": ["CS", "FilmDestination"], "0050": ["LO", "FilmSessionLabel"], "0060": ["IS", "MemoryAllocation"], "0061": ["IS", "MaximumMemoryAllocation"], "0062": ["CS", "ColorImagePrintingFlag"], "0063": ["CS", "CollationFlag"], "0065": ["CS", "AnnotationFlag"], "0067": ["CS", "ImageOverlayFlag"], "0069": ["CS", "PresentationLUTFlag"], "006A": ["CS", "ImageBoxPresentationLUTFlag"], "00A0": ["US", "MemoryBitDepth"], "00A1": ["US", "PrintingBitDepth"], "00A2": ["SQ", "MediaInstalledSequence"], "00A4": ["SQ", "OtherMediaAvailableSequence"], "00A8": ["SQ", "SupportedImageDisplayFormatsSequence"], "0500": ["SQ", "ReferencedFilmBoxSequence"], "0510": ["SQ", "ReferencedStoredPrintSequence"] }, "2010": { "0010": ["ST", "ImageDisplayFormat"], "0030": ["CS", "AnnotationDisplayFormatID"], "0040": ["CS", "FilmOrientation"], "0050": ["CS", "FilmSizeID"], "0052": ["CS", "PrinterResolutionID"], "0054": ["CS", "DefaultPrinterResolutionID"], "0060": ["CS", "MagnificationType"], "0080": ["CS", "SmoothingType"], "00A6": ["CS", "DefaultMagnificationType"], "00A7": ["CS", "OtherMagnificationTypesAvailable"], "00A8": ["CS", "DefaultSmoothingType"], "00A9": ["CS", "OtherSmoothingTypesAvailable"], "0100": ["CS", "BorderDensity"], "0110": ["CS", "EmptyImageDensity"], "0120": ["US", "MinDensity"], "0130": ["US", "MaxDensity"], "0140": ["CS", "Trim"], "0150": ["ST", "ConfigurationInformation"], "0152": ["LT", "ConfigurationInformationDescription"], "0154": ["IS", "MaximumCollatedFilms"], "015E": ["US", "Illumination"], "0160": ["US", "ReflectedAmbientLight"], "0376": ["DS", "PrinterPixelSpacing"], "0500": ["SQ", "ReferencedFilmSessionSequence"], "0510": ["SQ", "ReferencedImageBoxSequence"], "0520": ["SQ", "ReferencedBasicAnnotationBoxSequence"] }, "2020": { "0010": ["US", "ImageBoxPosition"], "0020": ["CS", "Polarity"], "0030": ["DS", "RequestedImageSize"], "0040": ["CS", "RequestedDecimateCropBehavior"], "0050": ["CS", "RequestedResolutionID"], "00A0": ["CS", "RequestedImageSizeFlag"], "00A2": ["CS", "DecimateCropResult"], "0110": ["SQ", "BasicGrayscaleImageSequence"], "0111": ["SQ", "BasicColorImageSequence"], "0130": ["SQ", "ReferencedImageOverlayBoxSequence"], "0140": ["SQ", "ReferencedVOILUTBoxSequence"] }, "2030": { "0010": ["US", "AnnotationPosition"], "0020": ["LO", "TextString"] }, "2040": { "0010": ["SQ", "ReferencedOverlayPlaneSequence"], "0011": ["US", "ReferencedOverlayPlaneGroups"], "0020": ["SQ", "OverlayPixelDataSequence"], "0060": ["CS", "OverlayMagnificationType"], "0070": ["CS", "OverlaySmoothingType"], "0072": ["CS", "OverlayOrImageMagnification"], "0074": ["US", "MagnifyToNumberOfColumns"], "0080": ["CS", "OverlayForegroundDensity"], "0082": ["CS", "OverlayBackgroundDensity"], "0090": ["CS", "OverlayMode"], "0100": ["CS", "ThresholdDensity"], "0500": ["SQ", "ReferencedImageBoxSequenceRetired"] }, "2050": { "0010": ["SQ", "PresentationLUTSequence"], "0020": ["CS", "PresentationLUTShape"], "0500": ["SQ", "ReferencedPresentationLUTSequence"] }, "2100": { "0010": ["SH", "PrintJobID"], "0020": ["CS", "ExecutionStatus"], "0030": ["CS", "ExecutionStatusInfo"], "0040": ["DA", "CreationDate"], "0050": ["TM", "CreationTime"], "0070": ["AE", "Originator"], "0140": ["AE", "DestinationAE"], "0160": ["SH", "OwnerID"], "0170": ["IS", "NumberOfFilms"], "0500": ["SQ", "ReferencedPrintJobSequencePullStoredPrint"] }, "2110": { "0010": ["CS", "PrinterStatus"], "0020": ["CS", "PrinterStatusInfo"], "0030": ["LO", "PrinterName"], "0099": ["SH", "PrintQueueID"] }, "2120": { "0010": ["CS", "QueueStatus"], "0050": ["SQ", "PrintJobDescriptionSequence"], "0070": ["SQ", "ReferencedPrintJobSequence"] }, "2130": { "0010": ["SQ", "PrintManagementCapabilitiesSequence"], "0015": ["SQ", "PrinterCharacteristicsSequence"], "0030": ["SQ", "FilmBoxContentSequence"], "0040": ["SQ", "ImageBoxContentSequence"], "0050": ["SQ", "AnnotationContentSequence"], "0060": ["SQ", "ImageOverlayBoxContentSequence"], "0080": ["SQ", "PresentationLUTContentSequence"], "00A0": ["SQ", "ProposedStudySequence"], "00C0": ["SQ", "OriginalImageSequence"] }, "2200": { "0001": ["CS", "LabelUsingInformationExtractedFromInstances"], "0002": ["UT", "LabelText"], "0003": ["CS", "LabelStyleSelection"], "0004": ["LT", "MediaDisposition"], "0005": ["LT", "BarcodeValue"], "0006": ["CS", "BarcodeSymbology"], "0007": ["CS", "AllowMediaSplitting"], "0008": ["CS", "IncludeNonDICOMObjects"], "0009": ["CS", "IncludeDisplayApplication"], "000A": ["CS", "PreserveCompositeInstancesAfterMediaCreation"], "000B": ["US", "TotalNumberOfPiecesOfMediaCreated"], "000C": ["LO", "RequestedMediaApplicationProfile"], "000D": ["SQ", "ReferencedStorageMediaSequence"], "000E": ["AT", "FailureAttributes"], "000F": ["CS", "AllowLossyCompression"], "0020": ["CS", "RequestPriority"] }, "3002": { "0002": ["SH", "RTImageLabel"], "0003": ["LO", "RTImageName"], "0004": ["ST", "RTImageDescription"], "000A": ["CS", "ReportedValuesOrigin"], "000C": ["CS", "RTImagePlane"], "000D": ["DS", "XRayImageReceptorTranslation"], "000E": ["DS", "XRayImageReceptorAngle"], "0010": ["DS", "RTImageOrientation"], "0011": ["DS", "ImagePlanePixelSpacing"], "0012": ["DS", "RTImagePosition"], "0020": ["SH", "RadiationMachineName"], "0022": ["DS", "RadiationMachineSAD"], "0024": ["DS", "RadiationMachineSSD"], "0026": ["DS", "RTImageSID"], "0028": ["DS", "SourceToReferenceObjectDistance"], "0029": ["IS", "FractionNumber"], "0030": ["SQ", "ExposureSequence"], "0032": ["DS", "MetersetExposure"], "0034": ["DS", "DiaphragmPosition"], "0040": ["SQ", "FluenceMapSequence"], "0041": ["CS", "FluenceDataSource"], "0042": ["DS", "FluenceDataScale"], "0050": ["SQ", "PrimaryFluenceModeSequence"], "0051": ["CS", "FluenceMode"], "0052": ["SH", "FluenceModeID"] }, "3004": { "0001": ["CS", "DVHType"], "0002": ["CS", "DoseUnits"], "0004": ["CS", "DoseType"], "0006": ["LO", "DoseComment"], "0008": ["DS", "NormalizationPoint"], "000A": ["CS", "DoseSummationType"], "000C": ["DS", "GridFrameOffsetVector"], "000E": ["DS", "DoseGridScaling"], "0010": ["SQ", "RTDoseROISequence"], "0012": ["DS", "DoseValue"], "0014": ["CS", "TissueHeterogeneityCorrection"], "0040": ["DS", "DVHNormalizationPoint"], "0042": ["DS", "DVHNormalizationDoseValue"], "0050": ["SQ", "DVHSequence"], "0052": ["DS", "DVHDoseScaling"], "0054": ["CS", "DVHVolumeUnits"], "0056": ["IS", "DVHNumberOfBins"], "0058": ["DS", "DVHData"], "0060": ["SQ", "DVHReferencedROISequence"], "0062": ["CS", "DVHROIContributionType"], "0070": ["DS", "DVHMinimumDose"], "0072": ["DS", "DVHMaximumDose"], "0074": ["DS", "DVHMeanDose"] }, "3006": { "0002": ["SH", "StructureSetLabel"], "0004": ["LO", "StructureSetName"], "0006": ["ST", "StructureSetDescription"], "0008": ["DA", "StructureSetDate"], "0009": ["TM", "StructureSetTime"], "0010": ["SQ", "ReferencedFrameOfReferenceSequence"], "0012": ["SQ", "RTReferencedStudySequence"], "0014": ["SQ", "RTReferencedSeriesSequence"], "0016": ["SQ", "ContourImageSequence"], "0020": ["SQ", "StructureSetROISequence"], "0022": ["IS", "ROINumber"], "0024": ["UI", "ReferencedFrameOfReferenceUID"], "0026": ["LO", "ROIName"], "0028": ["ST", "ROIDescription"], "002A": ["IS", "ROIDisplayColor"], "002C": ["DS", "ROIVolume"], "0030": ["SQ", "RTRelatedROISequence"], "0033": ["CS", "RTROIRelationship"], "0036": ["CS", "ROIGenerationAlgorithm"], "0038": ["LO", "ROIGenerationDescription"], "0039": ["SQ", "ROIContourSequence"], "0040": ["SQ", "ContourSequence"], "0042": ["CS", "ContourGeometricType"], "0044": ["DS", "ContourSlabThickness"], "0045": ["DS", "ContourOffsetVector"], "0046": ["IS", "NumberOfContourPoints"], "0048": ["IS", "ContourNumber"], "0049": ["IS", "AttachedContours"], "0050": ["DS", "ContourData"], "0080": ["SQ", "RTROIObservationsSequence"], "0082": ["IS", "ObservationNumber"], "0084": ["IS", "ReferencedROINumber"], "0085": ["SH", "ROIObservationLabel"], "0086": ["SQ", "RTROIIdentificationCodeSequence"], "0088": ["ST", "ROIObservationDescription"], "00A0": ["SQ", "RelatedRTROIObservationsSequence"], "00A4": ["CS", "RTROIInterpretedType"], "00A6": ["PN", "ROIInterpreter"], "00B0": ["SQ", "ROIPhysicalPropertiesSequence"], "00B2": ["CS", "ROIPhysicalProperty"], "00B4": ["DS", "ROIPhysicalPropertyValue"], "00B6": ["SQ", "ROIElementalCompositionSequence"], "00B7": ["US", "ROIElementalCompositionAtomicNumber"], "00B8": ["FL", "ROIElementalCompositionAtomicMassFraction"], "00C0": ["SQ", "FrameOfReferenceRelationshipSequence"], "00C2": ["UI", "RelatedFrameOfReferenceUID"], "00C4": ["CS", "FrameOfReferenceTransformationType"], "00C6": ["DS", "FrameOfReferenceTransformationMatrix"], "00C8": ["LO", "FrameOfReferenceTransformationComment"] }, "3008": { "0010": ["SQ", "MeasuredDoseReferenceSequence"], "0012": ["ST", "MeasuredDoseDescription"], "0014": ["CS", "MeasuredDoseType"], "0016": ["DS", "MeasuredDoseValue"], "0020": ["SQ", "TreatmentSessionBeamSequence"], "0021": ["SQ", "TreatmentSessionIonBeamSequence"], "0022": ["IS", "CurrentFractionNumber"], "0024": ["DA", "TreatmentControlPointDate"], "0025": ["TM", "TreatmentControlPointTime"], "002A": ["CS", "TreatmentTerminationStatus"], "002B": ["SH", "TreatmentTerminationCode"], "002C": ["CS", "TreatmentVerificationStatus"], "0030": ["SQ", "ReferencedTreatmentRecordSequence"], "0032": ["DS", "SpecifiedPrimaryMeterset"], "0033": ["DS", "SpecifiedSecondaryMeterset"], "0036": ["DS", "DeliveredPrimaryMeterset"], "0037": ["DS", "DeliveredSecondaryMeterset"], "003A": ["DS", "SpecifiedTreatmentTime"], "003B": ["DS", "DeliveredTreatmentTime"], "0040": ["SQ", "ControlPointDeliverySequence"], "0041": ["SQ", "IonControlPointDeliverySequence"], "0042": ["DS", "SpecifiedMeterset"], "0044": ["DS", "DeliveredMeterset"], "0045": ["FL", "MetersetRateSet"], "0046": ["FL", "MetersetRateDelivered"], "0047": ["FL", "ScanSpotMetersetsDelivered"], "0048": ["DS", "DoseRateDelivered"], "0050": ["SQ", "TreatmentSummaryCalculatedDoseReferenceSequence"], "0052": ["DS", "CumulativeDoseToDoseReference"], "0054": ["DA", "FirstTreatmentDate"], "0056": ["DA", "MostRecentTreatmentDate"], "005A": ["IS", "NumberOfFractionsDelivered"], "0060": ["SQ", "OverrideSequence"], "0061": ["AT", "ParameterSequencePointer"], "0062": ["AT", "OverrideParameterPointer"], "0063": ["IS", "ParameterItemIndex"], "0064": ["IS", "MeasuredDoseReferenceNumber"], "0065": ["AT", "ParameterPointer"], "0066": ["ST", "OverrideReason"], "0068": ["SQ", "CorrectedParameterSequence"], "006A": ["FL", "CorrectionValue"], "0070": ["SQ", "CalculatedDoseReferenceSequence"], "0072": ["IS", "CalculatedDoseReferenceNumber"], "0074": ["ST", "CalculatedDoseReferenceDescription"], "0076": ["DS", "CalculatedDoseReferenceDoseValue"], "0078": ["DS", "StartMeterset"], "007A": ["DS", "EndMeterset"], "0080": ["SQ", "ReferencedMeasuredDoseReferenceSequence"], "0082": ["IS", "ReferencedMeasuredDoseReferenceNumber"], "0090": ["SQ", "ReferencedCalculatedDoseReferenceSequence"], "0092": ["IS", "ReferencedCalculatedDoseReferenceNumber"], "00A0": ["SQ", "BeamLimitingDeviceLeafPairsSequence"], "00B0": ["SQ", "RecordedWedgeSequence"], "00C0": ["SQ", "RecordedCompensatorSequence"], "00D0": ["SQ", "RecordedBlockSequence"], "00E0": ["SQ", "TreatmentSummaryMeasuredDoseReferenceSequence"], "00F0": ["SQ", "RecordedSnoutSequence"], "00F2": ["SQ", "RecordedRangeShifterSequence"], "00F4": ["SQ", "RecordedLateralSpreadingDeviceSequence"], "00F6": ["SQ", "RecordedRangeModulatorSequence"], "0100": ["SQ", "RecordedSourceSequence"], "0105": ["LO", "SourceSerialNumber"], "0110": ["SQ", "TreatmentSessionApplicationSetupSequence"], "0116": ["CS", "ApplicationSetupCheck"], "0120": ["SQ", "RecordedBrachyAccessoryDeviceSequence"], "0122": ["IS", "ReferencedBrachyAccessoryDeviceNumber"], "0130": ["SQ", "RecordedChannelSequence"], "0132": ["DS", "SpecifiedChannelTotalTime"], "0134": ["DS", "DeliveredChannelTotalTime"], "0136": ["IS", "SpecifiedNumberOfPulses"], "0138": ["IS", "DeliveredNumberOfPulses"], "013A": ["DS", "SpecifiedPulseRepetitionInterval"], "013C": ["DS", "DeliveredPulseRepetitionInterval"], "0140": ["SQ", "RecordedSourceApplicatorSequence"], "0142": ["IS", "ReferencedSourceApplicatorNumber"], "0150": ["SQ", "RecordedChannelShieldSequence"], "0152": ["IS", "ReferencedChannelShieldNumber"], "0160": ["SQ", "BrachyControlPointDeliveredSequence"], "0162": ["DA", "SafePositionExitDate"], "0164": ["TM", "SafePositionExitTime"], "0166": ["DA", "SafePositionReturnDate"], "0168": ["TM", "SafePositionReturnTime"], "0200": ["CS", "CurrentTreatmentStatus"], "0202": ["ST", "TreatmentStatusComment"], "0220": ["SQ", "FractionGroupSummarySequence"], "0223": ["IS", "ReferencedFractionNumber"], "0224": ["CS", "FractionGroupType"], "0230": ["CS", "BeamStopperPosition"], "0240": ["SQ", "FractionStatusSummarySequence"], "0250": ["DA", "TreatmentDate"], "0251": ["TM", "TreatmentTime"] }, "300A": { "0002": ["SH", "RTPlanLabel"], "0003": ["LO", "RTPlanName"], "0004": ["ST", "RTPlanDescription"], "0006": ["DA", "RTPlanDate"], "0007": ["TM", "RTPlanTime"], "0009": ["LO", "TreatmentProtocols"], "000A": ["CS", "PlanIntent"], "000B": ["LO", "TreatmentSites"], "000C": ["CS", "RTPlanGeometry"], "000E": ["ST", "PrescriptionDescription"], "0010": ["SQ", "DoseReferenceSequence"], "0012": ["IS", "DoseReferenceNumber"], "0013": ["UI", "DoseReferenceUID"], "0014": ["CS", "DoseReferenceStructureType"], "0015": ["CS", "NominalBeamEnergyUnit"], "0016": ["LO", "DoseReferenceDescription"], "0018": ["DS", "DoseReferencePointCoordinates"], "001A": ["DS", "NominalPriorDose"], "0020": ["CS", "DoseReferenceType"], "0021": ["DS", "ConstraintWeight"], "0022": ["DS", "DeliveryWarningDose"], "0023": ["DS", "DeliveryMaximumDose"], "0025": ["DS", "TargetMinimumDose"], "0026": ["DS", "TargetPrescriptionDose"], "0027": ["DS", "TargetMaximumDose"], "0028": ["DS", "TargetUnderdoseVolumeFraction"], "002A": ["DS", "OrganAtRiskFullVolumeDose"], "002B": ["DS", "OrganAtRiskLimitDose"], "002C": ["DS", "OrganAtRiskMaximumDose"], "002D": ["DS", "OrganAtRiskOverdoseVolumeFraction"], "0040": ["SQ", "ToleranceTableSequence"], "0042": ["IS", "ToleranceTableNumber"], "0043": ["SH", "ToleranceTableLabel"], "0044": ["DS", "GantryAngleTolerance"], "0046": ["DS", "BeamLimitingDeviceAngleTolerance"], "0048": ["SQ", "BeamLimitingDeviceToleranceSequence"], "004A": ["DS", "BeamLimitingDevicePositionTolerance"], "004B": ["FL", "SnoutPositionTolerance"], "004C": ["DS", "PatientSupportAngleTolerance"], "004E": ["DS", "TableTopEccentricAngleTolerance"], "004F": ["FL", "TableTopPitchAngleTolerance"], "0050": ["FL", "TableTopRollAngleTolerance"], "0051": ["DS", "TableTopVerticalPositionTolerance"], "0052": ["DS", "TableTopLongitudinalPositionTolerance"], "0053": ["DS", "TableTopLateralPositionTolerance"], "0055": ["CS", "RTPlanRelationship"], "0070": ["SQ", "FractionGroupSequence"], "0071": ["IS", "FractionGroupNumber"], "0072": ["LO", "FractionGroupDescription"], "0078": ["IS", "NumberOfFractionsPlanned"], "0079": ["IS", "NumberOfFractionPatternDigitsPerDay"], "007A": ["IS", "RepeatFractionCycleLength"], "007B": ["LT", "FractionPattern"], "0080": ["IS", "NumberOfBeams"], "0082": ["DS", "BeamDoseSpecificationPoint"], "0084": ["DS", "BeamDose"], "0086": ["DS", "BeamMeterset"], "0088": ["FL", "BeamDosePointDepth"], "0089": ["FL", "BeamDosePointEquivalentDepth"], "008A": ["FL", "BeamDosePointSSD"], "00A0": ["IS", "NumberOfBrachyApplicationSetups"], "00A2": ["DS", "BrachyApplicationSetupDoseSpecificationPoint"], "00A4": ["DS", "BrachyApplicationSetupDose"], "00B0": ["SQ", "BeamSequence"], "00B2": ["SH", "TreatmentMachineName"], "00B3": ["CS", "PrimaryDosimeterUnit"], "00B4": ["DS", "SourceAxisDistance"], "00B6": ["SQ", "BeamLimitingDeviceSequence"], "00B8": ["CS", "RTBeamLimitingDeviceType"], "00BA": ["DS", "SourceToBeamLimitingDeviceDistance"], "00BB": ["FL", "IsocenterToBeamLimitingDeviceDistance"], "00BC": ["IS", "NumberOfLeafJawPairs"], "00BE": ["DS", "LeafPositionBoundaries"], "00C0": ["IS", "BeamNumber"], "00C2": ["LO", "BeamName"], "00C3": ["ST", "BeamDescription"], "00C4": ["CS", "BeamType"], "00C6": ["CS", "RadiationType"], "00C7": ["CS", "HighDoseTechniqueType"], "00C8": ["IS", "ReferenceImageNumber"], "00CA": ["SQ", "PlannedVerificationImageSequence"], "00CC": ["LO", "ImagingDeviceSpecificAcquisitionParameters"], "00CE": ["CS", "TreatmentDeliveryType"], "00D0": ["IS", "NumberOfWedges"], "00D1": ["SQ", "WedgeSequence"], "00D2": ["IS", "WedgeNumber"], "00D3": ["CS", "WedgeType"], "00D4": ["SH", "WedgeID"], "00D5": ["IS", "WedgeAngle"], "00D6": ["DS", "WedgeFactor"], "00D7": ["FL", "TotalWedgeTrayWaterEquivalentThickness"], "00D8": ["DS", "WedgeOrientation"], "00D9": ["FL", "IsocenterToWedgeTrayDistance"], "00DA": ["DS", "SourceToWedgeTrayDistance"], "00DB": ["FL", "WedgeThinEdgePosition"], "00DC": ["SH", "BolusID"], "00DD": ["ST", "BolusDescription"], "00E0": ["IS", "NumberOfCompensators"], "00E1": ["SH", "MaterialID"], "00E2": ["DS", "TotalCompensatorTrayFactor"], "00E3": ["SQ", "CompensatorSequence"], "00E4": ["IS", "CompensatorNumber"], "00E5": ["SH", "CompensatorID"], "00E6": ["DS", "SourceToCompensatorTrayDistance"], "00E7": ["IS", "CompensatorRows"], "00E8": ["IS", "CompensatorColumns"], "00E9": ["DS", "CompensatorPixelSpacing"], "00EA": ["DS", "CompensatorPosition"], "00EB": ["DS", "CompensatorTransmissionData"], "00EC": ["DS", "CompensatorThicknessData"], "00ED": ["IS", "NumberOfBoli"], "00EE": ["CS", "CompensatorType"], "00F0": ["IS", "NumberOfBlocks"], "00F2": ["DS", "TotalBlockTrayFactor"], "00F3": ["FL", "TotalBlockTrayWaterEquivalentThickness"], "00F4": ["SQ", "BlockSequence"], "00F5": ["SH", "BlockTrayID"], "00F6": ["DS", "SourceToBlockTrayDistance"], "00F7": ["FL", "IsocenterToBlockTrayDistance"], "00F8": ["CS", "BlockType"], "00F9": ["LO", "AccessoryCode"], "00FA": ["CS", "BlockDivergence"], "00FB": ["CS", "BlockMountingPosition"], "00FC": ["IS", "BlockNumber"], "00FE": ["LO", "BlockName"], "0100": ["DS", "BlockThickness"], "0102": ["DS", "BlockTransmission"], "0104": ["IS", "BlockNumberOfPoints"], "0106": ["DS", "BlockData"], "0107": ["SQ", "ApplicatorSequence"], "0108": ["SH", "ApplicatorID"], "0109": ["CS", "ApplicatorType"], "010A": ["LO", "ApplicatorDescription"], "010C": ["DS", "CumulativeDoseReferenceCoefficient"], "010E": ["DS", "FinalCumulativeMetersetWeight"], "0110": ["IS", "NumberOfControlPoints"], "0111": ["SQ", "ControlPointSequence"], "0112": ["IS", "ControlPointIndex"], "0114": ["DS", "NominalBeamEnergy"], "0115": ["DS", "DoseRateSet"], "0116": ["SQ", "WedgePositionSequence"], "0118": ["CS", "WedgePosition"], "011A": ["SQ", "BeamLimitingDevicePositionSequence"], "011C": ["DS", "LeafJawPositions"], "011E": ["DS", "GantryAngle"], "011F": ["CS", "GantryRotationDirection"], "0120": ["DS", "BeamLimitingDeviceAngle"], "0121": ["CS", "BeamLimitingDeviceRotationDirection"], "0122": ["DS", "PatientSupportAngle"], "0123": ["CS", "PatientSupportRotationDirection"], "0124": ["DS", "TableTopEccentricAxisDistance"], "0125": ["DS", "TableTopEccentricAngle"], "0126": ["CS", "TableTopEccentricRotationDirection"], "0128": ["DS", "TableTopVerticalPosition"], "0129": ["DS", "TableTopLongitudinalPosition"], "012A": ["DS", "TableTopLateralPosition"], "012C": ["DS", "IsocenterPosition"], "012E": ["DS", "SurfaceEntryPoint"], "0130": ["DS", "SourceToSurfaceDistance"], "0134": ["DS", "CumulativeMetersetWeight"], "0140": ["FL", "TableTopPitchAngle"], "0142": ["CS", "TableTopPitchRotationDirection"], "0144": ["FL", "TableTopRollAngle"], "0146": ["CS", "TableTopRollRotationDirection"], "0148": ["FL", "HeadFixationAngle"], "014A": ["FL", "GantryPitchAngle"], "014C": ["CS", "GantryPitchRotationDirection"], "014E": ["FL", "GantryPitchAngleTolerance"], "0180": ["SQ", "PatientSetupSequence"], "0182": ["IS", "PatientSetupNumber"], "0183": ["LO", "PatientSetupLabel"], "0184": ["LO", "PatientAdditionalPosition"], "0190": ["SQ", "FixationDeviceSequence"], "0192": ["CS", "FixationDeviceType"], "0194": ["SH", "FixationDeviceLabel"], "0196": ["ST", "FixationDeviceDescription"], "0198": ["SH", "FixationDevicePosition"], "0199": ["FL", "FixationDevicePitchAngle"], "019A": ["FL", "FixationDeviceRollAngle"], "01A0": ["SQ", "ShieldingDeviceSequence"], "01A2": ["CS", "ShieldingDeviceType"], "01A4": ["SH", "ShieldingDeviceLabel"], "01A6": ["ST", "ShieldingDeviceDescription"], "01A8": ["SH", "ShieldingDevicePosition"], "01B0": ["CS", "SetupTechnique"], "01B2": ["ST", "SetupTechniqueDescription"], "01B4": ["SQ", "SetupDeviceSequence"], "01B6": ["CS", "SetupDeviceType"], "01B8": ["SH", "SetupDeviceLabel"], "01BA": ["ST", "SetupDeviceDescription"], "01BC": ["DS", "SetupDeviceParameter"], "01D0": ["ST", "SetupReferenceDescription"], "01D2": ["DS", "TableTopVerticalSetupDisplacement"], "01D4": ["DS", "TableTopLongitudinalSetupDisplacement"], "01D6": ["DS", "TableTopLateralSetupDisplacement"], "0200": ["CS", "BrachyTreatmentTechnique"], "0202": ["CS", "BrachyTreatmentType"], "0206": ["SQ", "TreatmentMachineSequence"], "0210": ["SQ", "SourceSequence"], "0212": ["IS", "SourceNumber"], "0214": ["CS", "SourceType"], "0216": ["LO", "SourceManufacturer"], "0218": ["DS", "ActiveSourceDiameter"], "021A": ["DS", "ActiveSourceLength"], "0222": ["DS", "SourceEncapsulationNominalThickness"], "0224": ["DS", "SourceEncapsulationNominalTransmission"], "0226": ["LO", "SourceIsotopeName"], "0228": ["DS", "SourceIsotopeHalfLife"], "0229": ["CS", "SourceStrengthUnits"], "022A": ["DS", "ReferenceAirKermaRate"], "022B": ["DS", "SourceStrength"], "022C": ["DA", "SourceStrengthReferenceDate"], "022E": ["TM", "SourceStrengthReferenceTime"], "0230": ["SQ", "ApplicationSetupSequence"], "0232": ["CS", "ApplicationSetupType"], "0234": ["IS", "ApplicationSetupNumber"], "0236": ["LO", "ApplicationSetupName"], "0238": ["LO", "ApplicationSetupManufacturer"], "0240": ["IS", "TemplateNumber"], "0242": ["SH", "TemplateType"], "0244": ["LO", "TemplateName"], "0250": ["DS", "TotalReferenceAirKerma"], "0260": ["SQ", "BrachyAccessoryDeviceSequence"], "0262": ["IS", "BrachyAccessoryDeviceNumber"], "0263": ["SH", "BrachyAccessoryDeviceID"], "0264": ["CS", "BrachyAccessoryDeviceType"], "0266": ["LO", "BrachyAccessoryDeviceName"], "026A": ["DS", "BrachyAccessoryDeviceNominalThickness"], "026C": ["DS", "BrachyAccessoryDeviceNominalTransmission"], "0280": ["SQ", "ChannelSequence"], "0282": ["IS", "ChannelNumber"], "0284": ["DS", "ChannelLength"], "0286": ["DS", "ChannelTotalTime"], "0288": ["CS", "SourceMovementType"], "028A": ["IS", "NumberOfPulses"], "028C": ["DS", "PulseRepetitionInterval"], "0290": ["IS", "SourceApplicatorNumber"], "0291": ["SH", "SourceApplicatorID"], "0292": ["CS", "SourceApplicatorType"], "0294": ["LO", "SourceApplicatorName"], "0296": ["DS", "SourceApplicatorLength"], "0298": ["LO", "SourceApplicatorManufacturer"], "029C": ["DS", "SourceApplicatorWallNominalThickness"], "029E": ["DS", "SourceApplicatorWallNominalTransmission"], "02A0": ["DS", "SourceApplicatorStepSize"], "02A2": ["IS", "TransferTubeNumber"], "02A4": ["DS", "TransferTubeLength"], "02B0": ["SQ", "ChannelShieldSequence"], "02B2": ["IS", "ChannelShieldNumber"], "02B3": ["SH", "ChannelShieldID"], "02B4": ["LO", "ChannelShieldName"], "02B8": ["DS", "ChannelShieldNominalThickness"], "02BA": ["DS", "ChannelShieldNominalTransmission"], "02C8": ["DS", "FinalCumulativeTimeWeight"], "02D0": ["SQ", "BrachyControlPointSequence"], "02D2": ["DS", "ControlPointRelativePosition"], "02D4": ["DS", "ControlPoint3DPosition"], "02D6": ["DS", "CumulativeTimeWeight"], "02E0": ["CS", "CompensatorDivergence"], "02E1": ["CS", "CompensatorMountingPosition"], "02E2": ["DS", "SourceToCompensatorDistance"], "02E3": ["FL", "TotalCompensatorTrayWaterEquivalentThickness"], "02E4": ["FL", "IsocenterToCompensatorTrayDistance"], "02E5": ["FL", "CompensatorColumnOffset"], "02E6": ["FL", "IsocenterToCompensatorDistances"], "02E7": ["FL", "CompensatorRelativeStoppingPowerRatio"], "02E8": ["FL", "CompensatorMillingToolDiameter"], "02EA": ["SQ", "IonRangeCompensatorSequence"], "02EB": ["LT", "CompensatorDescription"], "0302": ["IS", "RadiationMassNumber"], "0304": ["IS", "RadiationAtomicNumber"], "0306": ["SS", "RadiationChargeState"], "0308": ["CS", "ScanMode"], "030A": ["FL", "VirtualSourceAxisDistances"], "030C": ["SQ", "SnoutSequence"], "030D": ["FL", "SnoutPosition"], "030F": ["SH", "SnoutID"], "0312": ["IS", "NumberOfRangeShifters"], "0314": ["SQ", "RangeShifterSequence"], "0316": ["IS", "RangeShifterNumber"], "0318": ["SH", "RangeShifterID"], "0320": ["CS", "RangeShifterType"], "0322": ["LO", "RangeShifterDescription"], "0330": ["IS", "NumberOfLateralSpreadingDevices"], "0332": ["SQ", "LateralSpreadingDeviceSequence"], "0334": ["IS", "LateralSpreadingDeviceNumber"], "0336": ["SH", "LateralSpreadingDeviceID"], "0338": ["CS", "LateralSpreadingDeviceType"], "033A": ["LO", "LateralSpreadingDeviceDescription"], "033C": ["FL", "LateralSpreadingDeviceWaterEquivalentThickness"], "0340": ["IS", "NumberOfRangeModulators"], "0342": ["SQ", "RangeModulatorSequence"], "0344": ["IS", "RangeModulatorNumber"], "0346": ["SH", "RangeModulatorID"], "0348": ["CS", "RangeModulatorType"], "034A": ["LO", "RangeModulatorDescription"], "034C": ["SH", "BeamCurrentModulationID"], "0350": ["CS", "PatientSupportType"], "0352": ["SH", "PatientSupportID"], "0354": ["LO", "PatientSupportAccessoryCode"], "0356": ["FL", "FixationLightAzimuthalAngle"], "0358": ["FL", "FixationLightPolarAngle"], "035A": ["FL", "MetersetRate"], "0360": ["SQ", "RangeShifterSettingsSequence"], "0362": ["LO", "RangeShifterSetting"], "0364": ["FL", "IsocenterToRangeShifterDistance"], "0366": ["FL", "RangeShifterWaterEquivalentThickness"], "0370": ["SQ", "LateralSpreadingDeviceSettingsSequence"], "0372": ["LO", "LateralSpreadingDeviceSetting"], "0374": ["FL", "IsocenterToLateralSpreadingDeviceDistance"], "0380": ["SQ", "RangeModulatorSettingsSequence"], "0382": ["FL", "RangeModulatorGatingStartValue"], "0384": ["FL", "RangeModulatorGatingStopValue"], "0386": ["FL", "RangeModulatorGatingStartWaterEquivalentThickness"], "0388": ["FL", "RangeModulatorGatingStopWaterEquivalentThickness"], "038A": ["FL", "IsocenterToRangeModulatorDistance"], "0390": ["SH", "ScanSpotTuneID"], "0392": ["IS", "NumberOfScanSpotPositions"], "0394": ["FL", "ScanSpotPositionMap"], "0396": ["FL", "ScanSpotMetersetWeights"], "0398": ["FL", "ScanningSpotSize"], "039A": ["IS", "NumberOfPaintings"], "03A0": ["SQ", "IonToleranceTableSequence"], "03A2": ["SQ", "IonBeamSequence"], "03A4": ["SQ", "IonBeamLimitingDeviceSequence"], "03A6": ["SQ", "IonBlockSequence"], "03A8": ["SQ", "IonControlPointSequence"], "03AA": ["SQ", "IonWedgeSequence"], "03AC": ["SQ", "IonWedgePositionSequence"], "0401": ["SQ", "ReferencedSetupImageSequence"], "0402": ["ST", "SetupImageComment"], "0410": ["SQ", "MotionSynchronizationSequence"], "0412": ["FL", "ControlPointOrientation"], "0420": ["SQ", "GeneralAccessorySequence"], "0421": ["SH", "GeneralAccessoryID"], "0422": ["ST", "GeneralAccessoryDescription"], "0423": ["CS", "GeneralAccessoryType"], "0424": ["IS", "GeneralAccessoryNumber"], "0431": ["SQ", "ApplicatorGeometrySequence"], "0432": ["CS", "ApplicatorApertureShape"], "0433": ["FL", "ApplicatorOpening"], "0434": ["FL", "ApplicatorOpeningX"], "0435": ["FL", "ApplicatorOpeningY"], "0436": ["FL", "SourceToApplicatorMountingPositionDistance"] }, "300C": { "0002": ["SQ", "ReferencedRTPlanSequence"], "0004": ["SQ", "ReferencedBeamSequence"], "0006": ["IS", "ReferencedBeamNumber"], "0007": ["IS", "ReferencedReferenceImageNumber"], "0008": ["DS", "StartCumulativeMetersetWeight"], "0009": ["DS", "EndCumulativeMetersetWeight"], "000A": ["SQ", "ReferencedBrachyApplicationSetupSequence"], "000C": ["IS", "ReferencedBrachyApplicationSetupNumber"], "000E": ["IS", "ReferencedSourceNumber"], "0020": ["SQ", "ReferencedFractionGroupSequence"], "0022": ["IS", "ReferencedFractionGroupNumber"], "0040": ["SQ", "ReferencedVerificationImageSequence"], "0042": ["SQ", "ReferencedReferenceImageSequence"], "0050": ["SQ", "ReferencedDoseReferenceSequence"], "0051": ["IS", "ReferencedDoseReferenceNumber"], "0055": ["SQ", "BrachyReferencedDoseReferenceSequence"], "0060": ["SQ", "ReferencedStructureSetSequence"], "006A": ["IS", "ReferencedPatientSetupNumber"], "0080": ["SQ", "ReferencedDoseSequence"], "00A0": ["IS", "ReferencedToleranceTableNumber"], "00B0": ["SQ", "ReferencedBolusSequence"], "00C0": ["IS", "ReferencedWedgeNumber"], "00D0": ["IS", "ReferencedCompensatorNumber"], "00E0": ["IS", "ReferencedBlockNumber"], "00F0": ["IS", "ReferencedControlPointIndex"], "00F2": ["SQ", "ReferencedControlPointSequence"], "00F4": ["IS", "ReferencedStartControlPointIndex"], "00F6": ["IS", "ReferencedStopControlPointIndex"], "0100": ["IS", "ReferencedRangeShifterNumber"], "0102": ["IS", "ReferencedLateralSpreadingDeviceNumber"], "0104": ["IS", "ReferencedRangeModulatorNumber"] }, "300E": { "0002": ["CS", "ApprovalStatus"], "0004": ["DA", "ReviewDate"], "0005": ["TM", "ReviewTime"], "0008": ["PN", "ReviewerName"] }, "4000": { "0010": ["LT", "Arbitrary"], "4000": ["LT", "TextComments"] }, "4008": { "0040": ["SH", "ResultsID"], "0042": ["LO", "ResultsIDIssuer"], "0050": ["SQ", "ReferencedInterpretationSequence"], "00FF": ["CS", "ReportProductionStatusTrial"], "0100": ["DA", "InterpretationRecordedDate"], "0101": ["TM", "InterpretationRecordedTime"], "0102": ["PN", "InterpretationRecorder"], "0103": ["LO", "ReferenceToRecordedSound"], "0108": ["DA", "InterpretationTranscriptionDate"], "0109": ["TM", "InterpretationTranscriptionTime"], "010A": ["PN", "InterpretationTranscriber"], "010B": ["ST", "InterpretationText"], "010C": ["PN", "InterpretationAuthor"], "0111": ["SQ", "InterpretationApproverSequence"], "0112": ["DA", "InterpretationApprovalDate"], "0113": ["TM", "InterpretationApprovalTime"], "0114": ["PN", "PhysicianApprovingInterpretation"], "0115": ["LT", "InterpretationDiagnosisDescription"], "0117": ["SQ", "InterpretationDiagnosisCodeSequence"], "0118": ["SQ", "ResultsDistributionListSequence"], "0119": ["PN", "DistributionName"], "011A": ["LO", "DistributionAddress"], "0200": ["SH", "InterpretationID"], "0202": ["LO", "InterpretationIDIssuer"], "0210": ["CS", "InterpretationTypeID"], "0212": ["CS", "InterpretationStatusID"], "0300": ["ST", "Impressions"], "4000": ["ST", "ResultsComments"] }, "4010": { "0001": ["CS", "LowEnergyDetectors"], "0002": ["CS", "HighEnergyDetectors"], "0004": ["SQ", "DetectorGeometrySequence"], "1001": ["SQ", "ThreatROIVoxelSequence"], "1004": ["FL", "ThreatROIBase"], "1005": ["FL", "ThreatROIExtents"], "1006": ["OB", "ThreatROIBitmap"], "1007": ["SH", "RouteSegmentID"], "1008": ["CS", "GantryType"], "1009": ["CS", "OOIOwnerType"], "100A": ["SQ", "RouteSegmentSequence"], "1010": ["US", "PotentialThreatObjectID"], "1011": ["SQ", "ThreatSequence"], "1012": ["CS", "ThreatCategory"], "1013": ["LT", "ThreatCategoryDescription"], "1014": ["CS", "ATDAbilityAssessment"], "1015": ["CS", "ATDAssessmentFlag"], "1016": ["FL", "ATDAssessmentProbability"], "1017": ["FL", "Mass"], "1018": ["FL", "Density"], "1019": ["FL", "ZEffective"], "101A": ["SH", "BoardingPassID"], "101B": ["FL", "CenterOfMass"], "101C": ["FL", "CenterOfPTO"], "101D": ["FL", "BoundingPolygon"], "101E": ["SH", "RouteSegmentStartLocationID"], "101F": ["SH", "RouteSegmentEndLocationID"], "1020": ["CS", "RouteSegmentLocationIDType"], "1021": ["CS", "AbortReason"], "1023": ["FL", "VolumeOfPTO"], "1024": ["CS", "AbortFlag"], "1025": ["DT", "RouteSegmentStartTime"], "1026": ["DT", "RouteSegmentEndTime"], "1027": ["CS", "TDRType"], "1028": ["CS", "InternationalRouteSegment"], "1029": ["LO", "ThreatDetectionAlgorithmandVersion"], "102A": ["SH", "AssignedLocation"], "102B": ["DT", "AlarmDecisionTime"], "1031": ["CS", "AlarmDecision"], "1033": ["US", "NumberOfTotalObjects"], "1034": ["US", "NumberOfAlarmObjects"], "1037": ["SQ", "PTORepresentationSequence"], "1038": ["SQ", "ATDAssessmentSequence"], "1039": ["CS", "TIPType"], "103A": ["CS", "DICOSVersion"], "1041": ["DT", "OOIOwnerCreationTime"], "1042": ["CS", "OOIType"], "1043": ["FL", "OOISize"], "1044": ["CS", "AcquisitionStatus"], "1045": ["SQ", "BasisMaterialsCodeSequence"], "1046": ["CS", "PhantomType"], "1047": ["SQ", "OOIOwnerSequence"], "1048": ["CS", "ScanType"], "1051": ["LO", "ItineraryID"], "1052": ["SH", "ItineraryIDType"], "1053": ["LO", "ItineraryIDAssigningAuthority"], "1054": ["SH", "RouteID"], "1055": ["SH", "RouteIDAssigningAuthority"], "1056": ["CS", "InboundArrivalType"], "1058": ["SH", "CarrierID"], "1059": ["CS", "CarrierIDAssigningAuthority"], "1060": ["FL", "SourceOrientation"], "1061": ["FL", "SourcePosition"], "1062": ["FL", "BeltHeight"], "1064": ["SQ", "AlgorithmRoutingCodeSequence"], "1067": ["CS", "TransportClassification"], "1068": ["LT", "OOITypeDescriptor"], "1069": ["FL", "TotalProcessingTime"], "106C": ["OB", "DetectorCalibrationData"] } }; daikon2.Dictionary.getVR = function(group, element) { var vr, elementData, groupData; groupData = daikon2.Dictionary.dict[daikon2.Utils.dec2hex(group)]; if (groupData) { elementData = groupData[daikon2.Utils.dec2hex(element)]; if (elementData) { vr = elementData[0]; } else if (element === 0) { vr = "UL"; } } if (!vr) { groupData = daikon2.Dictionary.dictPrivate[daikon2.Utils.dec2hex(group)]; if (groupData) { elementData = groupData[daikon2.Utils.dec2hex(element)]; if (elementData) { vr = elementData[0]; } } } if (!vr) { vr = "OB"; } return vr; }; daikon2.Dictionary.getDescription = function(group, element) { var des, elementData, groupData; groupData = daikon2.Dictionary.dict[daikon2.Utils.dec2hex(group)]; if (groupData) { elementData = groupData[daikon2.Utils.dec2hex(element)]; if (elementData) { des = elementData[1]; } else if (element === 0) { des = "Group " + daikon2.Utils.dec2hex(group) + " Length"; } } if (!des) { groupData = daikon2.Dictionary.dictPrivate[daikon2.Utils.dec2hex(group)]; if (groupData) { elementData = groupData[daikon2.Utils.dec2hex(element)]; if (elementData) { des = elementData[1]; } } } if (!des) { des = "PrivateData"; } return des; }; var moduleType3 = typeof module2; if (moduleType3 !== "undefined" && module2.exports) { module2.exports = daikon2.Dictionary; } } }); // node_modules/cssfilter/lib/default.js var require_default = __commonJS({ "node_modules/cssfilter/lib/default.js"(exports2) { function getDefaultWhiteList() { var whiteList = {}; whiteList["align-content"] = false; whiteList["align-items"] = false; whiteList["align-self"] = false; whiteList["alignment-adjust"] = false; whiteList["alignment-baseline"] = false; whiteList["all"] = false; whiteList["anchor-point"] = false; whiteList["animation"] = false; whiteList["animation-delay"] = false; whiteList["animation-direction"] = false; whiteList["animation-duration"] = false; whiteList["animation-fill-mode"] = false; whiteList["animation-iteration-count"] = false; whiteList["animation-name"] = false; whiteList["animation-play-state"] = false; whiteList["animation-timing-function"] = false; whiteList["azimuth"] = false; whiteList["backface-visibility"] = false; whiteList["background"] = true; whiteList["background-attachment"] = true; whiteList["background-clip"] = true; whiteList["background-color"] = true; whiteList["background-image"] = true; whiteList["background-origin"] = true; whiteList["background-position"] = true; whiteList["background-repeat"] = true; whiteList["background-size"] = true; whiteList["baseline-shift"] = false; whiteList["binding"] = false; whiteList["bleed"] = false; whiteList["bookmark-label"] = false; whiteList["bookmark-level"] = false; whiteList["bookmark-state"] = false; whiteList["border"] = true; whiteList["border-bottom"] = true; whiteList["border-bottom-color"] = true; whiteList["border-bottom-left-radius"] = true; whiteList["border-bottom-right-radius"] = true; whiteList["border-bottom-style"] = true; whiteList["border-bottom-width"] = true; whiteList["border-collapse"] = true; whiteList["border-color"] = true; whiteList["border-image"] = true; whiteList["border-image-outset"] = true; whiteList["border-image-repeat"] = true; whiteList["border-image-slice"] = true; whiteList["border-image-source"] = true; whiteList["border-image-width"] = true; whiteList["border-left"] = true; whiteList["border-left-color"] = true; whiteList["border-left-style"] = true; whiteList["border-left-width"] = true; whiteList["border-radius"] = true; whiteList["border-right"] = true; whiteList["border-right-color"] = true; whiteList["border-right-style"] = true; whiteList["border-right-width"] = true; whiteList["border-spacing"] = true; whiteList["border-style"] = true; whiteList["border-top"] = true; whiteList["border-top-color"] = true; whiteList["border-top-left-radius"] = true; whiteList["border-top-right-radius"] = true; whiteList["border-top-style"] = true; whiteList["border-top-width"] = true; whiteList["border-width"] = true; whiteList["bottom"] = false; whiteList["box-decoration-break"] = true; whiteList["box-shadow"] = true; whiteList["box-sizing"] = true; whiteList["box-snap"] = true; whiteList["box-suppress"] = true; whiteList["break-after"] = true; whiteList["break-before"] = true; whiteList["break-inside"] = true; whiteList["caption-side"] = false; whiteList["chains"] = false; whiteList["clear"] = true; whiteList["clip"] = false; whiteList["clip-path"] = false; whiteList["clip-rule"] = false; whiteList["color"] = true; whiteList["color-interpolation-filters"] = true; whiteList["column-count"] = false; whiteList["column-fill"] = false; whiteList["column-gap"] = false; whiteList["column-rule"] = false; whiteList["column-rule-color"] = false; whiteList["column-rule-style"] = false; whiteList["column-rule-width"] = false; whiteList["column-span"] = false; whiteList["column-width"] = false; whiteList["columns"] = false; whiteList["contain"] = false; whiteList["content"] = false; whiteList["counter-increment"] = false; whiteList["counter-reset"] = false; whiteList["counter-set"] = false; whiteList["crop"] = false; whiteList["cue"] = false; whiteList["cue-after"] = false; whiteList["cue-before"] = false; whiteList["cursor"] = false; whiteList["direction"] = false; whiteList["display"] = true; whiteList["display-inside"] = true; whiteList["display-list"] = true; whiteList["display-outside"] = true; whiteList["dominant-baseline"] = false; whiteList["elevation"] = false; whiteList["empty-cells"] = false; whiteList["filter"] = false; whiteList["flex"] = false; whiteList["flex-basis"] = false; whiteList["flex-direction"] = false; whiteList["flex-flow"] = false; whiteList["flex-grow"] = false; whiteList["flex-shrink"] = false; whiteList["flex-wrap"] = false; whiteList["float"] = false; whiteList["float-offset"] = false; whiteList["flood-color"] = false; whiteList["flood-opacity"] = false; whiteList["flow-from"] = false; whiteList["flow-into"] = false; whiteList["font"] = true; whiteList["font-family"] = true; whiteList["font-feature-settings"] = true; whiteList["font-kerning"] = true; whiteList["font-language-override"] = true; whiteList["font-size"] = true; whiteList["font-size-adjust"] = true; whiteList["font-stretch"] = true; whiteList["font-style"] = true; whiteList["font-synthesis"] = true; whiteList["font-variant"] = true; whiteList["font-variant-alternates"] = true; whiteList["font-variant-caps"] = true; whiteList["font-variant-east-asian"] = true; whiteList["font-variant-ligatures"] = true; whiteList["font-variant-numeric"] = true; whiteList["font-variant-position"] = true; whiteList["font-weight"] = true; whiteList["grid"] = false; whiteList["grid-area"] = false; whiteList["grid-auto-columns"] = false; whiteList["grid-auto-flow"] = false; whiteList["grid-auto-rows"] = false; whiteList["grid-column"] = false; whiteList["grid-column-end"] = false; whiteList["grid-column-start"] = false; whiteList["grid-row"] = false; whiteList["grid-row-end"] = false; whiteList["grid-row-start"] = false; whiteList["grid-template"] = false; whiteList["grid-template-areas"] = false; whiteList["grid-template-columns"] = false; whiteList["grid-template-rows"] = false; whiteList["hanging-punctuation"] = false; whiteList["height"] = true; whiteList["hyphens"] = false; whiteList["icon"] = false; whiteList["image-orientation"] = false; whiteList["image-resolution"] = false; whiteList["ime-mode"] = false; whiteList["initial-letters"] = false; whiteList["inline-box-align"] = false; whiteList["justify-content"] = false; whiteList["justify-items"] = false; whiteList["justify-self"] = false; whiteList["left"] = false; whiteList["letter-spacing"] = true; whiteList["lighting-color"] = true; whiteList["line-box-contain"] = false; whiteList["line-break"] = false; whiteList["line-grid"] = false; whiteList["line-height"] = false; whiteList["line-snap"] = false; whiteList["line-stacking"] = false; whiteList["line-stacking-ruby"] = false; whiteList["line-stacking-shift"] = false; whiteList["line-stacking-strategy"] = false; whiteList["list-style"] = true; whiteList["list-style-image"] = true; whiteList["list-style-position"] = true; whiteList["list-style-type"] = true; whiteList["margin"] = true; whiteList["margin-bottom"] = true; whiteList["margin-left"] = true; whiteList["margin-right"] = true; whiteList["margin-top"] = true; whiteList["marker-offset"] = false; whiteList["marker-side"] = false; whiteList["marks"] = false; whiteList["mask"] = false; whiteList["mask-box"] = false; whiteList["mask-box-outset"] = false; whiteList["mask-box-repeat"] = false; whiteList["mask-box-slice"] = false; whiteList["mask-box-source"] = false; whiteList["mask-box-width"] = false; whiteList["mask-clip"] = false; whiteList["mask-image"] = false; whiteList["mask-origin"] = false; whiteList["mask-position"] = false; whiteList["mask-repeat"] = false; whiteList["mask-size"] = false; whiteList["mask-source-type"] = false; whiteList["mask-type"] = false; whiteList["max-height"] = true; whiteList["max-lines"] = false; whiteList["max-width"] = true; whiteList["min-height"] = true; whiteList["min-width"] = true; whiteList["move-to"] = false; whiteList["nav-down"] = false; whiteList["nav-index"] = false; whiteList["nav-left"] = false; whiteList["nav-right"] = false; whiteList["nav-up"] = false; whiteList["object-fit"] = false; whiteList["object-position"] = false; whiteList["opacity"] = false; whiteList["order"] = false; whiteList["orphans"] = false; whiteList["outline"] = false; whiteList["outline-color"] = false; whiteList["outline-offset"] = false; whiteList["outline-style"] = false; whiteList["outline-width"] = false; whiteList["overflow"] = false; whiteList["overflow-wrap"] = false; whiteList["overflow-x"] = false; whiteList["overflow-y"] = false; whiteList["padding"] = true; whiteList["padding-bottom"] = true; whiteList["padding-left"] = true; whiteList["padding-right"] = true; whiteList["padding-top"] = true; whiteList["page"] = false; whiteList["page-break-after"] = false; whiteList["page-break-before"] = false; whiteList["page-break-inside"] = false; whiteList["page-policy"] = false; whiteList["pause"] = false; whiteList["pause-after"] = false; whiteList["pause-before"] = false; whiteList["perspective"] = false; whiteList["perspective-origin"] = false; whiteList["pitch"] = false; whiteList["pitch-range"] = false; whiteList["play-during"] = false; whiteList["position"] = false; whiteList["presentation-level"] = false; whiteList["quotes"] = false; whiteList["region-fragment"] = false; whiteList["resize"] = false; whiteList["rest"] = false; whiteList["rest-after"] = false; whiteList["rest-before"] = false; whiteList["richness"] = false; whiteList["right"] = false; whiteList["rotation"] = false; whiteList["rotation-point"] = false; whiteList["ruby-align"] = false; whiteList["ruby-merge"] = false; whiteList["ruby-position"] = false; whiteList["shape-image-threshold"] = false; whiteList["shape-outside"] = false; whiteList["shape-margin"] = false; whiteList["size"] = false; whiteList["speak"] = false; whiteList["speak-as"] = false; whiteList["speak-header"] = false; whiteList["speak-numeral"] = false; whiteList["speak-punctuation"] = false; whiteList["speech-rate"] = false; whiteList["stress"] = false; whiteList["string-set"] = false; whiteList["tab-size"] = false; whiteList["table-layout"] = false; whiteList["text-align"] = true; whiteList["text-align-last"] = true; whiteList["text-combine-upright"] = true; whiteList["text-decoration"] = true; whiteList["text-decoration-color"] = true; whiteList["text-decoration-line"] = true; whiteList["text-decoration-skip"] = true; whiteList["text-decoration-style"] = true; whiteList["text-emphasis"] = true; whiteList["text-emphasis-color"] = true; whiteList["text-emphasis-position"] = true; whiteList["text-emphasis-style"] = true; whiteList["text-height"] = true; whiteList["text-indent"] = true; whiteList["text-justify"] = true; whiteList["text-orientation"] = true; whiteList["text-overflow"] = true; whiteList["text-shadow"] = true; whiteList["text-space-collapse"] = true; whiteList["text-transform"] = true; whiteList["text-underline-position"] = true; whiteList["text-wrap"] = true; whiteList["top"] = false; whiteList["transform"] = false; whiteList["transform-origin"] = false; whiteList["transform-style"] = false; whiteList["transition"] = false; whiteList["transition-delay"] = false; whiteList["transition-duration"] = false; whiteList["transition-property"] = false; whiteList["transition-timing-function"] = false; whiteList["unicode-bidi"] = false; whiteList["vertical-align"] = false; whiteList["visibility"] = false; whiteList["voice-balance"] = false; whiteList["voice-duration"] = false; whiteList["voice-family"] = false; whiteList["voice-pitch"] = false; whiteList["voice-range"] = false; whiteList["voice-rate"] = false; whiteList["voice-stress"] = false; whiteList["voice-volume"] = false; whiteList["volume"] = false; whiteList["white-space"] = false; whiteList["widows"] = false; whiteList["width"] = true; whiteList["will-change"] = false; whiteList["word-break"] = true; whiteList["word-spacing"] = true; whiteList["word-wrap"] = true; whiteList["wrap-flow"] = false; whiteList["wrap-through"] = false; whiteList["writing-mode"] = false; whiteList["z-index"] = false; return whiteList; } function onAttr(name, value, options) { } function onIgnoreAttr(name, value, options) { } var REGEXP_URL_JAVASCRIPT = /javascript\s*\:/img; function safeAttrValue(name, value) { if (REGEXP_URL_JAVASCRIPT.test(value)) return ""; return value; } exports2.whiteList = getDefaultWhiteList(); exports2.getDefaultWhiteList = getDefaultWhiteList; exports2.onAttr = onAttr; exports2.onIgnoreAttr = onIgnoreAttr; exports2.safeAttrValue = safeAttrValue; } }); // node_modules/cssfilter/lib/util.js var require_util = __commonJS({ "node_modules/cssfilter/lib/util.js"(exports2, module2) { module2.exports = { indexOf: function(arr, item) { var i2, j; if (Array.prototype.indexOf) { return arr.indexOf(item); } for (i2 = 0, j = arr.length; i2 < j; i2++) { if (arr[i2] === item) { return i2; } } return -1; }, forEach: function(arr, fn, scope) { var i2, j; if (Array.prototype.forEach) { return arr.forEach(fn, scope); } for (i2 = 0, j = arr.length; i2 < j; i2++) { fn.call(scope, arr[i2], i2, arr); } }, trim: function(str) { if (String.prototype.trim) { return str.trim(); } return str.replace(/(^\s*)|(\s*$)/g, ""); }, trimRight: function(str) { if (String.prototype.trimRight) { return str.trimRight(); } return str.replace(/(\s*$)/g, ""); } }; } }); // node_modules/cssfilter/lib/parser.js var require_parser = __commonJS({ "node_modules/cssfilter/lib/parser.js"(exports2, module2) { var _ = require_util(); function parseStyle(css, onAttr) { css = _.trimRight(css); if (css[css.length - 1] !== ";") css += ";"; var cssLength = css.length; var isParenthesisOpen = false; var lastPos = 0; var i2 = 0; var retCSS = ""; function addNewAttr() { if (!isParenthesisOpen) { var source = _.trim(css.slice(lastPos, i2)); var j2 = source.indexOf(":"); if (j2 !== -1) { var name = _.trim(source.slice(0, j2)); var value = _.trim(source.slice(j2 + 1)); if (name) { var ret = onAttr(lastPos, retCSS.length, name, value, source); if (ret) retCSS += ret + "; "; } } } lastPos = i2 + 1; } for (; i2 < cssLength; i2++) { var c = css[i2]; if (c === "/" && css[i2 + 1] === "*") { var j = css.indexOf("*/", i2 + 2); if (j === -1) break; i2 = j + 1; lastPos = i2 + 1; isParenthesisOpen = false; } else if (c === "(") { isParenthesisOpen = true; } else if (c === ")") { isParenthesisOpen = false; } else if (c === ";") { if (isParenthesisOpen) { } else { addNewAttr(); } } else if (c === "\n") { addNewAttr(); } } return _.trim(retCSS); } module2.exports = parseStyle; } }); // node_modules/cssfilter/lib/css.js var require_css = __commonJS({ "node_modules/cssfilter/lib/css.js"(exports2, module2) { var DEFAULT = require_default(); var parseStyle = require_parser(); var _ = require_util(); function isNull(obj) { return obj === void 0 || obj === null; } function shallowCopyObject(obj) { var ret = {}; for (var i2 in obj) { ret[i2] = obj[i2]; } return ret; } function FilterCSS(options) { options = shallowCopyObject(options || {}); options.whiteList = options.whiteList || DEFAULT.whiteList; options.onAttr = options.onAttr || DEFAULT.onAttr; options.onIgnoreAttr = options.onIgnoreAttr || DEFAULT.onIgnoreAttr; options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue; this.options = options; } FilterCSS.prototype.process = function(css) { css = css || ""; css = css.toString(); if (!css) return ""; var me = this; var options = me.options; var whiteList = options.whiteList; var onAttr = options.onAttr; var onIgnoreAttr = options.onIgnoreAttr; var safeAttrValue = options.safeAttrValue; var retCSS = parseStyle(css, function(sourcePosition, position, name, value, source) { var check = whiteList[name]; var isWhite = false; if (check === true) isWhite = check; else if (typeof check === "function") isWhite = check(value); else if (check instanceof RegExp) isWhite = check.test(value); if (isWhite !== true) isWhite = false; value = safeAttrValue(name, value); if (!value) return; var opts = { position, sourcePosition, source, isWhite }; if (isWhite) { var ret = onAttr(name, value, opts); if (isNull(ret)) { return name + ":" + value; } else { return ret; } } else { var ret = onIgnoreAttr(name, value, opts); if (!isNull(ret)) { return ret; } } }); return retCSS; }; module2.exports = FilterCSS; } }); // node_modules/cssfilter/lib/index.js var require_lib = __commonJS({ "node_modules/cssfilter/lib/index.js"(exports2, module2) { var DEFAULT = require_default(); var FilterCSS = require_css(); function filterCSS(html, options) { var xss = new FilterCSS(options); return xss.process(html); } exports2 = module2.exports = filterCSS; exports2.FilterCSS = FilterCSS; for (i2 in DEFAULT) exports2[i2] = DEFAULT[i2]; var i2; if (typeof window !== "undefined") { window.filterCSS = module2.exports; } } }); // node_modules/xss/lib/util.js var require_util2 = __commonJS({ "node_modules/xss/lib/util.js"(exports2, module2) { module2.exports = { indexOf: function(arr, item) { var i2, j; if (Array.prototype.indexOf) { return arr.indexOf(item); } for (i2 = 0, j = arr.length; i2 < j; i2++) { if (arr[i2] === item) { return i2; } } return -1; }, forEach: function(arr, fn, scope) { var i2, j; if (Array.prototype.forEach) { return arr.forEach(fn, scope); } for (i2 = 0, j = arr.length; i2 < j; i2++) { fn.call(scope, arr[i2], i2, arr); } }, trim: function(str) { if (String.prototype.trim) { return str.trim(); } return str.replace(/(^\s*)|(\s*$)/g, ""); }, spaceIndex: function(str) { var reg = /\s|\n|\t/; var match = reg.exec(str); return match ? match.index : -1; } }; } }); // node_modules/xss/lib/default.js var require_default2 = __commonJS({ "node_modules/xss/lib/default.js"(exports2) { var FilterCSS = require_lib().FilterCSS; var getDefaultCSSWhiteList = require_lib().getDefaultWhiteList; var _ = require_util2(); function getDefaultWhiteList() { return { a: ["target", "href", "title"], abbr: ["title"], address: [], area: ["shape", "coords", "href", "alt"], article: [], aside: [], audio: [ "autoplay", "controls", "crossorigin", "loop", "muted", "preload", "src" ], b: [], bdi: ["dir"], bdo: ["dir"], big: [], blockquote: ["cite"], br: [], caption: [], center: [], cite: [], code: [], col: ["align", "valign", "span", "width"], colgroup: ["align", "valign", "span", "width"], dd: [], del: ["datetime"], details: ["open"], div: [], dl: [], dt: [], em: [], figcaption: [], figure: [], font: ["color", "size", "face"], footer: [], h1: [], h2: [], h3: [], h4: [], h5: [], h6: [], header: [], hr: [], i: [], img: ["src", "alt", "title", "width", "height"], ins: ["datetime"], li: [], mark: [], nav: [], ol: [], p: [], pre: [], s: [], section: [], small: [], span: [], sub: [], summary: [], sup: [], strong: [], strike: [], table: ["width", "border", "align", "valign"], tbody: ["align", "valign"], td: ["width", "rowspan", "colspan", "align", "valign"], tfoot: ["align", "valign"], th: ["width", "rowspan", "colspan", "align", "valign"], thead: ["align", "valign"], tr: ["rowspan", "align", "valign"], tt: [], u: [], ul: [], video: [ "autoplay", "controls", "crossorigin", "loop", "muted", "playsinline", "poster", "preload", "src", "height", "width" ] }; } var defaultCSSFilter = new FilterCSS(); function onTag(tag, html, options) { } function onIgnoreTag(tag, html, options) { } function onTagAttr(tag, name, value) { } function onIgnoreTagAttr(tag, name, value) { } function escapeHtml(html) { return html.replace(REGEXP_LT, "<").replace(REGEXP_GT, ">"); } function safeAttrValue(tag, name, value, cssFilter) { value = friendlyAttrValue(value); if (name === "href" || name === "src") { value = _.trim(value); if (value === "#") return "#"; if (!(value.substr(0, 7) === "http://" || value.substr(0, 8) === "https://" || value.substr(0, 7) === "mailto:" || value.substr(0, 4) === "tel:" || value.substr(0, 11) === "data:image/" || value.substr(0, 6) === "ftp://" || value.substr(0, 2) === "./" || value.substr(0, 3) === "../" || value[0] === "#" || value[0] === "/")) { return ""; } } else if (name === "background") { REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0; if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) { return ""; } } else if (name === "style") { REGEXP_DEFAULT_ON_TAG_ATTR_7.lastIndex = 0; if (REGEXP_DEFAULT_ON_TAG_ATTR_7.test(value)) { return ""; } REGEXP_DEFAULT_ON_TAG_ATTR_8.lastIndex = 0; if (REGEXP_DEFAULT_ON_TAG_ATTR_8.test(value)) { REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0; if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) { return ""; } } if (cssFilter !== false) { cssFilter = cssFilter || defaultCSSFilter; value = cssFilter.process(value); } } value = escapeAttrValue(value); return value; } var REGEXP_LT = //g; var REGEXP_QUOTE = /"/g; var REGEXP_QUOTE_2 = /"/g; var REGEXP_ATTR_VALUE_1 = /&#([a-zA-Z0-9]*);?/gim; var REGEXP_ATTR_VALUE_COLON = /:?/gim; var REGEXP_ATTR_VALUE_NEWLINE = /&newline;?/gim; var REGEXP_DEFAULT_ON_TAG_ATTR_4 = /((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a):/gi; var REGEXP_DEFAULT_ON_TAG_ATTR_7 = /e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi; var REGEXP_DEFAULT_ON_TAG_ATTR_8 = /u\s*r\s*l\s*\(.*/gi; function escapeQuote(str) { return str.replace(REGEXP_QUOTE, """); } function unescapeQuote(str) { return str.replace(REGEXP_QUOTE_2, '"'); } function escapeHtmlEntities(str) { return str.replace(REGEXP_ATTR_VALUE_1, function replaceUnicode(str2, code) { return code[0] === "x" || code[0] === "X" ? String.fromCharCode(parseInt(code.substr(1), 16)) : String.fromCharCode(parseInt(code, 10)); }); } function escapeDangerHtml5Entities(str) { return str.replace(REGEXP_ATTR_VALUE_COLON, ":").replace(REGEXP_ATTR_VALUE_NEWLINE, " "); } function clearNonPrintableCharacter(str) { var str2 = ""; for (var i2 = 0, len = str.length; i2 < len; i2++) { str2 += str.charCodeAt(i2) < 32 ? " " : str.charAt(i2); } return _.trim(str2); } function friendlyAttrValue(str) { str = unescapeQuote(str); str = escapeHtmlEntities(str); str = escapeDangerHtml5Entities(str); str = clearNonPrintableCharacter(str); return str; } function escapeAttrValue(str) { str = escapeQuote(str); str = escapeHtml(str); return str; } function onIgnoreTagStripAll() { return ""; } function StripTagBody(tags, next) { if (typeof next !== "function") { next = function() { }; } var isRemoveAllTag = !Array.isArray(tags); function isRemoveTag(tag) { if (isRemoveAllTag) return true; return _.indexOf(tags, tag) !== -1; } var removeList = []; var posStart = false; return { onIgnoreTag: function(tag, html, options) { if (isRemoveTag(tag)) { if (options.isClosing) { var ret = "[/removed]"; var end = options.position + ret.length; removeList.push([ posStart !== false ? posStart : options.position, end ]); posStart = false; return ret; } else { if (!posStart) { posStart = options.position; } return "[removed]"; } } else { return next(tag, html, options); } }, remove: function(html) { var rethtml = ""; var lastPos = 0; _.forEach(removeList, function(pos) { rethtml += html.slice(lastPos, pos[0]); lastPos = pos[1]; }); rethtml += html.slice(lastPos); return rethtml; } }; } function stripCommentTag(html) { var retHtml = ""; var lastPos = 0; while (lastPos < html.length) { var i2 = html.indexOf("", i2); if (j === -1) { break; } lastPos = j + 3; } return retHtml; } function stripBlankChar(html) { var chars = html.split(""); chars = chars.filter(function(char) { var c = char.charCodeAt(0); if (c === 127) return false; if (c <= 31) { if (c === 10 || c === 13) return true; return false; } return true; }); return chars.join(""); } exports2.whiteList = getDefaultWhiteList(); exports2.getDefaultWhiteList = getDefaultWhiteList; exports2.onTag = onTag; exports2.onIgnoreTag = onIgnoreTag; exports2.onTagAttr = onTagAttr; exports2.onIgnoreTagAttr = onIgnoreTagAttr; exports2.safeAttrValue = safeAttrValue; exports2.escapeHtml = escapeHtml; exports2.escapeQuote = escapeQuote; exports2.unescapeQuote = unescapeQuote; exports2.escapeHtmlEntities = escapeHtmlEntities; exports2.escapeDangerHtml5Entities = escapeDangerHtml5Entities; exports2.clearNonPrintableCharacter = clearNonPrintableCharacter; exports2.friendlyAttrValue = friendlyAttrValue; exports2.escapeAttrValue = escapeAttrValue; exports2.onIgnoreTagStripAll = onIgnoreTagStripAll; exports2.StripTagBody = StripTagBody; exports2.stripCommentTag = stripCommentTag; exports2.stripBlankChar = stripBlankChar; exports2.cssFilter = defaultCSSFilter; exports2.getDefaultCSSWhiteList = getDefaultCSSWhiteList; } }); // node_modules/xss/lib/parser.js var require_parser2 = __commonJS({ "node_modules/xss/lib/parser.js"(exports2) { var _ = require_util2(); function getTagName(html) { var i2 = _.spaceIndex(html); var tagName; if (i2 === -1) { tagName = html.slice(1, -1); } else { tagName = html.slice(1, i2 + 1); } tagName = _.trim(tagName).toLowerCase(); if (tagName.slice(0, 1) === "/") tagName = tagName.slice(1); if (tagName.slice(-1) === "/") tagName = tagName.slice(0, -1); return tagName; } function isClosing(html) { return html.slice(0, 2) === "" || currentPos === len - 1) { rethtml += escapeHtml(html.slice(lastPos, tagStart)); currentHtml = html.slice(tagStart, currentPos + 1); currentTagName = getTagName(currentHtml); rethtml += onTag( tagStart, rethtml.length, currentTagName, currentHtml, isClosing(currentHtml) ); lastPos = currentPos + 1; tagStart = false; continue; } if (c === '"' || c === "'") { var i2 = 1; var ic = html.charAt(currentPos - i2); while (ic.trim() === "" || ic === "=") { if (ic === "=") { quoteStart = c; continue chariterator; } ic = html.charAt(currentPos - ++i2); } } } else { if (c === quoteStart) { quoteStart = false; continue; } } } } if (lastPos < len) { rethtml += escapeHtml(html.substr(lastPos)); } return rethtml; } var REGEXP_ILLEGAL_ATTR_NAME = /[^a-zA-Z0-9\\_:.-]/gim; function parseAttr(html, onAttr) { "use strict"; var lastPos = 0; var lastMarkPos = 0; var retAttrs = []; var tmpName = false; var len = html.length; function addAttr(name, value) { name = _.trim(name); name = name.replace(REGEXP_ILLEGAL_ATTR_NAME, "").toLowerCase(); if (name.length < 1) return; var ret = onAttr(name, value || ""); if (ret) retAttrs.push(ret); } for (var i2 = 0; i2 < len; i2++) { var c = html.charAt(i2); var v, j; if (tmpName === false && c === "=") { tmpName = html.slice(lastPos, i2); lastPos = i2 + 1; lastMarkPos = html.charAt(lastPos) === '"' || html.charAt(lastPos) === "'" ? lastPos : findNextQuotationMark(html, i2 + 1); continue; } if (tmpName !== false) { if (i2 === lastMarkPos) { j = html.indexOf(c, i2 + 1); if (j === -1) { break; } else { v = _.trim(html.slice(lastMarkPos + 1, j)); addAttr(tmpName, v); tmpName = false; i2 = j; lastPos = i2 + 1; continue; } } } if (/\s|\n|\t/.test(c)) { html = html.replace(/\s|\n|\t/g, " "); if (tmpName === false) { j = findNextEqual(html, i2); if (j === -1) { v = _.trim(html.slice(lastPos, i2)); addAttr(v); tmpName = false; lastPos = i2 + 1; continue; } else { i2 = j - 1; continue; } } else { j = findBeforeEqual(html, i2 - 1); if (j === -1) { v = _.trim(html.slice(lastPos, i2)); v = stripQuoteWrap(v); addAttr(tmpName, v); tmpName = false; lastPos = i2 + 1; continue; } else { continue; } } } } if (lastPos < html.length) { if (tmpName === false) { addAttr(html.slice(lastPos)); } else { addAttr(tmpName, stripQuoteWrap(_.trim(html.slice(lastPos)))); } } return _.trim(retAttrs.join(" ")); } function findNextEqual(str, i2) { for (; i2 < str.length; i2++) { var c = str[i2]; if (c === " ") continue; if (c === "=") return i2; return -1; } } function findNextQuotationMark(str, i2) { for (; i2 < str.length; i2++) { var c = str[i2]; if (c === " ") continue; if (c === "'" || c === '"') return i2; return -1; } } function findBeforeEqual(str, i2) { for (; i2 > 0; i2--) { var c = str[i2]; if (c === " ") continue; if (c === "=") return i2; return -1; } } function isQuoteWrapString(text) { if (text[0] === '"' && text[text.length - 1] === '"' || text[0] === "'" && text[text.length - 1] === "'") { return true; } else { return false; } } function stripQuoteWrap(text) { if (isQuoteWrapString(text)) { return text.substr(1, text.length - 2); } else { return text; } } exports2.parseTag = parseTag; exports2.parseAttr = parseAttr; } }); // node_modules/xss/lib/xss.js var require_xss = __commonJS({ "node_modules/xss/lib/xss.js"(exports2, module2) { var FilterCSS = require_lib().FilterCSS; var DEFAULT = require_default2(); var parser = require_parser2(); var parseTag = parser.parseTag; var parseAttr = parser.parseAttr; var _ = require_util2(); function isNull(obj) { return obj === void 0 || obj === null; } function getAttrs(html) { var i2 = _.spaceIndex(html); if (i2 === -1) { return { html: "", closing: html[html.length - 2] === "/" }; } html = _.trim(html.slice(i2 + 1, -1)); var isClosing = html[html.length - 1] === "/"; if (isClosing) html = _.trim(html.slice(0, -1)); return { html, closing: isClosing }; } function shallowCopyObject(obj) { var ret = {}; for (var i2 in obj) { ret[i2] = obj[i2]; } return ret; } function keysToLowerCase(obj) { var ret = {}; for (var i2 in obj) { if (Array.isArray(obj[i2])) { ret[i2.toLowerCase()] = obj[i2].map(function(item) { return item.toLowerCase(); }); } else { ret[i2.toLowerCase()] = obj[i2]; } } return ret; } function FilterXSS(options) { options = shallowCopyObject(options || {}); if (options.stripIgnoreTag) { if (options.onIgnoreTag) { console.error( 'Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time' ); } options.onIgnoreTag = DEFAULT.onIgnoreTagStripAll; } if (options.whiteList || options.allowList) { options.whiteList = keysToLowerCase(options.whiteList || options.allowList); } else { options.whiteList = DEFAULT.whiteList; } options.onTag = options.onTag || DEFAULT.onTag; options.onTagAttr = options.onTagAttr || DEFAULT.onTagAttr; options.onIgnoreTag = options.onIgnoreTag || DEFAULT.onIgnoreTag; options.onIgnoreTagAttr = options.onIgnoreTagAttr || DEFAULT.onIgnoreTagAttr; options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue; options.escapeHtml = options.escapeHtml || DEFAULT.escapeHtml; this.options = options; if (options.css === false) { this.cssFilter = false; } else { options.css = options.css || {}; this.cssFilter = new FilterCSS(options.css); } } FilterXSS.prototype.process = function(html) { html = html || ""; html = html.toString(); if (!html) return ""; var me = this; var options = me.options; var whiteList = options.whiteList; var onTag = options.onTag; var onIgnoreTag = options.onIgnoreTag; var onTagAttr = options.onTagAttr; var onIgnoreTagAttr = options.onIgnoreTagAttr; var safeAttrValue = options.safeAttrValue; var escapeHtml = options.escapeHtml; var cssFilter = me.cssFilter; if (options.stripBlankChar) { html = DEFAULT.stripBlankChar(html); } if (!options.allowCommentTag) { html = DEFAULT.stripCommentTag(html); } var stripIgnoreTagBody = false; if (options.stripIgnoreTagBody) { stripIgnoreTagBody = DEFAULT.StripTagBody( options.stripIgnoreTagBody, onIgnoreTag ); onIgnoreTag = stripIgnoreTagBody.onIgnoreTag; } var retHtml = parseTag( html, function(sourcePosition, position, tag, html2, isClosing) { var info = { sourcePosition, position, isClosing, isWhite: Object.prototype.hasOwnProperty.call(whiteList, tag) }; var ret = onTag(tag, html2, info); if (!isNull(ret)) return ret; if (info.isWhite) { if (info.isClosing) { return ""; } var attrs = getAttrs(html2); var whiteAttrList = whiteList[tag]; var attrsHtml = parseAttr(attrs.html, function(name, value) { var isWhiteAttr = _.indexOf(whiteAttrList, name) !== -1; var ret2 = onTagAttr(tag, name, value, isWhiteAttr); if (!isNull(ret2)) return ret2; if (isWhiteAttr) { value = safeAttrValue(tag, name, value, cssFilter); if (value) { return name + '="' + value + '"'; } else { return name; } } else { ret2 = onIgnoreTagAttr(tag, name, value, isWhiteAttr); if (!isNull(ret2)) return ret2; return; } }); html2 = "<" + tag; if (attrsHtml) html2 += " " + attrsHtml; if (attrs.closing) html2 += " /"; html2 += ">"; return html2; } else { ret = onIgnoreTag(tag, html2, info); if (!isNull(ret)) return ret; return escapeHtml(html2); } }, escapeHtml ); if (stripIgnoreTagBody) { retHtml = stripIgnoreTagBody.remove(retHtml); } return retHtml; }; module2.exports = FilterXSS; } }); // node_modules/xss/lib/index.js var require_lib2 = __commonJS({ "node_modules/xss/lib/index.js"(exports2, module2) { var DEFAULT = require_default2(); var parser = require_parser2(); var FilterXSS = require_xss(); function filterXSS(html, options) { var xss = new FilterXSS(options); return xss.process(html); } exports2 = module2.exports = filterXSS; exports2.filterXSS = filterXSS; exports2.FilterXSS = FilterXSS; (function() { for (var i2 in DEFAULT) { exports2[i2] = DEFAULT[i2]; } for (var j in parser) { exports2[j] = parser[j]; } })(); if (typeof window !== "undefined") { window.filterXSS = module2.exports; } function isWorkerEnv() { return typeof self !== "undefined" && typeof DedicatedWorkerGlobalScope !== "undefined" && self instanceof DedicatedWorkerGlobalScope; } if (isWorkerEnv()) { self.filterXSS = module2.exports; } } }); // src/siemens.js var require_siemens = __commonJS({ "src/siemens.js"(exports2, module2) { "use strict"; var daikon2 = daikon2 || {}; daikon2.Utils = daikon2.Utils || (typeof require !== "undefined" ? require_utilities() : null); daikon2.Siemens = daikon2.Siemens || function(buffer2) { this.output = ""; this.data = new DataView(buffer2, 0); }; daikon2.Siemens.CSA2_MAGIC_NUMBER = [83, 86, 49, 48]; daikon2.Siemens.NAME_LENGTH = 64; daikon2.Siemens.ELEMENT_CSA1 = 4112; daikon2.Siemens.ELEMENT_CSA2 = 4128; daikon2.Siemens.GROUP_CSA = 41; daikon2.Siemens.prototype.readHeader = function() { var ctr, match; try { if (this.data.byteLength > daikon2.Siemens.CSA2_MAGIC_NUMBER.length) { match = true; for (ctr = 0; ctr < daikon2.Siemens.CSA2_MAGIC_NUMBER.length; ctr += 1) { match &= this.data.getUint8(ctr) === daikon2.Siemens.CSA2_MAGIC_NUMBER[ctr]; } if (match) { this.readHeaderAtOffset(daikon2.Siemens.CSA2_MAGIC_NUMBER.length + 4); } else { this.readHeaderAtOffset(0); } } } catch (error) { console.log(error); } return this.output; }; daikon2.Siemens.prototype.readHeaderAtOffset = function(offset) { var numTags, ctr; this.output += "\n"; numTags = daikon2.Utils.swap32(this.data.getUint32(offset)); if (numTags < 1 || numTags > 128) { return this.output; } offset += 4; offset += 4; for (ctr = 0; ctr < numTags; ctr += 1) { offset = this.readTag(offset); if (offset === -1) { break; } } return this.output; }; daikon2.Siemens.prototype.readTag = function(offset) { var name, ctr, numItems; name = this.readString(offset, daikon2.Siemens.NAME_LENGTH); offset += daikon2.Siemens.NAME_LENGTH; offset += 4; offset += 4; offset += 4; numItems = daikon2.Utils.swap32(this.data.getUint32(offset)); offset += 4; offset += 4; this.output += " " + name + "="; for (ctr = 0; ctr < numItems; ctr += 1) { offset = this.readItem(offset); if (offset === -1) { break; } else if (offset % 4 !== 0) { offset += 4 - offset % 4; } } this.output += "\n"; return offset; }; daikon2.Siemens.prototype.readString = function(offset, length) { var char2, ctr, str = ""; for (ctr = 0; ctr < length; ctr += 1) { char2 = this.data.getUint8(offset + ctr); if (char2 === 0) { break; } str += String.fromCharCode(char2); } return str; }; daikon2.Siemens.prototype.readItem = function(offset) { var itemLength; itemLength = daikon2.Utils.swap32(this.data.getUint32(offset)); if (offset + itemLength > this.data.buffer.length) { return -1; } offset += 16; if (itemLength > 0) { this.output += this.readString(offset, itemLength) + " "; } return offset + itemLength; }; daikon2.Siemens.prototype.canRead = function(group, element) { return group === daikon2.Siemens.GROUP_CSA && (element === daikon2.Siemens.ELEMENT_CSA1 || element === daikon2.Siemens.ELEMENT_CSA2); }; var moduleType3 = typeof module2; if (moduleType3 !== "undefined" && module2.exports) { module2.exports = daikon2.Siemens; } } }); // src/tag.js var require_tag = __commonJS({ "src/tag.js"(exports2, module2) { "use strict"; var xss = require_lib2(); var daikon2 = daikon2 || {}; daikon2.Utils = daikon2.Utils || (typeof require !== "undefined" ? require_utilities() : null); daikon2.Dictionary = daikon2.Dictionary || (typeof require !== "undefined" ? require_dictionary() : null); daikon2.Siemens = daikon2.Siemens || (typeof require !== "undefined" ? require_siemens() : null); daikon2.Tag = daikon2.Tag || function(group, element, vr, value, offsetStart, offsetValue, offsetEnd, littleEndian, charset) { this.group = group; this.element = element; this.vr = vr; this.offsetStart = offsetStart; this.offsetValue = offsetValue; this.offsetEnd = offsetEnd; this.sublist = false; this.preformatted = false; this.id = daikon2.Tag.createId(group, element); if (value instanceof Array) { this.value = value; this.sublist = true; } else if (value !== null) { var dv = new DataView(value); this.value = daikon2.Tag.convertValue(vr, dv, littleEndian, charset); if (this.value === dv && this.isPrivateData()) { this.value = daikon2.Tag.convertPrivateValue(group, element, dv); this.preformatted = this.value !== dv; } } else { this.value = null; } }; daikon2.Tag.PRIVATE_DATA_READERS = [daikon2.Siemens]; daikon2.Tag.VR_AE_MAX_LENGTH = 16; daikon2.Tag.VR_AS_MAX_LENGTH = 4; daikon2.Tag.VR_AT_MAX_LENGTH = 4; daikon2.Tag.VR_CS_MAX_LENGTH = 16; daikon2.Tag.VR_DA_MAX_LENGTH = 8; daikon2.Tag.VR_DS_MAX_LENGTH = 16; daikon2.Tag.VR_DT_MAX_LENGTH = 26; daikon2.Tag.VR_FL_MAX_LENGTH = 4; daikon2.Tag.VR_FD_MAX_LENGTH = 8; daikon2.Tag.VR_IS_MAX_LENGTH = 12; daikon2.Tag.VR_LO_MAX_LENGTH = 64; daikon2.Tag.VR_LT_MAX_LENGTH = 10240; daikon2.Tag.VR_OB_MAX_LENGTH = -1; daikon2.Tag.VR_OD_MAX_LENGTH = -1; daikon2.Tag.VR_OF_MAX_LENGTH = -1; daikon2.Tag.VR_OW_MAX_LENGTH = -1; daikon2.Tag.VR_PN_MAX_LENGTH = 64 * 5; daikon2.Tag.VR_SH_MAX_LENGTH = 16; daikon2.Tag.VR_SL_MAX_LENGTH = 4; daikon2.Tag.VR_SS_MAX_LENGTH = 2; daikon2.Tag.VR_ST_MAX_LENGTH = 1024; daikon2.Tag.VR_TM_MAX_LENGTH = 16; daikon2.Tag.VR_UI_MAX_LENGTH = 64; daikon2.Tag.VR_UL_MAX_LENGTH = 4; daikon2.Tag.VR_UN_MAX_LENGTH = -1; daikon2.Tag.VR_US_MAX_LENGTH = 2; daikon2.Tag.VR_UT_MAX_LENGTH = -1; daikon2.Tag.VR_UC_MAX_LENGTH = -1; daikon2.Tag.TAG_TRANSFER_SYNTAX = [2, 16]; daikon2.Tag.TAG_META_LENGTH = [2, 0]; daikon2.Tag.TAG_SUBLIST_ITEM = [65534, 57344]; daikon2.Tag.TAG_SUBLIST_ITEM_DELIM = [65534, 57357]; daikon2.Tag.TAG_SUBLIST_SEQ_DELIM = [65534, 57565]; daikon2.Tag.TAG_ROWS = [40, 16]; daikon2.Tag.TAG_COLS = [40, 17]; daikon2.Tag.TAG_ACQUISITION_MATRIX = [24, 4880]; daikon2.Tag.TAG_NUMBER_OF_FRAMES = [40, 8]; daikon2.Tag.TAG_NUMBER_TEMPORAL_POSITIONS = [32, 261]; daikon2.Tag.TAG_PIXEL_SPACING = [40, 48]; daikon2.Tag.TAG_SLICE_THICKNESS = [24, 80]; daikon2.Tag.TAG_SLICE_GAP = [24, 136]; daikon2.Tag.TAG_TR = [24, 128]; daikon2.Tag.TAG_FRAME_TIME = [24, 4195]; daikon2.Tag.TAG_BITS_ALLOCATED = [40, 256]; daikon2.Tag.TAG_BITS_STORED = [40, 257]; daikon2.Tag.TAG_PIXEL_REPRESENTATION = [40, 259]; daikon2.Tag.TAG_HIGH_BIT = [40, 258]; daikon2.Tag.TAG_PHOTOMETRIC_INTERPRETATION = [40, 4]; daikon2.Tag.TAG_SAMPLES_PER_PIXEL = [40, 2]; daikon2.Tag.TAG_PLANAR_CONFIG = [40, 6]; daikon2.Tag.TAG_PALETTE_RED = [40, 4609]; daikon2.Tag.TAG_PALETTE_GREEN = [40, 4610]; daikon2.Tag.TAG_PALETTE_BLUE = [40, 4611]; daikon2.Tag.TAG_DATA_SCALE_SLOPE = [40, 4179]; daikon2.Tag.TAG_DATA_SCALE_INTERCEPT = [40, 4178]; daikon2.Tag.TAG_DATA_SCALE_ELSCINT = [519, 4127]; daikon2.Tag.TAG_PIXEL_BANDWIDTH = [24, 149]; daikon2.Tag.TAG_IMAGE_MIN = [40, 262]; daikon2.Tag.TAG_IMAGE_MAX = [40, 263]; daikon2.Tag.TAG_WINDOW_CENTER = [40, 4176]; daikon2.Tag.TAG_WINDOW_WIDTH = [40, 4177]; daikon2.Tag.TAG_SPECIFIC_CHAR_SET = [8, 5]; daikon2.Tag.TAG_PATIENT_NAME = [16, 16]; daikon2.Tag.TAG_PATIENT_ID = [16, 32]; daikon2.Tag.TAG_STUDY_DATE = [8, 32]; daikon2.Tag.TAG_STUDY_TIME = [8, 48]; daikon2.Tag.TAG_STUDY_DES = [8, 4144]; daikon2.Tag.TAG_IMAGE_TYPE = [8, 8]; daikon2.Tag.TAG_IMAGE_COMMENTS = [32, 16384]; daikon2.Tag.TAG_SEQUENCE_NAME = [24, 36]; daikon2.Tag.TAG_MODALITY = [8, 96]; daikon2.Tag.TAG_FRAME_OF_REF_UID = [32, 82]; daikon2.Tag.TAG_STUDY_UID = [32, 13]; daikon2.Tag.TAG_SERIES_DESCRIPTION = [8, 4158]; daikon2.Tag.TAG_SERIES_INSTANCE_UID = [32, 14]; daikon2.Tag.TAG_SERIES_NUMBER = [32, 17]; daikon2.Tag.TAG_ECHO_NUMBER = [24, 134]; daikon2.Tag.TAG_TEMPORAL_POSITION = [32, 256]; daikon2.Tag.TAG_IMAGE_NUM = [32, 19]; daikon2.Tag.TAG_SLICE_LOCATION = [32, 4161]; daikon2.Tag.TAG_IMAGE_ORIENTATION = [32, 55]; daikon2.Tag.TAG_IMAGE_POSITION = [32, 50]; daikon2.Tag.TAG_SLICE_LOCATION_VECTOR = [24, 8197]; daikon2.Tag.TAG_LUT_SHAPE = [8272, 32]; daikon2.Tag.TAG_PIXEL_DATA = [32736, 16]; daikon2.Tag.createId = function(group, element) { var groupStr = daikon2.Utils.dec2hex(group), elemStr = daikon2.Utils.dec2hex(element); return groupStr + elemStr; }; daikon2.Tag.getUnsignedInteger16 = function(rawData, littleEndian) { var data, mul, ctr; mul = rawData.byteLength / 2; data = []; for (ctr = 0; ctr < mul; ctr += 1) { data[ctr] = rawData.getUint16(ctr * 2, littleEndian); } return data; }; daikon2.Tag.getSignedInteger16 = function(rawData, littleEndian) { var data, mul, ctr; mul = rawData.byteLength / 2; data = []; for (ctr = 0; ctr < mul; ctr += 1) { data[ctr] = rawData.getInt16(ctr * 2, littleEndian); } return data; }; daikon2.Tag.getFloat32 = function(rawData, littleEndian) { var data, mul, ctr; mul = rawData.byteLength / 4; data = []; for (ctr = 0; ctr < mul; ctr += 1) { data[ctr] = rawData.getFloat32(ctr * 4, littleEndian); } return data; }; daikon2.Tag.getSignedInteger32 = function(rawData, littleEndian) { var data, mul, ctr; mul = rawData.byteLength / 4; data = []; for (ctr = 0; ctr < mul; ctr += 1) { data[ctr] = rawData.getInt32(ctr * 4, littleEndian); } return data; }; daikon2.Tag.getUnsignedInteger32 = function(rawData, littleEndian) { var data, mul, ctr; mul = rawData.byteLength / 4; data = []; for (ctr = 0; ctr < mul; ctr += 1) { data[ctr] = rawData.getUint32(ctr * 4, littleEndian); } return data; }; daikon2.Tag.getFloat64 = function(rawData, littleEndian) { var data, mul, ctr; if (rawData.byteLength < 8) { return 0; } mul = rawData.byteLength / 8; data = []; for (ctr = 0; ctr < mul; ctr += 1) { data[ctr] = rawData.getFloat64(ctr * 8, littleEndian); } return data; }; daikon2.Tag.getDoubleElscint = function(rawData) { var data = [], reordered = [], ctr; for (ctr = 0; ctr < 8; ctr += 1) { data[ctr] = rawData.getUint8(ctr); } reordered[0] = data[3]; reordered[1] = data[2]; reordered[2] = data[1]; reordered[3] = data[0]; reordered[4] = data[7]; reordered[5] = data[6]; reordered[6] = data[5]; reordered[7] = data[4]; data = [daikon2.Utils.bytesToDouble(reordered)]; return data; }; daikon2.Tag.getFixedLengthStringValue = function(rawData, maxLength, charset, vr) { var data, mul, ctr; mul = Math.floor(rawData.byteLength / maxLength); data = []; for (ctr = 0; ctr < mul; ctr += 1) { data[ctr] = daikon2.Utils.getStringAt(rawData, ctr * maxLength, maxLength, charset, vr); } return data; }; daikon2.Tag.getStringValue = function(rawData, charset, vr) { var data = daikon2.Utils.getStringAt(rawData, 0, rawData.byteLength, charset, vr).split("\\"), ctr; for (ctr = 0; ctr < data.length; ctr += 1) { data[ctr] = daikon2.Utils.trim(data[ctr]); } return data; }; daikon2.Tag.getDateStringValue = function(rawData) { var dotFormat = daikon2.Tag.getSingleStringValue(rawData)[0].indexOf(".") !== -1, stringData = daikon2.Tag.getFixedLengthStringValue(rawData, dotFormat ? 10 : daikon2.Tag.VR_DA_MAX_LENGTH), parts = null, data = [], ctr; for (ctr = 0; ctr < stringData.length; ctr += 1) { if (dotFormat) { parts = stringData[ctr].split("."); if (parts.length === 3) { data[ctr] = new Date( daikon2.Utils.safeParseInt(parts[0]), daikon2.Utils.safeParseInt(parts[1]) - 1, daikon2.Utils.safeParseInt(parts[2]) ); } else { data[ctr] = /* @__PURE__ */ new Date(); } } else if (stringData[ctr].length === 8) { data[ctr] = new Date( daikon2.Utils.safeParseInt(stringData[ctr].substring(0, 4)), daikon2.Utils.safeParseInt(stringData[ctr].substring(4, 6)) - 1, daikon2.Utils.safeParseInt(stringData[ctr].substring(6, 8)) ); } else { data[ctr] = Date.parse(stringData[ctr]); } if (!daikon2.Utils.isValidDate(data[ctr])) { data[ctr] = stringData[ctr]; } } return data; }; daikon2.Tag.getDateTimeStringValue = function(rawData) { var stringData = daikon2.Tag.getStringValue(rawData), data = [], ctr, year = null, month = null, date = null, hours = null, minutes = null, seconds = null; for (ctr = 0; ctr < stringData.length; ctr += 1) { if (stringData[ctr].length >= 4) { year = parseInt(stringData[ctr].substring(0, 4), 10); if (stringData[ctr].length >= 6) { month = daikon2.Utils.safeParseInt(stringData[ctr].substring(4, 6)) - 1; } if (stringData[ctr].length >= 8) { date = daikon2.Utils.safeParseInt(stringData[ctr].substring(6, 8)); } if (stringData[ctr].length >= 10) { hours = daikon2.Utils.safeParseInt(stringData[ctr].substring(8, 10)); } if (stringData[ctr].length >= 12) { minutes = daikon2.Utils.safeParseInt(stringData[ctr].substring(10, 12)); } if (stringData[ctr].length >= 14) { seconds = daikon2.Utils.safeParseInt(stringData[ctr].substring(12, 14)); } data[ctr] = new Date(year, month, date, hours, minutes, seconds); } else { data[ctr] = Date.parse(stringData[ctr]); } if (!daikon2.Utils.isValidDate(data[ctr])) { data[ctr] = stringData[ctr]; } } return data; }; daikon2.Tag.getTimeStringValue = function(rawData, ms) { var stringData = daikon2.Tag.getStringValue(rawData), data = []; if (ms) { var parts = null, ctr, hours = 0, minutes = 0, seconds = 0; for (ctr = 0; ctr < stringData.length; ctr += 1) { if (stringData[ctr].indexOf(":") !== -1) { parts = stringData[ctr].split(":"); hours = daikon2.Utils.safeParseInt(parts[0]); if (parts.length > 1) { minutes = daikon2.Utils.safeParseInt(parts[1]); } if (parts.length > 2) { seconds = daikon2.Utils.safeParseFloat(parts[2]); } } else { if (stringData[ctr].length >= 2) { hours = daikon2.Utils.safeParseInt(stringData[ctr].substring(0, 2)); } if (stringData[ctr].length >= 4) { minutes = daikon2.Utils.safeParseInt(stringData[ctr].substring(2, 4)); } if (stringData[ctr].length >= 6) { seconds = daikon2.Utils.safeParseFloat(stringData[ctr].substring(4)); } } data[ctr] = Math.round(hours * 60 * 60 * 1e3 + minutes * 60 * 1e3 + seconds * 1e3); } return data; } return stringData; }; daikon2.Tag.getDoubleStringValue = function(rawData) { var stringData = daikon2.Tag.getStringValue(rawData), data = [], ctr; for (ctr = 0; ctr < stringData.length; ctr += 1) { data[ctr] = parseFloat(stringData[ctr]); } return data; }; daikon2.Tag.getIntegerStringValue = function(rawData) { var stringData = daikon2.Tag.getStringValue(rawData), data = [], ctr; for (ctr = 0; ctr < stringData.length; ctr += 1) { data[ctr] = parseInt(stringData[ctr], 10); } return data; }; daikon2.Tag.getSingleStringValue = function(rawData, maxLength, charset, vr) { var len = rawData.byteLength; if (maxLength) { len = Math.min(rawData.byteLength, maxLength); } return [daikon2.Utils.trim(daikon2.Utils.getStringAt(rawData, 0, len, charset, vr))]; }; daikon2.Tag.getPersonNameStringValue = function(rawData, charset, vr) { var stringData = daikon2.Tag.getStringValue(rawData, charset, vr), data = [], ctr; for (ctr = 0; ctr < stringData.length; ctr += 1) { data[ctr] = stringData[ctr].replace("^", " "); } return data; }; daikon2.Tag.convertPrivateValue = function(group, element, rawData) { var ctr, privReader; for (ctr = 0; ctr < daikon2.Tag.PRIVATE_DATA_READERS.length; ctr += 1) { privReader = new daikon2.Tag.PRIVATE_DATA_READERS[ctr](rawData.buffer); if (privReader.canRead(group, element)) { return privReader.readHeader(); } } return rawData; }; daikon2.Tag.convertValue = function(vr, rawData, littleEndian, charset) { var data = null; if (vr === "AE") { data = daikon2.Tag.getSingleStringValue(rawData, daikon2.Tag.VR_AE_MAX_LENGTH); } else if (vr === "AS") { data = daikon2.Tag.getFixedLengthStringValue(rawData, daikon2.Tag.VR_AS_MAX_LENGTH); } else if (vr === "AT") { data = daikon2.Tag.getUnsignedInteger16(rawData, littleEndian); } else if (vr === "CS") { data = daikon2.Tag.getStringValue(rawData); } else if (vr === "DA") { data = daikon2.Tag.getDateStringValue(rawData); } else if (vr === "DS") { data = daikon2.Tag.getDoubleStringValue(rawData); } else if (vr === "DT") { data = daikon2.Tag.getDateTimeStringValue(rawData); } else if (vr === "FL") { data = daikon2.Tag.getFloat32(rawData, littleEndian); } else if (vr === "FD") { data = daikon2.Tag.getFloat64(rawData, littleEndian); } else if (vr === "FE") { data = daikon2.Tag.getDoubleElscint(rawData, littleEndian); } else if (vr === "IS") { data = daikon2.Tag.getIntegerStringValue(rawData); } else if (vr === "LO") { data = daikon2.Tag.getStringValue(rawData, charset, vr); } else if (vr === "LT") { data = daikon2.Tag.getSingleStringValue(rawData, daikon2.Tag.VR_AT_MAX_LENGTH, charset, vr); } else if (vr === "OB") { data = rawData; } else if (vr === "OD") { data = rawData; } else if (vr === "OF") { data = rawData; } else if (vr === "OW") { data = rawData; } else if (vr === "PN") { data = daikon2.Tag.getPersonNameStringValue(rawData, charset, vr); } else if (vr === "SH") { data = daikon2.Tag.getStringValue(rawData, charset, vr); } else if (vr === "SL") { data = daikon2.Tag.getSignedInteger32(rawData, littleEndian); } else if (vr === "SQ") { data = null; } else if (vr === "SS") { data = daikon2.Tag.getSignedInteger16(rawData, littleEndian); } else if (vr === "ST") { data = daikon2.Tag.getSingleStringValue(rawData, daikon2.Tag.VR_ST_MAX_LENGTH, charset, vr); } else if (vr === "TM") { data = daikon2.Tag.getTimeStringValue(rawData); } else if (vr === "UI") { data = daikon2.Tag.getStringValue(rawData); } else if (vr === "UL") { data = daikon2.Tag.getUnsignedInteger32(rawData, littleEndian); } else if (vr === "UN") { data = rawData; } else if (vr === "US") { data = daikon2.Tag.getUnsignedInteger16(rawData, littleEndian); } else if (vr === "UT") { data = daikon2.Tag.getSingleStringValue(rawData, Number.MAX_SAFE_INTEGER, charset, vr); } else if (vr === "UC") { data = daikon2.Tag.getStringValue(rawData); } return data; }; daikon2.Tag.prototype.toString = function(level, html) { var valueStr = "", ctr, groupStr = daikon2.Utils.dec2hex(this.group), elemStr = daikon2.Utils.dec2hex(this.element), tagStr = "(" + groupStr + "," + elemStr + ")", des = "", padding; if (level === void 0) { level = 0; } padding = ""; for (ctr = 0; ctr < level; ctr += 1) { if (html) { padding += "  "; } else { padding += " "; } } if (this.sublist) { for (ctr = 0; ctr < this.value.length; ctr += 1) { valueStr += "\n" + this.value[ctr].toString(level + 1, html); } } else if (this.vr === "SQ") { valueStr = ""; } else if (this.isPixelData()) { valueStr = ""; } else if (!this.value) { valueStr = ""; } else { if (html && this.preformatted) { valueStr = "[
" + this.value + "
]"; } else { valueStr = "[" + this.value + "]"; } } if (this.isSublistItem()) { tagStr = "Sequence Item"; } else if (this.isSublistItemDelim()) { tagStr = "Sequence Item Delimiter"; } else if (this.isSequenceDelim()) { tagStr = "Sequence Delimiter"; } else if (this.isPixelData()) { tagStr = "Pixel Data"; } else { des = daikon2.Utils.convertCamcelCaseToTitleCase(daikon2.Dictionary.getDescription(this.group, this.element)); } valueStr = xss(valueStr); if (html) { return padding + "" + tagStr + "   " + des + "   " + valueStr; } else { return padding + " " + tagStr + " " + des + " " + valueStr; } }; daikon2.Tag.prototype.toHTMLString = function(level) { return this.toString(level, true); }; daikon2.Tag.prototype.isTransformSyntax = function() { return this.group === daikon2.Tag.TAG_TRANSFER_SYNTAX[0] && this.element === daikon2.Tag.TAG_TRANSFER_SYNTAX[1]; }; daikon2.Tag.prototype.isCharset = function() { return this.group === daikon2.Tag.TAG_SPECIFIC_CHAR_SET[0] && this.element === daikon2.Tag.TAG_SPECIFIC_CHAR_SET[1]; }; daikon2.Tag.prototype.isPixelData = function() { return this.group === daikon2.Tag.TAG_PIXEL_DATA[0] && this.element === daikon2.Tag.TAG_PIXEL_DATA[1]; }; daikon2.Tag.prototype.isPrivateData = function() { return (this.group & 1) === 1; }; daikon2.Tag.prototype.hasInterpretedPrivateData = function() { return this.isPrivateData() && daikon2.Utils.isString(this.value); }; daikon2.Tag.prototype.isSublistItem = function() { return this.group === daikon2.Tag.TAG_SUBLIST_ITEM[0] && this.element === daikon2.Tag.TAG_SUBLIST_ITEM[1]; }; daikon2.Tag.prototype.isSublistItemDelim = function() { return this.group === daikon2.Tag.TAG_SUBLIST_ITEM_DELIM[0] && this.element === daikon2.Tag.TAG_SUBLIST_ITEM_DELIM[1]; }; daikon2.Tag.prototype.isSequenceDelim = function() { return this.group === daikon2.Tag.TAG_SUBLIST_SEQ_DELIM[0] && this.element === daikon2.Tag.TAG_SUBLIST_SEQ_DELIM[1]; }; daikon2.Tag.prototype.isMetaLength = function() { return this.group === daikon2.Tag.TAG_META_LENGTH[0] && this.element === daikon2.Tag.TAG_META_LENGTH[1]; }; var moduleType3 = typeof module2; if (moduleType3 !== "undefined" && module2.exports) { module2.exports = daikon2.Tag; } } }); // src/rle.js var require_rle = __commonJS({ "src/rle.js"(exports2, module2) { "use strict"; var daikon2 = daikon2 || {}; daikon2.RLE = daikon2.RLE || function() { this.rawData = null; this.bytesRead = 0; this.bytesPut = 0; this.segElemPut = 0; this.numSegments = 0; this.segmentOffsets = []; this.littleEndian = true; this.segmentIndex = 0; this.numElements = 0; this.size = 0; this.output = null; }; daikon2.RLE.HEADER_SIZE = 64; daikon2.RLE.prototype.decode = function(data, littleEndian, numElements) { var ctr; this.rawData = new DataView(data); this.littleEndian = littleEndian; this.numElements = numElements; this.readHeader(); this.output = new DataView(new ArrayBuffer(this.size)); for (ctr = 0; ctr < this.numSegments; ctr += 1) { this.readNextSegment(); } return this.processData(); }; daikon2.RLE.prototype.processData = function() { var ctr, temp1, temp2, temp3, value, outputProcessed, offset; if (this.numSegments === 1) { return this.output; } else if (this.numSegments === 2) { outputProcessed = new DataView(new ArrayBuffer(this.size)); for (ctr = 0; ctr < this.numElements; ctr += 1) { temp1 = this.output.getInt8(ctr); temp2 = this.output.getInt8(ctr + this.numElements); value = (temp1 & 255) << 8 | temp2 & 255; outputProcessed.setInt16(ctr * 2, value, this.littleEndian); } return outputProcessed; } else if (this.numSegments === 3) { outputProcessed = new DataView(new ArrayBuffer(this.size)); offset = 2 * this.numElements; for (ctr = 0; ctr < this.numElements; ctr += 1) { outputProcessed.setInt8(ctr * 3, this.output.getInt8(ctr)); outputProcessed.setInt8(ctr * 3 + 1, this.output.getInt8(ctr + this.numElements)); outputProcessed.setInt8(ctr * 3 + 2, this.output.getInt8(ctr + offset)); } return outputProcessed; } else { throw new Error("RLE data with " + this.numSegments + " segments is not supported!"); } }; daikon2.RLE.prototype.readHeader = function() { var ctr; this.numSegments = this.getInt32(); this.size = this.numElements * this.numSegments; for (ctr = 0; ctr < this.numSegments; ctr += 1) { this.segmentOffsets[ctr] = this.getInt32(); } this.bytesRead = daikon2.RLE.HEADER_SIZE; }; daikon2.RLE.prototype.hasValidInput = function() { return this.bytesRead < this.rawData.buffer.byteLength && this.bytesPut < this.size && this.segElemPut < this.numElements; }; daikon2.RLE.prototype.readNextSegment = function() { var code; this.bytesRead = this.segmentOffsets[this.segmentIndex]; this.segElemPut = 0; while (this.hasValidInput()) { code = this.get(); if (code >= 0 && code < 128) { this.readLiteral(code); } else if (code <= -1 && code > -128) { this.readEncoded(code); } else if (code === -128) { console.warn("RLE: unsupported code!"); } } this.segmentIndex += 1; }; daikon2.RLE.prototype.readLiteral = function(code) { var ctr, length = code + 1; if (this.hasValidInput()) { for (ctr = 0; ctr < length; ctr += 1) { this.put(this.get()); } } else { console.warn("RLE: insufficient data!"); } }; daikon2.RLE.prototype.readEncoded = function(code) { var ctr, runLength = 1 - code, encoded = this.get(); for (ctr = 0; ctr < runLength; ctr += 1) { this.put(encoded); } }; daikon2.RLE.prototype.getInt32 = function() { var value = this.rawData.getInt32(this.bytesRead, this.littleEndian); this.bytesRead += 4; return value; }; daikon2.RLE.prototype.getInt16 = function() { var value = this.rawData.getInt16(this.bytesRead, this.littleEndian); this.bytesRead += 2; return value; }; daikon2.RLE.prototype.get = function() { var value = this.rawData.getInt8(this.bytesRead); this.bytesRead += 1; return value; }; daikon2.RLE.prototype.put = function(val) { this.output.setInt8(this.bytesPut, val); this.bytesPut += 1; this.segElemPut += 1; }; var moduleType3 = typeof module2; if (moduleType3 !== "undefined" && module2.exports) { module2.exports = daikon2.RLE; } } }); // node_modules/jpeg-lossless-decoder-js/src/component-spec.js var require_component_spec = __commonJS({ "node_modules/jpeg-lossless-decoder-js/src/component-spec.js"(exports2, module2) { "use strict"; var jpeg2 = jpeg2 || {}; jpeg2.lossless = jpeg2.lossless || {}; jpeg2.lossless.ComponentSpec = jpeg2.lossless.ComponentSpec || function() { this.hSamp = 0; this.quantTableSel = 0; this.vSamp = 0; }; var moduleType3 = typeof module2; if (moduleType3 !== "undefined" && module2.exports) { module2.exports = jpeg2.lossless.ComponentSpec; } } }); // node_modules/jpeg-lossless-decoder-js/src/data-stream.js var require_data_stream = __commonJS({ "node_modules/jpeg-lossless-decoder-js/src/data-stream.js"(exports2, module2) { "use strict"; var jpeg2 = jpeg2 || {}; jpeg2.lossless = jpeg2.lossless || {}; jpeg2.lossless.DataStream = jpeg2.lossless.DataStream || function(data, offset, length) { if (offset === void 0 && length === void 0) { this.buffer = new Uint8Array(data); } else { this.buffer = new Uint8Array(data, offset, length); } this.index = 0; }; jpeg2.lossless.DataStream.prototype.get16 = function() { var value = (this.buffer[this.index] << 8) + this.buffer[this.index + 1]; this.index += 2; return value; }; jpeg2.lossless.DataStream.prototype.get8 = function() { var value = this.buffer[this.index]; this.index += 1; return value; }; var moduleType3 = typeof module2; if (moduleType3 !== "undefined" && module2.exports) { module2.exports = jpeg2.lossless.DataStream; } } }); // node_modules/jpeg-lossless-decoder-js/src/utils.js var require_utils = __commonJS({ "node_modules/jpeg-lossless-decoder-js/src/utils.js"(exports2, module2) { "use strict"; var jpeg2 = jpeg2 || {}; jpeg2.lossless = jpeg2.lossless || {}; jpeg2.lossless.Utils = jpeg2.lossless.Utils || {}; jpeg2.lossless.Utils.createArray = function(length) { var arr = new Array(length || 0), i2 = length; if (arguments.length > 1) { var args = Array.prototype.slice.call(arguments, 1); while (i2--) arr[length - 1 - i2] = jpeg2.lossless.Utils.createArray.apply(this, args); } return arr; }; jpeg2.lossless.Utils.makeCRCTable = function() { var c; var crcTable = []; for (var n = 0; n < 256; n++) { c = n; for (var k = 0; k < 8; k++) { c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1; } crcTable[n] = c; } return crcTable; }; jpeg2.lossless.Utils.crc32 = function(dataView) { var uint8view = new Uint8Array(dataView.buffer); var crcTable = jpeg2.lossless.Utils.crcTable || (jpeg2.lossless.Utils.crcTable = jpeg2.lossless.Utils.makeCRCTable()); var crc = 0 ^ -1; for (var i2 = 0; i2 < uint8view.length; i2++) { crc = crc >>> 8 ^ crcTable[(crc ^ uint8view[i2]) & 255]; } return (crc ^ -1) >>> 0; }; var moduleType3 = typeof module2; if (moduleType3 !== "undefined" && module2.exports) { module2.exports = jpeg2.lossless.Utils; } } }); // node_modules/jpeg-lossless-decoder-js/src/huffman-table.js var require_huffman_table = __commonJS({ "node_modules/jpeg-lossless-decoder-js/src/huffman-table.js"(exports2, module2) { "use strict"; var jpeg2 = jpeg2 || {}; jpeg2.lossless = jpeg2.lossless || {}; jpeg2.lossless.DataStream = jpeg2.lossless.DataStream || (typeof require !== "undefined" ? require_data_stream() : null); jpeg2.lossless.Utils = jpeg2.lossless.Utils || (typeof require !== "undefined" ? require_utils() : null); jpeg2.lossless.HuffmanTable = jpeg2.lossless.HuffmanTable || function() { this.l = jpeg2.lossless.Utils.createArray(4, 2, 16); this.th = []; this.v = jpeg2.lossless.Utils.createArray(4, 2, 16, 200); this.tc = jpeg2.lossless.Utils.createArray(4, 2); this.tc[0][0] = 0; this.tc[1][0] = 0; this.tc[2][0] = 0; this.tc[3][0] = 0; this.tc[0][1] = 0; this.tc[1][1] = 0; this.tc[2][1] = 0; this.tc[3][1] = 0; this.th[0] = 0; this.th[1] = 0; this.th[2] = 0; this.th[3] = 0; }; jpeg2.lossless.HuffmanTable.MSB = 2147483648; jpeg2.lossless.HuffmanTable.prototype.read = function(data, HuffTab) { var count = 0, length, temp, t, c, i2, j; length = data.get16(); count += 2; while (count < length) { temp = data.get8(); count += 1; t = temp & 15; if (t > 3) { throw new Error("ERROR: Huffman table ID > 3"); } c = temp >> 4; if (c > 2) { throw new Error("ERROR: Huffman table [Table class > 2 ]"); } this.th[t] = 1; this.tc[t][c] = 1; for (i2 = 0; i2 < 16; i2 += 1) { this.l[t][c][i2] = data.get8(); count += 1; } for (i2 = 0; i2 < 16; i2 += 1) { for (j = 0; j < this.l[t][c][i2]; j += 1) { if (count > length) { throw new Error("ERROR: Huffman table format error [count>Lh]"); } this.v[t][c][i2][j] = data.get8(); count += 1; } } } if (count !== length) { throw new Error("ERROR: Huffman table format error [count!=Lf]"); } for (i2 = 0; i2 < 4; i2 += 1) { for (j = 0; j < 2; j += 1) { if (this.tc[i2][j] !== 0) { this.buildHuffTable(HuffTab[i2][j], this.l[i2][j], this.v[i2][j]); } } } return 1; }; jpeg2.lossless.HuffmanTable.prototype.buildHuffTable = function(tab, L, V) { var currentTable, temp, k, i2, j, n; temp = 256; k = 0; for (i2 = 0; i2 < 8; i2 += 1) { for (j = 0; j < L[i2]; j += 1) { for (n = 0; n < temp >> i2 + 1; n += 1) { tab[k] = V[i2][j] | i2 + 1 << 8; k += 1; } } } for (i2 = 1; k < 256; i2 += 1, k += 1) { tab[k] = i2 | jpeg2.lossless.HuffmanTable.MSB; } currentTable = 1; k = 0; for (i2 = 8; i2 < 16; i2 += 1) { for (j = 0; j < L[i2]; j += 1) { for (n = 0; n < temp >> i2 - 7; n += 1) { tab[currentTable * 256 + k] = V[i2][j] | i2 + 1 << 8; k += 1; } if (k >= 256) { if (k > 256) { throw new Error("ERROR: Huffman table error(1)!"); } k = 0; currentTable += 1; } } } }; var moduleType3 = typeof module2; if (moduleType3 !== "undefined" && module2.exports) { module2.exports = jpeg2.lossless.HuffmanTable; } } }); // node_modules/jpeg-lossless-decoder-js/src/quantization-table.js var require_quantization_table = __commonJS({ "node_modules/jpeg-lossless-decoder-js/src/quantization-table.js"(exports2, module2) { "use strict"; var jpeg2 = jpeg2 || {}; jpeg2.lossless = jpeg2.lossless || {}; jpeg2.lossless.DataStream = jpeg2.lossless.DataStream || (typeof require !== "undefined" ? require_data_stream() : null); jpeg2.lossless.Utils = jpeg2.lossless.Utils || (typeof require !== "undefined" ? require_utils() : null); jpeg2.lossless.QuantizationTable = jpeg2.lossless.QuantizationTable || function() { this.precision = []; this.tq = []; this.quantTables = jpeg2.lossless.Utils.createArray(4, 64); this.tq[0] = 0; this.tq[1] = 0; this.tq[2] = 0; this.tq[3] = 0; }; jpeg2.lossless.QuantizationTable.enhanceQuantizationTable = function(qtab, table) { var i2; for (i2 = 0; i2 < 8; i2 += 1) { qtab[table[0 * 8 + i2]] *= 90; qtab[table[4 * 8 + i2]] *= 90; qtab[table[2 * 8 + i2]] *= 118; qtab[table[6 * 8 + i2]] *= 49; qtab[table[5 * 8 + i2]] *= 71; qtab[table[1 * 8 + i2]] *= 126; qtab[table[7 * 8 + i2]] *= 25; qtab[table[3 * 8 + i2]] *= 106; } for (i2 = 0; i2 < 8; i2 += 1) { qtab[table[0 + 8 * i2]] *= 90; qtab[table[4 + 8 * i2]] *= 90; qtab[table[2 + 8 * i2]] *= 118; qtab[table[6 + 8 * i2]] *= 49; qtab[table[5 + 8 * i2]] *= 71; qtab[table[1 + 8 * i2]] *= 126; qtab[table[7 + 8 * i2]] *= 25; qtab[table[3 + 8 * i2]] *= 106; } for (i2 = 0; i2 < 64; i2 += 1) { qtab[i2] >>= 6; } }; jpeg2.lossless.QuantizationTable.prototype.read = function(data, table) { var count = 0, length, temp, t, i2; length = data.get16(); count += 2; while (count < length) { temp = data.get8(); count += 1; t = temp & 15; if (t > 3) { throw new Error("ERROR: Quantization table ID > 3"); } this.precision[t] = temp >> 4; if (this.precision[t] === 0) { this.precision[t] = 8; } else if (this.precision[t] === 1) { this.precision[t] = 16; } else { throw new Error("ERROR: Quantization table precision error"); } this.tq[t] = 1; if (this.precision[t] === 8) { for (i2 = 0; i2 < 64; i2 += 1) { if (count > length) { throw new Error("ERROR: Quantization table format error"); } this.quantTables[t][i2] = data.get8(); count += 1; } jpeg2.lossless.QuantizationTable.enhanceQuantizationTable(this.quantTables[t], table); } else { for (i2 = 0; i2 < 64; i2 += 1) { if (count > length) { throw new Error("ERROR: Quantization table format error"); } this.quantTables[t][i2] = data.get16(); count += 2; } jpeg2.lossless.QuantizationTable.enhanceQuantizationTable(this.quantTables[t], table); } } if (count !== length) { throw new Error("ERROR: Quantization table error [count!=Lq]"); } return 1; }; var moduleType3 = typeof module2; if (moduleType3 !== "undefined" && module2.exports) { module2.exports = jpeg2.lossless.QuantizationTable; } } }); // node_modules/jpeg-lossless-decoder-js/src/scan-component.js var require_scan_component = __commonJS({ "node_modules/jpeg-lossless-decoder-js/src/scan-component.js"(exports2, module2) { "use strict"; var jpeg2 = jpeg2 || {}; jpeg2.lossless = jpeg2.lossless || {}; jpeg2.lossless.ScanComponent = jpeg2.lossless.ScanComponent || function() { this.acTabSel = 0; this.dcTabSel = 0; this.scanCompSel = 0; }; var moduleType3 = typeof module2; if (moduleType3 !== "undefined" && module2.exports) { module2.exports = jpeg2.lossless.ScanComponent; } } }); // node_modules/jpeg-lossless-decoder-js/src/scan-header.js var require_scan_header = __commonJS({ "node_modules/jpeg-lossless-decoder-js/src/scan-header.js"(exports2, module2) { "use strict"; var jpeg2 = jpeg2 || {}; jpeg2.lossless = jpeg2.lossless || {}; jpeg2.lossless.DataStream = jpeg2.lossless.DataStream || (typeof require !== "undefined" ? require_data_stream() : null); jpeg2.lossless.ScanComponent = jpeg2.lossless.ScanComponent || (typeof require !== "undefined" ? require_scan_component() : null); jpeg2.lossless.ScanHeader = jpeg2.lossless.ScanHeader || function() { this.ah = 0; this.al = 0; this.numComp = 0; this.selection = 0; this.spectralEnd = 0; this.components = []; }; jpeg2.lossless.ScanHeader.prototype.read = function(data) { var count = 0, length, i2, temp; length = data.get16(); count += 2; this.numComp = data.get8(); count += 1; for (i2 = 0; i2 < this.numComp; i2 += 1) { this.components[i2] = new jpeg2.lossless.ScanComponent(); if (count > length) { throw new Error("ERROR: scan header format error"); } this.components[i2].scanCompSel = data.get8(); count += 1; temp = data.get8(); count += 1; this.components[i2].dcTabSel = temp >> 4; this.components[i2].acTabSel = temp & 15; } this.selection = data.get8(); count += 1; this.spectralEnd = data.get8(); count += 1; temp = data.get8(); this.ah = temp >> 4; this.al = temp & 15; count += 1; if (count !== length) { throw new Error("ERROR: scan header format error [count!=Ns]"); } return 1; }; var moduleType3 = typeof module2; if (moduleType3 !== "undefined" && module2.exports) { module2.exports = jpeg2.lossless.ScanHeader; } } }); // node_modules/jpeg-lossless-decoder-js/src/frame-header.js var require_frame_header = __commonJS({ "node_modules/jpeg-lossless-decoder-js/src/frame-header.js"(exports2, module2) { "use strict"; var jpeg2 = jpeg2 || {}; jpeg2.lossless = jpeg2.lossless || {}; jpeg2.lossless.ComponentSpec = jpeg2.lossless.ComponentSpec || (typeof require !== "undefined" ? require_component_spec() : null); jpeg2.lossless.DataStream = jpeg2.lossless.DataStream || (typeof require !== "undefined" ? require_data_stream() : null); jpeg2.lossless.FrameHeader = jpeg2.lossless.FrameHeader || function() { this.components = []; this.dimX = 0; this.dimY = 0; this.numComp = 0; this.precision = 0; }; jpeg2.lossless.FrameHeader.prototype.read = function(data) { var count = 0, length, i2, c, temp; length = data.get16(); count += 2; this.precision = data.get8(); count += 1; this.dimY = data.get16(); count += 2; this.dimX = data.get16(); count += 2; this.numComp = data.get8(); count += 1; for (i2 = 1; i2 <= this.numComp; i2 += 1) { if (count > length) { throw new Error("ERROR: frame format error"); } c = data.get8(); count += 1; if (count >= length) { throw new Error("ERROR: frame format error [c>=Lf]"); } temp = data.get8(); count += 1; if (!this.components[c]) { this.components[c] = new jpeg2.lossless.ComponentSpec(); } this.components[c].hSamp = temp >> 4; this.components[c].vSamp = temp & 15; this.components[c].quantTableSel = data.get8(); count += 1; } if (count !== length) { throw new Error("ERROR: frame format error [Lf!=count]"); } return 1; }; var moduleType3 = typeof module2; if (moduleType3 !== "undefined" && module2.exports) { module2.exports = jpeg2.lossless.FrameHeader; } } }); // node_modules/jpeg-lossless-decoder-js/src/decoder.js var require_decoder = __commonJS({ "node_modules/jpeg-lossless-decoder-js/src/decoder.js"(exports2, module2) { "use strict"; var jpeg2 = jpeg2 || {}; jpeg2.lossless = jpeg2.lossless || {}; jpeg2.lossless.DataStream = jpeg2.lossless.DataStream || (typeof require !== "undefined" ? require_data_stream() : null); jpeg2.lossless.HuffmanTable = jpeg2.lossless.HuffmanTable || (typeof require !== "undefined" ? require_huffman_table() : null); jpeg2.lossless.QuantizationTable = jpeg2.lossless.QuantizationTable || (typeof require !== "undefined" ? require_quantization_table() : null); jpeg2.lossless.ScanHeader = jpeg2.lossless.ScanHeader || (typeof require !== "undefined" ? require_scan_header() : null); jpeg2.lossless.FrameHeader = jpeg2.lossless.FrameHeader || (typeof require !== "undefined" ? require_frame_header() : null); jpeg2.lossless.Utils = jpeg2.lossless.Utils || (typeof require !== "undefined" ? require_utils() : null); jpeg2.lossless.Decoder = jpeg2.lossless.Decoder || function(buffer2, numBytes) { this.buffer = buffer2; this.frame = new jpeg2.lossless.FrameHeader(); this.huffTable = new jpeg2.lossless.HuffmanTable(); this.quantTable = new jpeg2.lossless.QuantizationTable(); this.scan = new jpeg2.lossless.ScanHeader(); this.DU = jpeg2.lossless.Utils.createArray(10, 4, 64); this.HuffTab = jpeg2.lossless.Utils.createArray(4, 2, 50 * 256); this.IDCT_Source = []; this.nBlock = []; this.acTab = jpeg2.lossless.Utils.createArray(10, 1); this.dcTab = jpeg2.lossless.Utils.createArray(10, 1); this.qTab = jpeg2.lossless.Utils.createArray(10, 1); this.marker = 0; this.markerIndex = 0; this.numComp = 0; this.restartInterval = 0; this.selection = 0; this.xDim = 0; this.yDim = 0; this.xLoc = 0; this.yLoc = 0; this.numBytes = 0; this.outputData = null; this.restarting = false; this.mask = 0; if (typeof numBytes !== "undefined") { this.numBytes = numBytes; } }; jpeg2.lossless.Decoder.IDCT_P = [ 0, 5, 40, 16, 45, 2, 7, 42, 21, 56, 8, 61, 18, 47, 1, 4, 41, 23, 58, 13, 32, 24, 37, 10, 63, 17, 44, 3, 6, 43, 20, 57, 15, 34, 29, 48, 53, 26, 39, 9, 60, 19, 46, 22, 59, 12, 33, 31, 50, 55, 25, 36, 11, 62, 14, 35, 28, 49, 52, 27, 38, 30, 51, 54 ]; jpeg2.lossless.Decoder.TABLE = [ 0, 1, 5, 6, 14, 15, 27, 28, 2, 4, 7, 13, 16, 26, 29, 42, 3, 8, 12, 17, 25, 30, 41, 43, 9, 11, 18, 24, 31, 40, 44, 53, 10, 19, 23, 32, 39, 45, 52, 54, 20, 22, 33, 38, 46, 51, 55, 60, 21, 34, 37, 47, 50, 56, 59, 61, 35, 36, 48, 49, 57, 58, 62, 63 ]; jpeg2.lossless.Decoder.MAX_HUFFMAN_SUBTREE = 50; jpeg2.lossless.Decoder.MSB = 2147483648; jpeg2.lossless.Decoder.RESTART_MARKER_BEGIN = 65488; jpeg2.lossless.Decoder.RESTART_MARKER_END = 65495; jpeg2.lossless.Decoder.prototype.decompress = function(buffer2, offset, length) { return this.decode(buffer2, offset, length).buffer; }; jpeg2.lossless.Decoder.prototype.decode = function(buffer2, offset, length, numBytes) { var current, scanNum = 0, pred = [], i2, compN, temp = [], index = [], mcuNum; if (typeof buffer2 !== "undefined") { this.buffer = buffer2; } if (typeof numBytes !== "undefined") { this.numBytes = numBytes; } this.stream = new jpeg2.lossless.DataStream(this.buffer, offset, length); this.buffer = null; this.xLoc = 0; this.yLoc = 0; current = this.stream.get16(); if (current !== 65496) { throw new Error("Not a JPEG file"); } current = this.stream.get16(); while (current >> 4 !== 4092 || current === 65476) { switch (current) { case 65476: this.huffTable.read(this.stream, this.HuffTab); break; case 65484: throw new Error("Program doesn't support arithmetic coding. (format throw new IOException)"); case 65499: this.quantTable.read(this.stream, jpeg2.lossless.Decoder.TABLE); break; case 65501: this.restartInterval = this.readNumber(); break; case 65504: case 65505: case 65506: case 65507: case 65508: case 65509: case 65510: case 65511: case 65512: case 65513: case 65514: case 65515: case 65516: case 65517: case 65518: case 65519: this.readApp(); break; case 65534: this.readComment(); break; default: if (current >> 8 !== 255) { throw new Error("ERROR: format throw new IOException! (decode)"); } } current = this.stream.get16(); } if (current < 65472 || current > 65479) { throw new Error("ERROR: could not handle arithmetic code!"); } this.frame.read(this.stream); current = this.stream.get16(); do { while (current !== 65498) { switch (current) { case 65476: this.huffTable.read(this.stream, this.HuffTab); break; case 65484: throw new Error("Program doesn't support arithmetic coding. (format throw new IOException)"); case 65499: this.quantTable.read(this.stream, jpeg2.lossless.Decoder.TABLE); break; case 65501: this.restartInterval = this.readNumber(); break; case 65504: case 65505: case 65506: case 65507: case 65508: case 65509: case 65510: case 65511: case 65512: case 65513: case 65514: case 65515: case 65516: case 65517: case 65518: case 65519: this.readApp(); break; case 65534: this.readComment(); break; default: if (current >> 8 !== 255) { throw new Error("ERROR: format throw new IOException! (Parser.decode)"); } } current = this.stream.get16(); } this.precision = this.frame.precision; this.components = this.frame.components; if (!this.numBytes) { this.numBytes = parseInt(Math.ceil(this.precision / 8)); } if (this.numBytes == 1) { this.mask = 255; } else { this.mask = 65535; } this.scan.read(this.stream); this.numComp = this.scan.numComp; this.selection = this.scan.selection; if (this.numBytes === 1) { if (this.numComp === 3) { this.getter = this.getValueRGB; this.setter = this.setValueRGB; this.output = this.outputRGB; } else { this.getter = this.getValue8; this.setter = this.setValue8; this.output = this.outputSingle; } } else { this.getter = this.getValue16; this.setter = this.setValue16; this.output = this.outputSingle; } switch (this.selection) { case 2: this.selector = this.select2; break; case 3: this.selector = this.select3; break; case 4: this.selector = this.select4; break; case 5: this.selector = this.select5; break; case 6: this.selector = this.select6; break; case 7: this.selector = this.select7; break; default: this.selector = this.select1; break; } this.scanComps = this.scan.components; this.quantTables = this.quantTable.quantTables; for (i2 = 0; i2 < this.numComp; i2 += 1) { compN = this.scanComps[i2].scanCompSel; this.qTab[i2] = this.quantTables[this.components[compN].quantTableSel]; this.nBlock[i2] = this.components[compN].vSamp * this.components[compN].hSamp; this.dcTab[i2] = this.HuffTab[this.scanComps[i2].dcTabSel][0]; this.acTab[i2] = this.HuffTab[this.scanComps[i2].acTabSel][1]; } this.xDim = this.frame.dimX; this.yDim = this.frame.dimY; if (this.numBytes == 1) { this.outputData = new Uint8Array(new ArrayBuffer(this.xDim * this.yDim * this.numBytes * this.numComp)); } else { this.outputData = new Uint16Array(new ArrayBuffer(this.xDim * this.yDim * this.numBytes * this.numComp)); } scanNum += 1; while (true) { temp[0] = 0; index[0] = 0; for (i2 = 0; i2 < 10; i2 += 1) { pred[i2] = 1 << this.precision - 1; } if (this.restartInterval === 0) { current = this.decodeUnit(pred, temp, index); while (current === 0 && (this.xLoc < this.xDim && this.yLoc < this.yDim)) { this.output(pred); current = this.decodeUnit(pred, temp, index); } break; } for (mcuNum = 0; mcuNum < this.restartInterval; mcuNum += 1) { this.restarting = mcuNum == 0; current = this.decodeUnit(pred, temp, index); this.output(pred); if (current !== 0) { break; } } if (current === 0) { if (this.markerIndex !== 0) { current = 65280 | this.marker; this.markerIndex = 0; } else { current = this.stream.get16(); } } if (!(current >= jpeg2.lossless.Decoder.RESTART_MARKER_BEGIN && current <= jpeg2.lossless.Decoder.RESTART_MARKER_END)) { break; } } if (current === 65500 && scanNum === 1) { this.readNumber(); current = this.stream.get16(); } } while (current !== 65497 && (this.xLoc < this.xDim && this.yLoc < this.yDim) && scanNum === 0); return this.outputData; }; jpeg2.lossless.Decoder.prototype.decodeUnit = function(prev, temp, index) { if (this.numComp == 1) { return this.decodeSingle(prev, temp, index); } else if (this.numComp == 3) { return this.decodeRGB(prev, temp, index); } else { return -1; } }; jpeg2.lossless.Decoder.prototype.select1 = function(compOffset) { return this.getPreviousX(compOffset); }; jpeg2.lossless.Decoder.prototype.select2 = function(compOffset) { return this.getPreviousY(compOffset); }; jpeg2.lossless.Decoder.prototype.select3 = function(compOffset) { return this.getPreviousXY(compOffset); }; jpeg2.lossless.Decoder.prototype.select4 = function(compOffset) { return this.getPreviousX(compOffset) + this.getPreviousY(compOffset) - this.getPreviousXY(compOffset); }; jpeg2.lossless.Decoder.prototype.select5 = function(compOffset) { return this.getPreviousX(compOffset) + (this.getPreviousY(compOffset) - this.getPreviousXY(compOffset) >> 1); }; jpeg2.lossless.Decoder.prototype.select6 = function(compOffset) { return this.getPreviousY(compOffset) + (this.getPreviousX(compOffset) - this.getPreviousXY(compOffset) >> 1); }; jpeg2.lossless.Decoder.prototype.select7 = function(compOffset) { return (this.getPreviousX(compOffset) + this.getPreviousY(compOffset)) / 2; }; jpeg2.lossless.Decoder.prototype.decodeRGB = function(prev, temp, index) { var value, actab, dctab, qtab, ctrC, i2, k, j; prev[0] = this.selector(0); prev[1] = this.selector(1); prev[2] = this.selector(2); for (ctrC = 0; ctrC < this.numComp; ctrC += 1) { qtab = this.qTab[ctrC]; actab = this.acTab[ctrC]; dctab = this.dcTab[ctrC]; for (i2 = 0; i2 < this.nBlock[ctrC]; i2 += 1) { for (k = 0; k < this.IDCT_Source.length; k += 1) { this.IDCT_Source[k] = 0; } value = this.getHuffmanValue(dctab, temp, index); if (value >= 65280) { return value; } prev[ctrC] = this.IDCT_Source[0] = prev[ctrC] + this.getn(index, value, temp, index); this.IDCT_Source[0] *= qtab[0]; for (j = 1; j < 64; j += 1) { value = this.getHuffmanValue(actab, temp, index); if (value >= 65280) { return value; } j += value >> 4; if ((value & 15) === 0) { if (value >> 4 === 0) { break; } } else { this.IDCT_Source[jpeg2.lossless.Decoder.IDCT_P[j]] = this.getn(index, value & 15, temp, index) * qtab[j]; } } } } return 0; }; jpeg2.lossless.Decoder.prototype.decodeSingle = function(prev, temp, index) { var value, i2, n, nRestart; if (this.restarting) { this.restarting = false; prev[0] = 1 << this.frame.precision - 1; } else { prev[0] = this.selector(); } for (i2 = 0; i2 < this.nBlock[0]; i2 += 1) { value = this.getHuffmanValue(this.dcTab[0], temp, index); if (value >= 65280) { return value; } n = this.getn(prev, value, temp, index); nRestart = n >> 8; if (nRestart >= jpeg2.lossless.Decoder.RESTART_MARKER_BEGIN && nRestart <= jpeg2.lossless.Decoder.RESTART_MARKER_END) { return nRestart; } prev[0] += n; } return 0; }; jpeg2.lossless.Decoder.prototype.getHuffmanValue = function(table, temp, index) { var code, input, mask; mask = 65535; if (index[0] < 8) { temp[0] <<= 8; input = this.stream.get8(); if (input === 255) { this.marker = this.stream.get8(); if (this.marker !== 0) { this.markerIndex = 9; } } temp[0] |= input; } else { index[0] -= 8; } code = table[temp[0] >> index[0]]; if ((code & jpeg2.lossless.Decoder.MSB) !== 0) { if (this.markerIndex !== 0) { this.markerIndex = 0; return 65280 | this.marker; } temp[0] &= mask >> 16 - index[0]; temp[0] <<= 8; input = this.stream.get8(); if (input === 255) { this.marker = this.stream.get8(); if (this.marker !== 0) { this.markerIndex = 9; } } temp[0] |= input; code = table[(code & 255) * 256 + (temp[0] >> index[0])]; index[0] += 8; } index[0] += 8 - (code >> 8); if (index[0] < 0) { throw new Error("index=" + index[0] + " temp=" + temp[0] + " code=" + code + " in HuffmanValue()"); } if (index[0] < this.markerIndex) { this.markerIndex = 0; return 65280 | this.marker; } temp[0] &= mask >> 16 - index[0]; return code & 255; }; jpeg2.lossless.Decoder.prototype.getn = function(PRED, n, temp, index) { var result, one, n_one, mask, input; one = 1; n_one = -1; mask = 65535; if (n === 0) { return 0; } if (n === 16) { if (PRED[0] >= 0) { return -32768; } else { return 32768; } } index[0] -= n; if (index[0] >= 0) { if (index[0] < this.markerIndex && !this.isLastPixel()) { this.markerIndex = 0; return (65280 | this.marker) << 8; } result = temp[0] >> index[0]; temp[0] &= mask >> 16 - index[0]; } else { temp[0] <<= 8; input = this.stream.get8(); if (input === 255) { this.marker = this.stream.get8(); if (this.marker !== 0) { this.markerIndex = 9; } } temp[0] |= input; index[0] += 8; if (index[0] < 0) { if (this.markerIndex !== 0) { this.markerIndex = 0; return (65280 | this.marker) << 8; } temp[0] <<= 8; input = this.stream.get8(); if (input === 255) { this.marker = this.stream.get8(); if (this.marker !== 0) { this.markerIndex = 9; } } temp[0] |= input; index[0] += 8; } if (index[0] < 0) { throw new Error("index=" + index[0] + " in getn()"); } if (index[0] < this.markerIndex) { this.markerIndex = 0; return (65280 | this.marker) << 8; } result = temp[0] >> index[0]; temp[0] &= mask >> 16 - index[0]; } if (result < one << n - 1) { result += (n_one << n) + 1; } return result; }; jpeg2.lossless.Decoder.prototype.getPreviousX = function(compOffset) { if (this.xLoc > 0) { return this.getter(this.yLoc * this.xDim + this.xLoc - 1, compOffset); } else if (this.yLoc > 0) { return this.getPreviousY(compOffset); } else { return 1 << this.frame.precision - 1; } }; jpeg2.lossless.Decoder.prototype.getPreviousXY = function(compOffset) { if (this.xLoc > 0 && this.yLoc > 0) { return this.getter((this.yLoc - 1) * this.xDim + this.xLoc - 1, compOffset); } else { return this.getPreviousY(compOffset); } }; jpeg2.lossless.Decoder.prototype.getPreviousY = function(compOffset) { if (this.yLoc > 0) { return this.getter((this.yLoc - 1) * this.xDim + this.xLoc, compOffset); } else { return this.getPreviousX(compOffset); } }; jpeg2.lossless.Decoder.prototype.isLastPixel = function() { return this.xLoc === this.xDim - 1 && this.yLoc === this.yDim - 1; }; jpeg2.lossless.Decoder.prototype.outputSingle = function(PRED) { if (this.xLoc < this.xDim && this.yLoc < this.yDim) { this.setter(this.yLoc * this.xDim + this.xLoc, this.mask & PRED[0]); this.xLoc += 1; if (this.xLoc >= this.xDim) { this.yLoc += 1; this.xLoc = 0; } } }; jpeg2.lossless.Decoder.prototype.outputRGB = function(PRED) { var offset = this.yLoc * this.xDim + this.xLoc; if (this.xLoc < this.xDim && this.yLoc < this.yDim) { this.setter(offset, PRED[0], 0); this.setter(offset, PRED[1], 1); this.setter(offset, PRED[2], 2); this.xLoc += 1; if (this.xLoc >= this.xDim) { this.yLoc += 1; this.xLoc = 0; } } }; jpeg2.lossless.Decoder.prototype.setValue8 = function(index, val) { this.outputData[index] = val; }; jpeg2.lossless.Decoder.prototype.getValue8 = function(index) { return this.outputData[index]; }; var littleEndian = function() { var buffer2 = new ArrayBuffer(2); new DataView(buffer2).setInt16( 0, 256, true /* littleEndian */ ); return new Int16Array(buffer2)[0] === 256; }(); if (littleEndian) { jpeg2.lossless.Decoder.prototype.setValue16 = jpeg2.lossless.Decoder.prototype.setValue8; jpeg2.lossless.Decoder.prototype.getValue16 = jpeg2.lossless.Decoder.prototype.getValue8; } else { jpeg2.lossless.Decoder.prototype.setValue16 = function(index, val) { this.outputData[index] = (val & 255) << 8 | val >> 8 & 255; }; jpeg2.lossless.Decoder.prototype.getValue16 = function(index) { var val = this.outputData[index]; return (val & 255) << 8 | val >> 8 & 255; }; } jpeg2.lossless.Decoder.prototype.setValueRGB = function(index, val, compOffset) { this.outputData[index * 3 + compOffset] = val; }; jpeg2.lossless.Decoder.prototype.getValueRGB = function(index, compOffset) { return this.outputData[index * 3 + compOffset]; }; jpeg2.lossless.Decoder.prototype.readApp = function() { var count = 0, length = this.stream.get16(); count += 2; while (count < length) { this.stream.get8(); count += 1; } return length; }; jpeg2.lossless.Decoder.prototype.readComment = function() { var sb = "", count = 0, length; length = this.stream.get16(); count += 2; while (count < length) { sb += this.stream.get8(); count += 1; } return sb; }; jpeg2.lossless.Decoder.prototype.readNumber = function() { var Ld = this.stream.get16(); if (Ld !== 4) { throw new Error("ERROR: Define number format throw new IOException [Ld!=4]"); } return this.stream.get16(); }; var moduleType3 = typeof module2; if (moduleType3 !== "undefined" && module2.exports) { module2.exports = jpeg2.lossless.Decoder; } } }); // node_modules/jpeg-lossless-decoder-js/src/main.js var require_main = __commonJS({ "node_modules/jpeg-lossless-decoder-js/src/main.js"(exports2, module2) { "use strict"; var jpeg2 = jpeg2 || {}; jpeg2.lossless = jpeg2.lossless || {}; jpeg2.lossless.ComponentSpec = jpeg2.lossless.ComponentSpec || (typeof require !== "undefined" ? require_component_spec() : null); jpeg2.lossless.DataStream = jpeg2.lossless.DataStream || (typeof require !== "undefined" ? require_data_stream() : null); jpeg2.lossless.Decoder = jpeg2.lossless.Decoder || (typeof require !== "undefined" ? require_decoder() : null); jpeg2.lossless.FrameHeader = jpeg2.lossless.FrameHeader || (typeof require !== "undefined" ? require_frame_header() : null); jpeg2.lossless.HuffmanTable = jpeg2.lossless.HuffmanTable || (typeof require !== "undefined" ? require_huffman_table() : null); jpeg2.lossless.QuantizationTable = jpeg2.lossless.QuantizationTable || (typeof require !== "undefined" ? require_quantization_table() : null); jpeg2.lossless.ScanComponent = jpeg2.lossless.ScanComponent || (typeof require !== "undefined" ? require_scan_component() : null); jpeg2.lossless.ScanHeader = jpeg2.lossless.ScanHeader || (typeof require !== "undefined" ? require_scan_header() : null); jpeg2.lossless.Utils = jpeg2.lossless.Utils || (typeof require !== "undefined" ? require_utils() : null); var moduleType3 = typeof module2; if (moduleType3 !== "undefined" && module2.exports) { module2.exports = jpeg2; } } }); // lib/jpeg-baseline.js var require_jpeg_baseline = __commonJS({ "lib/jpeg-baseline.js"(exports2, module2) { var ColorSpace = { Unkown: 0, Grayscale: 1, AdobeRGB: 2, RGB: 3, CYMK: 4 }; var JpegImage = function jpegImage() { "use strict"; var dctZigZag = new Int32Array([ 0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63 ]); var dctCos1 = 4017; var dctSin1 = 799; var dctCos3 = 3406; var dctSin3 = 2276; var dctCos6 = 1567; var dctSin6 = 3784; var dctSqrt2 = 5793; var dctSqrt1d2 = 2896; function constructor() { } function buildHuffmanTable(codeLengths, values) { var k = 0, code = [], i2, j, length = 16; while (length > 0 && !codeLengths[length - 1]) length--; code.push({ children: [], index: 0 }); var p = code[0], q; for (i2 = 0; i2 < length; i2++) { for (j = 0; j < codeLengths[i2]; j++) { p = code.pop(); p.children[p.index] = values[k]; while (p.index > 0) { p = code.pop(); } p.index++; code.push(p); while (code.length <= i2) { code.push(q = { children: [], index: 0 }); p.children[p.index] = q.children; p = q; } k++; } if (i2 + 1 < length) { code.push(q = { children: [], index: 0 }); p.children[p.index] = q.children; p = q; } } return code[0].children; } function getBlockBufferOffset(component, row, col) { return 64 * ((component.blocksPerLine + 1) * row + col); } function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive) { var precision = frame.precision; var samplesPerLine = frame.samplesPerLine; var scanLines = frame.scanLines; var mcusPerLine = frame.mcusPerLine; var progressive = frame.progressive; var maxH = frame.maxH, maxV = frame.maxV; var startOffset = offset, bitsData = 0, bitsCount = 0; function readBit() { if (bitsCount > 0) { bitsCount--; return bitsData >> bitsCount & 1; } bitsData = data[offset++]; if (bitsData == 255) { var nextByte = data[offset++]; if (nextByte) { throw "unexpected marker: " + (bitsData << 8 | nextByte).toString(16); } } bitsCount = 7; return bitsData >>> 7; } function decodeHuffman(tree) { var node = tree; var bit; while ((bit = readBit()) !== null) { node = node[bit]; if (typeof node === "number") return node; if (typeof node !== "object") throw "invalid huffman sequence"; } return null; } function receive(length) { var n2 = 0; while (length > 0) { var bit = readBit(); if (bit === null) return; n2 = n2 << 1 | bit; length--; } return n2; } function receiveAndExtend(length) { var n2 = receive(length); if (n2 >= 1 << length - 1) return n2; return n2 + (-1 << length) + 1; } function decodeBaseline(component2, offset2) { var t = decodeHuffman(component2.huffmanTableDC); var diff = t === 0 ? 0 : receiveAndExtend(t); component2.blockData[offset2] = component2.pred += diff; var k2 = 1; while (k2 < 64) { var rs = decodeHuffman(component2.huffmanTableAC); var s = rs & 15, r = rs >> 4; if (s === 0) { if (r < 15) break; k2 += 16; continue; } k2 += r; var z = dctZigZag[k2]; component2.blockData[offset2 + z] = receiveAndExtend(s); k2++; } } function decodeDCFirst(component2, offset2) { var t = decodeHuffman(component2.huffmanTableDC); var diff = t === 0 ? 0 : receiveAndExtend(t) << successive; component2.blockData[offset2] = component2.pred += diff; } function decodeDCSuccessive(component2, offset2) { component2.blockData[offset2] |= readBit() << successive; } var eobrun = 0; function decodeACFirst(component2, offset2) { if (eobrun > 0) { eobrun--; return; } var k2 = spectralStart, e = spectralEnd; while (k2 <= e) { var rs = decodeHuffman(component2.huffmanTableAC); var s = rs & 15, r = rs >> 4; if (s === 0) { if (r < 15) { eobrun = receive(r) + (1 << r) - 1; break; } k2 += 16; continue; } k2 += r; var z = dctZigZag[k2]; component2.blockData[offset2 + z] = receiveAndExtend(s) * (1 << successive); k2++; } } var successiveACState = 0, successiveACNextValue; function decodeACSuccessive(component2, offset2) { var k2 = spectralStart, e = spectralEnd, r = 0; while (k2 <= e) { var z = dctZigZag[k2]; switch (successiveACState) { case 0: var rs = decodeHuffman(component2.huffmanTableAC); var s = rs & 15; r = rs >> 4; if (s === 0) { if (r < 15) { eobrun = receive(r) + (1 << r); successiveACState = 4; } else { r = 16; successiveACState = 1; } } else { if (s !== 1) throw "invalid ACn encoding"; successiveACNextValue = receiveAndExtend(s); successiveACState = r ? 2 : 3; } continue; case 1: case 2: if (component2.blockData[offset2 + z]) { component2.blockData[offset2 + z] += readBit() << successive; } else { r--; if (r === 0) successiveACState = successiveACState == 2 ? 3 : 0; } break; case 3: if (component2.blockData[offset2 + z]) { component2.blockData[offset2 + z] += readBit() << successive; } else { component2.blockData[offset2 + z] = successiveACNextValue << successive; successiveACState = 0; } break; case 4: if (component2.blockData[offset2 + z]) { component2.blockData[offset2 + z] += readBit() << successive; } break; } k2++; } if (successiveACState === 4) { eobrun--; if (eobrun === 0) successiveACState = 0; } } function decodeMcu(component2, decode, mcu2, row, col) { var mcuRow = mcu2 / mcusPerLine | 0; var mcuCol = mcu2 % mcusPerLine; var blockRow = mcuRow * component2.v + row; var blockCol = mcuCol * component2.h + col; var offset2 = getBlockBufferOffset(component2, blockRow, blockCol); decode(component2, offset2); } function decodeBlock(component2, decode, mcu2) { var blockRow = mcu2 / component2.blocksPerLine | 0; var blockCol = mcu2 % component2.blocksPerLine; var offset2 = getBlockBufferOffset(component2, blockRow, blockCol); decode(component2, offset2); } var componentsLength = components.length; var component, i2, j, k, n; var decodeFn; if (progressive) { if (spectralStart === 0) decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive; else decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive; } else { decodeFn = decodeBaseline; } var mcu = 0, marker; var mcuExpected; if (componentsLength == 1) { mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn; } else { mcuExpected = mcusPerLine * frame.mcusPerColumn; } if (!resetInterval) { resetInterval = mcuExpected; } var h, v; while (mcu < mcuExpected) { for (i2 = 0; i2 < componentsLength; i2++) { components[i2].pred = 0; } eobrun = 0; if (componentsLength == 1) { component = components[0]; for (n = 0; n < resetInterval; n++) { decodeBlock(component, decodeFn, mcu); mcu++; } } else { for (n = 0; n < resetInterval; n++) { for (i2 = 0; i2 < componentsLength; i2++) { component = components[i2]; h = component.h; v = component.v; for (j = 0; j < v; j++) { for (k = 0; k < h; k++) { decodeMcu(component, decodeFn, mcu, j, k); } } } mcu++; } } bitsCount = 0; marker = data[offset] << 8 | data[offset + 1]; if (marker <= 65280) { throw "marker was not found"; } if (marker >= 65488 && marker <= 65495) { offset += 2; } else { break; } } return offset - startOffset; } function quantizeAndInverse(component, blockBufferOffset, p) { var qt = component.quantizationTable; var v0, v1, v2, v3, v4, v5, v6, v7, t; var i2; for (i2 = 0; i2 < 64; i2++) { p[i2] = component.blockData[blockBufferOffset + i2] * qt[i2]; } for (i2 = 0; i2 < 8; ++i2) { var row = 8 * i2; if (p[1 + row] === 0 && p[2 + row] === 0 && p[3 + row] === 0 && p[4 + row] === 0 && p[5 + row] === 0 && p[6 + row] === 0 && p[7 + row] === 0) { t = dctSqrt2 * p[0 + row] + 512 >> 10; p[0 + row] = t; p[1 + row] = t; p[2 + row] = t; p[3 + row] = t; p[4 + row] = t; p[5 + row] = t; p[6 + row] = t; p[7 + row] = t; continue; } v0 = dctSqrt2 * p[0 + row] + 128 >> 8; v1 = dctSqrt2 * p[4 + row] + 128 >> 8; v2 = p[2 + row]; v3 = p[6 + row]; v4 = dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128 >> 8; v7 = dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128 >> 8; v5 = p[3 + row] << 4; v6 = p[5 + row] << 4; t = v0 - v1 + 1 >> 1; v0 = v0 + v1 + 1 >> 1; v1 = t; t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8; v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8; v3 = t; t = v4 - v6 + 1 >> 1; v4 = v4 + v6 + 1 >> 1; v6 = t; t = v7 + v5 + 1 >> 1; v5 = v7 - v5 + 1 >> 1; v7 = t; t = v0 - v3 + 1 >> 1; v0 = v0 + v3 + 1 >> 1; v3 = t; t = v1 - v2 + 1 >> 1; v1 = v1 + v2 + 1 >> 1; v2 = t; t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12; v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12; v7 = t; t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12; v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12; v6 = t; p[0 + row] = v0 + v7; p[7 + row] = v0 - v7; p[1 + row] = v1 + v6; p[6 + row] = v1 - v6; p[2 + row] = v2 + v5; p[5 + row] = v2 - v5; p[3 + row] = v3 + v4; p[4 + row] = v3 - v4; } for (i2 = 0; i2 < 8; ++i2) { var col = i2; if (p[1 * 8 + col] === 0 && p[2 * 8 + col] === 0 && p[3 * 8 + col] === 0 && p[4 * 8 + col] === 0 && p[5 * 8 + col] === 0 && p[6 * 8 + col] === 0 && p[7 * 8 + col] === 0) { t = dctSqrt2 * p[i2 + 0] + 8192 >> 14; p[0 * 8 + col] = t; p[1 * 8 + col] = t; p[2 * 8 + col] = t; p[3 * 8 + col] = t; p[4 * 8 + col] = t; p[5 * 8 + col] = t; p[6 * 8 + col] = t; p[7 * 8 + col] = t; continue; } v0 = dctSqrt2 * p[0 * 8 + col] + 2048 >> 12; v1 = dctSqrt2 * p[4 * 8 + col] + 2048 >> 12; v2 = p[2 * 8 + col]; v3 = p[6 * 8 + col]; v4 = dctSqrt1d2 * (p[1 * 8 + col] - p[7 * 8 + col]) + 2048 >> 12; v7 = dctSqrt1d2 * (p[1 * 8 + col] + p[7 * 8 + col]) + 2048 >> 12; v5 = p[3 * 8 + col]; v6 = p[5 * 8 + col]; t = v0 - v1 + 1 >> 1; v0 = v0 + v1 + 1 >> 1; v1 = t; t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12; v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12; v3 = t; t = v4 - v6 + 1 >> 1; v4 = v4 + v6 + 1 >> 1; v6 = t; t = v7 + v5 + 1 >> 1; v5 = v7 - v5 + 1 >> 1; v7 = t; t = v0 - v3 + 1 >> 1; v0 = v0 + v3 + 1 >> 1; v3 = t; t = v1 - v2 + 1 >> 1; v1 = v1 + v2 + 1 >> 1; v2 = t; t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12; v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12; v7 = t; t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12; v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12; v6 = t; p[0 * 8 + col] = v0 + v7; p[7 * 8 + col] = v0 - v7; p[1 * 8 + col] = v1 + v6; p[6 * 8 + col] = v1 - v6; p[2 * 8 + col] = v2 + v5; p[5 * 8 + col] = v2 - v5; p[3 * 8 + col] = v3 + v4; p[4 * 8 + col] = v3 - v4; } for (i2 = 0; i2 < 64; ++i2) { var index = blockBufferOffset + i2; var q = p[i2]; q = q <= -2056 / component.bitConversion ? 0 : q >= 2024 / component.bitConversion ? 255 / component.bitConversion : q + 2056 / component.bitConversion >> 4; component.blockData[index] = q; } } function buildComponentData(frame, component) { var lines = []; var blocksPerLine = component.blocksPerLine; var blocksPerColumn = component.blocksPerColumn; var samplesPerLine = blocksPerLine << 3; var computationBuffer = new Int32Array(64); var i2, j, ll = 0; for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) { for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) { var offset = getBlockBufferOffset(component, blockRow, blockCol); quantizeAndInverse(component, offset, computationBuffer); } } return component.blockData; } function clampToUint8(a) { return a <= 0 ? 0 : a >= 255 ? 255 : a | 0; } constructor.prototype = { load: function load(path2) { var handleData = function(data2) { this.parse(data2); if (this.onload) this.onload(); }.bind(this); if (path2.indexOf("data:") > -1) { var offset = path2.indexOf("base64,") + 7; var data = atob(path2.substring(offset)); var arr = new Uint8Array(data.length); for (var i2 = data.length - 1; i2 >= 0; i2--) { arr[i2] = data.charCodeAt(i2); } handleData(data); } else { var xhr = new XMLHttpRequest(); xhr.open("GET", path2, true); xhr.responseType = "arraybuffer"; xhr.onload = function() { var data2 = new Uint8Array(xhr.response); handleData(data2); }.bind(this); xhr.send(null); } }, parse: function parse(data) { function readUint16() { var value = data[offset] << 8 | data[offset + 1]; offset += 2; return value; } function readDataBlock() { var length2 = readUint16(); var array = data.subarray(offset, offset + length2 - 2); offset += array.length; return array; } function prepareComponents(frame2) { var mcusPerLine = Math.ceil(frame2.samplesPerLine / 8 / frame2.maxH); var mcusPerColumn = Math.ceil(frame2.scanLines / 8 / frame2.maxV); for (var i3 = 0; i3 < frame2.components.length; i3++) { component = frame2.components[i3]; var blocksPerLine = Math.ceil(Math.ceil(frame2.samplesPerLine / 8) * component.h / frame2.maxH); var blocksPerColumn = Math.ceil(Math.ceil(frame2.scanLines / 8) * component.v / frame2.maxV); var blocksPerLineForMcu = mcusPerLine * component.h; var blocksPerColumnForMcu = mcusPerColumn * component.v; var blocksBufferSize = 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1); component.blockData = new Int16Array(blocksBufferSize); component.blocksPerLine = blocksPerLine; component.blocksPerColumn = blocksPerColumn; } frame2.mcusPerLine = mcusPerLine; frame2.mcusPerColumn = mcusPerColumn; } var offset = 0, length = data.length; var jfif = null; var adobe = null; var pixels = null; var frame, resetInterval; var quantizationTables = []; var huffmanTablesAC = [], huffmanTablesDC = []; var fileMarker = readUint16(); if (fileMarker != 65496) { throw "SOI not found"; } fileMarker = readUint16(); while (fileMarker != 65497) { var i2, j, l; switch (fileMarker) { case 65504: case 65505: case 65506: case 65507: case 65508: case 65509: case 65510: case 65511: case 65512: case 65513: case 65514: case 65515: case 65516: case 65517: case 65518: case 65519: case 65534: var appData = readDataBlock(); if (fileMarker === 65504) { if (appData[0] === 74 && appData[1] === 70 && appData[2] === 73 && appData[3] === 70 && appData[4] === 0) { jfif = { version: { major: appData[5], minor: appData[6] }, densityUnits: appData[7], xDensity: appData[8] << 8 | appData[9], yDensity: appData[10] << 8 | appData[11], thumbWidth: appData[12], thumbHeight: appData[13], thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13]) }; } } if (fileMarker === 65518) { if (appData[0] === 65 && appData[1] === 100 && appData[2] === 111 && appData[3] === 98 && appData[4] === 101 && appData[5] === 0) { adobe = { version: appData[6], flags0: appData[7] << 8 | appData[8], flags1: appData[9] << 8 | appData[10], transformCode: appData[11] }; } } break; case 65499: var quantizationTablesLength = readUint16(); var quantizationTablesEnd = quantizationTablesLength + offset - 2; while (offset < quantizationTablesEnd) { var quantizationTableSpec = data[offset++]; var tableData = new Int32Array(64); if (quantizationTableSpec >> 4 === 0) { for (j = 0; j < 64; j++) { var z = dctZigZag[j]; tableData[z] = data[offset++]; } } else if (quantizationTableSpec >> 4 === 1) { for (j = 0; j < 64; j++) { var zz = dctZigZag[j]; tableData[zz] = readUint16(); } } else throw "DQT: invalid table spec"; quantizationTables[quantizationTableSpec & 15] = tableData; } break; case 65472: case 65473: case 65474: if (frame) { throw "Only single frame JPEGs supported"; } readUint16(); frame = {}; frame.extended = fileMarker === 65473; frame.progressive = fileMarker === 65474; frame.precision = data[offset++]; frame.scanLines = readUint16(); frame.samplesPerLine = readUint16(); frame.components = []; frame.componentIds = {}; var componentsCount = data[offset++], componentId; var maxH = 0, maxV = 0; for (i2 = 0; i2 < componentsCount; i2++) { componentId = data[offset]; var h = data[offset + 1] >> 4; var v = data[offset + 1] & 15; if (maxH < h) maxH = h; if (maxV < v) maxV = v; var qId = data[offset + 2]; l = frame.components.push({ h, v, quantizationTable: quantizationTables[qId], quantizationTableId: qId, bitConversion: 255 / ((1 << frame.precision) - 1) }); frame.componentIds[componentId] = l - 1; offset += 3; } frame.maxH = maxH; frame.maxV = maxV; prepareComponents(frame); break; case 65476: var huffmanLength = readUint16(); for (i2 = 2; i2 < huffmanLength; ) { var huffmanTableSpec = data[offset++]; var codeLengths = new Uint8Array(16); var codeLengthSum = 0; for (j = 0; j < 16; j++, offset++) codeLengthSum += codeLengths[j] = data[offset]; var huffmanValues = new Uint8Array(codeLengthSum); for (j = 0; j < codeLengthSum; j++, offset++) huffmanValues[j] = data[offset]; i2 += 17 + codeLengthSum; (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable(codeLengths, huffmanValues); } break; case 65501: readUint16(); resetInterval = readUint16(); break; case 65498: var scanLength = readUint16(); var selectorsCount = data[offset++]; var components = [], component; for (i2 = 0; i2 < selectorsCount; i2++) { var componentIndex = frame.componentIds[data[offset++]]; component = frame.components[componentIndex]; var tableSpec = data[offset++]; component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4]; component.huffmanTableAC = huffmanTablesAC[tableSpec & 15]; components.push(component); } var spectralStart = data[offset++]; var spectralEnd = data[offset++]; var successiveApproximation = data[offset++]; var processed = decodeScan( data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15 ); offset += processed; break; default: if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) { offset -= 3; break; } throw "unknown JPEG marker " + fileMarker.toString(16); } fileMarker = readUint16(); } this.width = frame.samplesPerLine; this.height = frame.scanLines; this.jfif = jfif; this.adobe = adobe; this.components = []; switch (frame.components.length) { case 1: this.colorspace = ColorSpace.Grayscale; break; case 3: if (this.adobe) this.colorspace = ColorSpace.AdobeRGB; else this.colorspace = ColorSpace.RGB; break; case 4: this.colorspace = ColorSpace.CYMK; break; default: this.colorspace = ColorSpace.Unknown; } for (var i2 = 0; i2 < frame.components.length; i2++) { var component = frame.components[i2]; if (!component.quantizationTable && component.quantizationTableId !== null) component.quantizationTable = quantizationTables[component.quantizationTableId]; this.components.push({ output: buildComponentData(frame, component), scaleX: component.h / frame.maxH, scaleY: component.v / frame.maxV, blocksPerLine: component.blocksPerLine, blocksPerColumn: component.blocksPerColumn, bitConversion: component.bitConversion }); } }, getData16: function getData16(width, height) { if (this.components.length !== 1) throw "Unsupported color mode"; var scaleX = this.width / width, scaleY = this.height / height; var component, componentScaleX, componentScaleY; var x, y, i2; var offset = 0; var numComponents = this.components.length; var dataLength = width * height * numComponents; var data = new Uint16Array(dataLength); var componentLine; var lineData = new Uint16Array((this.components[0].blocksPerLine << 3) * this.components[0].blocksPerColumn * 8); for (i2 = 0; i2 < numComponents; i2++) { component = this.components[i2]; var blocksPerLine = component.blocksPerLine; var blocksPerColumn = component.blocksPerColumn; var samplesPerLine = blocksPerLine << 3; var j, k, ll = 0; var lineOffset = 0; for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) { var scanLine = blockRow << 3; for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) { var bufferOffset = getBlockBufferOffset(component, blockRow, blockCol); var offset = 0, sample = blockCol << 3; for (j = 0; j < 8; j++) { var lineOffset = (scanLine + j) * samplesPerLine; for (k = 0; k < 8; k++) { lineData[lineOffset + sample + k] = component.output[bufferOffset + offset++]; } } } } componentScaleX = component.scaleX * scaleX; componentScaleY = component.scaleY * scaleY; offset = i2; var cx, cy; var index; for (y = 0; y < height; y++) { for (x = 0; x < width; x++) { cy = 0 | y * componentScaleY; cx = 0 | x * componentScaleX; index = cy * samplesPerLine + cx; data[offset] = lineData[index]; offset += numComponents; } } } return data; }, getData: function getData(width, height) { var scaleX = this.width / width, scaleY = this.height / height; var component, componentScaleX, componentScaleY; var x, y, i2; var offset = 0; var Y, Cb, Cr, K, C, M, Ye, R, G, B; var colorTransform; var numComponents = this.components.length; var dataLength = width * height * numComponents; var data = new Uint8Array(dataLength); var componentLine; var lineData = new Uint8Array((this.components[0].blocksPerLine << 3) * this.components[0].blocksPerColumn * 8); for (i2 = 0; i2 < numComponents; i2++) { component = this.components[i2]; var blocksPerLine = component.blocksPerLine; var blocksPerColumn = component.blocksPerColumn; var samplesPerLine = blocksPerLine << 3; var j, k, ll = 0; var lineOffset = 0; for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) { var scanLine = blockRow << 3; for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) { var bufferOffset = getBlockBufferOffset(component, blockRow, blockCol); var offset = 0, sample = blockCol << 3; for (j = 0; j < 8; j++) { var lineOffset = (scanLine + j) * samplesPerLine; for (k = 0; k < 8; k++) { lineData[lineOffset + sample + k] = component.output[bufferOffset + offset++] * component.bitConversion; } } } } componentScaleX = component.scaleX * scaleX; componentScaleY = component.scaleY * scaleY; offset = i2; var cx, cy; var index; for (y = 0; y < height; y++) { for (x = 0; x < width; x++) { cy = 0 | y * componentScaleY; cx = 0 | x * componentScaleX; index = cy * samplesPerLine + cx; data[offset] = lineData[index]; offset += numComponents; } } } switch (numComponents) { case 1: case 2: break; case 3: colorTransform = true; if (this.adobe && this.adobe.transformCode) colorTransform = true; else if (typeof this.colorTransform !== "undefined") colorTransform = !!this.colorTransform; if (colorTransform) { for (i2 = 0; i2 < dataLength; i2 += numComponents) { Y = data[i2]; Cb = data[i2 + 1]; Cr = data[i2 + 2]; R = clampToUint8(Y - 179.456 + 1.402 * Cr); G = clampToUint8(Y + 135.459 - 0.344 * Cb - 0.714 * Cr); B = clampToUint8(Y - 226.816 + 1.772 * Cb); data[i2] = R; data[i2 + 1] = G; data[i2 + 2] = B; } } break; case 4: if (!this.adobe) throw "Unsupported color mode (4 components)"; colorTransform = false; if (this.adobe && this.adobe.transformCode) colorTransform = true; else if (typeof this.colorTransform !== "undefined") colorTransform = !!this.colorTransform; if (colorTransform) { for (i2 = 0; i2 < dataLength; i2 += numComponents) { Y = data[i2]; Cb = data[i2 + 1]; Cr = data[i2 + 2]; C = clampToUint8(434.456 - Y - 1.402 * Cr); M = clampToUint8(119.541 - Y + 0.344 * Cb + 0.714 * Cr); Y = clampToUint8(481.816 - Y - 1.772 * Cb); data[i2] = C; data[i2 + 1] = M; data[i2 + 2] = Y; } } break; default: throw "Unsupported color mode"; } return data; } }; return constructor; }(); var moduleType3 = typeof module2; if (moduleType3 !== "undefined" && module2.exports) { module2.exports = { JpegImage }; } } }); // lib/jpx.js var require_jpx = __commonJS({ "lib/jpx.js"(exports2, module2) { "use strict"; var JpxImage2 = function JpxImageClosure() { var SubbandsGainLog2 = { "LL": 0, "LH": 1, "HL": 1, "HH": 2 }; function JpxImage3() { this.failOnCorruptedImage = false; } JpxImage3.prototype = { parse: function JpxImage_parse(data) { var head = readUint16(data, 0); if (head === 65359) { this.parseCodestream(data, 0, data.length); return; } var position = 0, length = data.length; while (position < length) { var headerSize = 8; var lbox = readUint32(data, position); var tbox = readUint32(data, position + 4); position += headerSize; if (lbox === 1) { lbox = readUint32(data, position) * 4294967296 + readUint32(data, position + 4); position += 8; headerSize += 8; } if (lbox === 0) { lbox = length - position + headerSize; } if (lbox < headerSize) { throw new Error("JPX Error: Invalid box field size"); } var dataLength = lbox - headerSize; var jumpDataLength = true; switch (tbox) { case 1785737832: jumpDataLength = false; break; case 1668246642: var method = data[position]; var precedence = data[position + 1]; var approximation = data[position + 2]; if (method === 1) { var colorspace = readUint32(data, position + 3); switch (colorspace) { case 16: case 17: case 18: break; default: warn("Unknown colorspace " + colorspace); break; } } else if (method === 2) { info("ICC profile not supported"); } break; case 1785737827: this.parseCodestream(data, position, position + dataLength); break; case 1783636e3: if (218793738 !== readUint32(data, position)) { warn("Invalid JP2 signature"); } break; case 1783634458: case 1718909296: case 1920099697: case 1919251232: case 1768449138: break; default: var headerType = String.fromCharCode( tbox >> 24 & 255, tbox >> 16 & 255, tbox >> 8 & 255, tbox & 255 ); warn("Unsupported header type " + tbox + " (" + headerType + ")"); break; } if (jumpDataLength) { position += dataLength; } } }, parseImageProperties: function JpxImage_parseImageProperties(stream) { var newByte = stream.getByte(); while (newByte >= 0) { var oldByte = newByte; newByte = stream.getByte(); var code = oldByte << 8 | newByte; if (code === 65361) { stream.skip(4); var Xsiz = stream.getInt32() >>> 0; var Ysiz = stream.getInt32() >>> 0; var XOsiz = stream.getInt32() >>> 0; var YOsiz = stream.getInt32() >>> 0; stream.skip(16); var Csiz = stream.getUint16(); this.width = Xsiz - XOsiz; this.height = Ysiz - YOsiz; this.componentsCount = Csiz; this.bitsPerComponent = 8; return; } } throw new Error("JPX Error: No size marker found in JPX stream"); }, parseCodestream: function JpxImage_parseCodestream(data, start, end) { var context = {}; try { var doNotRecover = false; var position = start; while (position + 1 < end) { var code = readUint16(data, position); position += 2; var length = 0, j, sqcd, spqcds, spqcdSize, scalarExpounded, tile; switch (code) { case 65359: context.mainHeader = true; break; case 65497: break; case 65361: length = readUint16(data, position); var siz = {}; siz.Xsiz = readUint32(data, position + 4); siz.Ysiz = readUint32(data, position + 8); siz.XOsiz = readUint32(data, position + 12); siz.YOsiz = readUint32(data, position + 16); siz.XTsiz = readUint32(data, position + 20); siz.YTsiz = readUint32(data, position + 24); siz.XTOsiz = readUint32(data, position + 28); siz.YTOsiz = readUint32(data, position + 32); var componentsCount = readUint16(data, position + 36); siz.Csiz = componentsCount; var components = []; j = position + 38; for (var i2 = 0; i2 < componentsCount; i2++) { var component = { precision: (data[j] & 127) + 1, isSigned: !!(data[j] & 128), XRsiz: data[j + 1], YRsiz: data[j + 1] }; calculateComponentDimensions(component, siz); components.push(component); } context.SIZ = siz; context.components = components; calculateTileGrids(context, components); context.QCC = []; context.COC = []; break; case 65372: length = readUint16(data, position); var qcd = {}; j = position + 2; sqcd = data[j++]; switch (sqcd & 31) { case 0: spqcdSize = 8; scalarExpounded = true; break; case 1: spqcdSize = 16; scalarExpounded = false; break; case 2: spqcdSize = 16; scalarExpounded = true; break; default: throw new Error("JPX Error: Invalid SQcd value " + sqcd); } qcd.noQuantization = spqcdSize === 8; qcd.scalarExpounded = scalarExpounded; qcd.guardBits = sqcd >> 5; spqcds = []; while (j < length + position) { var spqcd = {}; if (spqcdSize === 8) { spqcd.epsilon = data[j++] >> 3; spqcd.mu = 0; } else { spqcd.epsilon = data[j] >> 3; spqcd.mu = (data[j] & 7) << 8 | data[j + 1]; j += 2; } spqcds.push(spqcd); } qcd.SPqcds = spqcds; if (context.mainHeader) { context.QCD = qcd; } else { context.currentTile.QCD = qcd; context.currentTile.QCC = []; } break; case 65373: length = readUint16(data, position); var qcc = {}; j = position + 2; var cqcc; if (context.SIZ.Csiz < 257) { cqcc = data[j++]; } else { cqcc = readUint16(data, j); j += 2; } sqcd = data[j++]; switch (sqcd & 31) { case 0: spqcdSize = 8; scalarExpounded = true; break; case 1: spqcdSize = 16; scalarExpounded = false; break; case 2: spqcdSize = 16; scalarExpounded = true; break; default: throw new Error("JPX Error: Invalid SQcd value " + sqcd); } qcc.noQuantization = spqcdSize === 8; qcc.scalarExpounded = scalarExpounded; qcc.guardBits = sqcd >> 5; spqcds = []; while (j < length + position) { spqcd = {}; if (spqcdSize === 8) { spqcd.epsilon = data[j++] >> 3; spqcd.mu = 0; } else { spqcd.epsilon = data[j] >> 3; spqcd.mu = (data[j] & 7) << 8 | data[j + 1]; j += 2; } spqcds.push(spqcd); } qcc.SPqcds = spqcds; if (context.mainHeader) { context.QCC[cqcc] = qcc; } else { context.currentTile.QCC[cqcc] = qcc; } break; case 65362: length = readUint16(data, position); var cod = {}; j = position + 2; var scod = data[j++]; cod.entropyCoderWithCustomPrecincts = !!(scod & 1); cod.sopMarkerUsed = !!(scod & 2); cod.ephMarkerUsed = !!(scod & 4); cod.progressionOrder = data[j++]; cod.layersCount = readUint16(data, j); j += 2; cod.multipleComponentTransform = data[j++]; cod.decompositionLevelsCount = data[j++]; cod.xcb = (data[j++] & 15) + 2; cod.ycb = (data[j++] & 15) + 2; var blockStyle = data[j++]; cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1); cod.resetContextProbabilities = !!(blockStyle & 2); cod.terminationOnEachCodingPass = !!(blockStyle & 4); cod.verticalyStripe = !!(blockStyle & 8); cod.predictableTermination = !!(blockStyle & 16); cod.segmentationSymbolUsed = !!(blockStyle & 32); cod.reversibleTransformation = data[j++]; if (cod.entropyCoderWithCustomPrecincts) { var precinctsSizes = []; while (j < length + position) { var precinctsSize = data[j++]; precinctsSizes.push({ PPx: precinctsSize & 15, PPy: precinctsSize >> 4 }); } cod.precinctsSizes = precinctsSizes; } var unsupported = []; if (cod.selectiveArithmeticCodingBypass) { unsupported.push("selectiveArithmeticCodingBypass"); } if (cod.resetContextProbabilities) { unsupported.push("resetContextProbabilities"); } if (cod.terminationOnEachCodingPass) { unsupported.push("terminationOnEachCodingPass"); } if (cod.verticalyStripe) { unsupported.push("verticalyStripe"); } if (cod.predictableTermination) { unsupported.push("predictableTermination"); } if (unsupported.length > 0) { doNotRecover = true; throw new Error("JPX Error: Unsupported COD options (" + unsupported.join(", ") + ")"); } if (context.mainHeader) { context.COD = cod; } else { context.currentTile.COD = cod; context.currentTile.COC = []; } break; case 65424: length = readUint16(data, position); tile = {}; tile.index = readUint16(data, position + 2); tile.length = readUint32(data, position + 4); tile.dataEnd = tile.length + position - 2; tile.partIndex = data[position + 8]; tile.partsCount = data[position + 9]; context.mainHeader = false; if (tile.partIndex === 0) { tile.COD = context.COD; tile.COC = context.COC.slice(0); tile.QCD = context.QCD; tile.QCC = context.QCC.slice(0); } context.currentTile = tile; break; case 65427: tile = context.currentTile; if (tile.partIndex === 0) { initializeTile(context, tile.index); buildPackets(context); } length = tile.dataEnd - position; parseTilePackets(context, data, position, length); break; case 65365: case 65367: case 65368: case 65380: length = readUint16(data, position); break; case 65363: throw new Error("JPX Error: Codestream code 0xFF53 (COC) is not implemented"); default: throw new Error("JPX Error: Unknown codestream code: " + code.toString(16)); } position += length; } } catch (e) { if (doNotRecover || this.failOnCorruptedImage) { throw e; } else { warn("Trying to recover from " + e.message); } } this.tiles = transformComponents(context); this.width = context.SIZ.Xsiz - context.SIZ.XOsiz; this.height = context.SIZ.Ysiz - context.SIZ.YOsiz; this.componentsCount = context.SIZ.Csiz; } }; function calculateComponentDimensions(component, siz) { component.x0 = Math.ceil(siz.XOsiz / component.XRsiz); component.x1 = Math.ceil(siz.Xsiz / component.XRsiz); component.y0 = Math.ceil(siz.YOsiz / component.YRsiz); component.y1 = Math.ceil(siz.Ysiz / component.YRsiz); component.width = component.x1 - component.x0; component.height = component.y1 - component.y0; } function calculateTileGrids(context, components) { var siz = context.SIZ; var tile, tiles = []; var numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz); var numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz); for (var q = 0; q < numYtiles; q++) { for (var p = 0; p < numXtiles; p++) { tile = {}; tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz); tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz); tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz); tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz); tile.width = tile.tx1 - tile.tx0; tile.height = tile.ty1 - tile.ty0; tile.components = []; tiles.push(tile); } } context.tiles = tiles; var componentsCount = siz.Csiz; for (var i2 = 0, ii = componentsCount; i2 < ii; i2++) { var component = components[i2]; for (var j = 0, jj = tiles.length; j < jj; j++) { var tileComponent = {}; tile = tiles[j]; tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz); tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz); tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz); tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz); tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0; tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0; tile.components[i2] = tileComponent; } } } function getBlocksDimensions(context, component, r) { var codOrCoc = component.codingStyleParameters; var result = {}; if (!codOrCoc.entropyCoderWithCustomPrecincts) { result.PPx = 15; result.PPy = 15; } else { result.PPx = codOrCoc.precinctsSizes[r].PPx; result.PPy = codOrCoc.precinctsSizes[r].PPy; } result.xcb_ = r > 0 ? Math.min(codOrCoc.xcb, result.PPx - 1) : Math.min(codOrCoc.xcb, result.PPx); result.ycb_ = r > 0 ? Math.min(codOrCoc.ycb, result.PPy - 1) : Math.min(codOrCoc.ycb, result.PPy); return result; } function buildPrecincts(context, resolution, dimensions) { var precinctWidth = 1 << dimensions.PPx; var precinctHeight = 1 << dimensions.PPy; var isZeroRes = resolution.resLevel === 0; var precinctWidthInSubband = 1 << dimensions.PPx + (isZeroRes ? 0 : -1); var precinctHeightInSubband = 1 << dimensions.PPy + (isZeroRes ? 0 : -1); var numprecinctswide = resolution.trx1 > resolution.trx0 ? Math.ceil(resolution.trx1 / precinctWidth) - Math.floor(resolution.trx0 / precinctWidth) : 0; var numprecinctshigh = resolution.try1 > resolution.try0 ? Math.ceil(resolution.try1 / precinctHeight) - Math.floor(resolution.try0 / precinctHeight) : 0; var numprecincts = numprecinctswide * numprecinctshigh; resolution.precinctParameters = { precinctWidth, precinctHeight, numprecinctswide, numprecinctshigh, numprecincts, precinctWidthInSubband, precinctHeightInSubband }; } function buildCodeblocks(context, subband, dimensions) { var xcb_ = dimensions.xcb_; var ycb_ = dimensions.ycb_; var codeblockWidth = 1 << xcb_; var codeblockHeight = 1 << ycb_; var cbx0 = subband.tbx0 >> xcb_; var cby0 = subband.tby0 >> ycb_; var cbx1 = subband.tbx1 + codeblockWidth - 1 >> xcb_; var cby1 = subband.tby1 + codeblockHeight - 1 >> ycb_; var precinctParameters = subband.resolution.precinctParameters; var codeblocks = []; var precincts = []; var i2, j, codeblock, precinctNumber; for (j = cby0; j < cby1; j++) { for (i2 = cbx0; i2 < cbx1; i2++) { codeblock = { cbx: i2, cby: j, tbx0: codeblockWidth * i2, tby0: codeblockHeight * j, tbx1: codeblockWidth * (i2 + 1), tby1: codeblockHeight * (j + 1) }; codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0); codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0); codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1); codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1); var pi = Math.floor((codeblock.tbx0_ - subband.tbx0) / precinctParameters.precinctWidthInSubband); var pj = Math.floor((codeblock.tby0_ - subband.tby0) / precinctParameters.precinctHeightInSubband); precinctNumber = pi + pj * precinctParameters.numprecinctswide; codeblock.precinctNumber = precinctNumber; codeblock.subbandType = subband.type; codeblock.Lblock = 3; if (codeblock.tbx1_ <= codeblock.tbx0_ || codeblock.tby1_ <= codeblock.tby0_) { continue; } codeblocks.push(codeblock); var precinct = precincts[precinctNumber]; if (precinct !== void 0) { if (i2 < precinct.cbxMin) { precinct.cbxMin = i2; } else if (i2 > precinct.cbxMax) { precinct.cbxMax = i2; } if (j < precinct.cbyMin) { precinct.cbxMin = j; } else if (j > precinct.cbyMax) { precinct.cbyMax = j; } } else { precincts[precinctNumber] = precinct = { cbxMin: i2, cbyMin: j, cbxMax: i2, cbyMax: j }; } codeblock.precinct = precinct; } } subband.codeblockParameters = { codeblockWidth: xcb_, codeblockHeight: ycb_, numcodeblockwide: cbx1 - cbx0 + 1, numcodeblockhigh: cby1 - cby0 + 1 }; subband.codeblocks = codeblocks; subband.precincts = precincts; } function createPacket(resolution, precinctNumber, layerNumber) { var precinctCodeblocks = []; var subbands = resolution.subbands; for (var i2 = 0, ii = subbands.length; i2 < ii; i2++) { var subband = subbands[i2]; var codeblocks = subband.codeblocks; for (var j = 0, jj = codeblocks.length; j < jj; j++) { var codeblock = codeblocks[j]; if (codeblock.precinctNumber !== precinctNumber) { continue; } precinctCodeblocks.push(codeblock); } } return { layerNumber, codeblocks: precinctCodeblocks }; } function LayerResolutionComponentPositionIterator(context) { var siz = context.SIZ; var tileIndex = context.currentTile.index; var tile = context.tiles[tileIndex]; var layersCount = tile.codingStyleDefaultParameters.layersCount; var componentsCount = siz.Csiz; var maxDecompositionLevelsCount = 0; for (var q = 0; q < componentsCount; q++) { maxDecompositionLevelsCount = Math.max( maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount ); } var l = 0, r = 0, i2 = 0, k = 0; this.nextPacket = function JpxImage_nextPacket() { for (; l < layersCount; l++) { for (; r <= maxDecompositionLevelsCount; r++) { for (; i2 < componentsCount; i2++) { var component = tile.components[i2]; if (r > component.codingStyleParameters.decompositionLevelsCount) { continue; } var resolution = component.resolutions[r]; var numprecincts = resolution.precinctParameters.numprecincts; for (; k < numprecincts; ) { var packet = createPacket(resolution, k, l); k++; return packet; } k = 0; } i2 = 0; } r = 0; } }; } function ResolutionLayerComponentPositionIterator(context) { var siz = context.SIZ; var tileIndex = context.currentTile.index; var tile = context.tiles[tileIndex]; var layersCount = tile.codingStyleDefaultParameters.layersCount; var componentsCount = siz.Csiz; var maxDecompositionLevelsCount = 0; for (var q = 0; q < componentsCount; q++) { maxDecompositionLevelsCount = Math.max( maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount ); } var r = 0, l = 0, i2 = 0, k = 0; this.nextPacket = function JpxImage_nextPacket() { for (; r <= maxDecompositionLevelsCount; r++) { for (; l < layersCount; l++) { for (; i2 < componentsCount; i2++) { var component = tile.components[i2]; if (r > component.codingStyleParameters.decompositionLevelsCount) { continue; } var resolution = component.resolutions[r]; var numprecincts = resolution.precinctParameters.numprecincts; for (; k < numprecincts; ) { var packet = createPacket(resolution, k, l); k++; return packet; } k = 0; } i2 = 0; } l = 0; } }; } function ResolutionPositionComponentLayerIterator(context) { var siz = context.SIZ; var tileIndex = context.currentTile.index; var tile = context.tiles[tileIndex]; var layersCount = tile.codingStyleDefaultParameters.layersCount; var componentsCount = siz.Csiz; var l, r, c, p; var maxDecompositionLevelsCount = 0; for (c = 0; c < componentsCount; c++) { var component = tile.components[c]; maxDecompositionLevelsCount = Math.max( maxDecompositionLevelsCount, component.codingStyleParameters.decompositionLevelsCount ); } var maxNumPrecinctsInLevel = new Int32Array( maxDecompositionLevelsCount + 1 ); for (r = 0; r <= maxDecompositionLevelsCount; ++r) { var maxNumPrecincts = 0; for (c = 0; c < componentsCount; ++c) { var resolutions = tile.components[c].resolutions; if (r < resolutions.length) { maxNumPrecincts = Math.max( maxNumPrecincts, resolutions[r].precinctParameters.numprecincts ); } } maxNumPrecinctsInLevel[r] = maxNumPrecincts; } l = 0; r = 0; c = 0; p = 0; this.nextPacket = function JpxImage_nextPacket() { for (; r <= maxDecompositionLevelsCount; r++) { for (; p < maxNumPrecinctsInLevel[r]; p++) { for (; c < componentsCount; c++) { var component2 = tile.components[c]; if (r > component2.codingStyleParameters.decompositionLevelsCount) { continue; } var resolution = component2.resolutions[r]; var numprecincts = resolution.precinctParameters.numprecincts; if (p >= numprecincts) { continue; } for (; l < layersCount; ) { var packet = createPacket(resolution, p, l); l++; return packet; } l = 0; } c = 0; } p = 0; } }; } function PositionComponentResolutionLayerIterator(context) { var siz = context.SIZ; var tileIndex = context.currentTile.index; var tile = context.tiles[tileIndex]; var layersCount = tile.codingStyleDefaultParameters.layersCount; var componentsCount = siz.Csiz; var precinctsSizes = getPrecinctSizesInImageScale(tile); var precinctsIterationSizes = precinctsSizes; var l = 0, r = 0, c = 0, px = 0, py = 0; this.nextPacket = function JpxImage_nextPacket() { for (; py < precinctsIterationSizes.maxNumHigh; py++) { for (; px < precinctsIterationSizes.maxNumWide; px++) { for (; c < componentsCount; c++) { var component = tile.components[c]; var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; for (; r <= decompositionLevelsCount; r++) { var resolution = component.resolutions[r]; var sizeInImageScale = precinctsSizes.components[c].resolutions[r]; var k = getPrecinctIndexIfExist( px, py, sizeInImageScale, precinctsIterationSizes, resolution ); if (k === null) { continue; } for (; l < layersCount; ) { var packet = createPacket(resolution, k, l); l++; return packet; } l = 0; } r = 0; } c = 0; } px = 0; } }; } function ComponentPositionResolutionLayerIterator(context) { var siz = context.SIZ; var tileIndex = context.currentTile.index; var tile = context.tiles[tileIndex]; var layersCount = tile.codingStyleDefaultParameters.layersCount; var componentsCount = siz.Csiz; var precinctsSizes = getPrecinctSizesInImageScale(tile); var l = 0, r = 0, c = 0, px = 0, py = 0; this.nextPacket = function JpxImage_nextPacket() { for (; c < componentsCount; ++c) { var component = tile.components[c]; var precinctsIterationSizes = precinctsSizes.components[c]; var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; for (; py < precinctsIterationSizes.maxNumHigh; py++) { for (; px < precinctsIterationSizes.maxNumWide; px++) { for (; r <= decompositionLevelsCount; r++) { var resolution = component.resolutions[r]; var sizeInImageScale = precinctsIterationSizes.resolutions[r]; var k = getPrecinctIndexIfExist( px, py, sizeInImageScale, precinctsIterationSizes, resolution ); if (k === null) { continue; } for (; l < layersCount; ) { var packet = createPacket(resolution, k, l); l++; return packet; } l = 0; } r = 0; } px = 0; } py = 0; } }; } function getPrecinctIndexIfExist(pxIndex, pyIndex, sizeInImageScale, precinctIterationSizes, resolution) { var posX = pxIndex * precinctIterationSizes.minWidth; var posY = pyIndex * precinctIterationSizes.minHeight; if (posX % sizeInImageScale.width !== 0 || posY % sizeInImageScale.height !== 0) { return null; } var startPrecinctRowIndex = posY / sizeInImageScale.width * resolution.precinctParameters.numprecinctswide; return posX / sizeInImageScale.height + startPrecinctRowIndex; } function getPrecinctSizesInImageScale(tile) { var componentsCount = tile.components.length; var minWidth = Number.MAX_VALUE; var minHeight = Number.MAX_VALUE; var maxNumWide = 0; var maxNumHigh = 0; var sizePerComponent = new Array(componentsCount); for (var c = 0; c < componentsCount; c++) { var component = tile.components[c]; var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; var sizePerResolution = new Array(decompositionLevelsCount + 1); var minWidthCurrentComponent = Number.MAX_VALUE; var minHeightCurrentComponent = Number.MAX_VALUE; var maxNumWideCurrentComponent = 0; var maxNumHighCurrentComponent = 0; var scale = 1; for (var r = decompositionLevelsCount; r >= 0; --r) { var resolution = component.resolutions[r]; var widthCurrentResolution = scale * resolution.precinctParameters.precinctWidth; var heightCurrentResolution = scale * resolution.precinctParameters.precinctHeight; minWidthCurrentComponent = Math.min( minWidthCurrentComponent, widthCurrentResolution ); minHeightCurrentComponent = Math.min( minHeightCurrentComponent, heightCurrentResolution ); maxNumWideCurrentComponent = Math.max( maxNumWideCurrentComponent, resolution.precinctParameters.numprecinctswide ); maxNumHighCurrentComponent = Math.max( maxNumHighCurrentComponent, resolution.precinctParameters.numprecinctshigh ); sizePerResolution[r] = { width: widthCurrentResolution, height: heightCurrentResolution }; scale <<= 1; } minWidth = Math.min(minWidth, minWidthCurrentComponent); minHeight = Math.min(minHeight, minHeightCurrentComponent); maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent); maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent); sizePerComponent[c] = { resolutions: sizePerResolution, minWidth: minWidthCurrentComponent, minHeight: minHeightCurrentComponent, maxNumWide: maxNumWideCurrentComponent, maxNumHigh: maxNumHighCurrentComponent }; } return { components: sizePerComponent, minWidth, minHeight, maxNumWide, maxNumHigh }; } function buildPackets(context) { var siz = context.SIZ; var tileIndex = context.currentTile.index; var tile = context.tiles[tileIndex]; var componentsCount = siz.Csiz; for (var c = 0; c < componentsCount; c++) { var component = tile.components[c]; var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; var resolutions = []; var subbands = []; for (var r = 0; r <= decompositionLevelsCount; r++) { var blocksDimensions = getBlocksDimensions(context, component, r); var resolution = {}; var scale = 1 << decompositionLevelsCount - r; resolution.trx0 = Math.ceil(component.tcx0 / scale); resolution.try0 = Math.ceil(component.tcy0 / scale); resolution.trx1 = Math.ceil(component.tcx1 / scale); resolution.try1 = Math.ceil(component.tcy1 / scale); resolution.resLevel = r; buildPrecincts(context, resolution, blocksDimensions); resolutions.push(resolution); var subband; if (r === 0) { subband = {}; subband.type = "LL"; subband.tbx0 = Math.ceil(component.tcx0 / scale); subband.tby0 = Math.ceil(component.tcy0 / scale); subband.tbx1 = Math.ceil(component.tcx1 / scale); subband.tby1 = Math.ceil(component.tcy1 / scale); subband.resolution = resolution; buildCodeblocks(context, subband, blocksDimensions); subbands.push(subband); resolution.subbands = [subband]; } else { var bscale = 1 << decompositionLevelsCount - r + 1; var resolutionSubbands = []; subband = {}; subband.type = "HL"; subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5); subband.tby0 = Math.ceil(component.tcy0 / bscale); subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5); subband.tby1 = Math.ceil(component.tcy1 / bscale); subband.resolution = resolution; buildCodeblocks(context, subband, blocksDimensions); subbands.push(subband); resolutionSubbands.push(subband); subband = {}; subband.type = "LH"; subband.tbx0 = Math.ceil(component.tcx0 / bscale); subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5); subband.tbx1 = Math.ceil(component.tcx1 / bscale); subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5); subband.resolution = resolution; buildCodeblocks(context, subband, blocksDimensions); subbands.push(subband); resolutionSubbands.push(subband); subband = {}; subband.type = "HH"; subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5); subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5); subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5); subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5); subband.resolution = resolution; buildCodeblocks(context, subband, blocksDimensions); subbands.push(subband); resolutionSubbands.push(subband); resolution.subbands = resolutionSubbands; } } component.resolutions = resolutions; component.subbands = subbands; } var progressionOrder = tile.codingStyleDefaultParameters.progressionOrder; switch (progressionOrder) { case 0: tile.packetsIterator = new LayerResolutionComponentPositionIterator(context); break; case 1: tile.packetsIterator = new ResolutionLayerComponentPositionIterator(context); break; case 2: tile.packetsIterator = new ResolutionPositionComponentLayerIterator(context); break; case 3: tile.packetsIterator = new PositionComponentResolutionLayerIterator(context); break; case 4: tile.packetsIterator = new ComponentPositionResolutionLayerIterator(context); break; default: throw new Error("JPX Error: Unsupported progression order " + progressionOrder); } } function parseTilePackets(context, data, offset, dataLength) { var position = 0; var buffer2, bufferSize = 0, skipNextBit = false; function readBits(count) { while (bufferSize < count) { if (offset + position >= data.length) { throw new Error("Unexpected EOF"); } var b = data[offset + position]; position++; if (skipNextBit) { buffer2 = buffer2 << 7 | b; bufferSize += 7; skipNextBit = false; } else { buffer2 = buffer2 << 8 | b; bufferSize += 8; } if (b === 255) { skipNextBit = true; } } bufferSize -= count; return buffer2 >>> bufferSize & (1 << count) - 1; } function skipMarkerIfEqual(value) { if (data[offset + position - 1] === 255 && data[offset + position] === value) { skipBytes(1); return true; } else if (data[offset + position] === 255 && data[offset + position + 1] === value) { skipBytes(2); return true; } return false; } function skipBytes(count) { position += count; } function alignToByte() { bufferSize = 0; if (skipNextBit) { position++; skipNextBit = false; } } function readCodingpasses() { if (readBits(1) === 0) { return 1; } if (readBits(1) === 0) { return 2; } var value = readBits(2); if (value < 3) { return value + 3; } value = readBits(5); if (value < 31) { return value + 6; } value = readBits(7); return value + 37; } var tileIndex = context.currentTile.index; var tile = context.tiles[tileIndex]; var sopMarkerUsed = context.COD.sopMarkerUsed; var ephMarkerUsed = context.COD.ephMarkerUsed; var packetsIterator = tile.packetsIterator; while (position < dataLength) { try { alignToByte(); if (sopMarkerUsed && skipMarkerIfEqual(145)) { skipBytes(4); } var packet = packetsIterator.nextPacket(); if (packet === void 0) { return; } if (!readBits(1)) { continue; } var layerNumber = packet.layerNumber; var queue = [], codeblock; for (var i2 = 0, ii = packet.codeblocks.length; i2 < ii; i2++) { codeblock = packet.codeblocks[i2]; var precinct = codeblock.precinct; var codeblockColumn = codeblock.cbx - precinct.cbxMin; var codeblockRow = codeblock.cby - precinct.cbyMin; var codeblockIncluded = false; var firstTimeInclusion = false; var valueReady; if (codeblock["included"] !== void 0) { codeblockIncluded = !!readBits(1); } else { precinct = codeblock.precinct; var inclusionTree, zeroBitPlanesTree; if (precinct["inclusionTree"] !== void 0) { inclusionTree = precinct.inclusionTree; } else { var width = precinct.cbxMax - precinct.cbxMin + 1; var height = precinct.cbyMax - precinct.cbyMin + 1; inclusionTree = new InclusionTree(width, height); zeroBitPlanesTree = new TagTree(width, height); precinct.inclusionTree = inclusionTree; precinct.zeroBitPlanesTree = zeroBitPlanesTree; } inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber); while (true) { if (position >= data.length) { return; } if (inclusionTree.isAboveThreshold()) { break; } if (inclusionTree.isKnown()) { inclusionTree.nextLevel(); continue; } if (readBits(1)) { inclusionTree.setKnown(); if (inclusionTree.isLeaf()) { codeblock.included = true; codeblockIncluded = firstTimeInclusion = true; break; } else { inclusionTree.nextLevel(); } } else { inclusionTree.incrementValue(); } } } if (!codeblockIncluded) { continue; } if (firstTimeInclusion) { zeroBitPlanesTree = precinct.zeroBitPlanesTree; zeroBitPlanesTree.reset(codeblockColumn, codeblockRow); while (true) { if (position >= data.length) { return; } if (readBits(1)) { valueReady = !zeroBitPlanesTree.nextLevel(); if (valueReady) { break; } } else { zeroBitPlanesTree.incrementValue(); } } codeblock.zeroBitPlanes = zeroBitPlanesTree.value; } var codingpasses = readCodingpasses(); while (readBits(1)) { codeblock.Lblock++; } var codingpassesLog2 = log2(codingpasses); var bits = (codingpasses < 1 << codingpassesLog2 ? codingpassesLog2 - 1 : codingpassesLog2) + codeblock.Lblock; var codedDataLength = readBits(bits); queue.push({ codeblock, codingpasses, dataLength: codedDataLength }); } alignToByte(); if (ephMarkerUsed) { skipMarkerIfEqual(146); } while (queue.length > 0) { var packetItem = queue.shift(); codeblock = packetItem.codeblock; if (codeblock["data"] === void 0) { codeblock.data = []; } codeblock.data.push({ data, start: offset + position, end: offset + position + packetItem.dataLength, codingpasses: packetItem.codingpasses }); position += packetItem.dataLength; } } catch (e) { return; } } return position; } function copyCoefficients(coefficients, levelWidth, levelHeight, subband, delta, mb, reversible, segmentationSymbolUsed) { var x0 = subband.tbx0; var y0 = subband.tby0; var width = subband.tbx1 - subband.tbx0; var codeblocks = subband.codeblocks; var right = subband.type.charAt(0) === "H" ? 1 : 0; var bottom = subband.type.charAt(1) === "H" ? levelWidth : 0; for (var i2 = 0, ii = codeblocks.length; i2 < ii; ++i2) { var codeblock = codeblocks[i2]; var blockWidth = codeblock.tbx1_ - codeblock.tbx0_; var blockHeight = codeblock.tby1_ - codeblock.tby0_; if (blockWidth === 0 || blockHeight === 0) { continue; } if (codeblock["data"] === void 0) { continue; } var bitModel, currentCodingpassType; bitModel = new BitModel( blockWidth, blockHeight, codeblock.subbandType, codeblock.zeroBitPlanes, mb ); currentCodingpassType = 2; var data = codeblock.data, totalLength = 0, codingpasses = 0; var j, jj, dataItem; for (j = 0, jj = data.length; j < jj; j++) { dataItem = data[j]; totalLength += dataItem.end - dataItem.start; codingpasses += dataItem.codingpasses; } var encodedData = new Int16Array(totalLength); var position = 0; for (j = 0, jj = data.length; j < jj; j++) { dataItem = data[j]; var chunk = dataItem.data.subarray(dataItem.start, dataItem.end); encodedData.set(chunk, position); position += chunk.length; } var decoder = new ArithmeticDecoder(encodedData, 0, totalLength); bitModel.setDecoder(decoder); for (j = 0; j < codingpasses; j++) { switch (currentCodingpassType) { case 0: bitModel.runSignificancePropogationPass(); break; case 1: bitModel.runMagnitudeRefinementPass(); break; case 2: bitModel.runCleanupPass(); if (segmentationSymbolUsed) { bitModel.checkSegmentationSymbol(); } break; } currentCodingpassType = (currentCodingpassType + 1) % 3; } var offset = codeblock.tbx0_ - x0 + (codeblock.tby0_ - y0) * width; var sign = bitModel.coefficentsSign; var magnitude = bitModel.coefficentsMagnitude; var bitsDecoded = bitModel.bitsDecoded; var magnitudeCorrection = reversible ? 0 : 0.5; var k, n, nb; position = 0; var interleave = subband.type !== "LL"; for (j = 0; j < blockHeight; j++) { var row = offset / width | 0; var levelOffset = 2 * row * (levelWidth - width) + right + bottom; for (k = 0; k < blockWidth; k++) { n = magnitude[position]; if (n !== 0) { n = (n + magnitudeCorrection) * delta; if (sign[position] !== 0) { n = -n; } nb = bitsDecoded[position]; var pos = interleave ? levelOffset + (offset << 1) : offset; if (reversible && nb >= mb) { coefficients[pos] = n; } else { coefficients[pos] = n * (1 << mb - nb); } } offset++; position++; } offset += width - blockWidth; } } } function transformTile(context, tile, c) { var component = tile.components[c]; var codingStyleParameters = component.codingStyleParameters; var quantizationParameters = component.quantizationParameters; var decompositionLevelsCount = codingStyleParameters.decompositionLevelsCount; var spqcds = quantizationParameters.SPqcds; var scalarExpounded = quantizationParameters.scalarExpounded; var guardBits = quantizationParameters.guardBits; var segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed; var precision = context.components[c].precision; var reversible = codingStyleParameters.reversibleTransformation; var transform = reversible ? new ReversibleTransform() : new IrreversibleTransform(); var subbandCoefficients = []; var b = 0; for (var i2 = 0; i2 <= decompositionLevelsCount; i2++) { var resolution = component.resolutions[i2]; var width = resolution.trx1 - resolution.trx0; var height = resolution.try1 - resolution.try0; var coefficients = new Float32Array(width * height); for (var j = 0, jj = resolution.subbands.length; j < jj; j++) { var mu, epsilon; if (!scalarExpounded) { mu = spqcds[0].mu; epsilon = spqcds[0].epsilon + (i2 > 0 ? 1 - i2 : 0); } else { mu = spqcds[b].mu; epsilon = spqcds[b].epsilon; b++; } var subband = resolution.subbands[j]; var gainLog2 = SubbandsGainLog2[subband.type]; var delta = reversible ? 1 : Math.pow(2, precision + gainLog2 - epsilon) * (1 + mu / 2048); var mb = guardBits + epsilon - 1; copyCoefficients( coefficients, width, height, subband, delta, mb, reversible, segmentationSymbolUsed ); } subbandCoefficients.push({ width, height, items: coefficients }); } var result = transform.calculate( subbandCoefficients, component.tcx0, component.tcy0 ); return { left: component.tcx0, top: component.tcy0, width: result.width, height: result.height, items: result.items }; } function transformComponents(context) { var siz = context.SIZ; var components = context.components; var componentsCount = siz.Csiz; var resultImages = []; for (var i2 = 0, ii = context.tiles.length; i2 < ii; i2++) { var tile = context.tiles[i2]; var transformedTiles = []; var c; for (c = 0; c < componentsCount; c++) { transformedTiles[c] = transformTile(context, tile, c); } var tile0 = transformedTiles[0]; var isSigned = components[0].isSigned; if (isSigned) { var out = new Int16Array(tile0.items.length * componentsCount); } else { var out = new Uint16Array(tile0.items.length * componentsCount); } var result = { left: tile0.left, top: tile0.top, width: tile0.width, height: tile0.height, items: out }; var shift, offset, max, min, maxK; var pos = 0, j, jj, y0, y1, y2, r, g, b, k, val; if (tile.codingStyleDefaultParameters.multipleComponentTransform) { var fourComponents = componentsCount === 4; var y0items = transformedTiles[0].items; var y1items = transformedTiles[1].items; var y2items = transformedTiles[2].items; var y3items = fourComponents ? transformedTiles[3].items : null; shift = components[0].precision - 8; offset = (128 << shift) + 0.5; max = 255 * (1 << shift); maxK = max * 0.5; min = -maxK; var component0 = tile.components[0]; var alpha01 = componentsCount - 3; jj = y0items.length; if (!component0.codingStyleParameters.reversibleTransformation) { for (j = 0; j < jj; j++, pos += alpha01) { y0 = y0items[j] + offset; y1 = y1items[j]; y2 = y2items[j]; r = y0 + 1.402 * y2; g = y0 - 0.34413 * y1 - 0.71414 * y2; b = y0 + 1.772 * y1; out[pos++] = r <= 0 ? 0 : r >= max ? 255 : r >> shift; out[pos++] = g <= 0 ? 0 : g >= max ? 255 : g >> shift; out[pos++] = b <= 0 ? 0 : b >= max ? 255 : b >> shift; } } else { for (j = 0; j < jj; j++, pos += alpha01) { y0 = y0items[j] + offset; y1 = y1items[j]; y2 = y2items[j]; g = y0 - (y2 + y1 >> 2); r = g + y2; b = g + y1; out[pos++] = r <= 0 ? 0 : r >= max ? 255 : r >> shift; out[pos++] = g <= 0 ? 0 : g >= max ? 255 : g >> shift; out[pos++] = b <= 0 ? 0 : b >= max ? 255 : b >> shift; } } if (fourComponents) { for (j = 0, pos = 3; j < jj; j++, pos += 4) { k = y3items[j]; out[pos] = k <= min ? 0 : k >= maxK ? 255 : k + offset >> shift; } } } else { for (c = 0; c < componentsCount; c++) { if (components[c].precision === 8) { var items = transformedTiles[c].items; shift = components[c].precision - 8; offset = (128 << shift) + 0.5; max = 127.5 * (1 << shift); min = -max; for (pos = c, j = 0, jj = items.length; j < jj; j++) { val = items[j]; out[pos] = val <= min ? 0 : val >= max ? 255 : val + offset >> shift; pos += componentsCount; } } else { var isSigned = components[c].isSigned; var items = transformedTiles[c].items; if (isSigned) { for (pos = c, j = 0, jj = items.length; j < jj; j++) { out[pos] = items[j]; pos += componentsCount; } } else { shift = components[c].precision - 8; offset = (128 << shift) + 0.5; var precisionMax = Math.pow(2, components[c].precision) - 1; for (pos = c, j = 0, jj = items.length; j < jj; j++) { val = items[j]; out[pos] = Math.max(Math.min(val + offset, precisionMax), 0); pos += componentsCount; } } } } } resultImages.push(result); } return resultImages; } function initializeTile(context, tileIndex) { var siz = context.SIZ; var componentsCount = siz.Csiz; var tile = context.tiles[tileIndex]; for (var c = 0; c < componentsCount; c++) { var component = tile.components[c]; var qcdOrQcc = context.currentTile.QCC[c] !== void 0 ? context.currentTile.QCC[c] : context.currentTile.QCD; component.quantizationParameters = qcdOrQcc; var codOrCoc = context.currentTile.COC[c] !== void 0 ? context.currentTile.COC[c] : context.currentTile.COD; component.codingStyleParameters = codOrCoc; } tile.codingStyleDefaultParameters = context.currentTile.COD; } var TagTree = function TagTreeClosure() { function TagTree2(width, height) { var levelsLength = log2(Math.max(width, height)) + 1; this.levels = []; for (var i2 = 0; i2 < levelsLength; i2++) { var level = { width, height, items: [] }; this.levels.push(level); width = Math.ceil(width / 2); height = Math.ceil(height / 2); } } TagTree2.prototype = { reset: function TagTree_reset(i2, j) { var currentLevel = 0, value = 0, level; while (currentLevel < this.levels.length) { level = this.levels[currentLevel]; var index = i2 + j * level.width; if (level.items[index] !== void 0) { value = level.items[index]; break; } level.index = index; i2 >>= 1; j >>= 1; currentLevel++; } currentLevel--; level = this.levels[currentLevel]; level.items[level.index] = value; this.currentLevel = currentLevel; delete this.value; }, incrementValue: function TagTree_incrementValue() { var level = this.levels[this.currentLevel]; level.items[level.index]++; }, nextLevel: function TagTree_nextLevel() { var currentLevel = this.currentLevel; var level = this.levels[currentLevel]; var value = level.items[level.index]; currentLevel--; if (currentLevel < 0) { this.value = value; return false; } this.currentLevel = currentLevel; level = this.levels[currentLevel]; level.items[level.index] = value; return true; } }; return TagTree2; }(); var InclusionTree = function InclusionTreeClosure() { function InclusionTree2(width, height) { var levelsLength = log2(Math.max(width, height)) + 1; this.levels = []; for (var i2 = 0; i2 < levelsLength; i2++) { var items = new Uint8Array(width * height); var status = new Uint8Array(width * height); for (var j = 0, jj = items.length; j < jj; j++) { items[j] = 0; status[j] = 0; } var level = { width, height, items, status }; this.levels.push(level); width = Math.ceil(width / 2); height = Math.ceil(height / 2); } } InclusionTree2.prototype = { reset: function InclusionTree_reset(i2, j, stopValue) { this.currentStopValue = stopValue; var currentLevel = 0; while (currentLevel < this.levels.length) { var level = this.levels[currentLevel]; var index = i2 + j * level.width; level.index = index; i2 >>= 1; j >>= 1; currentLevel++; } this.currentLevel = this.levels.length - 1; this.minValue = this.levels[this.currentLevel].items[0]; return; }, incrementValue: function InclusionTree_incrementValue() { var level = this.levels[this.currentLevel]; level.items[level.index] = level.items[level.index] + 1; if (level.items[level.index] > this.minValue) { this.minValue = level.items[level.index]; } }, nextLevel: function InclusionTree_nextLevel() { var currentLevel = this.currentLevel; currentLevel--; if (currentLevel < 0) { return false; } else { this.currentLevel = currentLevel; var level = this.levels[currentLevel]; if (level.items[level.index] < this.minValue) { level.items[level.index] = this.minValue; } else if (level.items[level.index] > this.minValue) { this.minValue = level.items[level.index]; } return true; } }, isLeaf: function InclusionTree_isLeaf() { return this.currentLevel === 0; }, isAboveThreshold: function InclusionTree_isAboveThreshold() { var levelindex = this.currentLevel; var level = this.levels[levelindex]; return level.items[level.index] > this.currentStopValue; }, isKnown: function InclusionTree_isKnown() { var levelindex = this.currentLevel; var level = this.levels[levelindex]; return level.status[level.index] > 0; }, setKnown: function InclusionTree_setKnown() { var levelindex = this.currentLevel; var level = this.levels[levelindex]; level.status[level.index] = 1; return; } }; return InclusionTree2; }(); var BitModel = function BitModelClosure() { var UNIFORM_CONTEXT = 17; var RUNLENGTH_CONTEXT = 18; var LLAndLHContextsLabel = new Uint8Array([ 0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8 ]); var HLContextLabel = new Uint8Array([ 0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8 ]); var HHContextLabel = new Uint8Array([ 0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5, 5, 5, 0, 0, 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8 ]); function BitModel2(width, height, subband, zeroBitPlanes, mb) { this.width = width; this.height = height; this.contextLabelTable = subband === "HH" ? HHContextLabel : subband === "HL" ? HLContextLabel : LLAndLHContextsLabel; var coefficientCount = width * height; this.neighborsSignificance = new Uint8Array(coefficientCount); this.coefficentsSign = new Uint8Array(coefficientCount); this.coefficentsMagnitude = mb > 14 ? new Uint32Array(coefficientCount) : mb > 6 ? new Uint16Array(coefficientCount) : new Uint8Array(coefficientCount); this.processingFlags = new Uint8Array(coefficientCount); var bitsDecoded = new Uint8Array(coefficientCount); if (zeroBitPlanes !== 0) { for (var i2 = 0; i2 < coefficientCount; i2++) { bitsDecoded[i2] = zeroBitPlanes; } } this.bitsDecoded = bitsDecoded; this.reset(); } BitModel2.prototype = { setDecoder: function BitModel_setDecoder(decoder) { this.decoder = decoder; }, reset: function BitModel_reset() { this.contexts = new Int8Array(19); this.contexts[0] = 4 << 1 | 0; this.contexts[UNIFORM_CONTEXT] = 46 << 1 | 0; this.contexts[RUNLENGTH_CONTEXT] = 3 << 1 | 0; }, setNeighborsSignificance: function BitModel_setNeighborsSignificance(row, column, index) { var neighborsSignificance = this.neighborsSignificance; var width = this.width, height = this.height; var left = column > 0; var right = column + 1 < width; var i2; if (row > 0) { i2 = index - width; if (left) { neighborsSignificance[i2 - 1] += 16; } if (right) { neighborsSignificance[i2 + 1] += 16; } neighborsSignificance[i2] += 4; } if (row + 1 < height) { i2 = index + width; if (left) { neighborsSignificance[i2 - 1] += 16; } if (right) { neighborsSignificance[i2 + 1] += 16; } neighborsSignificance[i2] += 4; } if (left) { neighborsSignificance[index - 1] += 1; } if (right) { neighborsSignificance[index + 1] += 1; } neighborsSignificance[index] |= 128; }, runSignificancePropogationPass: function BitModel_runSignificancePropogationPass() { var decoder = this.decoder; var width = this.width, height = this.height; var coefficentsMagnitude = this.coefficentsMagnitude; var coefficentsSign = this.coefficentsSign; var neighborsSignificance = this.neighborsSignificance; var processingFlags = this.processingFlags; var contexts = this.contexts; var labels = this.contextLabelTable; var bitsDecoded = this.bitsDecoded; var processedInverseMask = ~1; var processedMask = 1; var firstMagnitudeBitMask = 2; for (var i0 = 0; i0 < height; i0 += 4) { for (var j = 0; j < width; j++) { var index = i0 * width + j; for (var i1 = 0; i1 < 4; i1++, index += width) { var i2 = i0 + i1; if (i2 >= height) { break; } processingFlags[index] &= processedInverseMask; if (coefficentsMagnitude[index] || !neighborsSignificance[index]) { continue; } var contextLabel = labels[neighborsSignificance[index]]; var decision = decoder.readBit(contexts, contextLabel); if (decision) { var sign = this.decodeSignBit(i2, j, index); coefficentsSign[index] = sign; coefficentsMagnitude[index] = 1; this.setNeighborsSignificance(i2, j, index); processingFlags[index] |= firstMagnitudeBitMask; } bitsDecoded[index]++; processingFlags[index] |= processedMask; } } } }, decodeSignBit: function BitModel_decodeSignBit(row, column, index) { var width = this.width, height = this.height; var coefficentsMagnitude = this.coefficentsMagnitude; var coefficentsSign = this.coefficentsSign; var contribution, sign0, sign1, significance1; var contextLabel, decoded; significance1 = column > 0 && coefficentsMagnitude[index - 1] !== 0; if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) { sign1 = coefficentsSign[index + 1]; if (significance1) { sign0 = coefficentsSign[index - 1]; contribution = 1 - sign1 - sign0; } else { contribution = 1 - sign1 - sign1; } } else if (significance1) { sign0 = coefficentsSign[index - 1]; contribution = 1 - sign0 - sign0; } else { contribution = 0; } var horizontalContribution = 3 * contribution; significance1 = row > 0 && coefficentsMagnitude[index - width] !== 0; if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) { sign1 = coefficentsSign[index + width]; if (significance1) { sign0 = coefficentsSign[index - width]; contribution = 1 - sign1 - sign0 + horizontalContribution; } else { contribution = 1 - sign1 - sign1 + horizontalContribution; } } else if (significance1) { sign0 = coefficentsSign[index - width]; contribution = 1 - sign0 - sign0 + horizontalContribution; } else { contribution = horizontalContribution; } if (contribution >= 0) { contextLabel = 9 + contribution; decoded = this.decoder.readBit(this.contexts, contextLabel); } else { contextLabel = 9 - contribution; decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1; } return decoded; }, runMagnitudeRefinementPass: function BitModel_runMagnitudeRefinementPass() { var decoder = this.decoder; var width = this.width, height = this.height; var coefficentsMagnitude = this.coefficentsMagnitude; var neighborsSignificance = this.neighborsSignificance; var contexts = this.contexts; var bitsDecoded = this.bitsDecoded; var processingFlags = this.processingFlags; var processedMask = 1; var firstMagnitudeBitMask = 2; var length = width * height; var width4 = width * 4; for (var index0 = 0, indexNext; index0 < length; index0 = indexNext) { indexNext = Math.min(length, index0 + width4); for (var j = 0; j < width; j++) { for (var index = index0 + j; index < indexNext; index += width) { if (!coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) { continue; } var contextLabel = 16; if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) { processingFlags[index] ^= firstMagnitudeBitMask; var significance = neighborsSignificance[index] & 127; contextLabel = significance === 0 ? 15 : 14; } var bit = decoder.readBit(contexts, contextLabel); coefficentsMagnitude[index] = coefficentsMagnitude[index] << 1 | bit; bitsDecoded[index]++; processingFlags[index] |= processedMask; } } } }, runCleanupPass: function BitModel_runCleanupPass() { var decoder = this.decoder; var width = this.width, height = this.height; var neighborsSignificance = this.neighborsSignificance; var coefficentsMagnitude = this.coefficentsMagnitude; var coefficentsSign = this.coefficentsSign; var contexts = this.contexts; var labels = this.contextLabelTable; var bitsDecoded = this.bitsDecoded; var processingFlags = this.processingFlags; var processedMask = 1; var firstMagnitudeBitMask = 2; var oneRowDown = width; var twoRowsDown = width * 2; var threeRowsDown = width * 3; var iNext; for (var i0 = 0; i0 < height; i0 = iNext) { iNext = Math.min(i0 + 4, height); var indexBase = i0 * width; var checkAllEmpty = i0 + 3 < height; for (var j = 0; j < width; j++) { var index0 = indexBase + j; var allEmpty = checkAllEmpty && processingFlags[index0] === 0 && processingFlags[index0 + oneRowDown] === 0 && processingFlags[index0 + twoRowsDown] === 0 && processingFlags[index0 + threeRowsDown] === 0 && neighborsSignificance[index0] === 0 && neighborsSignificance[index0 + oneRowDown] === 0 && neighborsSignificance[index0 + twoRowsDown] === 0 && neighborsSignificance[index0 + threeRowsDown] === 0; var i1 = 0, index = index0; var i2 = i0, sign; if (allEmpty) { var hasSignificantCoefficent = decoder.readBit(contexts, RUNLENGTH_CONTEXT); if (!hasSignificantCoefficent) { bitsDecoded[index0]++; bitsDecoded[index0 + oneRowDown]++; bitsDecoded[index0 + twoRowsDown]++; bitsDecoded[index0 + threeRowsDown]++; continue; } i1 = decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT); if (i1 !== 0) { i2 = i0 + i1; index += i1 * width; } sign = this.decodeSignBit(i2, j, index); coefficentsSign[index] = sign; coefficentsMagnitude[index] = 1; this.setNeighborsSignificance(i2, j, index); processingFlags[index] |= firstMagnitudeBitMask; index = index0; for (var i22 = i0; i22 <= i2; i22++, index += width) { bitsDecoded[index]++; } i1++; } for (i2 = i0 + i1; i2 < iNext; i2++, index += width) { if (coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) { continue; } var contextLabel = labels[neighborsSignificance[index]]; var decision = decoder.readBit(contexts, contextLabel); if (decision === 1) { sign = this.decodeSignBit(i2, j, index); coefficentsSign[index] = sign; coefficentsMagnitude[index] = 1; this.setNeighborsSignificance(i2, j, index); processingFlags[index] |= firstMagnitudeBitMask; } bitsDecoded[index]++; } } } }, checkSegmentationSymbol: function BitModel_checkSegmentationSymbol() { var decoder = this.decoder; var contexts = this.contexts; var symbol = decoder.readBit(contexts, UNIFORM_CONTEXT) << 3 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 2 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT); if (symbol !== 10) { throw new Error("JPX Error: Invalid segmentation symbol"); } } }; return BitModel2; }(); var Transform = function TransformClosure() { function Transform2() { } Transform2.prototype.calculate = function transformCalculate(subbands, u0, v0) { var ll = subbands[0]; for (var i2 = 1, ii = subbands.length; i2 < ii; i2++) { ll = this.iterate(ll, subbands[i2], u0, v0); } return ll; }; Transform2.prototype.extend = function extend(buffer2, offset, size) { var i1 = offset - 1, j1 = offset + 1; var i2 = offset + size - 2, j2 = offset + size; buffer2[i1--] = buffer2[j1++]; buffer2[j2++] = buffer2[i2--]; buffer2[i1--] = buffer2[j1++]; buffer2[j2++] = buffer2[i2--]; buffer2[i1--] = buffer2[j1++]; buffer2[j2++] = buffer2[i2--]; buffer2[i1] = buffer2[j1]; buffer2[j2] = buffer2[i2]; }; Transform2.prototype.iterate = function Transform_iterate(ll, hl_lh_hh, u0, v0) { var llWidth = ll.width, llHeight = ll.height, llItems = ll.items; var width = hl_lh_hh.width; var height = hl_lh_hh.height; var items = hl_lh_hh.items; var i2, j, k, l, u, v; for (k = 0, i2 = 0; i2 < llHeight; i2++) { l = i2 * 2 * width; for (j = 0; j < llWidth; j++, k++, l += 2) { items[l] = llItems[k]; } } llItems = ll.items = null; var bufferPadding = 4; var rowBuffer = new Float32Array(width + 2 * bufferPadding); if (width === 1) { if ((u0 & 1) !== 0) { for (v = 0, k = 0; v < height; v++, k += width) { items[k] *= 0.5; } } } else { for (v = 0, k = 0; v < height; v++, k += width) { rowBuffer.set(items.subarray(k, k + width), bufferPadding); this.extend(rowBuffer, bufferPadding, width); this.filter(rowBuffer, bufferPadding, width); items.set( rowBuffer.subarray(bufferPadding, bufferPadding + width), k ); } } var numBuffers = 16; var colBuffers = []; for (i2 = 0; i2 < numBuffers; i2++) { colBuffers.push(new Float32Array(height + 2 * bufferPadding)); } var b, currentBuffer = 0; ll = bufferPadding + height; if (height === 1) { if ((v0 & 1) !== 0) { for (u = 0; u < width; u++) { items[u] *= 0.5; } } } else { for (u = 0; u < width; u++) { if (currentBuffer === 0) { numBuffers = Math.min(width - u, numBuffers); for (k = u, l = bufferPadding; l < ll; k += width, l++) { for (b = 0; b < numBuffers; b++) { colBuffers[b][l] = items[k + b]; } } currentBuffer = numBuffers; } currentBuffer--; var buffer2 = colBuffers[currentBuffer]; this.extend(buffer2, bufferPadding, height); this.filter(buffer2, bufferPadding, height); if (currentBuffer === 0) { k = u - numBuffers + 1; for (l = bufferPadding; l < ll; k += width, l++) { for (b = 0; b < numBuffers; b++) { items[k + b] = colBuffers[b][l]; } } } } } return { width, height, items }; }; return Transform2; }(); var IrreversibleTransform = function IrreversibleTransformClosure() { function IrreversibleTransform2() { Transform.call(this); } IrreversibleTransform2.prototype = Object.create(Transform.prototype); IrreversibleTransform2.prototype.filter = function irreversibleTransformFilter(x, offset, length) { var len = length >> 1; offset = offset | 0; var j, n, current, next; var alpha = -1.586134342059924; var beta = -0.052980118572961; var gamma = 0.882911075530934; var delta = 0.443506852043971; var K = 1.230174104914001; var K_ = 1 / K; j = offset - 3; for (n = len + 4; n--; j += 2) { x[j] *= K_; } j = offset - 2; current = delta * x[j - 1]; for (n = len + 3; n--; j += 2) { next = delta * x[j + 1]; x[j] = K * x[j] - current - next; if (n--) { j += 2; current = delta * x[j + 1]; x[j] = K * x[j] - current - next; } else { break; } } j = offset - 1; current = gamma * x[j - 1]; for (n = len + 2; n--; j += 2) { next = gamma * x[j + 1]; x[j] -= current + next; if (n--) { j += 2; current = gamma * x[j + 1]; x[j] -= current + next; } else { break; } } j = offset; current = beta * x[j - 1]; for (n = len + 1; n--; j += 2) { next = beta * x[j + 1]; x[j] -= current + next; if (n--) { j += 2; current = beta * x[j + 1]; x[j] -= current + next; } else { break; } } if (len !== 0) { j = offset + 1; current = alpha * x[j - 1]; for (n = len; n--; j += 2) { next = alpha * x[j + 1]; x[j] -= current + next; if (n--) { j += 2; current = alpha * x[j + 1]; x[j] -= current + next; } else { break; } } } }; return IrreversibleTransform2; }(); var ReversibleTransform = function ReversibleTransformClosure() { function ReversibleTransform2() { Transform.call(this); } ReversibleTransform2.prototype = Object.create(Transform.prototype); ReversibleTransform2.prototype.filter = function reversibleTransformFilter(x, offset, length) { var len = length >> 1; offset = offset | 0; var j, n; for (j = offset, n = len + 1; n--; j += 2) { x[j] -= x[j - 1] + x[j + 1] + 2 >> 2; } for (j = offset + 1, n = len; n--; j += 2) { x[j] += x[j - 1] + x[j + 1] >> 1; } }; return ReversibleTransform2; }(); return JpxImage3; }(); var ArithmeticDecoder = function ArithmeticDecoderClosure() { var QeTable = [ { qe: 22017, nmps: 1, nlps: 1, switchFlag: 1 }, { qe: 13313, nmps: 2, nlps: 6, switchFlag: 0 }, { qe: 6145, nmps: 3, nlps: 9, switchFlag: 0 }, { qe: 2753, nmps: 4, nlps: 12, switchFlag: 0 }, { qe: 1313, nmps: 5, nlps: 29, switchFlag: 0 }, { qe: 545, nmps: 38, nlps: 33, switchFlag: 0 }, { qe: 22017, nmps: 7, nlps: 6, switchFlag: 1 }, { qe: 21505, nmps: 8, nlps: 14, switchFlag: 0 }, { qe: 18433, nmps: 9, nlps: 14, switchFlag: 0 }, { qe: 14337, nmps: 10, nlps: 14, switchFlag: 0 }, { qe: 12289, nmps: 11, nlps: 17, switchFlag: 0 }, { qe: 9217, nmps: 12, nlps: 18, switchFlag: 0 }, { qe: 7169, nmps: 13, nlps: 20, switchFlag: 0 }, { qe: 5633, nmps: 29, nlps: 21, switchFlag: 0 }, { qe: 22017, nmps: 15, nlps: 14, switchFlag: 1 }, { qe: 21505, nmps: 16, nlps: 14, switchFlag: 0 }, { qe: 20737, nmps: 17, nlps: 15, switchFlag: 0 }, { qe: 18433, nmps: 18, nlps: 16, switchFlag: 0 }, { qe: 14337, nmps: 19, nlps: 17, switchFlag: 0 }, { qe: 13313, nmps: 20, nlps: 18, switchFlag: 0 }, { qe: 12289, nmps: 21, nlps: 19, switchFlag: 0 }, { qe: 10241, nmps: 22, nlps: 19, switchFlag: 0 }, { qe: 9217, nmps: 23, nlps: 20, switchFlag: 0 }, { qe: 8705, nmps: 24, nlps: 21, switchFlag: 0 }, { qe: 7169, nmps: 25, nlps: 22, switchFlag: 0 }, { qe: 6145, nmps: 26, nlps: 23, switchFlag: 0 }, { qe: 5633, nmps: 27, nlps: 24, switchFlag: 0 }, { qe: 5121, nmps: 28, nlps: 25, switchFlag: 0 }, { qe: 4609, nmps: 29, nlps: 26, switchFlag: 0 }, { qe: 4353, nmps: 30, nlps: 27, switchFlag: 0 }, { qe: 2753, nmps: 31, nlps: 28, switchFlag: 0 }, { qe: 2497, nmps: 32, nlps: 29, switchFlag: 0 }, { qe: 2209, nmps: 33, nlps: 30, switchFlag: 0 }, { qe: 1313, nmps: 34, nlps: 31, switchFlag: 0 }, { qe: 1089, nmps: 35, nlps: 32, switchFlag: 0 }, { qe: 673, nmps: 36, nlps: 33, switchFlag: 0 }, { qe: 545, nmps: 37, nlps: 34, switchFlag: 0 }, { qe: 321, nmps: 38, nlps: 35, switchFlag: 0 }, { qe: 273, nmps: 39, nlps: 36, switchFlag: 0 }, { qe: 133, nmps: 40, nlps: 37, switchFlag: 0 }, { qe: 73, nmps: 41, nlps: 38, switchFlag: 0 }, { qe: 37, nmps: 42, nlps: 39, switchFlag: 0 }, { qe: 21, nmps: 43, nlps: 40, switchFlag: 0 }, { qe: 9, nmps: 44, nlps: 41, switchFlag: 0 }, { qe: 5, nmps: 45, nlps: 42, switchFlag: 0 }, { qe: 1, nmps: 45, nlps: 43, switchFlag: 0 }, { qe: 22017, nmps: 46, nlps: 46, switchFlag: 0 } ]; function ArithmeticDecoder2(data, start, end) { this.data = data; this.bp = start; this.dataEnd = end; this.chigh = data[start]; this.clow = 0; this.byteIn(); this.chigh = this.chigh << 7 & 65535 | this.clow >> 9 & 127; this.clow = this.clow << 7 & 65535; this.ct -= 7; this.a = 32768; } ArithmeticDecoder2.prototype = { // C.3.4 Compressed data input (BYTEIN) byteIn: function ArithmeticDecoder_byteIn() { var data = this.data; var bp = this.bp; if (data[bp] === 255) { var b1 = data[bp + 1]; if (b1 > 143) { this.clow += 65280; this.ct = 8; } else { bp++; this.clow += data[bp] << 9; this.ct = 7; this.bp = bp; } } else { bp++; this.clow += bp < this.dataEnd ? data[bp] << 8 : 65280; this.ct = 8; this.bp = bp; } if (this.clow > 65535) { this.chigh += this.clow >> 16; this.clow &= 65535; } }, // C.3.2 Decoding a decision (DECODE) readBit: function ArithmeticDecoder_readBit(contexts, pos) { var cx_index = contexts[pos] >> 1, cx_mps = contexts[pos] & 1; var qeTableIcx = QeTable[cx_index]; var qeIcx = qeTableIcx.qe; var d; var a = this.a - qeIcx; if (this.chigh < qeIcx) { if (a < qeIcx) { a = qeIcx; d = cx_mps; cx_index = qeTableIcx.nmps; } else { a = qeIcx; d = 1 ^ cx_mps; if (qeTableIcx.switchFlag === 1) { cx_mps = d; } cx_index = qeTableIcx.nlps; } } else { this.chigh -= qeIcx; if ((a & 32768) !== 0) { this.a = a; return cx_mps; } if (a < qeIcx) { d = 1 ^ cx_mps; if (qeTableIcx.switchFlag === 1) { cx_mps = d; } cx_index = qeTableIcx.nlps; } else { d = cx_mps; cx_index = qeTableIcx.nmps; } } do { if (this.ct === 0) { this.byteIn(); } a <<= 1; this.chigh = this.chigh << 1 & 65535 | this.clow >> 15 & 1; this.clow = this.clow << 1 & 65535; this.ct--; } while ((a & 32768) === 0); this.a = a; contexts[pos] = cx_index << 1 | cx_mps; return d; } }; return ArithmeticDecoder2; }(); var globalScope2 = typeof window === "undefined" ? exports2 : window; if (!globalScope2.PDFJS) { globalScope2.PDFJS = {}; } var PDFJS = PDFJS || {}; PDFJS.VERBOSITY_LEVELS = { errors: 0, warnings: 1, infos: 5 }; var OPS = PDFJS.OPS = { // Intentionally start from 1 so it is easy to spot bad operators that will be // 0's. dependency: 1, setLineWidth: 2, setLineCap: 3, setLineJoin: 4, setMiterLimit: 5, setDash: 6, setRenderingIntent: 7, setFlatness: 8, setGState: 9, save: 10, restore: 11, transform: 12, moveTo: 13, lineTo: 14, curveTo: 15, curveTo2: 16, curveTo3: 17, closePath: 18, rectangle: 19, stroke: 20, closeStroke: 21, fill: 22, eoFill: 23, fillStroke: 24, eoFillStroke: 25, closeFillStroke: 26, closeEOFillStroke: 27, endPath: 28, clip: 29, eoClip: 30, beginText: 31, endText: 32, setCharSpacing: 33, setWordSpacing: 34, setHScale: 35, setLeading: 36, setFont: 37, setTextRenderingMode: 38, setTextRise: 39, moveText: 40, setLeadingMoveText: 41, setTextMatrix: 42, nextLine: 43, showText: 44, showSpacedText: 45, nextLineShowText: 46, nextLineSetSpacingShowText: 47, setCharWidth: 48, setCharWidthAndBounds: 49, setStrokeColorSpace: 50, setFillColorSpace: 51, setStrokeColor: 52, setStrokeColorN: 53, setFillColor: 54, setFillColorN: 55, setStrokeGray: 56, setFillGray: 57, setStrokeRGBColor: 58, setFillRGBColor: 59, setStrokeCMYKColor: 60, setFillCMYKColor: 61, shadingFill: 62, beginInlineImage: 63, beginImageData: 64, endInlineImage: 65, paintXObject: 66, markPoint: 67, markPointProps: 68, beginMarkedContent: 69, beginMarkedContentProps: 70, endMarkedContent: 71, beginCompat: 72, endCompat: 73, paintFormXObjectBegin: 74, paintFormXObjectEnd: 75, beginGroup: 76, endGroup: 77, beginAnnotations: 78, endAnnotations: 79, beginAnnotation: 80, endAnnotation: 81, paintJpegXObject: 82, paintImageMaskXObject: 83, paintImageMaskXObjectGroup: 84, paintImageXObject: 85, paintInlineImageXObject: 86, paintInlineImageXObjectGroup: 87, paintImageXObjectRepeat: 88, paintImageMaskXObjectRepeat: 89, paintSolidColorImageMask: 90, constructPath: 91 }; function info(msg) { if (PDFJS.verbosity >= PDFJS.VERBOSITY_LEVELS.infos) { console.log("Info: " + msg); } } function warn(msg) { if (PDFJS.verbosity >= PDFJS.VERBOSITY_LEVELS.warnings) { console.log("Warning: " + msg); } } function error(msg) { if (arguments.length > 1) { var logArguments = ["Error:"]; logArguments.push.apply(logArguments, arguments); console.log.apply(console, logArguments); msg = [].join.call(arguments, " "); } else { console.log("Error: " + msg); } console.log(backtrace()); UnsupportedManager.notify(UNSUPPORTED_FEATURES.unknown); throw new Error(msg); } function backtrace() { try { throw new Error(); } catch (e) { return e.stack ? e.stack.split("\n").slice(2).join("\n") : ""; } } var UNSUPPORTED_FEATURES = PDFJS.UNSUPPORTED_FEATURES = { unknown: "unknown", forms: "forms", javaScript: "javaScript", smask: "smask", shadingPattern: "shadingPattern", font: "font" }; var UnsupportedManager = PDFJS.UnsupportedManager = function UnsupportedManagerClosure() { var listeners = []; return { listen: function(cb) { listeners.push(cb); }, notify: function(featureId) { warn('Unsupported feature "' + featureId + '"'); for (var i2 = 0, ii = listeners.length; i2 < ii; i2++) { listeners[i2](featureId); } } }; }(); function isValidUrl(url, allowRelative) { if (!url) { return false; } var protocol = /^[a-z][a-z0-9+\-.]*(?=:)/i.exec(url); if (!protocol) { return allowRelative; } protocol = protocol[0].toLowerCase(); switch (protocol) { case "http": case "https": case "ftp": case "mailto": case "tel": return true; default: return false; } } PDFJS.isValidUrl = isValidUrl; function shadow(obj, prop, value) { Object.defineProperty(obj, prop, { value, enumerable: true, configurable: true, writable: false }); return value; } PDFJS.shadow = shadow; var PasswordResponses = PDFJS.PasswordResponses = { NEED_PASSWORD: 1, INCORRECT_PASSWORD: 2 }; var PasswordException = function PasswordExceptionClosure() { function PasswordException2(msg, code) { this.name = "PasswordException"; this.message = msg; this.code = code; } PasswordException2.prototype = new Error(); PasswordException2.constructor = PasswordException2; return PasswordException2; }(); PDFJS.PasswordException = PasswordException; var UnknownErrorException = function UnknownErrorExceptionClosure() { function UnknownErrorException2(msg, details) { this.name = "UnknownErrorException"; this.message = msg; this.details = details; } UnknownErrorException2.prototype = new Error(); UnknownErrorException2.constructor = UnknownErrorException2; return UnknownErrorException2; }(); PDFJS.UnknownErrorException = UnknownErrorException; var InvalidPDFException = function InvalidPDFExceptionClosure() { function InvalidPDFException2(msg) { this.name = "InvalidPDFException"; this.message = msg; } InvalidPDFException2.prototype = new Error(); InvalidPDFException2.constructor = InvalidPDFException2; return InvalidPDFException2; }(); PDFJS.InvalidPDFException = InvalidPDFException; var MissingPDFException = function MissingPDFExceptionClosure() { function MissingPDFException2(msg) { this.name = "MissingPDFException"; this.message = msg; } MissingPDFException2.prototype = new Error(); MissingPDFException2.constructor = MissingPDFException2; return MissingPDFException2; }(); PDFJS.MissingPDFException = MissingPDFException; var UnexpectedResponseException = function UnexpectedResponseExceptionClosure() { function UnexpectedResponseException2(msg, status) { this.name = "UnexpectedResponseException"; this.message = msg; this.status = status; } UnexpectedResponseException2.prototype = new Error(); UnexpectedResponseException2.constructor = UnexpectedResponseException2; return UnexpectedResponseException2; }(); PDFJS.UnexpectedResponseException = UnexpectedResponseException; var NotImplementedException = function NotImplementedExceptionClosure() { function NotImplementedException2(msg) { this.message = msg; } NotImplementedException2.prototype = new Error(); NotImplementedException2.prototype.name = "NotImplementedException"; NotImplementedException2.constructor = NotImplementedException2; return NotImplementedException2; }(); var MissingDataException = function MissingDataExceptionClosure() { function MissingDataException2(begin, end) { this.begin = begin; this.end = end; this.message = "Missing data [" + begin + ", " + end + ")"; } MissingDataException2.prototype = new Error(); MissingDataException2.prototype.name = "MissingDataException"; MissingDataException2.constructor = MissingDataException2; return MissingDataException2; }(); var XRefParseException = function XRefParseExceptionClosure() { function XRefParseException2(msg) { this.message = msg; } XRefParseException2.prototype = new Error(); XRefParseException2.prototype.name = "XRefParseException"; XRefParseException2.constructor = XRefParseException2; return XRefParseException2; }(); function log2(x) { var n = 1, i2 = 0; while (x > n) { n <<= 1; i2++; } return i2; } function readUint16(data, offset) { return data[offset] << 8 | data[offset + 1]; } function readUint32(data, offset) { return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0; } function isLittleEndian() { var buffer8 = new Uint8Array(2); buffer8[0] = 1; var buffer16 = new Uint16Array(buffer8.buffer); return buffer16[0] === 1; } Object.defineProperty(PDFJS, "isLittleEndian", { configurable: true, get: function PDFJS_isLittleEndian() { return shadow(PDFJS, "isLittleEndian", isLittleEndian()); } }); function hasCanvasTypedArrays() { var canvas = document.createElement("canvas"); canvas.width = canvas.height = 1; var ctx = canvas.getContext("2d"); var imageData = ctx.createImageData(1, 1); return typeof imageData.data.buffer !== "undefined"; } Object.defineProperty(PDFJS, "hasCanvasTypedArrays", { configurable: true, get: function PDFJS_hasCanvasTypedArrays() { return shadow(PDFJS, "hasCanvasTypedArrays", hasCanvasTypedArrays()); } }); var Uint32ArrayView = function Uint32ArrayViewClosure() { function Uint32ArrayView2(buffer2, length) { this.buffer = buffer2; this.byteLength = buffer2.length; this.length = length === void 0 ? this.byteLength >> 2 : length; ensureUint32ArrayViewProps(this.length); } Uint32ArrayView2.prototype = /* @__PURE__ */ Object.create(null); var uint32ArrayViewSetters = 0; function createUint32ArrayProp(index) { return { get: function() { var buffer2 = this.buffer, offset = index << 2; return (buffer2[offset] | buffer2[offset + 1] << 8 | buffer2[offset + 2] << 16 | buffer2[offset + 3] << 24) >>> 0; }, set: function(value) { var buffer2 = this.buffer, offset = index << 2; buffer2[offset] = value & 255; buffer2[offset + 1] = value >> 8 & 255; buffer2[offset + 2] = value >> 16 & 255; buffer2[offset + 3] = value >>> 24 & 255; } }; } function ensureUint32ArrayViewProps(length) { while (uint32ArrayViewSetters < length) { Object.defineProperty( Uint32ArrayView2.prototype, uint32ArrayViewSetters, createUint32ArrayProp(uint32ArrayViewSetters) ); uint32ArrayViewSetters++; } } return Uint32ArrayView2; }(); var Util = PDFJS.Util = function UtilClosure() { function Util2() { } var rgbBuf = ["rgb(", 0, ",", 0, ",", 0, ")"]; Util2.makeCssRgb = function Util_makeCssRgb(r, g, b) { rgbBuf[1] = r; rgbBuf[3] = g; rgbBuf[5] = b; return rgbBuf.join(""); }; Util2.transform = function Util_transform(m1, m2) { return [ m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5] ]; }; Util2.applyTransform = function Util_applyTransform(p, m) { var xt = p[0] * m[0] + p[1] * m[2] + m[4]; var yt = p[0] * m[1] + p[1] * m[3] + m[5]; return [xt, yt]; }; Util2.applyInverseTransform = function Util_applyInverseTransform(p, m) { var d = m[0] * m[3] - m[1] * m[2]; var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d; return [xt, yt]; }; Util2.getAxialAlignedBoundingBox = function Util_getAxialAlignedBoundingBox(r, m) { var p1 = Util2.applyTransform(r, m); var p2 = Util2.applyTransform(r.slice(2, 4), m); var p3 = Util2.applyTransform([r[0], r[3]], m); var p4 = Util2.applyTransform([r[2], r[1]], m); return [ Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1]) ]; }; Util2.inverseTransform = function Util_inverseTransform(m) { var d = m[0] * m[3] - m[1] * m[2]; return [ m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d ]; }; Util2.apply3dTransform = function Util_apply3dTransform(m, v) { return [ m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2] ]; }; Util2.singularValueDecompose2dScale = function Util_singularValueDecompose2dScale(m) { var transpose = [m[0], m[2], m[1], m[3]]; var a = m[0] * transpose[0] + m[1] * transpose[2]; var b = m[0] * transpose[1] + m[1] * transpose[3]; var c = m[2] * transpose[0] + m[3] * transpose[2]; var d = m[2] * transpose[1] + m[3] * transpose[3]; var first = (a + d) / 2; var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2; var sx = first + second || 1; var sy = first - second || 1; return [Math.sqrt(sx), Math.sqrt(sy)]; }; Util2.normalizeRect = function Util_normalizeRect(rect) { var r = rect.slice(0); if (rect[0] > rect[2]) { r[0] = rect[2]; r[2] = rect[0]; } if (rect[1] > rect[3]) { r[1] = rect[3]; r[3] = rect[1]; } return r; }; Util2.intersect = function Util_intersect(rect1, rect2) { function compare(a, b) { return a - b; } var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare), orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare), result = []; rect1 = Util2.normalizeRect(rect1); rect2 = Util2.normalizeRect(rect2); if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) { result[0] = orderedX[1]; result[2] = orderedX[2]; } else { return false; } if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) { result[1] = orderedY[1]; result[3] = orderedY[2]; } else { return false; } return result; }; Util2.sign = function Util_sign(num) { return num < 0 ? -1 : 1; }; Util2.appendToArray = function Util_appendToArray(arr1, arr2) { Array.prototype.push.apply(arr1, arr2); }; Util2.prependToArray = function Util_prependToArray(arr1, arr2) { Array.prototype.unshift.apply(arr1, arr2); }; Util2.extendObj = function extendObj(obj1, obj2) { for (var key2 in obj2) { obj1[key2] = obj2[key2]; } }; Util2.getInheritableProperty = function Util_getInheritableProperty(dict, name) { while (dict && !dict.has(name)) { dict = dict.get("Parent"); } if (!dict) { return null; } return dict.get(name); }; Util2.inherit = function Util_inherit(sub, base, prototype) { sub.prototype = Object.create(base.prototype); sub.prototype.constructor = sub; for (var prop in prototype) { sub.prototype[prop] = prototype[prop]; } }; Util2.loadScript = function Util_loadScript(src, callback) { var script = document.createElement("script"); var loaded = false; script.setAttribute("src", src); if (callback) { script.onload = function() { if (!loaded) { callback(); } loaded = true; }; } document.getElementsByTagName("head")[0].appendChild(script); }; return Util2; }(); var PageViewport = PDFJS.PageViewport = function PageViewportClosure() { function PageViewport2(viewBox, scale, rotation, offsetX, offsetY, dontFlip) { this.viewBox = viewBox; this.scale = scale; this.rotation = rotation; this.offsetX = offsetX; this.offsetY = offsetY; var centerX = (viewBox[2] + viewBox[0]) / 2; var centerY = (viewBox[3] + viewBox[1]) / 2; var rotateA, rotateB, rotateC, rotateD; rotation = rotation % 360; rotation = rotation < 0 ? rotation + 360 : rotation; switch (rotation) { case 180: rotateA = -1; rotateB = 0; rotateC = 0; rotateD = 1; break; case 90: rotateA = 0; rotateB = 1; rotateC = 1; rotateD = 0; break; case 270: rotateA = 0; rotateB = -1; rotateC = -1; rotateD = 0; break; default: rotateA = 1; rotateB = 0; rotateC = 0; rotateD = -1; break; } if (dontFlip) { rotateC = -rotateC; rotateD = -rotateD; } var offsetCanvasX, offsetCanvasY; var width, height; if (rotateA === 0) { offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX; offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY; width = Math.abs(viewBox[3] - viewBox[1]) * scale; height = Math.abs(viewBox[2] - viewBox[0]) * scale; } else { offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX; offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY; width = Math.abs(viewBox[2] - viewBox[0]) * scale; height = Math.abs(viewBox[3] - viewBox[1]) * scale; } this.transform = [ rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY ]; this.width = width; this.height = height; this.fontScale = scale; } PageViewport2.prototype = /** @lends PDFJS.PageViewport.prototype */ { /** * Clones viewport with additional properties. * @param args {Object} (optional) If specified, may contain the 'scale' or * 'rotation' properties to override the corresponding properties in * the cloned viewport. * @returns {PDFJS.PageViewport} Cloned viewport. */ clone: function PageViewPort_clone(args) { args = args || {}; var scale = "scale" in args ? args.scale : this.scale; var rotation = "rotation" in args ? args.rotation : this.rotation; return new PageViewport2( this.viewBox.slice(), scale, rotation, this.offsetX, this.offsetY, args.dontFlip ); }, /** * Converts PDF point to the viewport coordinates. For examples, useful for * converting PDF location into canvas pixel coordinates. * @param x {number} X coordinate. * @param y {number} Y coordinate. * @returns {Object} Object that contains 'x' and 'y' properties of the * point in the viewport coordinate space. * @see {@link convertToPdfPoint} * @see {@link convertToViewportRectangle} */ convertToViewportPoint: function PageViewport_convertToViewportPoint(x, y) { return Util.applyTransform([x, y], this.transform); }, /** * Converts PDF rectangle to the viewport coordinates. * @param rect {Array} xMin, yMin, xMax and yMax coordinates. * @returns {Array} Contains corresponding coordinates of the rectangle * in the viewport coordinate space. * @see {@link convertToViewportPoint} */ convertToViewportRectangle: function PageViewport_convertToViewportRectangle(rect) { var tl = Util.applyTransform([rect[0], rect[1]], this.transform); var br = Util.applyTransform([rect[2], rect[3]], this.transform); return [tl[0], tl[1], br[0], br[1]]; }, /** * Converts viewport coordinates to the PDF location. For examples, useful * for converting canvas pixel location into PDF one. * @param x {number} X coordinate. * @param y {number} Y coordinate. * @returns {Object} Object that contains 'x' and 'y' properties of the * point in the PDF coordinate space. * @see {@link convertToViewportPoint} */ convertToPdfPoint: function PageViewport_convertToPdfPoint(x, y) { return Util.applyInverseTransform([x, y], this.transform); } }; return PageViewport2; }(); function createPromiseCapability() { var capability = {}; capability.promise = new Promise(function(resolve, reject) { capability.resolve = resolve; capability.reject = reject; }); return capability; } PDFJS.createPromiseCapability = createPromiseCapability; (function PromiseClosure() { if (globalScope2.Promise) { if (typeof globalScope2.Promise.all !== "function") { globalScope2.Promise.all = function(iterable) { var count = 0, results = [], resolve, reject; var promise = new globalScope2.Promise(function(resolve_, reject_) { resolve = resolve_; reject = reject_; }); iterable.forEach(function(p, i2) { count++; p.then(function(result) { results[i2] = result; count--; if (count === 0) { resolve(results); } }, reject); }); if (count === 0) { resolve(results); } return promise; }; } if (typeof globalScope2.Promise.resolve !== "function") { globalScope2.Promise.resolve = function(value) { return new globalScope2.Promise(function(resolve) { resolve(value); }); }; } if (typeof globalScope2.Promise.reject !== "function") { globalScope2.Promise.reject = function(reason) { return new globalScope2.Promise(function(resolve, reject) { reject(reason); }); }; } if (typeof globalScope2.Promise.prototype.catch2 !== "function") { globalScope2.Promise.prototype.catch2 = function(onReject) { return globalScope2.Promise.prototype.then(void 0, onReject); }; } return; } var STATUS_PENDING = 0; var STATUS_RESOLVED = 1; var STATUS_REJECTED = 2; var REJECTION_TIMEOUT = 500; var HandlerManager = { handlers: [], running: false, unhandledRejections: [], pendingRejectionCheck: false, scheduleHandlers: function scheduleHandlers(promise) { if (promise._status === STATUS_PENDING) { return; } this.handlers = this.handlers.concat(promise._handlers); promise._handlers = []; if (this.running) { return; } this.running = true; setTimeout(this.runHandlers.bind(this), 0); }, runHandlers: function runHandlers() { var RUN_TIMEOUT = 1; var timeoutAt = Date.now() + RUN_TIMEOUT; while (this.handlers.length > 0) { var handler = this.handlers.shift(); var nextStatus = handler.thisPromise._status; var nextValue = handler.thisPromise._value; try { if (nextStatus === STATUS_RESOLVED) { if (typeof handler.onResolve === "function") { nextValue = handler.onResolve(nextValue); } } else if (typeof handler.onReject === "function") { nextValue = handler.onReject(nextValue); nextStatus = STATUS_RESOLVED; if (handler.thisPromise._unhandledRejection) { this.removeUnhandeledRejection(handler.thisPromise); } } } catch (ex) { nextStatus = STATUS_REJECTED; nextValue = ex; } handler.nextPromise._updateStatus(nextStatus, nextValue); if (Date.now() >= timeoutAt) { break; } } if (this.handlers.length > 0) { setTimeout(this.runHandlers.bind(this), 0); return; } this.running = false; }, addUnhandledRejection: function addUnhandledRejection(promise) { this.unhandledRejections.push({ promise, time: Date.now() }); this.scheduleRejectionCheck(); }, removeUnhandeledRejection: function removeUnhandeledRejection(promise) { promise._unhandledRejection = false; for (var i2 = 0; i2 < this.unhandledRejections.length; i2++) { if (this.unhandledRejections[i2].promise === promise) { this.unhandledRejections.splice(i2); i2--; } } }, scheduleRejectionCheck: function scheduleRejectionCheck() { if (this.pendingRejectionCheck) { return; } this.pendingRejectionCheck = true; setTimeout(function rejectionCheck() { this.pendingRejectionCheck = false; var now = Date.now(); for (var i2 = 0; i2 < this.unhandledRejections.length; i2++) { if (now - this.unhandledRejections[i2].time > REJECTION_TIMEOUT) { var unhandled = this.unhandledRejections[i2].promise._value; var msg = "Unhandled rejection: " + unhandled; if (unhandled.stack) { msg += "\n" + unhandled.stack; } warn(msg); this.unhandledRejections.splice(i2); i2--; } } if (this.unhandledRejections.length) { this.scheduleRejectionCheck(); } }.bind(this), REJECTION_TIMEOUT); } }; function Promise2(resolver) { this._status = STATUS_PENDING; this._handlers = []; try { resolver.call(this, this._resolve.bind(this), this._reject.bind(this)); } catch (e) { this._reject(e); } } Promise2.all = function Promise_all(promises) { var resolveAll, rejectAll; var deferred = new Promise2(function(resolve2, reject2) { resolveAll = resolve2; rejectAll = reject2; }); var unresolved = promises.length; var results = []; if (unresolved === 0) { resolveAll(results); return deferred; } function reject(reason) { if (deferred._status === STATUS_REJECTED) { return; } results = []; rejectAll(reason); } for (var i2 = 0, ii = promises.length; i2 < ii; ++i2) { var promise = promises[i2]; var resolve = function(i3) { return function(value) { if (deferred._status === STATUS_REJECTED) { return; } results[i3] = value; unresolved--; if (unresolved === 0) { resolveAll(results); } }; }(i2); if (Promise2.isPromise(promise)) { promise.then(resolve, reject); } else { resolve(promise); } } return deferred; }; Promise2.isPromise = function Promise_isPromise(value) { return value && typeof value.then === "function"; }; Promise2.resolve = function Promise_resolve(value) { return new Promise2(function(resolve) { resolve(value); }); }; Promise2.reject = function Promise_reject(reason) { return new Promise2(function(resolve, reject) { reject(reason); }); }; Promise2.prototype = { _status: null, _value: null, _handlers: null, _unhandledRejection: null, _updateStatus: function Promise__updateStatus(status, value) { if (this._status === STATUS_RESOLVED || this._status === STATUS_REJECTED) { return; } if (status === STATUS_RESOLVED && Promise2.isPromise(value)) { value.then( this._updateStatus.bind(this, STATUS_RESOLVED), this._updateStatus.bind(this, STATUS_REJECTED) ); return; } this._status = status; this._value = value; if (status === STATUS_REJECTED && this._handlers.length === 0) { this._unhandledRejection = true; HandlerManager.addUnhandledRejection(this); } HandlerManager.scheduleHandlers(this); }, _resolve: function Promise_resolve(value) { this._updateStatus(STATUS_RESOLVED, value); }, _reject: function Promise_reject(reason) { this._updateStatus(STATUS_REJECTED, reason); }, then: function Promise_then(onResolve, onReject) { var nextPromise = new Promise2(function(resolve, reject) { this.resolve = resolve; this.reject = reject; }); this._handlers.push({ thisPromise: this, onResolve, onReject, nextPromise }); HandlerManager.scheduleHandlers(this); return nextPromise; }, catch2: function Promise_catch(onReject) { return this.then(void 0, onReject); } }; globalScope2.Promise = Promise2; })(); var StatTimer = function StatTimerClosure() { function rpad(str, pad, length) { while (str.length < length) { str += pad; } return str; } function StatTimer2() { this.started = {}; this.times = []; this.enabled = true; } StatTimer2.prototype = { time: function StatTimer_time(name) { if (!this.enabled) { return; } if (name in this.started) { warn("Timer is already running for " + name); } this.started[name] = Date.now(); }, timeEnd: function StatTimer_timeEnd(name) { if (!this.enabled) { return; } if (!(name in this.started)) { warn("Timer has not been started for " + name); } this.times.push({ "name": name, "start": this.started[name], "end": Date.now() }); delete this.started[name]; }, toString: function StatTimer_toString() { var i2, ii; var times = this.times; var out = ""; var longest = 0; for (i2 = 0, ii = times.length; i2 < ii; ++i2) { var name = times[i2]["name"]; if (name.length > longest) { longest = name.length; } } for (i2 = 0, ii = times.length; i2 < ii; ++i2) { var span = times[i2]; var duration = span.end - span.start; out += rpad(span["name"], " ", longest) + " " + duration + "ms\n"; } return out; } }; return StatTimer2; }(); PDFJS.createBlob = function createBlob(data, contentType) { if (typeof Blob !== "undefined") { return new Blob([data], { type: contentType }); } var bb = new MozBlobBuilder(); bb.append(data); return bb.getBlob(contentType); }; PDFJS.createObjectURL = function createObjectURLClosure() { var digits = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; return function createObjectURL(data, contentType) { if (!PDFJS.disableCreateObjectURL && typeof URL !== "undefined" && URL.createObjectURL) { var blob = PDFJS.createBlob(data, contentType); return URL.createObjectURL(blob); } var buffer2 = "data:" + contentType + ";base64,"; for (var i2 = 0, ii = data.length; i2 < ii; i2 += 3) { var b1 = data[i2] & 255; var b2 = data[i2 + 1] & 255; var b3 = data[i2 + 2] & 255; var d1 = b1 >> 2, d2 = (b1 & 3) << 4 | b2 >> 4; var d3 = i2 + 1 < ii ? (b2 & 15) << 2 | b3 >> 6 : 64; var d4 = i2 + 2 < ii ? b3 & 63 : 64; buffer2 += digits[d1] + digits[d2] + digits[d3] + digits[d4]; } return buffer2; }; }(); function MessageHandler(name, comObj) { this.name = name; this.comObj = comObj; this.callbackIndex = 1; this.postMessageTransfers = true; var callbacksCapabilities = this.callbacksCapabilities = {}; var ah = this.actionHandler = {}; ah["console_log"] = [function ahConsoleLog(data) { console.log.apply(console, data); }]; ah["console_error"] = [function ahConsoleError(data) { console.error.apply(console, data); }]; ah["_unsupported_feature"] = [function ah_unsupportedFeature(data) { UnsupportedManager.notify(data); }]; comObj.onmessage = function messageHandlerComObjOnMessage(event) { var data = event.data; if (data.isReply) { var callbackId = data.callbackId; if (data.callbackId in callbacksCapabilities) { var callback = callbacksCapabilities[callbackId]; delete callbacksCapabilities[callbackId]; if ("error" in data) { callback.reject(data.error); } else { callback.resolve(data.data); } } else { error("Cannot resolve callback " + callbackId); } } else if (data.action in ah) { var action = ah[data.action]; if (data.callbackId) { Promise.resolve().then(function() { return action[0].call(action[1], data.data); }).then(function(result) { comObj.postMessage({ isReply: true, callbackId: data.callbackId, data: result }); }, function(reason) { comObj.postMessage({ isReply: true, callbackId: data.callbackId, error: reason }); }); } else { action[0].call(action[1], data.data); } } else { error("Unknown action from worker: " + data.action); } }; } MessageHandler.prototype = { on: function messageHandlerOn(actionName, handler, scope) { var ah = this.actionHandler; if (ah[actionName]) { error('There is already an actionName called "' + actionName + '"'); } ah[actionName] = [handler, scope]; }, /** * Sends a message to the comObj to invoke the action with the supplied data. * @param {String} actionName Action to call. * @param {JSON} data JSON data to send. * @param {Array} [transfers] Optional list of transfers/ArrayBuffers */ send: function messageHandlerSend(actionName, data, transfers) { var message = { action: actionName, data }; this.postMessage(message, transfers); }, /** * Sends a message to the comObj to invoke the action with the supplied data. * Expects that other side will callback with the response. * @param {String} actionName Action to call. * @param {JSON} data JSON data to send. * @param {Array} [transfers] Optional list of transfers/ArrayBuffers. * @returns {Promise} Promise to be resolved with response data. */ sendWithPromise: function messageHandlerSendWithPromise(actionName, data, transfers) { var callbackId = this.callbackIndex++; var message = { action: actionName, data, callbackId }; var capability = createPromiseCapability(); this.callbacksCapabilities[callbackId] = capability; try { this.postMessage(message, transfers); } catch (e) { capability.reject(e); } return capability.promise; }, /** * Sends raw message to the comObj. * @private * @param message {Object} Raw message. * @param transfers List of transfers/ArrayBuffers, or undefined. */ postMessage: function(message, transfers) { if (transfers && this.postMessageTransfers) { this.comObj.postMessage(message, transfers); } else { this.comObj.postMessage(message); } } }; var moduleType3 = typeof module2; if (moduleType3 !== "undefined" && module2.exports) { module2.exports = JpxImage2; } } }); // lib/charLS-DynamicMemory-browser.js var require_charLS_DynamicMemory_browser = __commonJS({ "lib/charLS-DynamicMemory-browser.js"(exports, module) { var CharLS = function(Module) { Module = Module || {}; var Module; if (!Module) Module = (typeof CharLS !== "undefined" ? CharLS : null) || {}; var moduleOverrides = {}; for (var key in Module) { if (Module.hasOwnProperty(key)) { moduleOverrides[key] = Module[key]; } } var ENVIRONMENT_IS_WEB = typeof window === "object"; var ENVIRONMENT_IS_WORKER = typeof importScripts === "function"; var ENVIRONMENT_IS_NODE = typeof process === "object" && typeof require === "function" && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER; var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; if (ENVIRONMENT_IS_NODE) { if (!Module["print"]) Module["print"] = function print2(x) { process["stdout"].write(x + "\n"); }; if (!Module["printErr"]) Module["printErr"] = function printErr2(x) { process["stderr"].write(x + "\n"); }; var nodeFS = require("fs"); var nodePath = require("path"); Module["read"] = function read2(filename, binary) { filename = nodePath["normalize"](filename); var ret = nodeFS["readFileSync"](filename); if (!ret && filename != nodePath["resolve"](filename)) { filename = path.join(__dirname, "..", "src", filename); ret = nodeFS["readFileSync"](filename); } if (ret && !binary) ret = ret.toString(); return ret; }; Module["readBinary"] = function readBinary(filename) { var ret = Module["read"](filename, true); if (!ret.buffer) { ret = new Uint8Array(ret); } assert(ret.buffer); return ret; }; Module["load"] = function load(f) { globalEval(read(f)); }; if (!Module["thisProgram"]) { if (process["argv"].length > 1) { Module["thisProgram"] = process["argv"][1].replace(/\\/g, "/"); } else { Module["thisProgram"] = "unknown-program"; } } Module["arguments"] = process["argv"].slice(2); if (typeof module !== "undefined") { module["exports"] = Module; } process["on"]("uncaughtException", function(ex) { if (!(ex instanceof ExitStatus)) { throw ex; } }); Module["inspect"] = function() { return "[Emscripten Module object]"; }; } else if (ENVIRONMENT_IS_SHELL) { if (!Module["print"]) Module["print"] = print; if (typeof printErr != "undefined") Module["printErr"] = printErr; if (typeof read != "undefined") { Module["read"] = read; } else { Module["read"] = function read2() { throw "no read() available (jsc?)"; }; } Module["readBinary"] = function readBinary(f) { if (typeof readbuffer === "function") { return new Uint8Array(readbuffer(f)); } var data = read(f, "binary"); assert(typeof data === "object"); return data; }; if (typeof scriptArgs != "undefined") { Module["arguments"] = scriptArgs; } else if (typeof arguments != "undefined") { Module["arguments"] = arguments; } } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { Module["read"] = function read2(url) { var xhr = new XMLHttpRequest(); xhr.open("GET", url, false); xhr.send(null); return xhr.responseText; }; if (typeof arguments != "undefined") { Module["arguments"] = arguments; } if (typeof console !== "undefined") { if (!Module["print"]) Module["print"] = function print2(x) { console.log(x); }; if (!Module["printErr"]) Module["printErr"] = function printErr2(x) { console.log(x); }; } else { var TRY_USE_DUMP = false; if (!Module["print"]) Module["print"] = TRY_USE_DUMP && typeof dump !== "undefined" ? function(x) { dump(x); } : function(x) { }; } if (ENVIRONMENT_IS_WORKER) { Module["load"] = importScripts; } if (typeof Module["setWindowTitle"] === "undefined") { Module["setWindowTitle"] = function(title) { document.title = title; }; } } else { throw "Unknown runtime environment. Where are we?"; } function globalEval(x) { eval.call(null, x); } if (!Module["load"] && Module["read"]) { Module["load"] = function load(f) { globalEval(Module["read"](f)); }; } if (!Module["print"]) { Module["print"] = function() { }; } if (!Module["printErr"]) { Module["printErr"] = Module["print"]; } if (!Module["arguments"]) { Module["arguments"] = []; } if (!Module["thisProgram"]) { Module["thisProgram"] = "./this.program"; } Module.print = Module["print"]; Module.printErr = Module["printErr"]; Module["preRun"] = []; Module["postRun"] = []; for (var key in moduleOverrides) { if (moduleOverrides.hasOwnProperty(key)) { Module[key] = moduleOverrides[key]; } } var Runtime = { setTempRet0: function(value) { tempRet0 = value; }, getTempRet0: function() { return tempRet0; }, stackSave: function() { return STACKTOP; }, stackRestore: function(stackTop) { STACKTOP = stackTop; }, getNativeTypeSize: function(type2) { switch (type2) { 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: { if (type2[type2.length - 1] === "*") { return Runtime.QUANTUM_SIZE; } else if (type2[0] === "i") { var bits = parseInt(type2.substr(1)); assert(bits % 8 === 0); return bits / 8; } else { return 0; } } } }, getNativeFieldSize: function(type2) { return Math.max(Runtime.getNativeTypeSize(type2), Runtime.QUANTUM_SIZE); }, STACK_ALIGN: 16, prepVararg: function(ptr, type2) { if (type2 === "double" || type2 === "i64") { if (ptr & 7) { assert((ptr & 7) === 4); ptr += 4; } } else { assert((ptr & 3) === 0); } return ptr; }, getAlignSize: function(type2, size, vararg) { if (!vararg && (type2 == "i64" || type2 == "double")) return 8; if (!type2) return Math.min(size, 8); return Math.min(size || (type2 ? Runtime.getNativeFieldSize(type2) : 0), Runtime.QUANTUM_SIZE); }, dynCall: function(sig, ptr, args) { if (args && args.length) { if (!args.splice) args = Array.prototype.slice.call(args); args.splice(0, 0, ptr); return Module["dynCall_" + sig].apply(null, args); } else { return Module["dynCall_" + sig].call(null, ptr); } }, functionPointers: [], addFunction: function(func2) { for (var i2 = 0; i2 < Runtime.functionPointers.length; i2++) { if (!Runtime.functionPointers[i2]) { Runtime.functionPointers[i2] = func2; return 2 * (1 + i2); } } throw "Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."; }, removeFunction: function(index) { Runtime.functionPointers[(index - 2) / 2] = null; }, warnOnce: function(text) { if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {}; if (!Runtime.warnOnce.shown[text]) { Runtime.warnOnce.shown[text] = 1; Module.printErr(text); } }, funcWrappers: {}, getFuncWrapper: function(func2, sig) { assert(sig); if (!Runtime.funcWrappers[sig]) { Runtime.funcWrappers[sig] = {}; } var sigCache = Runtime.funcWrappers[sig]; if (!sigCache[func2]) { sigCache[func2] = function dynCall_wrapper() { return Runtime.dynCall(sig, func2, arguments); }; } return sigCache[func2]; }, getCompilerSetting: function(name) { throw "You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"; }, stackAlloc: function(size) { var ret = STACKTOP; STACKTOP = STACKTOP + size | 0; STACKTOP = STACKTOP + 15 & -16; return ret; }, staticAlloc: function(size) { var ret = STATICTOP; STATICTOP = STATICTOP + size | 0; STATICTOP = STATICTOP + 15 & -16; return ret; }, dynamicAlloc: function(size) { var ret = DYNAMICTOP; DYNAMICTOP = DYNAMICTOP + size | 0; DYNAMICTOP = DYNAMICTOP + 15 & -16; if (DYNAMICTOP >= TOTAL_MEMORY) { var success = enlargeMemory(); if (!success) { DYNAMICTOP = ret; return 0; } } return ret; }, alignMemory: function(size, quantum) { var ret = size = Math.ceil(size / (quantum ? quantum : 16)) * (quantum ? quantum : 16); return ret; }, makeBigInt: function(low, high, unsigned) { var ret = unsigned ? +(low >>> 0) + +(high >>> 0) * 4294967296 : +(low >>> 0) + +(high | 0) * 4294967296; return ret; }, GLOBAL_BASE: 8, QUANTUM_SIZE: 4, __dummy__: 0 }; Module["Runtime"] = Runtime; var __THREW__ = 0; var ABORT = false; var EXITSTATUS = 0; var undef = 0; var tempValue, tempInt, tempBigInt, tempInt2, tempBigInt2, tempPair, tempBigIntI, tempBigIntR, tempBigIntS, tempBigIntP, tempBigIntD, tempDouble, tempFloat; var tempI64, tempI64b; var tempRet0, tempRet1, tempRet2, tempRet3, tempRet4, tempRet5, tempRet6, tempRet7, tempRet8, tempRet9; function assert(condition, text) { if (!condition) { abort("Assertion failed: " + text); } } var globalScope = this; function getCFunc(ident) { var func = Module["_" + ident]; if (!func) { try { func = eval("_" + ident); } catch (e) { } } assert(func, "Cannot call unknown function " + ident + " (perhaps LLVM optimizations or closure removed it?)"); return func; } var cwrap, ccall; (function() { var JSfuncs = { "stackSave": function() { Runtime.stackSave(); }, "stackRestore": function() { Runtime.stackRestore(); }, "arrayToC": function(arr) { var ret = Runtime.stackAlloc(arr.length); writeArrayToMemory(arr, ret); return ret; }, "stringToC": function(str) { var ret = 0; if (str !== null && str !== void 0 && str !== 0) { ret = Runtime.stackAlloc((str.length << 2) + 1); writeStringToMemory(str, ret); } return ret; } }; var toC = { "string": JSfuncs["stringToC"], "array": JSfuncs["arrayToC"] }; ccall = function ccallFunc(ident2, returnType2, argTypes2, args, opts) { var func2 = getCFunc(ident2); var cArgs = []; var stack = 0; if (args) { for (var i2 = 0; i2 < args.length; i2++) { var converter = toC[argTypes2[i2]]; if (converter) { if (stack === 0) stack = Runtime.stackSave(); cArgs[i2] = converter(args[i2]); } else { cArgs[i2] = args[i2]; } } } var ret = func2.apply(null, cArgs); if (returnType2 === "string") ret = Pointer_stringify(ret); if (stack !== 0) { if (opts && opts.async) { EmterpreterAsync.asyncFinalizers.push(function() { Runtime.stackRestore(stack); }); return; } Runtime.stackRestore(stack); } return ret; }; var sourceRegex = /^function\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/; function parseJSFunc(jsfunc) { var parsed = jsfunc.toString().match(sourceRegex).slice(1); return { arguments: parsed[0], body: parsed[1], returnValue: parsed[2] }; } var JSsource = {}; for (var fun in JSfuncs) { if (JSfuncs.hasOwnProperty(fun)) { JSsource[fun] = parseJSFunc(JSfuncs[fun]); } } cwrap = function cwrap(ident, returnType, argTypes) { argTypes = argTypes || []; var cfunc = getCFunc(ident); var numericArgs = argTypes.every(function(type2) { return type2 === "number"; }); var numericRet = returnType !== "string"; if (numericRet && numericArgs) { return cfunc; } var argNames = argTypes.map(function(x, i2) { return "$" + i2; }); var funcstr = "(function(" + argNames.join(",") + ") {"; var nargs = argTypes.length; if (!numericArgs) { funcstr += "var stack = " + JSsource["stackSave"].body + ";"; for (var i = 0; i < nargs; i++) { var arg = argNames[i], type = argTypes[i]; if (type === "number") continue; var convertCode = JSsource[type + "ToC"]; funcstr += "var " + convertCode.arguments + " = " + arg + ";"; funcstr += convertCode.body + ";"; funcstr += arg + "=" + convertCode.returnValue + ";"; } } var cfuncname = parseJSFunc(function() { return cfunc; }).returnValue; funcstr += "var ret = " + cfuncname + "(" + argNames.join(",") + ");"; if (!numericRet) { var strgfy = parseJSFunc(function() { return Pointer_stringify; }).returnValue; funcstr += "ret = " + strgfy + "(ret);"; } if (!numericArgs) { funcstr += JSsource["stackRestore"].body.replace("()", "(stack)") + ";"; } funcstr += "return ret})"; return eval(funcstr); }; })(); Module["ccall"] = ccall; Module["cwrap"] = cwrap; function setValue(ptr, value, type2, noSafe) { type2 = type2 || "i8"; if (type2.charAt(type2.length - 1) === "*") type2 = "i32"; switch (type2) { case "i1": HEAP8[ptr >> 0] = value; break; case "i8": HEAP8[ptr >> 0] = value; break; case "i16": HEAP16[ptr >> 1] = value; break; case "i32": HEAP32[ptr >> 2] = value; break; case "i64": tempI64 = [value >>> 0, (tempDouble = value, +Math_abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[ptr >> 2] = tempI64[0], HEAP32[ptr + 4 >> 2] = tempI64[1]; break; case "float": HEAPF32[ptr >> 2] = value; break; case "double": HEAPF64[ptr >> 3] = value; break; default: abort("invalid type for setValue: " + type2); } } Module["setValue"] = setValue; function getValue(ptr, type2, noSafe) { type2 = type2 || "i8"; if (type2.charAt(type2.length - 1) === "*") type2 = "i32"; switch (type2) { case "i1": return HEAP8[ptr >> 0]; case "i8": return HEAP8[ptr >> 0]; case "i16": return HEAP16[ptr >> 1]; case "i32": return HEAP32[ptr >> 2]; case "i64": return HEAP32[ptr >> 2]; case "float": return HEAPF32[ptr >> 2]; case "double": return HEAPF64[ptr >> 3]; default: abort("invalid type for setValue: " + type2); } return null; } Module["getValue"] = getValue; var ALLOC_NORMAL = 0; var ALLOC_STACK = 1; var ALLOC_STATIC = 2; var ALLOC_DYNAMIC = 3; var ALLOC_NONE = 4; Module["ALLOC_NORMAL"] = ALLOC_NORMAL; Module["ALLOC_STACK"] = ALLOC_STACK; Module["ALLOC_STATIC"] = ALLOC_STATIC; Module["ALLOC_DYNAMIC"] = ALLOC_DYNAMIC; Module["ALLOC_NONE"] = ALLOC_NONE; function allocate(slab, types, allocator, ptr) { var zeroinit, size; if (typeof slab === "number") { zeroinit = true; size = slab; } else { zeroinit = false; size = slab.length; } var singleType = typeof types === "string" ? types : null; var ret; if (allocator == ALLOC_NONE) { ret = ptr; } else { ret = [_malloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === void 0 ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length)); } if (zeroinit) { var ptr = ret, stop; assert((ret & 3) == 0); stop = ret + (size & ~3); for (; ptr < stop; ptr += 4) { HEAP32[ptr >> 2] = 0; } stop = ret + size; while (ptr < stop) { HEAP8[ptr++ >> 0] = 0; } return ret; } if (singleType === "i8") { if (slab.subarray || slab.slice) { HEAPU8.set(slab, ret); } else { HEAPU8.set(new Uint8Array(slab), ret); } return ret; } var i2 = 0, type2, typeSize, previousType; while (i2 < size) { var curr = slab[i2]; if (typeof curr === "function") { curr = Runtime.getFunctionIndex(curr); } type2 = singleType || types[i2]; if (type2 === 0) { i2++; continue; } if (type2 == "i64") type2 = "i32"; setValue(ret + i2, curr, type2); if (previousType !== type2) { typeSize = Runtime.getNativeTypeSize(type2); previousType = type2; } i2 += typeSize; } return ret; } Module["allocate"] = allocate; function getMemory(size) { if (!staticSealed) return Runtime.staticAlloc(size); if (typeof _sbrk !== "undefined" && !_sbrk.called || !runtimeInitialized) return Runtime.dynamicAlloc(size); return _malloc(size); } Module["getMemory"] = getMemory; function Pointer_stringify(ptr, length) { if (length === 0 || !ptr) return ""; var hasUtf = 0; var t; var i2 = 0; while (1) { t = HEAPU8[ptr + i2 >> 0]; hasUtf |= t; if (t == 0 && !length) break; i2++; if (length && i2 == length) break; } if (!length) length = i2; var ret = ""; if (hasUtf < 128) { var MAX_CHUNK = 1024; var curr; while (length > 0) { curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK))); ret = ret ? ret + curr : curr; ptr += MAX_CHUNK; length -= MAX_CHUNK; } return ret; } return Module["UTF8ToString"](ptr); } Module["Pointer_stringify"] = Pointer_stringify; function AsciiToString(ptr) { var str = ""; while (1) { var ch = HEAP8[ptr++ >> 0]; if (!ch) return str; str += String.fromCharCode(ch); } } Module["AsciiToString"] = AsciiToString; function stringToAscii(str, outPtr) { return writeAsciiToMemory(str, outPtr, false); } Module["stringToAscii"] = stringToAscii; function UTF8ArrayToString(u8Array, idx) { var u0, u1, u2, u3, u4, u5; var str = ""; while (1) { u0 = u8Array[idx++]; if (!u0) return str; if (!(u0 & 128)) { str += String.fromCharCode(u0); continue; } u1 = u8Array[idx++] & 63; if ((u0 & 224) == 192) { str += String.fromCharCode((u0 & 31) << 6 | u1); continue; } u2 = u8Array[idx++] & 63; if ((u0 & 240) == 224) { u0 = (u0 & 15) << 12 | u1 << 6 | u2; } else { u3 = u8Array[idx++] & 63; if ((u0 & 248) == 240) { u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | u3; } else { u4 = u8Array[idx++] & 63; if ((u0 & 252) == 248) { u0 = (u0 & 3) << 24 | u1 << 18 | u2 << 12 | u3 << 6 | u4; } else { u5 = u8Array[idx++] & 63; u0 = (u0 & 1) << 30 | u1 << 24 | u2 << 18 | u3 << 12 | u4 << 6 | u5; } } } if (u0 < 65536) { str += String.fromCharCode(u0); } else { var ch = u0 - 65536; str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); } } } Module["UTF8ArrayToString"] = UTF8ArrayToString; function UTF8ToString(ptr) { return UTF8ArrayToString(HEAPU8, ptr); } Module["UTF8ToString"] = UTF8ToString; function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) { if (!(maxBytesToWrite > 0)) return 0; var startIdx = outIdx; var endIdx = outIdx + maxBytesToWrite - 1; for (var i2 = 0; i2 < str.length; ++i2) { var u = str.charCodeAt(i2); if (u >= 55296 && u <= 57343) u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i2) & 1023; if (u <= 127) { if (outIdx >= endIdx) break; outU8Array[outIdx++] = u; } else if (u <= 2047) { if (outIdx + 1 >= endIdx) break; outU8Array[outIdx++] = 192 | u >> 6; outU8Array[outIdx++] = 128 | u & 63; } else if (u <= 65535) { if (outIdx + 2 >= endIdx) break; outU8Array[outIdx++] = 224 | u >> 12; outU8Array[outIdx++] = 128 | u >> 6 & 63; outU8Array[outIdx++] = 128 | u & 63; } else if (u <= 2097151) { if (outIdx + 3 >= endIdx) break; outU8Array[outIdx++] = 240 | u >> 18; outU8Array[outIdx++] = 128 | u >> 12 & 63; outU8Array[outIdx++] = 128 | u >> 6 & 63; outU8Array[outIdx++] = 128 | u & 63; } else if (u <= 67108863) { if (outIdx + 4 >= endIdx) break; outU8Array[outIdx++] = 248 | u >> 24; outU8Array[outIdx++] = 128 | u >> 18 & 63; outU8Array[outIdx++] = 128 | u >> 12 & 63; outU8Array[outIdx++] = 128 | u >> 6 & 63; outU8Array[outIdx++] = 128 | u & 63; } else { if (outIdx + 5 >= endIdx) break; outU8Array[outIdx++] = 252 | u >> 30; outU8Array[outIdx++] = 128 | u >> 24 & 63; outU8Array[outIdx++] = 128 | u >> 18 & 63; outU8Array[outIdx++] = 128 | u >> 12 & 63; outU8Array[outIdx++] = 128 | u >> 6 & 63; outU8Array[outIdx++] = 128 | u & 63; } } outU8Array[outIdx] = 0; return outIdx - startIdx; } Module["stringToUTF8Array"] = stringToUTF8Array; function stringToUTF8(str, outPtr, maxBytesToWrite) { return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite); } Module["stringToUTF8"] = stringToUTF8; function lengthBytesUTF8(str) { var len = 0; for (var i2 = 0; i2 < str.length; ++i2) { var u = str.charCodeAt(i2); if (u >= 55296 && u <= 57343) u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i2) & 1023; if (u <= 127) { ++len; } else if (u <= 2047) { len += 2; } else if (u <= 65535) { len += 3; } else if (u <= 2097151) { len += 4; } else if (u <= 67108863) { len += 5; } else { len += 6; } } return len; } Module["lengthBytesUTF8"] = lengthBytesUTF8; function UTF16ToString(ptr) { var i2 = 0; var str = ""; while (1) { var codeUnit = HEAP16[ptr + i2 * 2 >> 1]; if (codeUnit == 0) return str; ++i2; str += String.fromCharCode(codeUnit); } } Module["UTF16ToString"] = UTF16ToString; function stringToUTF16(str, outPtr, maxBytesToWrite) { if (maxBytesToWrite === void 0) { maxBytesToWrite = 2147483647; } if (maxBytesToWrite < 2) return 0; maxBytesToWrite -= 2; var startPtr = outPtr; var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length; for (var i2 = 0; i2 < numCharsToWrite; ++i2) { var codeUnit = str.charCodeAt(i2); HEAP16[outPtr >> 1] = codeUnit; outPtr += 2; } HEAP16[outPtr >> 1] = 0; return outPtr - startPtr; } Module["stringToUTF16"] = stringToUTF16; function lengthBytesUTF16(str) { return str.length * 2; } Module["lengthBytesUTF16"] = lengthBytesUTF16; function UTF32ToString(ptr) { var i2 = 0; var str = ""; while (1) { var utf32 = HEAP32[ptr + i2 * 4 >> 2]; if (utf32 == 0) return str; ++i2; if (utf32 >= 65536) { var ch = utf32 - 65536; str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); } else { str += String.fromCharCode(utf32); } } } Module["UTF32ToString"] = UTF32ToString; function stringToUTF32(str, outPtr, maxBytesToWrite) { if (maxBytesToWrite === void 0) { maxBytesToWrite = 2147483647; } if (maxBytesToWrite < 4) return 0; var startPtr = outPtr; var endPtr = startPtr + maxBytesToWrite - 4; for (var i2 = 0; i2 < str.length; ++i2) { var codeUnit = str.charCodeAt(i2); if (codeUnit >= 55296 && codeUnit <= 57343) { var trailSurrogate = str.charCodeAt(++i2); codeUnit = 65536 + ((codeUnit & 1023) << 10) | trailSurrogate & 1023; } HEAP32[outPtr >> 2] = codeUnit; outPtr += 4; if (outPtr + 4 > endPtr) break; } HEAP32[outPtr >> 2] = 0; return outPtr - startPtr; } Module["stringToUTF32"] = stringToUTF32; function lengthBytesUTF32(str) { var len = 0; for (var i2 = 0; i2 < str.length; ++i2) { var codeUnit = str.charCodeAt(i2); if (codeUnit >= 55296 && codeUnit <= 57343) ++i2; len += 4; } return len; } Module["lengthBytesUTF32"] = lengthBytesUTF32; function demangle(func2) { var hasLibcxxabi = !!Module["___cxa_demangle"]; if (hasLibcxxabi) { try { var buf = _malloc(func2.length); writeStringToMemory(func2.substr(1), buf); var status = _malloc(4); var ret = Module["___cxa_demangle"](buf, 0, 0, status); if (getValue(status, "i32") === 0 && ret) { return Pointer_stringify(ret); } } catch (e) { } finally { if (buf) _free(buf); if (status) _free(status); if (ret) _free(ret); } } var i2 = 3; var basicTypes = { "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": "..." }; var subs = []; var first = true; function dump2(x) { if (x) Module.print(x); Module.print(func2); var pre = ""; for (var a = 0; a < i2; a++) pre += " "; Module.print(pre + "^"); } function parseNested() { i2++; if (func2[i2] === "K") i2++; var parts = []; while (func2[i2] !== "E") { if (func2[i2] === "S") { i2++; var next = func2.indexOf("_", i2); var num = func2.substring(i2, next) || 0; parts.push(subs[num] || "?"); i2 = next + 1; continue; } if (func2[i2] === "C") { parts.push(parts[parts.length - 1]); i2 += 2; continue; } var size = parseInt(func2.substr(i2)); var pre = size.toString().length; if (!size || !pre) { i2--; break; } var curr = func2.substr(i2 + pre, size); parts.push(curr); subs.push(curr); i2 += pre + size; } i2++; return parts; } function parse(rawList, limit, allowVoid) { limit = limit || Infinity; var ret2 = "", list = []; function flushList() { return "(" + list.join(", ") + ")"; } var name; if (func2[i2] === "N") { name = parseNested().join("::"); limit--; if (limit === 0) return rawList ? [name] : name; } else { if (func2[i2] === "K" || first && func2[i2] === "L") i2++; var size = parseInt(func2.substr(i2)); if (size) { var pre = size.toString().length; name = func2.substr(i2 + pre, size); i2 += pre + size; } } first = false; if (func2[i2] === "I") { i2++; var iList = parse(true); var iRet = parse(true, 1, true); ret2 += iRet[0] + " " + name + "<" + iList.join(", ") + ">"; } else { ret2 = name; } paramLoop: while (i2 < func2.length && limit-- > 0) { var c = func2[i2++]; if (c in basicTypes) { list.push(basicTypes[c]); } else { switch (c) { case "P": list.push(parse(true, 1, true)[0] + "*"); break; case "R": list.push(parse(true, 1, true)[0] + "&"); break; case "L": { i2++; var end = func2.indexOf("E", i2); var size = end - i2; list.push(func2.substr(i2, size)); i2 += size + 2; break; } ; case "A": { var size = parseInt(func2.substr(i2)); i2 += size.toString().length; if (func2[i2] !== "_") throw "?"; i2++; list.push(parse(true, 1, true)[0] + " [" + size + "]"); break; } ; case "E": break paramLoop; default: ret2 += "?" + c; break paramLoop; } } } if (!allowVoid && list.length === 1 && list[0] === "void") list = []; if (rawList) { if (ret2) { list.push(ret2 + "?"); } return list; } else { return ret2 + flushList(); } } var parsed = func2; try { if (func2 == "Object._main" || func2 == "_main") { return "main()"; } if (typeof func2 === "number") func2 = Pointer_stringify(func2); if (func2[0] !== "_") return func2; if (func2[1] !== "_") return func2; if (func2[2] !== "Z") return func2; switch (func2[3]) { case "n": return "operator new()"; case "d": return "operator delete()"; } parsed = parse(); } catch (e) { parsed += "?"; } if (parsed.indexOf("?") >= 0 && !hasLibcxxabi) { Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"); } return parsed; } function demangleAll(text) { return text.replace(/__Z[\w\d_]+/g, function(x) { var y = demangle(x); return x === y ? x : x + " [" + y + "]"; }); } function jsStackTrace() { var err = new Error(); if (!err.stack) { try { throw new Error(0); } catch (e) { err = e; } if (!err.stack) { return "(no stack trace available)"; } } return err.stack.toString(); } function stackTrace() { return demangleAll(jsStackTrace()); } Module["stackTrace"] = stackTrace; var PAGE_SIZE = 4096; function alignMemoryPage(x) { if (x % 4096 > 0) { x += 4096 - x % 4096; } return x; } var HEAP; var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; var STATIC_BASE = 0, STATICTOP = 0, staticSealed = false; var STACK_BASE = 0, STACKTOP = 0, STACK_MAX = 0; var DYNAMIC_BASE = 0, DYNAMICTOP = 0; function enlargeMemory() { var OLD_TOTAL_MEMORY = TOTAL_MEMORY; var LIMIT = Math.pow(2, 31); if (DYNAMICTOP >= LIMIT) return false; while (TOTAL_MEMORY <= DYNAMICTOP) { if (TOTAL_MEMORY < LIMIT / 2) { TOTAL_MEMORY = alignMemoryPage(2 * TOTAL_MEMORY); } else { var last = TOTAL_MEMORY; TOTAL_MEMORY = alignMemoryPage((3 * TOTAL_MEMORY + LIMIT) / 4); if (TOTAL_MEMORY <= last) return false; } } TOTAL_MEMORY = Math.max(TOTAL_MEMORY, 16 * 1024 * 1024); if (TOTAL_MEMORY >= LIMIT) return false; try { if (ArrayBuffer.transfer) { buffer = ArrayBuffer.transfer(buffer, TOTAL_MEMORY); } else { var oldHEAP8 = HEAP8; buffer = new ArrayBuffer(TOTAL_MEMORY); } } catch (e) { return false; } var success = _emscripten_replace_memory(buffer); if (!success) return false; Module["buffer"] = buffer; Module["HEAP8"] = HEAP8 = new Int8Array(buffer); Module["HEAP16"] = HEAP16 = new Int16Array(buffer); Module["HEAP32"] = HEAP32 = new Int32Array(buffer); Module["HEAPU8"] = HEAPU8 = new Uint8Array(buffer); Module["HEAPU16"] = HEAPU16 = new Uint16Array(buffer); Module["HEAPU32"] = HEAPU32 = new Uint32Array(buffer); Module["HEAPF32"] = HEAPF32 = new Float32Array(buffer); Module["HEAPF64"] = HEAPF64 = new Float64Array(buffer); if (!ArrayBuffer.transfer) { HEAP8.set(oldHEAP8); } return true; } var byteLength; try { byteLength = Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, "byteLength").get); byteLength(new ArrayBuffer(4)); } catch (e) { byteLength = function(buffer2) { return buffer2.byteLength; }; } var TOTAL_STACK = Module["TOTAL_STACK"] || 5242880; var TOTAL_MEMORY = Module["TOTAL_MEMORY"] || 16777216; var totalMemory = 64 * 1024; while (totalMemory < TOTAL_MEMORY || totalMemory < 2 * TOTAL_STACK) { if (totalMemory < 16 * 1024 * 1024) { totalMemory *= 2; } else { totalMemory += 16 * 1024 * 1024; } } totalMemory = Math.max(totalMemory, 16 * 1024 * 1024); if (totalMemory !== TOTAL_MEMORY) { TOTAL_MEMORY = totalMemory; } assert(typeof Int32Array !== "undefined" && typeof Float64Array !== "undefined" && !!new Int32Array(1)["subarray"] && !!new Int32Array(1)["set"], "JS engine does not provide full typed array support"); var buffer; buffer = new ArrayBuffer(TOTAL_MEMORY); HEAP8 = new Int8Array(buffer); HEAP16 = new Int16Array(buffer); HEAP32 = new Int32Array(buffer); HEAPU8 = new Uint8Array(buffer); HEAPU16 = new Uint16Array(buffer); HEAPU32 = new Uint32Array(buffer); HEAPF32 = new Float32Array(buffer); HEAPF64 = new Float64Array(buffer); HEAP32[0] = 255; assert(HEAPU8[0] === 255 && HEAPU8[3] === 0, "Typed arrays 2 must be run on a little-endian system"); Module["HEAP"] = HEAP; Module["buffer"] = buffer; Module["HEAP8"] = HEAP8; Module["HEAP16"] = HEAP16; Module["HEAP32"] = HEAP32; Module["HEAPU8"] = HEAPU8; Module["HEAPU16"] = HEAPU16; Module["HEAPU32"] = HEAPU32; Module["HEAPF32"] = HEAPF32; Module["HEAPF64"] = HEAPF64; function callRuntimeCallbacks(callbacks) { while (callbacks.length > 0) { var callback = callbacks.shift(); if (typeof callback == "function") { callback(); continue; } var func2 = callback.func; if (typeof func2 === "number") { if (callback.arg === void 0) { Runtime.dynCall("v", func2); } else { Runtime.dynCall("vi", func2, [callback.arg]); } } else { func2(callback.arg === void 0 ? null : callback.arg); } } } var __ATPRERUN__ = []; var __ATINIT__ = []; var __ATMAIN__ = []; var __ATEXIT__ = []; var __ATPOSTRUN__ = []; var runtimeInitialized = false; var runtimeExited = false; function preRun() { if (Module["preRun"]) { if (typeof Module["preRun"] == "function") Module["preRun"] = [Module["preRun"]]; while (Module["preRun"].length) { addOnPreRun(Module["preRun"].shift()); } } callRuntimeCallbacks(__ATPRERUN__); } function ensureInitRuntime() { if (runtimeInitialized) return; runtimeInitialized = true; callRuntimeCallbacks(__ATINIT__); } function preMain() { callRuntimeCallbacks(__ATMAIN__); } function exitRuntime() { callRuntimeCallbacks(__ATEXIT__); runtimeExited = true; } function postRun() { if (Module["postRun"]) { if (typeof Module["postRun"] == "function") Module["postRun"] = [Module["postRun"]]; while (Module["postRun"].length) { addOnPostRun(Module["postRun"].shift()); } } callRuntimeCallbacks(__ATPOSTRUN__); } function addOnPreRun(cb) { __ATPRERUN__.unshift(cb); } Module["addOnPreRun"] = addOnPreRun; function addOnInit(cb) { __ATINIT__.unshift(cb); } Module["addOnInit"] = addOnInit; function addOnPreMain(cb) { __ATMAIN__.unshift(cb); } Module["addOnPreMain"] = addOnPreMain; function addOnExit(cb) { __ATEXIT__.unshift(cb); } Module["addOnExit"] = addOnExit; function addOnPostRun(cb) { __ATPOSTRUN__.unshift(cb); } Module["addOnPostRun"] = addOnPostRun; function intArrayFromString(stringy, dontAddNull, length) { var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; var u8array = new Array(len); var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); if (dontAddNull) u8array.length = numBytesWritten; return u8array; } Module["intArrayFromString"] = intArrayFromString; function intArrayToString(array) { var ret = []; for (var i2 = 0; i2 < array.length; i2++) { var chr = array[i2]; if (chr > 255) { chr &= 255; } ret.push(String.fromCharCode(chr)); } return ret.join(""); } Module["intArrayToString"] = intArrayToString; function writeStringToMemory(string, buffer2, dontAddNull) { var array = intArrayFromString(string, dontAddNull); var i2 = 0; while (i2 < array.length) { var chr = array[i2]; HEAP8[buffer2 + i2 >> 0] = chr; i2 = i2 + 1; } } Module["writeStringToMemory"] = writeStringToMemory; function writeArrayToMemory(array, buffer2) { for (var i2 = 0; i2 < array.length; i2++) { HEAP8[buffer2++ >> 0] = array[i2]; } } Module["writeArrayToMemory"] = writeArrayToMemory; function writeAsciiToMemory(str, buffer2, dontAddNull) { for (var i2 = 0; i2 < str.length; ++i2) { HEAP8[buffer2++ >> 0] = str.charCodeAt(i2); } if (!dontAddNull) HEAP8[buffer2 >> 0] = 0; } Module["writeAsciiToMemory"] = writeAsciiToMemory; function unSign(value, bits, ignore) { if (value >= 0) { return value; } return bits <= 32 ? 2 * Math.abs(1 << bits - 1) + value : Math.pow(2, bits) + value; } function reSign(value, bits, ignore) { if (value <= 0) { return value; } var half = bits <= 32 ? Math.abs(1 << bits - 1) : Math.pow(2, bits - 1); if (value >= half && (bits <= 32 || value > half)) { value = -2 * half + value; } return value; } if (!Math["imul"] || Math["imul"](4294967295, 5) !== -5) Math["imul"] = function imul(a, b) { var ah = a >>> 16; var al = a & 65535; var bh = b >>> 16; var bl = b & 65535; return al * bl + (ah * bl + al * bh << 16) | 0; }; Math.imul = Math["imul"]; if (!Math["clz32"]) Math["clz32"] = function(x) { x = x >>> 0; for (var i2 = 0; i2 < 32; i2++) { if (x & 1 << 31 - i2) return i2; } return 32; }; Math.clz32 = Math["clz32"]; var Math_abs = Math.abs; var Math_cos = Math.cos; var Math_sin = Math.sin; var Math_tan = Math.tan; var Math_acos = Math.acos; var Math_asin = Math.asin; var Math_atan = Math.atan; var Math_atan2 = Math.atan2; var Math_exp = Math.exp; var Math_log = Math.log; var Math_sqrt = Math.sqrt; var Math_ceil = Math.ceil; var Math_floor = Math.floor; var Math_pow = Math.pow; var Math_imul = Math.imul; var Math_fround = Math.fround; var Math_min = Math.min; var Math_clz32 = Math.clz32; var runDependencies = 0; var runDependencyWatcher = null; var dependenciesFulfilled = null; function getUniqueRunDependency(id) { return id; } function addRunDependency(id) { runDependencies++; if (Module["monitorRunDependencies"]) { Module["monitorRunDependencies"](runDependencies); } } Module["addRunDependency"] = addRunDependency; function removeRunDependency(id) { runDependencies--; if (Module["monitorRunDependencies"]) { Module["monitorRunDependencies"](runDependencies); } if (runDependencies == 0) { if (runDependencyWatcher !== null) { clearInterval(runDependencyWatcher); runDependencyWatcher = null; } if (dependenciesFulfilled) { var callback = dependenciesFulfilled; dependenciesFulfilled = null; callback(); } } } Module["removeRunDependency"] = removeRunDependency; Module["preloadedImages"] = {}; Module["preloadedAudios"] = {}; var memoryInitializer = null; var ASM_CONSTS = []; STATIC_BASE = 8; STATICTOP = STATIC_BASE + 59744; __ATINIT__.push({ func: function() { __GLOBAL__I_000101(); } }, { func: function() { __GLOBAL__sub_I_jpegls_cpp(); } }, { func: function() { __GLOBAL__sub_I_iostream_cpp(); } }); allocate([0, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 31, 194, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 237, 191, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 41, 192, 0, 0, 84, 144, 0, 0, 55, 192, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 115, 192, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 175, 192, 0, 0, 152, 3, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 241, 192, 0, 0, 216, 3, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 55, 193, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 95, 193, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 135, 193, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 175, 193, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 216, 193, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 241, 193, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 13, 194, 0, 0, 84, 144, 0, 0, 80, 194, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 44, 195, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 139, 194, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 179, 194, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 219, 194, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 3, 195, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 103, 195, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 157, 195, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 211, 195, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 8, 196, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 71, 196, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 138, 196, 0, 0, 160, 1, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 120, 196, 0, 0, 84, 144, 0, 0, 187, 196, 0, 0, 160, 1, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 246, 196, 0, 0, 160, 1, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 49, 197, 0, 0, 160, 1, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 103, 197, 0, 0, 160, 1, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 157, 197, 0, 0, 160, 1, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 210, 197, 0, 0, 160, 1, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 17, 198, 0, 0, 160, 1, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 86, 198, 0, 0, 72, 3, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 162, 198, 0, 0, 56, 2, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 182, 198, 0, 0, 84, 144, 0, 0, 196, 198, 0, 0, 56, 2, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 112, 199, 0, 0, 96, 2, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 125, 199, 0, 0, 84, 144, 0, 0, 138, 199, 0, 0, 96, 2, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 156, 199, 0, 0, 84, 144, 0, 0, 169, 199, 0, 0, 96, 2, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 181, 199, 0, 0, 120, 2, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 214, 199, 0, 0, 144, 2, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 28, 200, 0, 0, 144, 2, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 248, 199, 0, 0, 176, 2, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 62, 200, 0, 0, 160, 2, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 99, 200, 0, 0, 160, 2, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 182, 221, 0, 0, 160, 3, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 245, 221, 0, 0, 160, 3, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 13, 222, 0, 0, 152, 3, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 38, 222, 0, 0, 152, 3, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 62, 222, 0, 0, 84, 144, 0, 0, 87, 222, 0, 0, 104, 2, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 110, 222, 0, 0, 84, 144, 0, 0, 135, 222, 0, 0, 72, 3, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 161, 222, 0, 0, 56, 3, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 187, 222, 0, 0, 84, 144, 0, 0, 205, 222, 0, 0, 112, 3, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 247, 222, 0, 0, 112, 3, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 33, 223, 0, 0, 44, 144, 0, 0, 82, 223, 0, 0, 124, 144, 0, 0, 131, 223, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 120, 3, 0, 0, 3, 244, 255, 255, 124, 144, 0, 0, 178, 223, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 136, 3, 0, 0, 3, 244, 255, 255, 124, 144, 0, 0, 225, 223, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 120, 3, 0, 0, 3, 244, 255, 255, 124, 144, 0, 0, 16, 224, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 136, 3, 0, 0, 3, 244, 255, 255, 84, 144, 0, 0, 63, 224, 0, 0, 80, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 187, 224, 0, 0, 48, 3, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 209, 224, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 64, 10, 0, 0, 2, 0, 0, 0, 124, 144, 0, 0, 227, 224, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 72, 10, 0, 0, 2, 0, 0, 0, 124, 144, 0, 0, 5, 225, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 72, 10, 0, 0, 2, 0, 0, 0, 124, 144, 0, 0, 40, 225, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 72, 10, 0, 0, 2, 0, 0, 0, 84, 144, 0, 0, 75, 225, 0, 0, 144, 4, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 109, 225, 0, 0, 144, 4, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 144, 225, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 72, 10, 0, 0, 2, 0, 0, 0, 84, 144, 0, 0, 178, 225, 0, 0, 32, 4, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 200, 225, 0, 0, 32, 4, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 220, 225, 0, 0, 32, 4, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 240, 225, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 64, 10, 0, 0, 2, 0, 0, 0, 84, 144, 0, 0, 2, 226, 0, 0, 32, 4, 0, 0, 0, 0, 0, 0, 84, 144, 0, 0, 23, 226, 0, 0, 32, 4, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 44, 226, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 80, 10, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 112, 226, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 104, 10, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 180, 226, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 128, 10, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 248, 226, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 152, 10, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 60, 227, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 176, 10, 0, 0, 2, 0, 0, 0, 184, 10, 0, 0, 0, 8, 0, 0, 124, 144, 0, 0, 129, 227, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 176, 10, 0, 0, 2, 0, 0, 0, 192, 10, 0, 0, 0, 8, 0, 0, 124, 144, 0, 0, 198, 227, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 200, 10, 0, 0, 0, 8, 0, 0, 124, 144, 0, 0, 11, 228, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 200, 10, 0, 0, 0, 8, 0, 0, 124, 144, 0, 0, 80, 228, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 208, 10, 0, 0, 2, 0, 0, 0, 124, 144, 0, 0, 108, 228, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 208, 10, 0, 0, 2, 0, 0, 0, 124, 144, 0, 0, 136, 228, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 208, 10, 0, 0, 2, 0, 0, 0, 124, 144, 0, 0, 164, 228, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 208, 10, 0, 0, 2, 0, 0, 0, 124, 144, 0, 0, 192, 228, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 216, 10, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 6, 229, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 224, 10, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 76, 229, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 232, 10, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 146, 229, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 240, 10, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 216, 229, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 248, 10, 0, 0, 2, 0, 0, 0, 124, 144, 0, 0, 237, 229, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 32, 4, 0, 0, 2, 0, 0, 0, 248, 10, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 73, 233, 0, 0, 44, 144, 0, 0, 50, 233, 0, 0, 124, 144, 0, 0, 28, 233, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8, 11, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 237, 232, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8, 11, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 215, 232, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 124, 144, 0, 0, 168, 232, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 44, 144, 0, 0, 149, 232, 0, 0, 44, 144, 0, 0, 115, 232, 0, 0, 44, 144, 0, 0, 81, 232, 0, 0, 44, 144, 0, 0, 60, 232, 0, 0, 44, 144, 0, 0, 39, 232, 0, 0, 44, 144, 0, 0, 14, 232, 0, 0, 44, 144, 0, 0, 245, 231, 0, 0, 44, 144, 0, 0, 220, 231, 0, 0, 44, 144, 0, 0, 195, 231, 0, 0, 44, 144, 0, 0, 171, 231, 0, 0, 44, 144, 0, 0, 190, 232, 0, 0, 44, 144, 0, 0, 3, 233], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE); allocate([156, 143, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 248, 1, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 232, 1, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 216, 1, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 200, 1, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 184, 1, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 168, 1, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 144, 1, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 128, 1, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 112, 1, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 10, 0, 0, 0, 2, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 96, 1, 0, 0, 21, 0, 0, 0, 22, 0, 0, 0, 11, 0, 0, 0, 3, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 80, 1, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 12, 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 13, 0, 0, 0, 5, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 240, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 14, 0, 0, 0, 6, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 29, 0, 0, 0, 30, 0, 0, 0, 15, 0, 0, 0, 7, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, 16, 0, 0, 0, 8, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 200, 0, 0, 0, 33, 0, 0, 0, 34, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 33, 0, 0, 0, 35, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 216, 3, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 200, 255, 255, 255, 200, 255, 255, 255, 216, 3, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 104, 0, 0, 0, 40, 0, 0, 0, 41, 0, 0, 0, 200, 255, 255, 255, 200, 255, 255, 255, 104, 0, 0, 0, 42, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 44, 0, 0, 0, 45, 0, 0, 0, 17, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, 18, 0, 0, 0, 104, 141, 0, 0, 64, 141, 0, 0, 84, 141, 0, 0, 124, 141, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 46, 0, 0, 0, 47, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 48, 0, 0, 0, 49, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 120, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 136, 0, 0, 0, 54, 0, 0, 0, 55, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 152, 0, 0, 0, 56, 0, 0, 0, 57, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, 58, 0, 0, 0, 59, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 60, 0, 0, 0, 61, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 62, 0, 0, 0, 63, 0, 0, 0, 20, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 16, 1, 0, 0, 64, 0, 0, 0, 65, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 32, 1, 0, 0, 66, 0, 0, 0, 67, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 48, 1, 0, 0, 68, 0, 0, 0, 69, 0, 0, 0, 26, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 160, 1, 0, 0, 70, 0, 0, 0, 71, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 24, 2, 0, 0, 72, 0, 0, 0, 73, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 40, 2, 0, 0, 74, 0, 0, 0, 75, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 64, 2, 0, 0, 76, 0, 0, 0, 77, 0, 0, 0, 19, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 80, 2, 0, 0, 78, 0, 0, 0, 79, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 2, 0, 0, 80, 0, 0, 0, 81, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 128, 2, 0, 0, 82, 0, 0, 0, 83, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 160, 2, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 86, 0, 0, 0, 87, 0, 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, 9, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 208, 2, 0, 0, 84, 0, 0, 0, 88, 0, 0, 0, 86, 0, 0, 0, 87, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 10, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 224, 2, 0, 0, 84, 0, 0, 0, 89, 0, 0, 0, 86, 0, 0, 0, 87, 0, 0, 0, 6, 0, 0, 0, 4, 0, 0, 0, 11, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 192, 3, 0, 0, 192, 4, 0, 0, 192, 5, 0, 0, 192, 6, 0, 0, 192, 7, 0, 0, 192, 8, 0, 0, 192, 9, 0, 0, 192, 10, 0, 0, 192, 11, 0, 0, 192, 12, 0, 0, 192, 13, 0, 0, 192, 14, 0, 0, 192, 15, 0, 0, 192, 16, 0, 0, 192, 17, 0, 0, 192, 18, 0, 0, 192, 19, 0, 0, 192, 20, 0, 0, 192, 21, 0, 0, 192, 22, 0, 0, 192, 23, 0, 0, 192, 24, 0, 0, 192, 25, 0, 0, 192, 26, 0, 0, 192, 27, 0, 0, 192, 28, 0, 0, 192, 29, 0, 0, 192, 30, 0, 0, 192, 31, 0, 0, 192, 0, 0, 0, 179, 1, 0, 0, 195, 2, 0, 0, 195, 3, 0, 0, 195, 4, 0, 0, 195, 5, 0, 0, 195, 6, 0, 0, 195, 7, 0, 0, 195, 8, 0, 0, 195, 9, 0, 0, 195, 10, 0, 0, 195, 11, 0, 0, 195, 12, 0, 0, 195, 13, 0, 0, 211, 14, 0, 0, 195, 15, 0, 0, 195, 0, 0, 12, 187, 1, 0, 12, 195, 2, 0, 12, 195, 3, 0, 12, 195, 4, 0, 12, 211, 88, 146, 0, 0, 200, 146, 0, 0, 56, 147, 0, 0, 56, 147, 0, 0, 120, 187, 0, 0, 168, 155, 0, 0, 168, 149, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 100, 0, 0, 0, 232, 3, 0, 0, 16, 39, 0, 0, 160, 134, 1, 0, 64, 66, 15, 0, 128, 150, 152, 0, 0, 225, 245, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 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, 0, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 159, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 151, 215, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 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, 0, 0, 0, 0, 11, 0, 0, 0, 9, 0, 0, 0, 143, 211, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 21, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 29, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, 33, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 40, 0, 0, 0, 41, 0, 0, 0, 42, 0, 0, 0, 43, 0, 0, 0, 44, 0, 0, 0, 45, 0, 0, 0, 46, 0, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, 49, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, 0, 54, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0, 57, 0, 0, 0, 58, 0, 0, 0, 59, 0, 0, 0, 60, 0, 0, 0, 61, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 65, 0, 0, 0, 66, 0, 0, 0, 67, 0, 0, 0, 68, 0, 0, 0, 69, 0, 0, 0, 70, 0, 0, 0, 71, 0, 0, 0, 72, 0, 0, 0, 73, 0, 0, 0, 74, 0, 0, 0, 75, 0, 0, 0, 76, 0, 0, 0, 77, 0, 0, 0, 78, 0, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0, 81, 0, 0, 0, 82, 0, 0, 0, 83, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 86, 0, 0, 0, 87, 0, 0, 0, 88, 0, 0, 0, 89, 0, 0, 0, 90, 0, 0, 0, 91, 0, 0, 0, 92, 0, 0, 0, 93, 0, 0, 0, 94, 0, 0, 0, 95, 0, 0, 0, 96, 0, 0, 0, 65, 0, 0, 0, 66, 0, 0, 0, 67, 0, 0, 0, 68, 0, 0, 0, 69, 0, 0, 0, 70, 0, 0, 0, 71, 0, 0, 0, 72, 0, 0, 0, 73, 0, 0, 0, 74, 0, 0, 0, 75, 0, 0, 0, 76, 0, 0, 0, 77, 0, 0, 0, 78, 0, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0, 81, 0, 0, 0, 82, 0, 0, 0, 83, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 86, 0, 0, 0, 87, 0, 0, 0, 88, 0, 0, 0, 89, 0, 0, 0, 90, 0, 0, 0, 123, 0, 0, 0, 124, 0, 0, 0, 125, 0, 0, 0, 126, 0, 0, 0, 127], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 35640); allocate([1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 21, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 29, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, 33, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 40, 0, 0, 0, 41, 0, 0, 0, 42, 0, 0, 0, 43, 0, 0, 0, 44, 0, 0, 0, 45, 0, 0, 0, 46, 0, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, 49, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, 0, 54, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0, 57, 0, 0, 0, 58, 0, 0, 0, 59, 0, 0, 0, 60, 0, 0, 0, 61, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 97, 0, 0, 0, 98, 0, 0, 0, 99, 0, 0, 0, 100, 0, 0, 0, 101, 0, 0, 0, 102, 0, 0, 0, 103, 0, 0, 0, 104, 0, 0, 0, 105, 0, 0, 0, 106, 0, 0, 0, 107, 0, 0, 0, 108, 0, 0, 0, 109, 0, 0, 0, 110, 0, 0, 0, 111, 0, 0, 0, 112, 0, 0, 0, 113, 0, 0, 0, 114, 0, 0, 0, 115, 0, 0, 0, 116, 0, 0, 0, 117, 0, 0, 0, 118, 0, 0, 0, 119, 0, 0, 0, 120, 0, 0, 0, 121, 0, 0, 0, 122, 0, 0, 0, 91, 0, 0, 0, 92, 0, 0, 0, 93, 0, 0, 0, 94, 0, 0, 0, 95, 0, 0, 0, 96, 0, 0, 0, 97, 0, 0, 0, 98, 0, 0, 0, 99, 0, 0, 0, 100, 0, 0, 0, 101, 0, 0, 0, 102, 0, 0, 0, 103, 0, 0, 0, 104, 0, 0, 0, 105, 0, 0, 0, 106, 0, 0, 0, 107, 0, 0, 0, 108, 0, 0, 0, 109, 0, 0, 0, 110, 0, 0, 0, 111, 0, 0, 0, 112, 0, 0, 0, 113, 0, 0, 0, 114, 0, 0, 0, 115, 0, 0, 0, 116, 0, 0, 0, 117, 0, 0, 0, 118, 0, 0, 0, 119, 0, 0, 0, 120, 0, 0, 0, 121, 0, 0, 0, 122, 0, 0, 0, 123, 0, 0, 0, 124, 0, 0, 0, 125, 0, 0, 0, 126, 0, 0, 0, 127], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 39844); allocate([240, 2, 0, 0, 90, 0, 0, 0, 91, 0, 0, 0, 20, 0, 0, 0, 12, 0, 0, 0, 5, 0, 0, 0, 31, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 13, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 19, 0, 0, 0, 14, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 90, 0, 0, 0, 92, 0, 0, 0, 21, 0, 0, 0, 12, 0, 0, 0, 5, 0, 0, 0, 31, 0, 0, 0, 14, 0, 0, 0, 11, 0, 0, 0, 13, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 21, 0, 0, 0, 15, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 16, 3, 0, 0, 93, 0, 0, 0, 94, 0, 0, 0, 22, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 32, 0, 0, 0, 17, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 18, 0, 0, 0, 4, 0, 0, 0, 23, 0, 0, 0, 16, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 32, 3, 0, 0, 93, 0, 0, 0, 95, 0, 0, 0, 23, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 32, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 25, 0, 0, 0, 3, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 56, 3, 0, 0, 96, 0, 0, 0, 97, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 152, 3, 0, 0, 93, 0, 0, 0, 98, 0, 0, 0, 17, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 32, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 18, 0, 0, 0, 4, 0, 0, 0, 23, 0, 0, 0, 3, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 160, 3, 0, 0, 90, 0, 0, 0, 99, 0, 0, 0, 24, 0, 0, 0, 12, 0, 0, 0, 5, 0, 0, 0, 31, 0, 0, 0, 14, 0, 0, 0, 11, 0, 0, 0, 13, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 19, 0, 0, 0, 15, 0, 0, 0, 22, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 168, 3, 0, 0, 100, 0, 0, 0, 101, 0, 0, 0, 248, 255, 255, 255, 248, 255, 255, 255, 168, 3, 0, 0, 102, 0, 0, 0, 103, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 192, 3, 0, 0, 104, 0, 0, 0, 105, 0, 0, 0, 248, 255, 255, 255, 248, 255, 255, 255, 192, 3, 0, 0, 106, 0, 0, 0, 107, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 216, 3, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 252, 255, 255, 255, 252, 255, 255, 255, 216, 3, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 240, 3, 0, 0, 108, 0, 0, 0, 109, 0, 0, 0, 252, 255, 255, 255, 252, 255, 255, 255, 240, 3, 0, 0, 110, 0, 0, 0, 111, 0, 0, 0, 0, 0, 0, 0, 96, 3, 0, 0, 112, 0, 0, 0, 113, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 112, 3, 0, 0, 114, 0, 0, 0, 115, 0, 0, 0, 0, 0, 0, 0, 8, 4, 0, 0, 72, 0, 0, 0, 116, 0, 0, 0, 21, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 117, 0, 0, 0, 118, 0, 0, 0, 119, 0, 0, 0, 1, 0, 0, 0, 33, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 5, 0, 0, 120, 0, 0, 0, 121, 0, 0, 0, 119, 0, 0, 0, 2, 0, 0, 0, 34, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 5, 0, 0, 122, 0, 0, 0, 123, 0, 0, 0, 119, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 5, 0, 0, 124, 0, 0, 0, 125, 0, 0, 0, 119, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 21, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 5, 0, 0, 126, 0, 0, 0, 127, 0, 0, 0, 119, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 23, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 5, 0, 0, 128, 0, 0, 0, 129, 0, 0, 0, 119, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 25, 0, 0, 0, 9, 0, 0, 0, 26, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 5, 0, 0, 130, 0, 0, 0, 131, 0, 0, 0, 119, 0, 0, 0, 22, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 29, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 248, 255, 255, 255, 224, 5, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 6, 0, 0, 132, 0, 0, 0, 133, 0, 0, 0, 119, 0, 0, 0, 30, 0, 0, 0, 32, 0, 0, 0, 33, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 2, 0, 0, 0, 248, 255, 255, 255, 8, 6, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, 33, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 6, 0, 0, 134, 0, 0, 0, 135, 0, 0, 0, 119, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 6, 0, 0, 136, 0, 0, 0, 137, 0, 0, 0, 119, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 6, 0, 0, 138, 0, 0, 0, 139, 0, 0, 0, 119, 0, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0, 40, 0, 0, 0, 29, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 6, 0, 0, 140, 0, 0, 0, 141, 0, 0, 0, 119, 0, 0, 0, 41, 0, 0, 0, 42, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, 33, 0, 0, 0, 34, 0, 0, 0, 43, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 6, 0, 0, 142, 0, 0, 0, 143, 0, 0, 0, 119, 0, 0, 0, 44, 0, 0, 0, 45, 0, 0, 0, 37, 0, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 40, 0, 0, 0, 46, 0, 0, 0, 41, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 6, 0, 0, 144, 0, 0, 0, 145, 0, 0, 0, 119, 0, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, 43, 0, 0, 0, 44, 0, 0, 0, 45, 0, 0, 0, 46, 0, 0, 0, 49, 0, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 6, 0, 0, 146, 0, 0, 0, 147, 0, 0, 0, 119, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 7, 0, 0, 148, 0, 0, 0, 149, 0, 0, 0, 119, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 7, 0, 0, 150, 0, 0, 0, 151, 0, 0, 0, 119, 0, 0, 0, 1, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 7, 0, 0, 152, 0, 0, 0, 153, 0, 0, 0, 119, 0, 0, 0, 2, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 7, 0, 0, 154, 0, 0, 0, 155, 0, 0, 0, 119, 0, 0, 0, 19, 0, 0, 0, 7, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 7, 0, 0, 156, 0, 0, 0, 157, 0, 0, 0, 119, 0, 0, 0, 20, 0, 0, 0, 8, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 4, 0, 0, 158, 0, 0, 0, 159, 0, 0, 0, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 5, 0, 0, 160, 0, 0, 0, 161, 0, 0, 0, 119, 0, 0, 0, 27, 0, 0, 0, 21, 0, 0, 0, 28, 0, 0, 0, 22, 0, 0, 0, 29, 0, 0, 0, 9, 0, 0, 0, 23, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 4, 0, 0, 162, 0, 0, 0, 163, 0, 0, 0, 119, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, 0, 13, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 5, 0, 0, 164, 0, 0, 0, 165, 0, 0, 0, 119, 0, 0, 0, 53, 0, 0, 0, 54, 0, 0, 0, 51, 0, 0, 0, 52, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 80, 5, 0, 0, 166, 0, 0, 0, 167, 0, 0, 0, 119, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0, 54, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 32, 4, 0, 0, 168, 0, 0, 0, 169, 0, 0, 0, 119, 0, 0, 0, 0, 0, 0, 0, 48, 4, 0, 0, 168, 0, 0, 0, 170, 0, 0, 0, 119, 0, 0, 0, 24, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 30, 0, 0, 0, 25, 0, 0, 0, 31, 0, 0, 0, 26, 0, 0, 0, 32, 0, 0, 0, 13, 0, 0, 0, 27, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 80, 4, 0, 0, 168, 0, 0, 0, 171, 0, 0, 0, 119, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 15, 0, 0, 0, 57, 0, 0, 0, 58, 0, 0, 0, 16, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 112, 4, 0, 0, 168, 0, 0, 0, 172, 0, 0, 0, 119, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 17, 0, 0, 0, 60, 0, 0, 0, 61, 0, 0, 0, 18, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 144, 4, 0, 0, 168, 0, 0, 0, 173, 0, 0, 0, 119, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 19, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 20, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 176, 4, 0, 0, 168, 0, 0, 0, 174, 0, 0, 0, 119, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 19, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 20, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 192, 4, 0, 0, 168, 0, 0, 0, 175, 0, 0, 0, 119, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 19, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0, 20, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 72, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 83, 0, 0, 0, 37, 0, 0, 0, 109, 0, 0, 0, 47, 0, 0, 0, 37, 0, 0, 0, 100, 0, 0, 0, 47, 0, 0, 0, 37, 0, 0, 0, 121, 0, 0, 0, 37, 0, 0, 0, 89, 0, 0, 0, 45, 0, 0, 0, 37, 0, 0, 0, 109, 0, 0, 0, 45, 0, 0, 0, 37, 0, 0, 0, 100, 0, 0, 0, 37, 0, 0, 0, 73, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 83, 0, 0, 0, 32, 0, 0, 0, 37, 0, 0, 0, 112, 0, 0, 0, 37, 0, 0, 0, 72, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 37, 0, 0, 0, 72, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 114, 0, 0, 0, 117, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 97, 0, 0, 0, 108, 0, 0, 0, 115, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 117, 0, 0, 0, 110, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 111, 0, 0, 0, 110, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 117, 0, 0, 0, 101, 0, 0, 0, 115, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 101, 0, 0, 0, 100, 0, 0, 0, 110, 0, 0, 0, 101, 0, 0, 0, 115, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 104, 0, 0, 0, 117, 0, 0, 0, 114, 0, 0, 0, 115, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 114, 0, 0, 0, 105, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 97, 0, 0, 0, 116, 0, 0, 0, 117, 0, 0, 0, 114, 0, 0, 0, 100, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 117, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 111, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 117, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 101, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 104, 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 114, 0, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 97, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 97, 0, 0, 0, 110, 0, 0, 0, 117, 0, 0, 0, 97, 0, 0, 0, 114, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 101, 0, 0, 0, 98, 0, 0, 0, 114, 0, 0, 0, 117, 0, 0, 0, 97, 0, 0, 0, 114, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 97, 0, 0, 0, 114, 0, 0, 0, 99, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 112, 0, 0, 0, 114, 0, 0, 0, 105, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 97, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 117, 0, 0, 0, 110, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 117, 0, 0, 0, 108, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 117, 0, 0, 0, 103, 0, 0, 0, 117, 0, 0, 0, 115, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 101, 0, 0, 0, 112, 0, 0, 0, 116, 0, 0, 0, 101, 0, 0, 0, 109, 0, 0, 0, 98, 0, 0, 0, 101, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 99, 0, 0, 0, 116, 0, 0, 0, 111, 0, 0, 0, 98, 0, 0, 0, 101, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 111, 0, 0, 0, 118, 0, 0, 0, 101, 0, 0, 0, 109, 0, 0, 0, 98, 0, 0, 0, 101, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 101, 0, 0, 0, 99, 0, 0, 0, 101, 0, 0, 0, 109, 0, 0, 0, 98, 0, 0, 0, 101, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 97, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 101, 0, 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, 97, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 112, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 117, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 117, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 117, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 101, 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 99, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 111, 0, 0, 0, 118, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 101, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 109, 0, 0, 0, 47, 0, 0, 0, 37, 0, 0, 0, 100, 0, 0, 0, 47, 0, 0, 0, 37, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 72, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 97, 0, 0, 0, 32, 0, 0, 0, 37, 0, 0, 0, 98, 0, 0, 0, 32, 0, 0, 0, 37, 0, 0, 0, 100, 0, 0, 0, 32, 0, 0, 0, 37, 0, 0, 0, 72, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 83, 0, 0, 0, 32, 0, 0, 0, 37, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 73, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 77, 0, 0, 0, 58, 0, 0, 0, 37, 0, 0, 0, 83, 0, 0, 0, 32, 0, 0, 0, 37, 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 3, 32, 2, 32, 2, 32, 2, 32, 2, 32, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 1, 96, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 8, 216, 8, 216, 8, 216, 8, 216, 8, 216, 8, 216, 8, 216, 8, 216, 8, 216, 8, 216, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 8, 213, 8, 213, 8, 213, 8, 213, 8, 213, 8, 213, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 8, 197, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 4, 192, 8, 214, 8, 214, 8, 214, 8, 214, 8, 214, 8, 214, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 8, 198, 4, 192, 4, 192, 4, 192, 4, 192, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 97, 119, 83, 116, 114, 101, 97, 109, 32, 111, 114, 32, 114, 97, 119, 68, 97, 116, 97, 32, 110, 101, 101, 100, 115, 32, 116, 111, 32, 114, 101, 102, 101, 114, 101, 110, 99, 101, 32, 116, 111, 32, 115, 111, 109, 101, 116, 104, 105, 110, 103, 0, 119, 105, 100, 116, 104, 32, 110, 101, 101, 100, 115, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 116, 104, 101, 32, 114, 97, 110, 103, 101, 32, 91, 49, 44, 32, 54, 53, 53, 51, 53, 93, 0, 104, 101, 105, 103, 104, 116, 32, 110, 101, 101, 100, 115, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 116, 104, 101, 32, 114, 97, 110, 103, 101, 32, 91, 49, 44, 32, 54, 53, 53, 51, 53, 93, 0, 98, 105, 116, 115, 112, 101, 114, 115, 97, 109, 112, 108, 101, 32, 110, 101, 101, 100, 115, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 116, 104, 101, 32, 114, 97, 110, 103, 101, 32, 91, 50, 44, 32, 49, 54, 93, 0, 105, 110, 116, 101, 114, 108, 101, 97, 118, 101, 77, 111, 100, 101, 32, 110, 101, 101, 100, 115, 32, 116, 111, 32, 98, 101, 32, 115, 101, 116, 32, 116, 111, 32, 97, 32, 118, 97, 108, 117, 101, 32, 111, 102, 32, 123, 78, 111, 110, 101, 44, 32, 83, 97, 109, 112, 108, 101, 44, 32, 76, 105, 110, 101, 125, 0, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 110, 101, 101, 100, 115, 32, 116, 111, 32, 98, 101, 32, 105, 110, 32, 116, 104, 101, 32, 114, 97, 110, 103, 101, 32, 91, 49, 44, 32, 50, 53, 53, 93, 0, 117, 110, 99, 111, 109, 112, 114, 101, 115, 115, 101, 100, 32, 115, 105, 122, 101, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 109, 97, 116, 99, 104, 32, 119, 105, 116, 104, 32, 116, 104, 101, 32, 111, 116, 104, 101, 114, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 115, 0, 105, 110, 116, 101, 114, 108, 101, 97, 118, 101, 77, 111, 100, 101, 32, 99, 97, 110, 110, 111, 116, 32, 98, 101, 32, 115, 101, 116, 32, 116, 111, 32, 83, 97, 109, 112, 108, 101, 32, 105, 110, 32, 99, 111, 109, 98, 105, 110, 97, 116, 105, 111, 110, 32, 119, 105, 116, 104, 32, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 61, 32, 52, 0, 105, 110, 116, 101, 114, 108, 101, 97, 118, 101, 77, 111, 100, 101, 32, 99, 97, 110, 32, 111, 110, 108, 121, 32, 98, 101, 32, 115, 101, 116, 32, 116, 111, 32, 78, 111, 110, 101, 32, 105, 110, 32, 99, 111, 109, 98, 105, 110, 97, 116, 105, 111, 110, 32, 119, 105, 116, 104, 32, 99, 111, 109, 112, 111, 110, 101, 110, 116, 115, 32, 61, 32, 49, 0, 67, 111, 108, 111, 114, 32, 116, 114, 97, 110, 115, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 0, 78, 111, 32, 109, 111, 114, 101, 32, 98, 121, 116, 101, 115, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 105, 110, 32, 105, 110, 112, 117, 116, 32, 98, 117, 102, 102, 101, 114, 44, 32, 115, 116, 105, 108, 108, 32, 110, 101, 101, 100, 101, 100, 105, 110, 103, 32, 0, 65, 110, 32, 111, 100, 100, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 98, 121, 116, 101, 115, 32, 40, 0, 41, 32, 99, 97, 110, 110, 111, 116, 32, 98, 101, 32, 115, 119, 97, 112, 112, 101, 100, 46, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 54, 84, 114, 97, 110, 115, 102, 111, 114, 109, 83, 104, 105, 102, 116, 101, 100, 73, 49, 50, 84, 114, 97, 110, 115, 102, 111, 114, 109, 72, 112, 51, 73, 116, 69, 69, 69, 0, 49, 49, 80, 114, 111, 99, 101, 115, 115, 76, 105, 110, 101, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 54, 84, 114, 97, 110, 115, 102, 111, 114, 109, 83, 104, 105, 102, 116, 101, 100, 73, 49, 50, 84, 114, 97, 110, 115, 102, 111, 114, 109, 72, 112, 50, 73, 116, 69, 69, 69, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 54, 84, 114, 97, 110, 115, 102, 111, 114, 109, 83, 104, 105, 102, 116, 101, 100, 73, 49, 50, 84, 114, 97, 110, 115, 102, 111, 114, 109, 72, 112, 49, 73, 116, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 53, 98, 97, 115, 105, 99, 95, 115, 116, 114, 105, 110, 103, 98, 117, 102, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 78, 83, 95, 57, 97, 108, 108, 111, 99, 97, 116, 111, 114, 73, 99, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 57, 98, 97, 115, 105, 99, 95, 111, 115, 116, 114, 105, 110, 103, 115, 116, 114, 101, 97, 109, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 78, 83, 95, 57, 97, 108, 108, 111, 99, 97, 116, 111, 114, 73, 99, 69, 69, 69, 69, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 50, 84, 114, 97, 110, 115, 102, 111, 114, 109, 72, 112, 51, 73, 116, 69, 69, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 50, 84, 114, 97, 110, 115, 102, 111, 114, 109, 72, 112, 50, 73, 116, 69, 69, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 50, 84, 114, 97, 110, 115, 102, 111, 114, 109, 72, 112, 49, 73, 116, 69, 69, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 51, 84, 114, 97, 110, 115, 102, 111, 114, 109, 78, 111, 110, 101, 73, 116, 69, 69, 0, 50, 50, 80, 111, 115, 116, 80, 114, 111, 99, 101, 115, 83, 105, 110, 103, 108, 101, 83, 116, 114, 101, 97, 109, 0, 50, 53, 80, 111, 115, 116, 80, 114, 111, 99, 101, 115, 83, 105, 110, 103, 108, 101, 67, 111, 109, 112, 111, 110, 101, 110, 116, 0, 49, 53, 69, 110, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 52, 68, 101, 102, 97, 117, 108, 116, 84, 114, 97, 105, 116, 115, 84, 73, 116, 116, 69, 49, 53, 69, 110, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 52, 68, 101, 102, 97, 117, 108, 116, 84, 114, 97, 105, 116, 115, 84, 73, 116, 55, 84, 114, 105, 112, 108, 101, 116, 73, 116, 69, 69, 49, 53, 69, 110, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 50, 84, 114, 97, 110, 115, 102, 111, 114, 109, 72, 112, 51, 73, 104, 69, 69, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 50, 84, 114, 97, 110, 115, 102, 111, 114, 109, 72, 112, 50, 73, 104, 69, 69, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 50, 84, 114, 97, 110, 115, 102, 111, 114, 109, 72, 112, 49, 73, 104, 69, 69, 0, 49, 56, 80, 114, 111, 99, 101, 115, 115, 84, 114, 97, 110, 115, 102, 111, 114, 109, 101, 100, 73, 49, 51, 84, 114, 97, 110, 115, 102, 111, 114, 109, 78, 111, 110, 101, 73, 104, 69, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 52, 68, 101, 102, 97, 117, 108, 116, 84, 114, 97, 105, 116, 115, 84, 73, 104, 55, 84, 114, 105, 112, 108, 101, 116, 73, 104, 69, 69, 49, 53, 69, 110, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 53, 76, 111, 115, 115, 108, 101, 115, 115, 84, 114, 97, 105, 116, 115, 84, 73, 116, 76, 105, 49, 54, 69, 69, 49, 53, 69, 110, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 53, 76, 111, 115, 115, 108, 101, 115, 115, 84, 114, 97, 105, 116, 115, 84, 73, 116, 76, 105, 49, 50, 69, 69, 49, 53, 69, 110, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 53, 76, 111, 115, 115, 108, 101, 115, 115, 84, 114, 97, 105, 116, 115, 84, 73, 104, 76, 105, 56, 69, 69, 49, 53, 69, 110, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 53, 76, 111, 115, 115, 108, 101, 115, 115, 84, 114, 97, 105, 116, 115, 84, 73, 55, 84, 114, 105, 112, 108, 101, 116, 73, 104, 69, 76, 105, 56, 69, 69, 49, 53, 69, 110, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 52, 68, 101, 102, 97, 117, 108, 116, 84, 114, 97, 105, 116, 115, 84, 73, 104, 104, 69, 49, 53, 69, 110, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 49, 53, 68, 101, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 52, 68, 101, 102, 97, 117, 108, 116, 84, 114, 97, 105, 116, 115, 84, 73, 116, 116, 69, 49, 53, 68, 101, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 52, 68, 101, 102, 97, 117, 108, 116, 84, 114, 97, 105, 116, 115, 84, 73, 116, 55, 84, 114, 105, 112, 108, 101, 116, 73, 116, 69, 69, 49, 53, 68, 101, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 52, 68, 101, 102, 97, 117, 108, 116, 84, 114, 97, 105, 116, 115, 84, 73, 104, 55, 84, 114, 105, 112, 108, 101, 116, 73, 104, 69, 69, 49, 53, 68, 101, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 53, 76, 111, 115, 115, 108, 101, 115, 115, 84, 114, 97, 105, 116, 115, 84, 73, 116, 76, 105, 49, 54, 69, 69, 49, 53, 68, 101, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 53, 76, 111, 115, 115, 108, 101, 115, 115, 84, 114, 97, 105, 116, 115, 84, 73, 116, 76, 105, 49, 50, 69, 69, 49, 53, 68, 101, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 53, 76, 111, 115, 115, 108, 101, 115, 115, 84, 114, 97, 105, 116, 115, 84, 73, 104, 76, 105, 56, 69, 69, 49, 53, 68, 101, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 53, 76, 111, 115, 115, 108, 101, 115, 115, 84, 114, 97, 105, 116, 115, 84, 73, 55, 84, 114, 105, 112, 108, 101, 116, 73, 104, 69, 76, 105, 56, 69, 69, 49, 53, 68, 101, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 56, 74, 108, 115, 67, 111, 100, 101, 99, 73, 49, 52, 68, 101, 102, 97, 117, 108, 116, 84, 114, 97, 105, 116, 115, 84, 73, 104, 104, 69, 49, 53, 68, 101, 99, 111, 100, 101, 114, 83, 116, 114, 97, 116, 101, 103, 121, 69, 0, 67, 104, 97, 114, 76, 83, 32, 101, 114, 114, 111, 114, 0, 99, 104, 97, 114, 108, 115, 0, 49, 53, 99, 104, 97, 114, 108, 115, 95, 99, 97, 116, 101, 103, 111, 114, 121, 0, 112, 97, 114, 97, 109, 115, 46, 88, 116, 104, 117, 109, 98, 110, 97, 105, 108, 32, 105, 115, 32, 62, 32, 48, 32, 98, 117, 116, 32, 112, 97, 114, 97, 109, 115, 46, 116, 104, 117, 109, 98, 110, 97, 105, 108, 32, 61, 61, 32, 110, 117, 108, 108, 95, 112, 116, 114, 0, 49, 55, 74, 112, 101, 103, 77, 97, 114, 107, 101, 114, 83, 101, 103, 109, 101, 110, 116, 0, 49, 49, 74, 112, 101, 103, 83, 101, 103, 109, 101, 110, 116, 0, 50, 48, 74, 112, 101, 103, 73, 109, 97, 103, 101, 68, 97, 116, 97, 83, 101, 103, 109, 101, 110, 116, 0, 69, 120, 112, 101, 99, 116, 101, 100, 32, 74, 80, 69, 71, 32, 77, 97, 114, 107, 101, 114, 32, 115, 116, 97, 114, 116, 32, 98, 121, 116, 101, 32, 48, 120, 70, 70, 32, 98, 117, 116, 32, 116, 104, 101, 32, 98, 121, 116, 101, 32, 118, 97, 108, 117, 101, 32, 119, 97, 115, 32, 48, 120, 0, 74, 80, 69, 71, 32, 101, 110, 99, 111, 100, 105, 110, 103, 32, 119, 105, 116, 104, 32, 109, 97, 114, 107, 101, 114, 32, 0, 32, 105, 115, 32, 110, 111, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 46, 0, 85, 110, 107, 110, 111, 119, 110, 32, 74, 80, 69, 71, 32, 109, 97, 114, 107, 101, 114, 32, 0, 32, 101, 110, 99, 111, 117, 110, 116, 101, 114, 101, 100, 46, 0, 109, 114, 102, 120, 0, 83, 116, 57, 98, 97, 100, 95, 97, 108, 108, 111, 99, 0, 83, 116, 57, 101, 120, 99, 101, 112, 116, 105, 111, 110, 0, 83, 116, 49, 51, 114, 117, 110, 116, 105, 109, 101, 95, 101, 114, 114, 111, 114, 0, 83, 116, 57, 116, 121, 112, 101, 95, 105, 110, 102, 111, 0, 83, 116, 56, 98, 97, 100, 95, 99, 97, 115, 116, 0, 78, 49, 48, 95, 95, 99, 120, 120, 97, 98, 105, 118, 49, 49, 54, 95, 95, 115, 104, 105, 109, 95, 116, 121, 112, 101, 95, 105, 110, 102, 111, 69, 0, 78, 49, 48, 95, 95, 99, 120, 120, 97, 98, 105, 118, 49, 49, 55, 95, 95, 99, 108, 97, 115, 115, 95, 116, 121, 112, 101, 95, 105, 110, 102, 111, 69, 0, 78, 49, 48, 95, 95, 99, 120, 120, 97, 98, 105, 118, 49, 49, 57, 95, 95, 112, 111, 105, 110, 116, 101, 114, 95, 116, 121, 112, 101, 95, 105, 110, 102, 111, 69, 0, 78, 49, 48, 95, 95, 99, 120, 120, 97, 98, 105, 118, 49, 49, 55, 95, 95, 112, 98, 97, 115, 101, 95, 116, 121, 112, 101, 95, 105, 110, 102, 111, 69, 0, 78, 49, 48, 95, 95, 99, 120, 120, 97, 98, 105, 118, 49, 50, 48, 95, 95, 115, 105, 95, 99, 108, 97, 115, 115, 95, 116, 121, 112, 101, 95, 105, 110, 102, 111, 69, 0, 78, 49, 48, 95, 95, 99, 120, 120, 97, 98, 105, 118, 49, 50, 49, 95, 95, 118, 109, 105, 95, 99, 108, 97, 115, 115, 95, 116, 121, 112, 101, 95, 105, 110, 102, 111, 69, 0, 33, 34, 98, 97, 115, 105, 99, 95, 115, 116, 114, 105, 110, 103, 32, 108, 101, 110, 103, 116, 104, 95, 101, 114, 114, 111, 114, 34, 0, 47, 85, 115, 101, 114, 115, 47, 99, 104, 97, 102, 101, 121, 47, 101, 109, 115, 100, 107, 95, 112, 111, 114, 116, 97, 98, 108, 101, 47, 101, 109, 115, 99, 114, 105, 112, 116, 101, 110, 47, 49, 46, 51, 53, 46, 48, 47, 115, 121, 115, 116, 101, 109, 47, 105, 110, 99, 108, 117, 100, 101, 47, 108, 105, 98, 99, 120, 120, 47, 115, 116, 114, 105, 110, 103, 0, 95, 95, 116, 104, 114, 111, 119, 95, 108, 101, 110, 103, 116, 104, 95, 101, 114, 114, 111, 114, 0, 33, 34, 118, 101, 99, 116, 111, 114, 32, 108, 101, 110, 103, 116, 104, 95, 101, 114, 114, 111, 114, 34, 0, 47, 85, 115, 101, 114, 115, 47, 99, 104, 97, 102, 101, 121, 47, 101, 109, 115, 100, 107, 95, 112, 111, 114, 116, 97, 98, 108, 101, 47, 101, 109, 115, 99, 114, 105, 112, 116, 101, 110, 47, 49, 46, 51, 53, 46, 48, 47, 115, 121, 115, 116, 101, 109, 47, 105, 110, 99, 108, 117, 100, 101, 47, 108, 105, 98, 99, 120, 120, 47, 118, 101, 99, 116, 111, 114, 0, 112, 116, 104, 114, 101, 97, 100, 95, 111, 110, 99, 101, 32, 102, 97, 105, 108, 117, 114, 101, 32, 105, 110, 32, 95, 95, 99, 120, 97, 95, 103, 101, 116, 95, 103, 108, 111, 98, 97, 108, 115, 95, 102, 97, 115, 116, 40, 41, 0, 115, 116, 100, 58, 58, 98, 97, 100, 95, 97, 108, 108, 111, 99, 0, 116, 101, 114, 109, 105, 110, 97, 116, 101, 95, 104, 97, 110, 100, 108, 101, 114, 32, 117, 110, 101, 120, 112, 101, 99, 116, 101, 100, 108, 121, 32, 114, 101, 116, 117, 114, 110, 101, 100, 0, 116, 101, 114, 109, 105, 110, 97, 116, 101, 95, 104, 97, 110, 100, 108, 101, 114, 32, 117, 110, 101, 120, 112, 101, 99, 116, 101, 100, 108, 121, 32, 116, 104, 114, 101, 119, 32, 97, 110, 32, 101, 120, 99, 101, 112, 116, 105, 111, 110, 0, 115, 116, 100, 58, 58, 98, 97, 100, 95, 99, 97, 115, 116, 0, 99, 97, 110, 110, 111, 116, 32, 99, 114, 101, 97, 116, 101, 32, 112, 116, 104, 114, 101, 97, 100, 32, 107, 101, 121, 32, 102, 111, 114, 32, 95, 95, 99, 120, 97, 95, 103, 101, 116, 95, 103, 108, 111, 98, 97, 108, 115, 40, 41, 0, 99, 97, 110, 110, 111, 116, 32, 122, 101, 114, 111, 32, 111, 117, 116, 32, 116, 104, 114, 101, 97, 100, 32, 118, 97, 108, 117, 101, 32, 102, 111, 114, 32, 95, 95, 99, 120, 97, 95, 103, 101, 116, 95, 103, 108, 111, 98, 97, 108, 115, 40, 41, 0, 116, 101, 114, 109, 105, 110, 97, 116, 105, 110, 103, 32, 119, 105, 116, 104, 32, 37, 115, 32, 101, 120, 99, 101, 112, 116, 105, 111, 110, 32, 111, 102, 32, 116, 121, 112, 101, 32, 37, 115, 58, 32, 37, 115, 0, 116, 101, 114, 109, 105, 110, 97, 116, 105, 110, 103, 32, 119, 105, 116, 104, 32, 37, 115, 32, 101, 120, 99, 101, 112, 116, 105, 111, 110, 32, 111, 102, 32, 116, 121, 112, 101, 32, 37, 115, 0, 116, 101, 114, 109, 105, 110, 97, 116, 105, 110, 103, 32, 119, 105, 116, 104, 32, 37, 115, 32, 102, 111, 114, 101, 105, 103, 110, 32, 101, 120, 99, 101, 112, 116, 105, 111, 110, 0, 116, 101, 114, 109, 105, 110, 97, 116, 105, 110, 103, 0, 117, 110, 99, 97, 117, 103, 104, 116, 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], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 42396); allocate([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, 105, 110, 102, 105, 110, 105, 116, 121, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 255, 255, 255, 255, 255, 255, 255, 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, 255, 255, 255, 255, 255, 255, 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, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 1, 2, 4, 7, 3, 6, 5, 0, 80, 79, 83, 73, 88], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 52636); allocate([17, 0, 10, 0, 17, 17, 17, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 15, 10, 17, 17, 17, 3, 10, 7, 0, 1, 19, 9, 11, 11, 0, 0, 9, 6, 11, 0, 0, 11, 0, 6, 17, 0, 0, 0, 17, 17, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 10, 10, 17, 17, 17, 0, 10, 0, 0, 2, 0, 9, 11, 0, 0, 0, 9, 0, 11, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 0, 0, 0, 0, 9, 12, 0, 0, 0, 0, 0, 12, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 4, 13, 0, 0, 0, 0, 9, 14, 0, 0, 0, 0, 0, 14, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 15, 0, 0, 0, 0, 9, 16, 0, 0, 0, 0, 0, 16, 0, 0, 16, 0, 0, 18, 0, 0, 0, 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 18, 18, 18, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 10, 0, 0, 0, 0, 9, 11, 0, 0, 0, 0, 0, 11, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 0, 0, 0, 0, 9, 12, 0, 0, 0, 0, 0, 12, 0, 0, 12, 0, 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70, 45, 43, 32, 32, 32, 48, 88, 48, 120, 0, 40, 110, 117, 108, 108, 41, 0, 45, 48, 88, 43, 48, 88, 32, 48, 88, 45, 48, 120, 43, 48, 120, 32, 48, 120, 0, 105, 110, 102, 0, 73, 78, 70, 0, 110, 97, 110, 0, 78, 65, 78, 0, 46, 0, 0, 78, 83, 116, 51, 95, 95, 49, 49, 49, 95, 95, 115, 116, 100, 111, 117, 116, 98, 117, 102, 73, 119, 69, 69, 0, 117, 110, 115, 117, 112, 112, 111, 114, 116, 101, 100, 32, 108, 111, 99, 97, 108, 101, 32, 102, 111, 114, 32, 115, 116, 97, 110, 100, 97, 114, 100, 32, 105, 110, 112, 117, 116, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 95, 95, 115, 116, 100, 105, 110, 98, 117, 102, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 49, 95, 95, 115, 116, 100, 111, 117, 116, 98, 117, 102, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 95, 95, 115, 116, 100, 105, 110, 98, 117, 102, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 52, 95, 95, 115, 104, 97, 114, 101, 100, 95, 99, 111, 117, 110, 116, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 50, 115, 121, 115, 116, 101, 109, 95, 101, 114, 114, 111, 114, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 52, 101, 114, 114, 111, 114, 95, 99, 97, 116, 101, 103, 111, 114, 121, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 50, 95, 95, 100, 111, 95, 109, 101, 115, 115, 97, 103, 101, 69, 0, 58, 32, 0, 78, 83, 116, 51, 95, 95, 49, 56, 105, 111, 115, 95, 98, 97, 115, 101, 55, 102, 97, 105, 108, 117, 114, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 105, 111, 115, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 98, 97, 115, 105, 99, 95, 105, 111, 115, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 98, 97, 115, 105, 99, 95, 105, 111, 115, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 53, 98, 97, 115, 105, 99, 95, 115, 116, 114, 101, 97, 109, 98, 117, 102, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 53, 98, 97, 115, 105, 99, 95, 115, 116, 114, 101, 97, 109, 98, 117, 102, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 51, 98, 97, 115, 105, 99, 95, 105, 115, 116, 114, 101, 97, 109, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 51, 98, 97, 115, 105, 99, 95, 105, 115, 116, 114, 101, 97, 109, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 51, 98, 97, 115, 105, 99, 95, 111, 115, 116, 114, 101, 97, 109, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 51, 98, 97, 115, 105, 99, 95, 111, 115, 116, 114, 101, 97, 109, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 57, 95, 95, 105, 111, 115, 116, 114, 101, 97, 109, 95, 99, 97, 116, 101, 103, 111, 114, 121, 69, 0, 105, 111, 115, 95, 98, 97, 115, 101, 58, 58, 99, 108, 101, 97, 114, 0, 105, 111, 115, 116, 114, 101, 97, 109, 0, 117, 110, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 105, 111, 115, 116, 114, 101, 97, 109, 95, 99, 97, 116, 101, 103, 111, 114, 121, 32, 101, 114, 114, 111, 114, 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 97, 98, 99, 100, 101, 102, 65, 66, 67, 68, 69, 70, 120, 88, 43, 45, 112, 80, 105, 73, 110, 78, 0, 78, 83, 116, 51, 95, 95, 49, 54, 108, 111, 99, 97, 108, 101, 53, 102, 97, 99, 101, 116, 69, 0, 78, 83, 116, 51, 95, 95, 49, 53, 99, 116, 121, 112, 101, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 99, 111, 100, 101, 99, 118, 116, 73, 99, 99, 49, 49, 95, 95, 109, 98, 115, 116, 97, 116, 101, 95, 116, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 99, 111, 100, 101, 99, 118, 116, 73, 68, 115, 99, 49, 49, 95, 95, 109, 98, 115, 116, 97, 116, 101, 95, 116, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 99, 111, 100, 101, 99, 118, 116, 73, 68, 105, 99, 49, 49, 95, 95, 109, 98, 115, 116, 97, 116, 101, 95, 116, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 54, 95, 95, 110, 97, 114, 114, 111, 119, 95, 116, 111, 95, 117, 116, 102, 56, 73, 76, 106, 51, 50, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 55, 95, 95, 119, 105, 100, 101, 110, 95, 102, 114, 111, 109, 95, 117, 116, 102, 56, 73, 76, 106, 51, 50, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 99, 111, 100, 101, 99, 118, 116, 73, 119, 99, 49, 49, 95, 95, 109, 98, 115, 116, 97, 116, 101, 95, 116, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 54, 108, 111, 99, 97, 108, 101, 53, 95, 95, 105, 109, 112, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 99, 111, 108, 108, 97, 116, 101, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 99, 111, 108, 108, 97, 116, 101, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 53, 99, 116, 121, 112, 101, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 110, 117, 109, 112, 117, 110, 99, 116, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 110, 117, 109, 112, 117, 110, 99, 116, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 110, 117, 109, 95, 103, 101, 116, 73, 99, 78, 83, 95, 49, 57, 105, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 110, 117, 109, 95, 103, 101, 116, 73, 119, 78, 83, 95, 49, 57, 105, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 110, 117, 109, 95, 112, 117, 116, 73, 99, 78, 83, 95, 49, 57, 111, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 55, 110, 117, 109, 95, 112, 117, 116, 73, 119, 78, 83, 95, 49, 57, 111, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 116, 105, 109, 101, 95, 103, 101, 116, 73, 99, 78, 83, 95, 49, 57, 105, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 116, 105, 109, 101, 95, 103, 101, 116, 73, 119, 78, 83, 95, 49, 57, 105, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 116, 105, 109, 101, 95, 112, 117, 116, 73, 99, 78, 83, 95, 49, 57, 111, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 116, 105, 109, 101, 95, 112, 117, 116, 73, 119, 78, 83, 95, 49, 57, 111, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 109, 111, 110, 101, 121, 112, 117, 110, 99, 116, 73, 99, 76, 98, 48, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 109, 111, 110, 101, 121, 112, 117, 110, 99, 116, 73, 99, 76, 98, 49, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 109, 111, 110, 101, 121, 112, 117, 110, 99, 116, 73, 119, 76, 98, 48, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 109, 111, 110, 101, 121, 112, 117, 110, 99, 116, 73, 119, 76, 98, 49, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 109, 111, 110, 101, 121, 95, 103, 101, 116, 73, 99, 78, 83, 95, 49, 57, 105, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 109, 111, 110, 101, 121, 95, 103, 101, 116, 73, 119, 78, 83, 95, 49, 57, 105, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 109, 111, 110, 101, 121, 95, 112, 117, 116, 73, 99, 78, 83, 95, 49, 57, 111, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 99, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 99, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 109, 111, 110, 101, 121, 95, 112, 117, 116, 73, 119, 78, 83, 95, 49, 57, 111, 115, 116, 114, 101, 97, 109, 98, 117, 102, 95, 105, 116, 101, 114, 97, 116, 111, 114, 73, 119, 78, 83, 95, 49, 49, 99, 104, 97, 114, 95, 116, 114, 97, 105, 116, 115, 73, 119, 69, 69, 69, 69, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 109, 101, 115, 115, 97, 103, 101, 115, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 56, 109, 101, 115, 115, 97, 103, 101, 115, 73, 119, 69, 69, 0, 37, 112, 0, 67, 0, 37, 0, 0, 0, 0, 0, 108, 0, 108, 108, 0, 0, 76, 0, 37, 112, 0, 0, 0, 0, 37, 72, 58, 37, 77, 58, 37, 83, 37, 109, 47, 37, 100, 47, 37, 121, 37, 89, 45, 37, 109, 45, 37, 100, 37, 73, 58, 37, 77, 58, 37, 83, 32, 37, 112, 37, 72, 58, 37, 77, 37, 72, 58, 37, 77, 58, 37, 83, 108, 111, 99, 97, 108, 101, 32, 110, 111, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 0, 37, 76, 102, 0, 109, 111, 110, 101, 121, 95, 103, 101, 116, 32, 101, 114, 114, 111, 114, 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 0, 37, 46, 48, 76, 102, 0, 116, 114, 117, 101, 0, 102, 97, 108, 115, 101, 0, 83, 117, 110, 100, 97, 121, 0, 77, 111, 110, 100, 97, 121, 0, 84, 117, 101, 115, 100, 97, 121, 0, 87, 101, 100, 110, 101, 115, 100, 97, 121, 0, 84, 104, 117, 114, 115, 100, 97, 121, 0, 70, 114, 105, 100, 97, 121, 0, 83, 97, 116, 117, 114, 100, 97, 121, 0, 83, 117, 110, 0, 77, 111, 110, 0, 84, 117, 101, 0, 87, 101, 100, 0, 84, 104, 117, 0, 70, 114, 105, 0, 83, 97, 116, 0, 74, 97, 110, 117, 97, 114, 121, 0, 70, 101, 98, 114, 117, 97, 114, 121, 0, 77, 97, 114, 99, 104, 0, 65, 112, 114, 105, 108, 0, 77, 97, 121, 0, 74, 117, 110, 101, 0, 74, 117, 108, 121, 0, 65, 117, 103, 117, 115, 116, 0, 83, 101, 112, 116, 101, 109, 98, 101, 114, 0, 79, 99, 116, 111, 98, 101, 114, 0, 78, 111, 118, 101, 109, 98, 101, 114, 0, 68, 101, 99, 101, 109, 98, 101, 114, 0, 74, 97, 110, 0, 70, 101, 98, 0, 77, 97, 114, 0, 65, 112, 114, 0, 74, 117, 110, 0, 74, 117, 108, 0, 65, 117, 103, 0, 83, 101, 112, 0, 79, 99, 116, 0, 78, 111, 118, 0, 68, 101, 99, 0, 65, 77, 0, 80, 77, 0, 37, 109, 47, 37, 100, 47, 37, 121, 0, 37, 72, 58, 37, 77, 58, 37, 83, 0, 37, 97, 32, 37, 98, 32, 37, 100, 32, 37, 72, 58, 37, 77, 58, 37, 83, 32, 37, 89, 0, 37, 73, 58, 37, 77, 58, 37, 83, 32, 37, 112, 0, 78, 83, 116, 51, 95, 95, 49, 49, 51, 109, 101, 115, 115, 97, 103, 101, 115, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 49, 95, 95, 109, 111, 110, 101, 121, 95, 112, 117, 116, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 49, 95, 95, 109, 111, 110, 101, 121, 95, 112, 117, 116, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 49, 95, 95, 109, 111, 110, 101, 121, 95, 103, 101, 116, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 49, 95, 95, 109, 111, 110, 101, 121, 95, 103, 101, 116, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 109, 111, 110, 101, 121, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 95, 95, 116, 105, 109, 101, 95, 112, 117, 116, 69, 0, 78, 83, 116, 51, 95, 95, 49, 50, 48, 95, 95, 116, 105, 109, 101, 95, 103, 101, 116, 95, 99, 95, 115, 116, 111, 114, 97, 103, 101, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 50, 48, 95, 95, 116, 105, 109, 101, 95, 103, 101, 116, 95, 99, 95, 115, 116, 111, 114, 97, 103, 101, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 116, 105, 109, 101, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 95, 95, 110, 117, 109, 95, 112, 117, 116, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 52, 95, 95, 110, 117, 109, 95, 112, 117, 116, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 95, 95, 110, 117, 109, 95, 112, 117, 116, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 95, 95, 110, 117, 109, 95, 103, 101, 116, 73, 119, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 52, 95, 95, 110, 117, 109, 95, 103, 101, 116, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 57, 95, 95, 110, 117, 109, 95, 103, 101, 116, 73, 99, 69, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 50, 99, 111, 100, 101, 99, 118, 116, 95, 98, 97, 115, 101, 69, 0, 78, 83, 116, 51, 95, 95, 49, 49, 48, 99, 116, 121, 112, 101, 95, 98, 97, 115, 101, 69, 0], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 56215); var tempDoublePtr = Runtime.alignMemory(allocate(12, "i8", ALLOC_STATIC), 8); assert(tempDoublePtr % 8 == 0); function copyTempFloat(ptr) { HEAP8[tempDoublePtr] = HEAP8[ptr]; HEAP8[tempDoublePtr + 1] = HEAP8[ptr + 1]; HEAP8[tempDoublePtr + 2] = HEAP8[ptr + 2]; HEAP8[tempDoublePtr + 3] = HEAP8[ptr + 3]; } function copyTempDouble(ptr) { HEAP8[tempDoublePtr] = HEAP8[ptr]; HEAP8[tempDoublePtr + 1] = HEAP8[ptr + 1]; HEAP8[tempDoublePtr + 2] = HEAP8[ptr + 2]; HEAP8[tempDoublePtr + 3] = HEAP8[ptr + 3]; HEAP8[tempDoublePtr + 4] = HEAP8[ptr + 4]; HEAP8[tempDoublePtr + 5] = HEAP8[ptr + 5]; HEAP8[tempDoublePtr + 6] = HEAP8[ptr + 6]; HEAP8[tempDoublePtr + 7] = HEAP8[ptr + 7]; } function _atexit(func2, arg2) { __ATEXIT__.unshift({ func: func2, arg: arg2 }); } function ___cxa_atexit() { return _atexit.apply(null, arguments); } Module["_i64Subtract"] = _i64Subtract; function ___assert_fail(condition, filename, line, func2) { ABORT = true; throw "Assertion failed: " + Pointer_stringify(condition) + ", at: " + [filename ? Pointer_stringify(filename) : "unknown filename", line, func2 ? Pointer_stringify(func2) : "unknown function"] + " at " + stackTrace(); } function __ZSt18uncaught_exceptionv() { return !!__ZSt18uncaught_exceptionv.uncaught_exception; } var EXCEPTIONS = { last: 0, caught: [], infos: {}, deAdjust: function(adjusted) { if (!adjusted || EXCEPTIONS.infos[adjusted]) return adjusted; for (var ptr in EXCEPTIONS.infos) { var info = EXCEPTIONS.infos[ptr]; if (info.adjusted === adjusted) { return ptr; } } return adjusted; }, addRef: function(ptr) { if (!ptr) return; var info = EXCEPTIONS.infos[ptr]; info.refcount++; }, decRef: function(ptr) { if (!ptr) return; var info = EXCEPTIONS.infos[ptr]; assert(info.refcount > 0); info.refcount--; if (info.refcount === 0) { if (info.destructor) { Runtime.dynCall("vi", info.destructor, [ptr]); } delete EXCEPTIONS.infos[ptr]; ___cxa_free_exception(ptr); } }, clearRef: function(ptr) { if (!ptr) return; var info = EXCEPTIONS.infos[ptr]; info.refcount = 0; } }; function ___resumeException(ptr) { if (!EXCEPTIONS.last) { EXCEPTIONS.last = ptr; } EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(ptr)); throw ptr; } function ___cxa_find_matching_catch() { var thrown = EXCEPTIONS.last; if (!thrown) { return (asm["setTempRet0"](0), 0) | 0; } var info = EXCEPTIONS.infos[thrown]; var throwntype = info.type; if (!throwntype) { return (asm["setTempRet0"](0), thrown) | 0; } var typeArray = Array.prototype.slice.call(arguments); var pointer = Module["___cxa_is_pointer_type"](throwntype); if (!___cxa_find_matching_catch.buffer) ___cxa_find_matching_catch.buffer = _malloc(4); HEAP32[___cxa_find_matching_catch.buffer >> 2] = thrown; thrown = ___cxa_find_matching_catch.buffer; for (var i2 = 0; i2 < typeArray.length; i2++) { if (typeArray[i2] && Module["___cxa_can_catch"](typeArray[i2], throwntype, thrown)) { thrown = HEAP32[thrown >> 2]; info.adjusted = thrown; return (asm["setTempRet0"](typeArray[i2]), thrown) | 0; } } thrown = HEAP32[thrown >> 2]; return (asm["setTempRet0"](throwntype), thrown) | 0; } function ___cxa_throw(ptr, type2, destructor) { EXCEPTIONS.infos[ptr] = { ptr, adjusted: ptr, type: type2, destructor, refcount: 0 }; EXCEPTIONS.last = ptr; if (!("uncaught_exception" in __ZSt18uncaught_exceptionv)) { __ZSt18uncaught_exceptionv.uncaught_exception = 1; } else { __ZSt18uncaught_exceptionv.uncaught_exception++; } throw ptr; } Module["_memset"] = _memset; var _BDtoILow = true; var _emscripten_resume = true; function ___gxx_personality_v0() { } var _emscripten_landingpad = true; function __isLeapYear(year) { return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); } function __arraySum(array, index) { var sum = 0; for (var i2 = 0; i2 <= index; sum += array[i2++]) ; return sum; } var __MONTH_DAYS_LEAP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; var __MONTH_DAYS_REGULAR = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; function __addDays(date, days) { var newDate = new Date(date.getTime()); while (days > 0) { var leap = __isLeapYear(newDate.getFullYear()); var currentMonth = newDate.getMonth(); var daysInCurrentMonth = (leap ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR)[currentMonth]; if (days > daysInCurrentMonth - newDate.getDate()) { days -= daysInCurrentMonth - newDate.getDate() + 1; newDate.setDate(1); if (currentMonth < 11) { newDate.setMonth(currentMonth + 1); } else { newDate.setMonth(0); newDate.setFullYear(newDate.getFullYear() + 1); } } else { newDate.setDate(newDate.getDate() + days); return newDate; } } return newDate; } function _strftime(s, maxsize, format, tm) { var tm_zone = HEAP32[tm + 40 >> 2]; var date = { tm_sec: HEAP32[tm >> 2], tm_min: HEAP32[tm + 4 >> 2], tm_hour: HEAP32[tm + 8 >> 2], tm_mday: HEAP32[tm + 12 >> 2], tm_mon: HEAP32[tm + 16 >> 2], tm_year: HEAP32[tm + 20 >> 2], tm_wday: HEAP32[tm + 24 >> 2], tm_yday: HEAP32[tm + 28 >> 2], tm_isdst: HEAP32[tm + 32 >> 2], tm_gmtoff: HEAP32[tm + 36 >> 2], tm_zone: tm_zone ? Pointer_stringify(tm_zone) : "" }; var pattern = Pointer_stringify(format); var EXPANSION_RULES_1 = { "%c": "%a %b %d %H:%M:%S %Y", "%D": "%m/%d/%y", "%F": "%Y-%m-%d", "%h": "%b", "%r": "%I:%M:%S %p", "%R": "%H:%M", "%T": "%H:%M:%S", "%x": "%m/%d/%y", "%X": "%H:%M:%S" }; for (var rule in EXPANSION_RULES_1) { pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_1[rule]); } var WEEKDAYS = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; var MONTHS = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; function leadingSomething(value, digits, character) { var str = typeof value === "number" ? value.toString() : value || ""; while (str.length < digits) { str = character[0] + str; } return str; } function leadingNulls(value, digits) { return leadingSomething(value, digits, "0"); } function compareByDay(date1, date2) { function sgn(value) { return value < 0 ? -1 : value > 0 ? 1 : 0; } var compare; if ((compare = sgn(date1.getFullYear() - date2.getFullYear())) === 0) { if ((compare = sgn(date1.getMonth() - date2.getMonth())) === 0) { compare = sgn(date1.getDate() - date2.getDate()); } } return compare; } function getFirstWeekStartDate(janFourth) { switch (janFourth.getDay()) { case 0: return new Date(janFourth.getFullYear() - 1, 11, 29); case 1: return janFourth; case 2: return new Date(janFourth.getFullYear(), 0, 3); case 3: return new Date(janFourth.getFullYear(), 0, 2); case 4: return new Date(janFourth.getFullYear(), 0, 1); case 5: return new Date(janFourth.getFullYear() - 1, 11, 31); case 6: return new Date(janFourth.getFullYear() - 1, 11, 30); } } function getWeekBasedYear(date2) { var thisDate = __addDays(new Date(date2.tm_year + 1900, 0, 1), date2.tm_yday); var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4); var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4); var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear); var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear); if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) { if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) { return thisDate.getFullYear() + 1; } else { return thisDate.getFullYear(); } } else { return thisDate.getFullYear() - 1; } } var EXPANSION_RULES_2 = { "%a": function(date2) { return WEEKDAYS[date2.tm_wday].substring(0, 3); }, "%A": function(date2) { return WEEKDAYS[date2.tm_wday]; }, "%b": function(date2) { return MONTHS[date2.tm_mon].substring(0, 3); }, "%B": function(date2) { return MONTHS[date2.tm_mon]; }, "%C": function(date2) { var year = date2.tm_year + 1900; return leadingNulls(year / 100 | 0, 2); }, "%d": function(date2) { return leadingNulls(date2.tm_mday, 2); }, "%e": function(date2) { return leadingSomething(date2.tm_mday, 2, " "); }, "%g": function(date2) { return getWeekBasedYear(date2).toString().substring(2); }, "%G": function(date2) { return getWeekBasedYear(date2); }, "%H": function(date2) { return leadingNulls(date2.tm_hour, 2); }, "%I": function(date2) { return leadingNulls(date2.tm_hour < 13 ? date2.tm_hour : date2.tm_hour - 12, 2); }, "%j": function(date2) { return leadingNulls(date2.tm_mday + __arraySum(__isLeapYear(date2.tm_year + 1900) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, date2.tm_mon - 1), 3); }, "%m": function(date2) { return leadingNulls(date2.tm_mon + 1, 2); }, "%M": function(date2) { return leadingNulls(date2.tm_min, 2); }, "%n": function() { return "\n"; }, "%p": function(date2) { if (date2.tm_hour > 0 && date2.tm_hour < 13) { return "AM"; } else { return "PM"; } }, "%S": function(date2) { return leadingNulls(date2.tm_sec, 2); }, "%t": function() { return " "; }, "%u": function(date2) { var day = new Date(date2.tm_year + 1900, date2.tm_mon + 1, date2.tm_mday, 0, 0, 0, 0); return day.getDay() || 7; }, "%U": function(date2) { var janFirst = new Date(date2.tm_year + 1900, 0, 1); var firstSunday = janFirst.getDay() === 0 ? janFirst : __addDays(janFirst, 7 - janFirst.getDay()); var endDate = new Date(date2.tm_year + 1900, date2.tm_mon, date2.tm_mday); if (compareByDay(firstSunday, endDate) < 0) { var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth() - 1) - 31; var firstSundayUntilEndJanuary = 31 - firstSunday.getDate(); var days = firstSundayUntilEndJanuary + februaryFirstUntilEndMonth + endDate.getDate(); return leadingNulls(Math.ceil(days / 7), 2); } return compareByDay(firstSunday, janFirst) === 0 ? "01" : "00"; }, "%V": function(date2) { var janFourthThisYear = new Date(date2.tm_year + 1900, 0, 4); var janFourthNextYear = new Date(date2.tm_year + 1901, 0, 4); var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear); var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear); var endDate = __addDays(new Date(date2.tm_year + 1900, 0, 1), date2.tm_yday); if (compareByDay(endDate, firstWeekStartThisYear) < 0) { return "53"; } if (compareByDay(firstWeekStartNextYear, endDate) <= 0) { return "01"; } var daysDifference; if (firstWeekStartThisYear.getFullYear() < date2.tm_year + 1900) { daysDifference = date2.tm_yday + 32 - firstWeekStartThisYear.getDate(); } else { daysDifference = date2.tm_yday + 1 - firstWeekStartThisYear.getDate(); } return leadingNulls(Math.ceil(daysDifference / 7), 2); }, "%w": function(date2) { var day = new Date(date2.tm_year + 1900, date2.tm_mon + 1, date2.tm_mday, 0, 0, 0, 0); return day.getDay(); }, "%W": function(date2) { var janFirst = new Date(date2.tm_year, 0, 1); var firstMonday = janFirst.getDay() === 1 ? janFirst : __addDays(janFirst, janFirst.getDay() === 0 ? 1 : 7 - janFirst.getDay() + 1); var endDate = new Date(date2.tm_year + 1900, date2.tm_mon, date2.tm_mday); if (compareByDay(firstMonday, endDate) < 0) { var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth() - 1) - 31; var firstMondayUntilEndJanuary = 31 - firstMonday.getDate(); var days = firstMondayUntilEndJanuary + februaryFirstUntilEndMonth + endDate.getDate(); return leadingNulls(Math.ceil(days / 7), 2); } return compareByDay(firstMonday, janFirst) === 0 ? "01" : "00"; }, "%y": function(date2) { return (date2.tm_year + 1900).toString().substring(2); }, "%Y": function(date2) { return date2.tm_year + 1900; }, "%z": function(date2) { var off = date2.tm_gmtoff; var ahead = off >= 0; off = Math.abs(off) / 60; off = off / 60 * 100 + off % 60; return (ahead ? "+" : "-") + String("0000" + off).slice(-4); }, "%Z": function(date2) { return date2.tm_zone; }, "%%": function() { return "%"; } }; for (var rule in EXPANSION_RULES_2) { if (pattern.indexOf(rule) >= 0) { pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_2[rule](date)); } } var bytes = intArrayFromString(pattern, false); if (bytes.length > maxsize) { return 0; } writeArrayToMemory(bytes, s); return bytes.length - 1; } function _strftime_l(s, maxsize, format, tm) { return _strftime(s, maxsize, format, tm); } function _abort() { Module["abort"](); } function _free() { } Module["_free"] = _free; function ___cxa_free_exception(ptr) { try { return _free(ptr); } catch (e) { } } function ___cxa_end_catch() { if (___cxa_end_catch.rethrown) { ___cxa_end_catch.rethrown = false; return; } asm["setThrew"](0); var ptr = EXCEPTIONS.caught.pop(); if (ptr) { EXCEPTIONS.decRef(EXCEPTIONS.deAdjust(ptr)); EXCEPTIONS.last = 0; } } function _pthread_once(ptr, func2) { if (!_pthread_once.seen) _pthread_once.seen = {}; if (ptr in _pthread_once.seen) return; Runtime.dynCall("v", func2); _pthread_once.seen[ptr] = 1; } function ___lock() { } function ___unlock() { } var PTHREAD_SPECIFIC = {}; function _pthread_getspecific(key2) { return PTHREAD_SPECIFIC[key2] || 0; } function ___setErrNo(value) { if (Module["___errno_location"]) HEAP32[Module["___errno_location"]() >> 2] = value; return value; } var ERRNO_CODES = { EPERM: 1, ENOENT: 2, ESRCH: 3, EINTR: 4, EIO: 5, ENXIO: 6, E2BIG: 7, ENOEXEC: 8, EBADF: 9, ECHILD: 10, EAGAIN: 11, EWOULDBLOCK: 11, ENOMEM: 12, EACCES: 13, EFAULT: 14, ENOTBLK: 15, EBUSY: 16, EEXIST: 17, EXDEV: 18, ENODEV: 19, ENOTDIR: 20, EISDIR: 21, EINVAL: 22, ENFILE: 23, EMFILE: 24, ENOTTY: 25, ETXTBSY: 26, EFBIG: 27, ENOSPC: 28, ESPIPE: 29, EROFS: 30, EMLINK: 31, EPIPE: 32, EDOM: 33, ERANGE: 34, ENOMSG: 42, EIDRM: 43, ECHRNG: 44, EL2NSYNC: 45, EL3HLT: 46, EL3RST: 47, ELNRNG: 48, EUNATCH: 49, ENOCSI: 50, EL2HLT: 51, EDEADLK: 35, ENOLCK: 37, EBADE: 52, EBADR: 53, EXFULL: 54, ENOANO: 55, EBADRQC: 56, EBADSLT: 57, EDEADLOCK: 35, EBFONT: 59, ENOSTR: 60, ENODATA: 61, ETIME: 62, ENOSR: 63, ENONET: 64, ENOPKG: 65, EREMOTE: 66, ENOLINK: 67, EADV: 68, ESRMNT: 69, ECOMM: 70, EPROTO: 71, EMULTIHOP: 72, EDOTDOT: 73, EBADMSG: 74, ENOTUNIQ: 76, EBADFD: 77, EREMCHG: 78, ELIBACC: 79, ELIBBAD: 80, ELIBSCN: 81, ELIBMAX: 82, ELIBEXEC: 83, ENOSYS: 38, ENOTEMPTY: 39, ENAMETOOLONG: 36, ELOOP: 40, EOPNOTSUPP: 95, EPFNOSUPPORT: 96, ECONNRESET: 104, ENOBUFS: 105, EAFNOSUPPORT: 97, EPROTOTYPE: 91, ENOTSOCK: 88, ENOPROTOOPT: 92, ESHUTDOWN: 108, ECONNREFUSED: 111, EADDRINUSE: 98, ECONNABORTED: 103, ENETUNREACH: 101, ENETDOWN: 100, ETIMEDOUT: 110, EHOSTDOWN: 112, EHOSTUNREACH: 113, EINPROGRESS: 115, EALREADY: 114, EDESTADDRREQ: 89, EMSGSIZE: 90, EPROTONOSUPPORT: 93, ESOCKTNOSUPPORT: 94, EADDRNOTAVAIL: 99, ENETRESET: 102, EISCONN: 106, ENOTCONN: 107, ETOOMANYREFS: 109, EUSERS: 87, EDQUOT: 122, ESTALE: 116, ENOTSUP: 95, ENOMEDIUM: 123, EILSEQ: 84, EOVERFLOW: 75, ECANCELED: 125, ENOTRECOVERABLE: 131, EOWNERDEAD: 130, ESTRPIPE: 86 }; function _sysconf(name) { switch (name) { case 30: return PAGE_SIZE; case 85: return totalMemory / PAGE_SIZE; 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: { if (typeof navigator === "object") return navigator["hardwareConcurrency"] || 1; return 1; } } ___setErrNo(ERRNO_CODES.EINVAL); return -1; } var _fabs = Math_abs; var PTHREAD_SPECIFIC_NEXT_KEY = 1; function _pthread_key_create(key2, destructor) { if (key2 == 0) { return ERRNO_CODES.EINVAL; } HEAP32[key2 >> 2] = PTHREAD_SPECIFIC_NEXT_KEY; PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY] = 0; PTHREAD_SPECIFIC_NEXT_KEY++; return 0; } var PATH = void 0; function _emscripten_set_main_loop_timing(mode, value) { Browser.mainLoop.timingMode = mode; Browser.mainLoop.timingValue = value; if (!Browser.mainLoop.func) { return 1; } if (mode == 0) { Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setTimeout() { setTimeout(Browser.mainLoop.runner, value); }; Browser.mainLoop.method = "timeout"; } else if (mode == 1) { Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_rAF() { Browser.requestAnimationFrame(Browser.mainLoop.runner); }; Browser.mainLoop.method = "rAF"; } else if (mode == 2) { if (!window["setImmediate"]) { let Browser_setImmediate_messageHandler2 = function(event) { if (event.source === window && event.data === emscriptenMainLoopMessageId) { event.stopPropagation(); setImmediates.shift()(); } }; var Browser_setImmediate_messageHandler = Browser_setImmediate_messageHandler2; var setImmediates = []; var emscriptenMainLoopMessageId = "__emcc"; window.addEventListener("message", Browser_setImmediate_messageHandler2, true); window["setImmediate"] = function Browser_emulated_setImmediate(func2) { setImmediates.push(func2); window.postMessage(emscriptenMainLoopMessageId, "*"); }; } Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setImmediate() { window["setImmediate"](Browser.mainLoop.runner); }; Browser.mainLoop.method = "immediate"; } return 0; } function _emscripten_set_main_loop(func2, fps, simulateInfiniteLoop, arg2, noSetTiming) { Module["noExitRuntime"] = true; assert(!Browser.mainLoop.func, "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."); Browser.mainLoop.func = func2; Browser.mainLoop.arg = arg2; var thisMainLoopId = Browser.mainLoop.currentlyRunningMainloop; Browser.mainLoop.runner = function Browser_mainLoop_runner() { if (ABORT) return; if (Browser.mainLoop.queue.length > 0) { var start = Date.now(); var blocker = Browser.mainLoop.queue.shift(); blocker.func(blocker.arg); if (Browser.mainLoop.remainingBlockers) { var remaining = Browser.mainLoop.remainingBlockers; var next = remaining % 1 == 0 ? remaining - 1 : Math.floor(remaining); if (blocker.counted) { Browser.mainLoop.remainingBlockers = next; } else { next = next + 0.5; Browser.mainLoop.remainingBlockers = (8 * remaining + next) / 9; } } console.log('main loop blocker "' + blocker.name + '" took ' + (Date.now() - start) + " ms"); Browser.mainLoop.updateStatus(); setTimeout(Browser.mainLoop.runner, 0); return; } if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; Browser.mainLoop.currentFrameNumber = Browser.mainLoop.currentFrameNumber + 1 | 0; if (Browser.mainLoop.timingMode == 1 && Browser.mainLoop.timingValue > 1 && Browser.mainLoop.currentFrameNumber % Browser.mainLoop.timingValue != 0) { Browser.mainLoop.scheduler(); return; } if (Browser.mainLoop.method === "timeout" && Module.ctx) { Module.printErr("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!"); Browser.mainLoop.method = ""; } Browser.mainLoop.runIter(function() { if (typeof arg2 !== "undefined") { Runtime.dynCall("vi", func2, [arg2]); } else { Runtime.dynCall("v", func2); } }); if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; if (typeof SDL === "object" && SDL.audio && SDL.audio.queueNewAudioData) SDL.audio.queueNewAudioData(); Browser.mainLoop.scheduler(); }; if (!noSetTiming) { if (fps && fps > 0) _emscripten_set_main_loop_timing(0, 1e3 / fps); else _emscripten_set_main_loop_timing(1, 1); Browser.mainLoop.scheduler(); } if (simulateInfiniteLoop) { throw "SimulateInfiniteLoop"; } } var Browser = { mainLoop: { scheduler: null, method: "", currentlyRunningMainloop: 0, func: null, arg: 0, timingMode: 0, timingValue: 0, currentFrameNumber: 0, queue: [], pause: function() { Browser.mainLoop.scheduler = null; Browser.mainLoop.currentlyRunningMainloop++; }, resume: function() { Browser.mainLoop.currentlyRunningMainloop++; var timingMode = Browser.mainLoop.timingMode; var timingValue = Browser.mainLoop.timingValue; var func2 = Browser.mainLoop.func; Browser.mainLoop.func = null; _emscripten_set_main_loop(func2, 0, false, Browser.mainLoop.arg, true); _emscripten_set_main_loop_timing(timingMode, timingValue); Browser.mainLoop.scheduler(); }, updateStatus: function() { if (Module["setStatus"]) { var message = Module["statusMessage"] || "Please wait..."; var remaining = Browser.mainLoop.remainingBlockers; var expected = Browser.mainLoop.expectedBlockers; if (remaining) { if (remaining < expected) { Module["setStatus"](message + " (" + (expected - remaining) + "/" + expected + ")"); } else { Module["setStatus"](message); } } else { Module["setStatus"](""); } } }, runIter: function(func2) { if (ABORT) return; if (Module["preMainLoop"]) { var preRet = Module["preMainLoop"](); if (preRet === false) { return; } } try { func2(); } catch (e) { if (e instanceof ExitStatus) { return; } else { if (e && typeof e === "object" && e.stack) Module.printErr("exception thrown: " + [e, e.stack]); throw e; } } if (Module["postMainLoop"]) Module["postMainLoop"](); } }, isFullScreen: false, pointerLock: false, moduleContextCreatedCallbacks: [], workers: [], init: function() { if (!Module["preloadPlugins"]) Module["preloadPlugins"] = []; if (Browser.initted) return; Browser.initted = true; try { new Blob(); Browser.hasBlobConstructor = true; } catch (e) { Browser.hasBlobConstructor = false; console.log("warning: no blob constructor, cannot create blobs with mimetypes"); } Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : !Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null; Browser.URLObject = typeof window != "undefined" ? window.URL ? window.URL : window.webkitURL : void 0; if (!Module.noImageDecoding && typeof Browser.URLObject === "undefined") { console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."); Module.noImageDecoding = true; } var imagePlugin = {}; imagePlugin["canHandle"] = function imagePlugin_canHandle(name) { return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name); }; imagePlugin["handle"] = function imagePlugin_handle(byteArray, name, onload, onerror) { var b = null; if (Browser.hasBlobConstructor) { try { b = new Blob([byteArray], { type: Browser.getMimetype(name) }); if (b.size !== byteArray.length) { b = new Blob([new Uint8Array(byteArray).buffer], { type: Browser.getMimetype(name) }); } } catch (e) { Runtime.warnOnce("Blob constructor present but fails: " + e + "; falling back to blob builder"); } } if (!b) { var bb = new Browser.BlobBuilder(); bb.append(new Uint8Array(byteArray).buffer); b = bb.getBlob(); } var url = Browser.URLObject.createObjectURL(b); var img = new Image(); img.onload = function img_onload() { assert(img.complete, "Image " + name + " could not be decoded"); var canvas2 = document.createElement("canvas"); canvas2.width = img.width; canvas2.height = img.height; var ctx = canvas2.getContext("2d"); ctx.drawImage(img, 0, 0); Module["preloadedImages"][name] = canvas2; Browser.URLObject.revokeObjectURL(url); if (onload) onload(byteArray); }; img.onerror = function img_onerror(event) { console.log("Image " + url + " could not be decoded"); if (onerror) onerror(); }; img.src = url; }; Module["preloadPlugins"].push(imagePlugin); var audioPlugin = {}; audioPlugin["canHandle"] = function audioPlugin_canHandle(name) { return !Module.noAudioDecoding && name.substr(-4) in { ".ogg": 1, ".wav": 1, ".mp3": 1 }; }; audioPlugin["handle"] = function audioPlugin_handle(byteArray, name, onload, onerror) { var done = false; function finish(audio2) { if (done) return; done = true; Module["preloadedAudios"][name] = audio2; if (onload) onload(byteArray); } function fail() { if (done) return; done = true; Module["preloadedAudios"][name] = new Audio(); if (onerror) onerror(); } if (Browser.hasBlobConstructor) { try { var b = new Blob([byteArray], { type: Browser.getMimetype(name) }); } catch (e) { return fail(); } var url = Browser.URLObject.createObjectURL(b); var audio = new Audio(); audio.addEventListener("canplaythrough", function() { finish(audio); }, false); audio.onerror = function audio_onerror(event) { if (done) return; console.log("warning: browser could not fully decode audio " + name + ", trying slower base64 approach"); function encode64(data) { var BASE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; var PAD = "="; var ret = ""; var leftchar = 0; var leftbits = 0; for (var i2 = 0; i2 < data.length; i2++) { leftchar = leftchar << 8 | data[i2]; leftbits += 8; while (leftbits >= 6) { var curr = leftchar >> leftbits - 6 & 63; leftbits -= 6; ret += BASE[curr]; } } if (leftbits == 2) { ret += BASE[(leftchar & 3) << 4]; ret += PAD + PAD; } else if (leftbits == 4) { ret += BASE[(leftchar & 15) << 2]; ret += PAD; } return ret; } audio.src = "data:audio/x-" + name.substr(-3) + ";base64," + encode64(byteArray); finish(audio); }; audio.src = url; Browser.safeSetTimeout(function() { finish(audio); }, 1e4); } else { return fail(); } }; Module["preloadPlugins"].push(audioPlugin); var canvas = Module["canvas"]; function pointerLockChange() { Browser.pointerLock = document["pointerLockElement"] === canvas || document["mozPointerLockElement"] === canvas || document["webkitPointerLockElement"] === canvas || document["msPointerLockElement"] === canvas; } if (canvas) { canvas.requestPointerLock = canvas["requestPointerLock"] || canvas["mozRequestPointerLock"] || canvas["webkitRequestPointerLock"] || canvas["msRequestPointerLock"] || function() { }; canvas.exitPointerLock = document["exitPointerLock"] || document["mozExitPointerLock"] || document["webkitExitPointerLock"] || document["msExitPointerLock"] || function() { }; canvas.exitPointerLock = canvas.exitPointerLock.bind(document); document.addEventListener("pointerlockchange", pointerLockChange, false); document.addEventListener("mozpointerlockchange", pointerLockChange, false); document.addEventListener("webkitpointerlockchange", pointerLockChange, false); document.addEventListener("mspointerlockchange", pointerLockChange, false); if (Module["elementPointerLock"]) { canvas.addEventListener("click", function(ev) { if (!Browser.pointerLock && canvas.requestPointerLock) { canvas.requestPointerLock(); ev.preventDefault(); } }, false); } } }, createContext: function(canvas, useWebGL, setInModule, webGLContextAttributes) { if (useWebGL && Module.ctx && canvas == Module.canvas) return Module.ctx; var ctx; var contextHandle; if (useWebGL) { var contextAttributes = { antialias: false, alpha: false }; if (webGLContextAttributes) { for (var attribute in webGLContextAttributes) { contextAttributes[attribute] = webGLContextAttributes[attribute]; } } contextHandle = GL.createContext(canvas, contextAttributes); if (contextHandle) { ctx = GL.getContext(contextHandle).GLctx; } canvas.style.backgroundColor = "black"; } else { ctx = canvas.getContext("2d"); } if (!ctx) return null; if (setInModule) { if (!useWebGL) assert(typeof GLctx === "undefined", "cannot set in module if GLctx is used, but we are a non-GL context that would replace it"); Module.ctx = ctx; if (useWebGL) GL.makeContextCurrent(contextHandle); Module.useWebGL = useWebGL; Browser.moduleContextCreatedCallbacks.forEach(function(callback) { callback(); }); Browser.init(); } return ctx; }, destroyContext: function(canvas, useWebGL, setInModule) { }, fullScreenHandlersInstalled: false, lockPointer: void 0, resizeCanvas: void 0, requestFullScreen: function(lockPointer, resizeCanvas, vrDevice) { Browser.lockPointer = lockPointer; Browser.resizeCanvas = resizeCanvas; Browser.vrDevice = vrDevice; if (typeof Browser.lockPointer === "undefined") Browser.lockPointer = true; if (typeof Browser.resizeCanvas === "undefined") Browser.resizeCanvas = false; if (typeof Browser.vrDevice === "undefined") Browser.vrDevice = null; var canvas = Module["canvas"]; function fullScreenChange() { Browser.isFullScreen = false; var canvasContainer2 = canvas.parentNode; if ((document["webkitFullScreenElement"] || document["webkitFullscreenElement"] || document["mozFullScreenElement"] || document["mozFullscreenElement"] || document["fullScreenElement"] || document["fullscreenElement"] || document["msFullScreenElement"] || document["msFullscreenElement"] || document["webkitCurrentFullScreenElement"]) === canvasContainer2) { canvas.cancelFullScreen = document["cancelFullScreen"] || document["mozCancelFullScreen"] || document["webkitCancelFullScreen"] || document["msExitFullscreen"] || document["exitFullscreen"] || function() { }; canvas.cancelFullScreen = canvas.cancelFullScreen.bind(document); if (Browser.lockPointer) canvas.requestPointerLock(); Browser.isFullScreen = true; if (Browser.resizeCanvas) Browser.setFullScreenCanvasSize(); } else { canvasContainer2.parentNode.insertBefore(canvas, canvasContainer2); canvasContainer2.parentNode.removeChild(canvasContainer2); if (Browser.resizeCanvas) Browser.setWindowedCanvasSize(); } if (Module["onFullScreen"]) Module["onFullScreen"](Browser.isFullScreen); Browser.updateCanvasDimensions(canvas); } if (!Browser.fullScreenHandlersInstalled) { Browser.fullScreenHandlersInstalled = true; document.addEventListener("fullscreenchange", fullScreenChange, false); document.addEventListener("mozfullscreenchange", fullScreenChange, false); document.addEventListener("webkitfullscreenchange", fullScreenChange, false); document.addEventListener("MSFullscreenChange", fullScreenChange, false); } var canvasContainer = document.createElement("div"); canvas.parentNode.insertBefore(canvasContainer, canvas); canvasContainer.appendChild(canvas); canvasContainer.requestFullScreen = canvasContainer["requestFullScreen"] || canvasContainer["mozRequestFullScreen"] || canvasContainer["msRequestFullscreen"] || (canvasContainer["webkitRequestFullScreen"] ? function() { canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]); } : null); if (vrDevice) { canvasContainer.requestFullScreen({ vrDisplay: vrDevice }); } else { canvasContainer.requestFullScreen(); } }, nextRAF: 0, fakeRequestAnimationFrame: function(func2) { var now = Date.now(); if (Browser.nextRAF === 0) { Browser.nextRAF = now + 1e3 / 60; } else { while (now + 2 >= Browser.nextRAF) { Browser.nextRAF += 1e3 / 60; } } var delay = Math.max(Browser.nextRAF - now, 0); setTimeout(func2, delay); }, requestAnimationFrame: function requestAnimationFrame(func2) { if (typeof window === "undefined") { Browser.fakeRequestAnimationFrame(func2); } else { if (!window.requestAnimationFrame) { window.requestAnimationFrame = window["requestAnimationFrame"] || window["mozRequestAnimationFrame"] || window["webkitRequestAnimationFrame"] || window["msRequestAnimationFrame"] || window["oRequestAnimationFrame"] || Browser.fakeRequestAnimationFrame; } window.requestAnimationFrame(func2); } }, safeCallback: function(func2) { return function() { if (!ABORT) return func2.apply(null, arguments); }; }, allowAsyncCallbacks: true, queuedAsyncCallbacks: [], pauseAsyncCallbacks: function() { Browser.allowAsyncCallbacks = false; }, resumeAsyncCallbacks: function() { Browser.allowAsyncCallbacks = true; if (Browser.queuedAsyncCallbacks.length > 0) { var callbacks = Browser.queuedAsyncCallbacks; Browser.queuedAsyncCallbacks = []; callbacks.forEach(function(func2) { func2(); }); } }, safeRequestAnimationFrame: function(func2) { return Browser.requestAnimationFrame(function() { if (ABORT) return; if (Browser.allowAsyncCallbacks) { func2(); } else { Browser.queuedAsyncCallbacks.push(func2); } }); }, safeSetTimeout: function(func2, timeout) { Module["noExitRuntime"] = true; return setTimeout(function() { if (ABORT) return; if (Browser.allowAsyncCallbacks) { func2(); } else { Browser.queuedAsyncCallbacks.push(func2); } }, timeout); }, safeSetInterval: function(func2, timeout) { Module["noExitRuntime"] = true; return setInterval(function() { if (ABORT) return; if (Browser.allowAsyncCallbacks) { func2(); } }, timeout); }, getMimetype: function(name) { return { "jpg": "image/jpeg", "jpeg": "image/jpeg", "png": "image/png", "bmp": "image/bmp", "ogg": "audio/ogg", "wav": "audio/wav", "mp3": "audio/mpeg" }[name.substr(name.lastIndexOf(".") + 1)]; }, getUserMedia: function(func2) { if (!window.getUserMedia) { window.getUserMedia = navigator["getUserMedia"] || navigator["mozGetUserMedia"]; } window.getUserMedia(func2); }, getMovementX: function(event) { return event["movementX"] || event["mozMovementX"] || event["webkitMovementX"] || 0; }, getMovementY: function(event) { return event["movementY"] || event["mozMovementY"] || event["webkitMovementY"] || 0; }, getMouseWheelDelta: function(event) { var delta = 0; switch (event.type) { case "DOMMouseScroll": delta = event.detail; break; case "mousewheel": delta = event.wheelDelta; break; case "wheel": delta = event["deltaY"]; break; default: throw "unrecognized mouse wheel event: " + event.type; } return delta; }, mouseX: 0, mouseY: 0, mouseMovementX: 0, mouseMovementY: 0, touches: {}, lastTouches: {}, calculateMouseEvent: function(event) { if (Browser.pointerLock) { if (event.type != "mousemove" && "mozMovementX" in event) { Browser.mouseMovementX = Browser.mouseMovementY = 0; } else { Browser.mouseMovementX = Browser.getMovementX(event); Browser.mouseMovementY = Browser.getMovementY(event); } if (typeof SDL != "undefined") { Browser.mouseX = SDL.mouseX + Browser.mouseMovementX; Browser.mouseY = SDL.mouseY + Browser.mouseMovementY; } else { Browser.mouseX += Browser.mouseMovementX; Browser.mouseY += Browser.mouseMovementY; } } else { var rect = Module["canvas"].getBoundingClientRect(); var cw = Module["canvas"].width; var ch = Module["canvas"].height; var scrollX = typeof window.scrollX !== "undefined" ? window.scrollX : window.pageXOffset; var scrollY = typeof window.scrollY !== "undefined" ? window.scrollY : window.pageYOffset; if (event.type === "touchstart" || event.type === "touchend" || event.type === "touchmove") { var touch = event.touch; if (touch === void 0) { return; } var adjustedX = touch.pageX - (scrollX + rect.left); var adjustedY = touch.pageY - (scrollY + rect.top); adjustedX = adjustedX * (cw / rect.width); adjustedY = adjustedY * (ch / rect.height); var coords = { x: adjustedX, y: adjustedY }; if (event.type === "touchstart") { Browser.lastTouches[touch.identifier] = coords; Browser.touches[touch.identifier] = coords; } else if (event.type === "touchend" || event.type === "touchmove") { var last = Browser.touches[touch.identifier]; if (!last) last = coords; Browser.lastTouches[touch.identifier] = last; Browser.touches[touch.identifier] = coords; } return; } var x = event.pageX - (scrollX + rect.left); var y = event.pageY - (scrollY + rect.top); x = x * (cw / rect.width); y = y * (ch / rect.height); Browser.mouseMovementX = x - Browser.mouseX; Browser.mouseMovementY = y - Browser.mouseY; Browser.mouseX = x; Browser.mouseY = y; } }, xhrLoad: function(url, onload, onerror) { var xhr = new XMLHttpRequest(); xhr.open("GET", url, true); xhr.responseType = "arraybuffer"; xhr.onload = function xhr_onload() { if (xhr.status == 200 || xhr.status == 0 && xhr.response) { onload(xhr.response); } else { onerror(); } }; xhr.onerror = onerror; xhr.send(null); }, asyncLoad: function(url, onload, onerror, noRunDep) { Browser.xhrLoad(url, function(arrayBuffer) { assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); onload(new Uint8Array(arrayBuffer)); if (!noRunDep) removeRunDependency("al " + url); }, function(event) { if (onerror) { onerror(); } else { throw 'Loading data file "' + url + '" failed.'; } }); if (!noRunDep) addRunDependency("al " + url); }, resizeListeners: [], updateResizeListeners: function() { var canvas = Module["canvas"]; Browser.resizeListeners.forEach(function(listener) { listener(canvas.width, canvas.height); }); }, setCanvasSize: function(width, height, noUpdates) { var canvas = Module["canvas"]; Browser.updateCanvasDimensions(canvas, width, height); if (!noUpdates) Browser.updateResizeListeners(); }, windowedWidth: 0, windowedHeight: 0, setFullScreenCanvasSize: function() { if (typeof SDL != "undefined") { var flags = HEAPU32[SDL.screen + Runtime.QUANTUM_SIZE * 0 >> 2]; flags = flags | 8388608; HEAP32[SDL.screen + Runtime.QUANTUM_SIZE * 0 >> 2] = flags; } Browser.updateResizeListeners(); }, setWindowedCanvasSize: function() { if (typeof SDL != "undefined") { var flags = HEAPU32[SDL.screen + Runtime.QUANTUM_SIZE * 0 >> 2]; flags = flags & ~8388608; HEAP32[SDL.screen + Runtime.QUANTUM_SIZE * 0 >> 2] = flags; } Browser.updateResizeListeners(); }, updateCanvasDimensions: function(canvas, wNative, hNative) { if (wNative && hNative) { canvas.widthNative = wNative; canvas.heightNative = hNative; } else { wNative = canvas.widthNative; hNative = canvas.heightNative; } var w = wNative; var h = hNative; if (Module["forcedAspectRatio"] && Module["forcedAspectRatio"] > 0) { if (w / h < Module["forcedAspectRatio"]) { w = Math.round(h * Module["forcedAspectRatio"]); } else { h = Math.round(w / Module["forcedAspectRatio"]); } } if ((document["webkitFullScreenElement"] || document["webkitFullscreenElement"] || document["mozFullScreenElement"] || document["mozFullscreenElement"] || document["fullScreenElement"] || document["fullscreenElement"] || document["msFullScreenElement"] || document["msFullscreenElement"] || document["webkitCurrentFullScreenElement"]) === canvas.parentNode && typeof screen != "undefined") { var factor = Math.min(screen.width / w, screen.height / h); w = Math.round(w * factor); h = Math.round(h * factor); } if (Browser.resizeCanvas) { if (canvas.width != w) canvas.width = w; if (canvas.height != h) canvas.height = h; if (typeof canvas.style != "undefined") { canvas.style.removeProperty("width"); canvas.style.removeProperty("height"); } } else { if (canvas.width != wNative) canvas.width = wNative; if (canvas.height != hNative) canvas.height = hNative; if (typeof canvas.style != "undefined") { if (w != wNative || h != hNative) { canvas.style.setProperty("width", w + "px", "important"); canvas.style.setProperty("height", h + "px", "important"); } else { canvas.style.removeProperty("width"); canvas.style.removeProperty("height"); } } } }, wgetRequests: {}, nextWgetRequestHandle: 0, getNextWgetRequestHandle: function() { var handle = Browser.nextWgetRequestHandle; Browser.nextWgetRequestHandle++; return handle; } }; function _pthread_setspecific(key2, value) { if (!(key2 in PTHREAD_SPECIFIC)) { return ERRNO_CODES.EINVAL; } PTHREAD_SPECIFIC[key2] = value; return 0; } function _malloc(bytes) { var ptr = Runtime.dynamicAlloc(bytes + 8); return ptr + 8 & 4294967288; } Module["_malloc"] = _malloc; function ___cxa_allocate_exception(size) { return _malloc(size); } var SYSCALLS = { varargs: 0, get: function(varargs) { SYSCALLS.varargs += 4; var ret = HEAP32[SYSCALLS.varargs - 4 >> 2]; return ret; }, getStr: function() { var ret = Pointer_stringify(SYSCALLS.get()); return ret; }, get64: function() { var low = SYSCALLS.get(), high = SYSCALLS.get(); if (low >= 0) assert(high === 0); else assert(high === -1); return low; }, getZero: function() { assert(SYSCALLS.get() === 0); } }; function ___syscall54(which, varargs) { SYSCALLS.varargs = varargs; try { return 0; } catch (e) { if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); return -e.errno; } } Module["_i64Add"] = _i64Add; Module["_bitshift64Lshr"] = _bitshift64Lshr; function ___cxa_pure_virtual() { ABORT = true; throw "Pure virtual function called!"; } var _BDtoIHigh = true; function _pthread_cleanup_push(routine, arg2) { __ATEXIT__.push(function() { Runtime.dynCall("vi", routine, [arg2]); }); _pthread_cleanup_push.level = __ATEXIT__.length; } function _pthread_cond_broadcast() { return 0; } function ___cxa_guard_acquire(variable) { if (!HEAP8[variable >> 0]) { HEAP8[variable >> 0] = 1; return 1; } return 0; } function _pthread_cleanup_pop() { assert(_pthread_cleanup_push.level == __ATEXIT__.length, "cannot pop if something else added meanwhile!"); __ATEXIT__.pop(); _pthread_cleanup_push.level = __ATEXIT__.length; } function ___cxa_guard_release() { } function ___cxa_begin_catch(ptr) { __ZSt18uncaught_exceptionv.uncaught_exception--; EXCEPTIONS.caught.push(ptr); EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr)); return ptr; } function _llvm_eh_typeid_for(type2) { return type2; } function _emscripten_memcpy_big(dest, src, num) { HEAPU8.set(HEAPU8.subarray(src, src + num), dest); return dest; } Module["_memcpy"] = _memcpy; function ___syscall6(which, varargs) { SYSCALLS.varargs = varargs; try { var stream = SYSCALLS.getStreamFromFD(); FS.close(stream); return 0; } catch (e) { if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); return -e.errno; } } function _pthread_mutex_lock() { } var _emscripten_postinvoke = true; function _sbrk(bytes) { var self2 = _sbrk; if (!self2.called) { DYNAMICTOP = alignMemoryPage(DYNAMICTOP); self2.called = true; assert(Runtime.dynamicAlloc); self2.alloc = Runtime.dynamicAlloc; Runtime.dynamicAlloc = function() { abort("cannot dynamically allocate, sbrk now has control"); }; } var ret = DYNAMICTOP; if (bytes != 0) { var success = self2.alloc(bytes); if (!success) return -1 >>> 0; } return ret; } Module["_bitshift64Shl"] = _bitshift64Shl; function ___cxa_guard_abort() { } Module["_memmove"] = _memmove; var _emscripten_preinvoke = true; var _BItoD = true; function _pthread_cond_wait() { return 0; } function ___cxa_rethrow() { ___cxa_end_catch.rethrown = true; var ptr = EXCEPTIONS.caught.pop(); EXCEPTIONS.last = ptr; throw ptr; } function _pthread_mutex_unlock() { } function _time(ptr) { var ret = Date.now() / 1e3 | 0; if (ptr) { HEAP32[ptr >> 2] = ret; } return ret; } function _pthread_self() { return 0; } function ___syscall140(which, varargs) { SYSCALLS.varargs = varargs; try { var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get(); var offset = offset_low; assert(offset_high === 0); FS.llseek(stream, offset, whence); HEAP32[result >> 2] = stream.position; if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; return 0; } catch (e) { if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); return -e.errno; } } function ___syscall146(which, varargs) { SYSCALLS.varargs = varargs; try { var stream = SYSCALLS.get(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); var ret = 0; if (!___syscall146.buffer) ___syscall146.buffer = []; var buffer2 = ___syscall146.buffer; for (var i2 = 0; i2 < iovcnt; i2++) { var ptr = HEAP32[iov + i2 * 8 >> 2]; var len = HEAP32[iov + (i2 * 8 + 4) >> 2]; for (var j = 0; j < len; j++) { var curr = HEAPU8[ptr + j]; if (curr === 0 || curr === 10) { Module["print"](UTF8ArrayToString(buffer2, 0)); buffer2.length = 0; } else { buffer2.push(curr); } } ret += len; } return ret; } catch (e) { if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); return -e.errno; } } function ___syscall145(which, varargs) { SYSCALLS.varargs = varargs; try { var stream = SYSCALLS.getStreamFromFD(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); return SYSCALLS.doReadv(stream, iov, iovcnt); } catch (e) { if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); return -e.errno; } } var ___dso_handle = allocate(1, "i32*", ALLOC_STATIC); Module["requestFullScreen"] = function Module_requestFullScreen(lockPointer, resizeCanvas, vrDevice) { Browser.requestFullScreen(lockPointer, resizeCanvas, vrDevice); }; Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func2) { Browser.requestAnimationFrame(func2); }; Module["setCanvasSize"] = function Module_setCanvasSize(width, height, noUpdates) { Browser.setCanvasSize(width, height, noUpdates); }; Module["pauseMainLoop"] = function Module_pauseMainLoop() { Browser.mainLoop.pause(); }; Module["resumeMainLoop"] = function Module_resumeMainLoop() { Browser.mainLoop.resume(); }; Module["getUserMedia"] = function Module_getUserMedia() { Browser.getUserMedia(); }; Module["createContext"] = function Module_createContext(canvas, useWebGL, setInModule, webGLContextAttributes) { return Browser.createContext(canvas, useWebGL, setInModule, webGLContextAttributes); }; STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP); staticSealed = true; STACK_MAX = STACK_BASE + TOTAL_STACK; DYNAMIC_BASE = DYNAMICTOP = Runtime.alignMemory(STACK_MAX); assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack"); var cttz_i8 = allocate([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", ALLOC_DYNAMIC); function invoke_iiiiiiii(index, a1, a2, a3, a4, a5, a6, a7) { try { return Module["dynCall_iiiiiiii"](index, a1, a2, a3, a4, a5, a6, a7); } catch (e) { if (typeof e !== "number" && e !== "longjmp") throw e; asm["setThrew"](1, 0); } } function invoke_viiiii(index, a1, a2, a3, a4, a5) { try { Module["dynCall_viiiii"](index, a1, a2, a3, a4, a5); } catch (e) { if (typeof e !== "number" && e !== "longjmp") throw e; asm["setThrew"](1, 0); } } function invoke_iiiiiid(index, a1, a2, a3, a4, a5, a6) { try { return Module["dynCall_iiiiiid"](index, a1, a2, a3, a4, a5, a6); } catch (e) { if (typeof e !== "number" && e !== "longjmp") throw e; asm["setThrew"](1, 0); } } function invoke_vi(index, a1) { try { Module["dynCall_vi"](index, a1); } catch (e) { if (typeof e !== "number" && e !== "longjmp") throw e; asm["setThrew"](1, 0); } } function invoke_vii(index, a1, a2) { try { Module["dynCall_vii"](index, a1, a2); } catch (e) { if (typeof e !== "number" && e !== "longjmp") throw e; asm["setThrew"](1, 0); } } function invoke_iiiiiii(index, a1, a2, a3, a4, a5, a6) { try { return Module["dynCall_iiiiiii"](index, a1, a2, a3, a4, a5, a6); } catch (e) { if (typeof e !== "number" && e !== "longjmp") throw e; asm["setThrew"](1, 0); } } function invoke_ii(index, a1) { try { return Module["dynCall_ii"](index, a1); } catch (e) { if (typeof e !== "number" && e !== "longjmp") throw e; asm["setThrew"](1, 0); } } function invoke_iiiiiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) { try { return Module["dynCall_iiiiiiiiiiii"](index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); } catch (e) { if (typeof e !== "number" && e !== "longjmp") throw e; asm["setThrew"](1, 0); } } function invoke_iiii(index, a1, a2, a3) { try { return Module["dynCall_iiii"](index, a1, a2, a3); } catch (e) { if (typeof e !== "number" && e !== "longjmp") throw e; asm["setThrew"](1, 0); } } function invoke_viiiiiiiiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) { try { Module["dynCall_viiiiiiiiiiiiiii"](index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); } catch (e) { if (typeof e !== "number" && e !== "longjmp") throw e; asm["setThrew"](1, 0); } } function invoke_viiiiii(index, a1, a2, a3, a4, a5, a6) { try { Module["dynCall_viiiiii"](index, a1, a2, a3, a4, a5, a6); } catch (e) { if (typeof e !== "number" && e !== "longjmp") throw e; asm["setThrew"](1, 0); } } function invoke_viiiiiii(index, a1, a2, a3, a4, a5, a6, a7) { try { Module["dynCall_viiiiiii"](index, a1, a2, a3, a4, a5, a6, a7); } catch (e) { if (typeof e !== "number" && e !== "longjmp") throw e; asm["setThrew"](1, 0); } } function invoke_viiiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) { try { Module["dynCall_viiiiiiiiii"](index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10); } catch (e) { if (typeof e !== "number" && e !== "longjmp") throw e; asm["setThrew"](1, 0); } } function invoke_iii(index, a1, a2) { try { return Module["dynCall_iii"](index, a1, a2); } catch (e) { if (typeof e !== "number" && e !== "longjmp") throw e; asm["setThrew"](1, 0); } } function invoke_iiiiii(index, a1, a2, a3, a4, a5) { try { return Module["dynCall_iiiiii"](index, a1, a2, a3, a4, a5); } catch (e) { if (typeof e !== "number" && e !== "longjmp") throw e; asm["setThrew"](1, 0); } } function invoke_diii(index, a1, a2, a3) { try { return Module["dynCall_diii"](index, a1, a2, a3); } catch (e) { if (typeof e !== "number" && e !== "longjmp") throw e; asm["setThrew"](1, 0); } } function invoke_i(index) { try { return Module["dynCall_i"](index); } catch (e) { if (typeof e !== "number" && e !== "longjmp") throw e; asm["setThrew"](1, 0); } } function invoke_iiiii(index, a1, a2, a3, a4) { try { return Module["dynCall_iiiii"](index, a1, a2, a3, a4); } catch (e) { if (typeof e !== "number" && e !== "longjmp") throw e; asm["setThrew"](1, 0); } } function invoke_viii(index, a1, a2, a3) { try { Module["dynCall_viii"](index, a1, a2, a3); } catch (e) { if (typeof e !== "number" && e !== "longjmp") throw e; asm["setThrew"](1, 0); } } function invoke_v(index) { try { Module["dynCall_v"](index); } catch (e) { if (typeof e !== "number" && e !== "longjmp") throw e; asm["setThrew"](1, 0); } } function invoke_iiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8) { try { return Module["dynCall_iiiiiiiii"](index, a1, a2, a3, a4, a5, a6, a7, a8); } catch (e) { if (typeof e !== "number" && e !== "longjmp") throw e; asm["setThrew"](1, 0); } } function invoke_iiiiid(index, a1, a2, a3, a4, a5) { try { return Module["dynCall_iiiiid"](index, a1, a2, a3, a4, a5); } catch (e) { if (typeof e !== "number" && e !== "longjmp") throw e; asm["setThrew"](1, 0); } } function invoke_viiii(index, a1, a2, a3, a4) { try { Module["dynCall_viiii"](index, a1, a2, a3, a4); } catch (e) { if (typeof e !== "number" && e !== "longjmp") throw e; asm["setThrew"](1, 0); } } Module.asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "NaN": NaN, "Infinity": Infinity, "byteLength": byteLength }; Module.asmLibraryArg = { "abort": abort, "assert": assert, "invoke_iiiiiiii": invoke_iiiiiiii, "invoke_viiiii": invoke_viiiii, "invoke_iiiiiid": invoke_iiiiiid, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_iiiiiii": invoke_iiiiiii, "invoke_ii": invoke_ii, "invoke_iiiiiiiiiiii": invoke_iiiiiiiiiiii, "invoke_iiii": invoke_iiii, "invoke_viiiiiiiiiiiiiii": invoke_viiiiiiiiiiiiiii, "invoke_viiiiii": invoke_viiiiii, "invoke_viiiiiii": invoke_viiiiiii, "invoke_viiiiiiiiii": invoke_viiiiiiiiii, "invoke_iii": invoke_iii, "invoke_iiiiii": invoke_iiiiii, "invoke_diii": invoke_diii, "invoke_i": invoke_i, "invoke_iiiii": invoke_iiiii, "invoke_viii": invoke_viii, "invoke_v": invoke_v, "invoke_iiiiiiiii": invoke_iiiiiiiii, "invoke_iiiiid": invoke_iiiiid, "invoke_viiii": invoke_viiii, "_fabs": _fabs, "_strftime": _strftime, "_pthread_cond_wait": _pthread_cond_wait, "___lock": ___lock, "_pthread_key_create": _pthread_key_create, "_abort": _abort, "___cxa_guard_acquire": ___cxa_guard_acquire, "___setErrNo": ___setErrNo, "___gxx_personality_v0": ___gxx_personality_v0, "___assert_fail": ___assert_fail, "___cxa_free_exception": ___cxa_free_exception, "___cxa_allocate_exception": ___cxa_allocate_exception, "___cxa_find_matching_catch": ___cxa_find_matching_catch, "__isLeapYear": __isLeapYear, "___cxa_guard_release": ___cxa_guard_release, "__addDays": __addDays, "_strftime_l": _strftime_l, "_emscripten_set_main_loop_timing": _emscripten_set_main_loop_timing, "_llvm_eh_typeid_for": _llvm_eh_typeid_for, "_sbrk": _sbrk, "___cxa_begin_catch": ___cxa_begin_catch, "_emscripten_memcpy_big": _emscripten_memcpy_big, "___cxa_end_catch": ___cxa_end_catch, "___resumeException": ___resumeException, "__ZSt18uncaught_exceptionv": __ZSt18uncaught_exceptionv, "_sysconf": _sysconf, "_pthread_getspecific": _pthread_getspecific, "__arraySum": __arraySum, "_pthread_self": _pthread_self, "_pthread_mutex_unlock": _pthread_mutex_unlock, "_pthread_once": _pthread_once, "___syscall54": ___syscall54, "___unlock": ___unlock, "_pthread_cleanup_pop": _pthread_cleanup_pop, "_pthread_cond_broadcast": _pthread_cond_broadcast, "_emscripten_set_main_loop": _emscripten_set_main_loop, "_pthread_setspecific": _pthread_setspecific, "___cxa_atexit": ___cxa_atexit, "___cxa_throw": ___cxa_throw, "___cxa_rethrow": ___cxa_rethrow, "___syscall6": ___syscall6, "_pthread_cleanup_push": _pthread_cleanup_push, "___cxa_pure_virtual": ___cxa_pure_virtual, "_time": _time, "_pthread_mutex_lock": _pthread_mutex_lock, "___cxa_guard_abort": ___cxa_guard_abort, "_atexit": _atexit, "___syscall140": ___syscall140, "___syscall145": ___syscall145, "___syscall146": ___syscall146, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "cttz_i8": cttz_i8, "___dso_handle": ___dso_handle }; var asm = function(global, env, buffer2) { ; var a = global.Int8Array; var b = global.Int16Array; var c = global.Int32Array; var d = global.Uint8Array; var e = global.Uint16Array; var f = global.Uint32Array; var g = global.Float32Array; var h = global.Float64Array; var i2 = new a(buffer2); var j = new b(buffer2); var k = new c(buffer2); var l = new d(buffer2); var m = new e(buffer2); var n = new f(buffer2); var o = new g(buffer2); var p = new h(buffer2); var q = global.byteLength; var r = env.STACKTOP | 0; var s = env.STACK_MAX | 0; var t = env.tempDoublePtr | 0; var u = env.ABORT | 0; var v = env.cttz_i8 | 0; var w = env.___dso_handle | 0; var x = 0; var y = 0; var z = 0; var A = 0; var B = global.NaN, C = global.Infinity; var D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0; var M = 0; var N = 0; var O = 0; var P = 0; var Q = 0; var R = 0; var S = 0; var T = 0; var U = 0; var V = 0; var W = global.Math.floor; var X = global.Math.abs; var Y = global.Math.sqrt; var Z = global.Math.pow; var _ = global.Math.cos; var $ = global.Math.sin; var aa = global.Math.tan; var ba = global.Math.acos; var ca = global.Math.asin; var da = global.Math.atan; var ea = global.Math.atan2; var fa = global.Math.exp; var ga = global.Math.log; var ha = global.Math.ceil; var ia = global.Math.imul; var ja = global.Math.min; var ka = global.Math.clz32; var la = env.abort; var ma = env.assert; var na = env.invoke_iiiiiiii; var oa = env.invoke_viiiii; var pa = env.invoke_iiiiiid; var qa = env.invoke_vi; var ra = env.invoke_vii; var sa = env.invoke_iiiiiii; var ta = env.invoke_ii; var ua = env.invoke_iiiiiiiiiiii; var va = env.invoke_iiii; var wa = env.invoke_viiiiiiiiiiiiiii; var xa = env.invoke_viiiiii; var ya = env.invoke_viiiiiii; var za = env.invoke_viiiiiiiiii; var Aa = env.invoke_iii; var Ba = env.invoke_iiiiii; var Ca = env.invoke_diii; var Da = env.invoke_i; var Ea = env.invoke_iiiii; var Fa = env.invoke_viii; var Ga = env.invoke_v; var Ha = env.invoke_iiiiiiiii; var Ia = env.invoke_iiiiid; var Ja = env.invoke_viiii; var Ka = env._fabs; var La = env._strftime; var Ma = env._pthread_cond_wait; var Na = env.___lock; var Oa = env._pthread_key_create; var Pa = env._abort; var Qa = env.___cxa_guard_acquire; var Ra = env.___setErrNo; var Sa = env.___gxx_personality_v0; var Ta = env.___assert_fail; var Ua = env.___cxa_free_exception; var Va = env.___cxa_allocate_exception; var Wa = env.___cxa_find_matching_catch; var Xa = env.__isLeapYear; var Ya = env.___cxa_guard_release; var Za = env.__addDays; var _a = env._strftime_l; var $a = env._emscripten_set_main_loop_timing; var ab = env._llvm_eh_typeid_for; var bb = env._sbrk; var cb = env.___cxa_begin_catch; var db = env._emscripten_memcpy_big; var eb = env.___cxa_end_catch; var fb = env.___resumeException; var gb = env.__ZSt18uncaught_exceptionv; var hb = env._sysconf; var ib = env._pthread_getspecific; var jb = env.__arraySum; var kb = env._pthread_self; var lb = env._pthread_mutex_unlock; var mb = env._pthread_once; var nb = env.___syscall54; var ob = env.___unlock; var pb = env._pthread_cleanup_pop; var qb = env._pthread_cond_broadcast; var rb = env._emscripten_set_main_loop; var sb = env._pthread_setspecific; var tb = env.___cxa_atexit; var ub = env.___cxa_throw; var vb = env.___cxa_rethrow; var wb = env.___syscall6; var xb = env._pthread_cleanup_push; var yb = env.___cxa_pure_virtual; var zb = env._time; var Ab = env._pthread_mutex_lock; var Bb = env.___cxa_guard_abort; var Cb = env._atexit; var Db = env.___syscall140; var Eb = env.___syscall145; var Fb = env.___syscall146; var Gb = 0; function Hb(newBuffer) { if (q(newBuffer) & 16777215 || q(newBuffer) <= 16777215 || q(newBuffer) > 2147483648) return false; i2 = new a(newBuffer); j = new b(newBuffer); k = new c(newBuffer); l = new d(newBuffer); m = new e(newBuffer); n = new f(newBuffer); o = new g(newBuffer); p = new h(newBuffer); buffer2 = newBuffer; return true; } function dc(a2) { a2 = a2 | 0; var b2 = 0; b2 = r; r = r + a2 | 0; r = r + 15 & -16; return b2 | 0; } function ec() { return r | 0; } function fc(a2) { a2 = a2 | 0; r = a2; } function gc(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; r = a2; s = b2; } function hc(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; if (!x) { x = a2; y = b2; } } function ic(a2) { a2 = a2 | 0; i2[t >> 0] = i2[a2 >> 0]; i2[t + 1 >> 0] = i2[a2 + 1 >> 0]; i2[t + 2 >> 0] = i2[a2 + 2 >> 0]; i2[t + 3 >> 0] = i2[a2 + 3 >> 0]; } function jc(a2) { a2 = a2 | 0; i2[t >> 0] = i2[a2 >> 0]; i2[t + 1 >> 0] = i2[a2 + 1 >> 0]; i2[t + 2 >> 0] = i2[a2 + 2 >> 0]; i2[t + 3 >> 0] = i2[a2 + 3 >> 0]; i2[t + 4 >> 0] = i2[a2 + 4 >> 0]; i2[t + 5 >> 0] = i2[a2 + 5 >> 0]; i2[t + 6 >> 0] = i2[a2 + 6 >> 0]; i2[t + 7 >> 0] = i2[a2 + 7 >> 0]; } function kc(a2) { a2 = a2 | 0; M = a2; } function lc() { return M | 0; } function mc(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0; v2 = r; r = r + 128 | 0; n2 = v2 + 44 | 0; q2 = v2 + 8 | 0; j2 = v2 + 4 | 0; m2 = v2; o2 = c2 + 4 | 0; p2 = c2 + 8 | 0; x = 0; Ja(35, k[c2 >> 2] | 0, k[o2 >> 2] | 0, k[p2 >> 2] | 0, d2 | 0); l2 = x; x = 0; if (!(l2 & 1)) { g2 = n2; f2 = g2 + 84 | 0; do { k[g2 >> 2] = k[d2 >> 2]; g2 = g2 + 4 | 0; d2 = d2 + 4 | 0; } while ((g2 | 0) < (f2 | 0)); d2 = n2 + 12 | 0; if ((k[d2 >> 2] | 0) == 0 ? (h2 = ia(((k[n2 + 8 >> 2] | 0) + 7 | 0) / 8 | 0, k[n2 >> 2] | 0) | 0, k[d2 >> 2] = h2, (k[n2 + 24 >> 2] | 0) != 0) : 0) { l2 = ia(k[n2 + 16 >> 2] | 0, h2) | 0; k[d2 >> 2] = l2; } x = 0; qa(176, q2 | 0); l2 = x; x = 0; if (!(l2 & 1)) { d2 = n2 + 56 | 0; do if (k[d2 >> 2] | 0) { x = 0; d2 = ta(66, d2 | 0) | 0; l2 = x; x = 0; if (!(l2 & 1)) { k[j2 >> 2] = d2; f2 = q2 + 28 | 0; g2 = k[f2 >> 2] | 0; if (g2 >>> 0 < (k[q2 + 32 >> 2] | 0) >>> 0) { k[g2 >> 2] = d2; k[f2 >> 2] = g2 + 4; k[j2 >> 2] = 0; s2 = 19; break; } x = 0; ra(57, q2 + 24 | 0, j2 | 0); l2 = x; x = 0; if (l2 & 1) { f2 = Wa(824, 0) | 0; d2 = M; g2 = k[j2 >> 2] | 0; k[j2 >> 2] = 0; if (!g2) break; Lb[k[(k[g2 >> 2] | 0) + 4 >> 2] & 255](g2); break; } else { d2 = k[j2 >> 2] | 0; k[j2 >> 2] = 0; if (!d2) { s2 = 19; break; } Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); s2 = 19; break; } } else s2 = 15; } else s2 = 19; while (0); a: do if ((s2 | 0) == 19) { g2 = n2 + 4 | 0; h2 = n2 + 8 | 0; j2 = n2 + 16 | 0; x = 0; d2 = Ea(14, k[n2 >> 2] | 0, k[g2 >> 2] | 0, k[h2 >> 2] | 0, k[j2 >> 2] | 0) | 0; l2 = x; x = 0; if (!(l2 & 1)) { k[m2 >> 2] = d2; l2 = q2 + 28 | 0; f2 = k[l2 >> 2] | 0; do if (f2 >>> 0 >= (k[q2 + 32 >> 2] | 0) >>> 0) { x = 0; ra(57, q2 + 24 | 0, m2 | 0); f2 = x; x = 0; if (f2 & 1) { f2 = Wa(824, 0) | 0; d2 = M; g2 = k[m2 >> 2] | 0; k[m2 >> 2] = 0; if (!g2) break a; Lb[k[(k[g2 >> 2] | 0) + 4 >> 2] & 255](g2); break a; } else { d2 = k[m2 >> 2] | 0; k[m2 >> 2] = 0; if (!d2) break; Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); break; } } else { k[f2 >> 2] = d2; k[l2 >> 2] = f2 + 4; k[m2 >> 2] = 0; } while (0); d2 = k[n2 + 28 >> 2] | 0; if ((d2 | 0) != 0 ? (x = 0, ra(58, q2 | 0, d2 | 0), s2 = x, x = 0, s2 & 1) : 0) { s2 = 15; break; } b: do if (!(k[n2 + 24 >> 2] | 0)) { d2 = ia(k[g2 >> 2] | 0, k[n2 >> 2] | 0) | 0; d2 = ia(d2, ((k[h2 >> 2] | 0) + 7 | 0) / 8 | 0) | 0; if ((k[j2 >> 2] | 0) > 0) { g2 = 0; while (1) { x = 0; Fa(4, q2 | 0, c2 | 0, n2 | 0); s2 = x; x = 0; if (s2 & 1) break; f2 = k[o2 >> 2] | 0; if (f2) { k[o2 >> 2] = f2 + d2; k[p2 >> 2] = (k[p2 >> 2] | 0) - d2; } g2 = g2 + 1 | 0; if ((g2 | 0) >= (k[j2 >> 2] | 0)) break b; } f2 = Wa(824, 0) | 0; d2 = M; s2 = 16; break a; } } else { x = 0; Fa(4, q2 | 0, c2 | 0, n2 | 0); s2 = x; x = 0; if (s2 & 1) { s2 = 15; break a; } } while (0); x = 0; Aa(33, q2 | 0, a2 | 0) | 0; s2 = x; x = 0; if (!(s2 & 1)) { k[b2 >> 2] = k[q2 + 16 >> 2]; if (e2) i2[e2 >> 0] = 0; g2 = q2 + 24 | 0; d2 = k[g2 >> 2] | 0; if (d2) { f2 = k[l2 >> 2] | 0; if ((f2 | 0) != (d2 | 0)) { do { e2 = f2 + -4 | 0; k[l2 >> 2] = e2; f2 = k[e2 >> 2] | 0; k[e2 >> 2] = 0; if (f2) Lb[k[(k[f2 >> 2] | 0) + 4 >> 2] & 255](f2); f2 = k[l2 >> 2] | 0; } while ((f2 | 0) != (d2 | 0)); d2 = k[g2 >> 2] | 0; } mj(d2); } e2 = 0; r = v2; return e2 | 0; } else s2 = 15; } else s2 = 15; } while (0); if ((s2 | 0) == 15) { f2 = Wa(824, 0) | 0; d2 = M; s2 = 16; } l2 = q2 + 24 | 0; g2 = k[l2 >> 2] | 0; if (g2) { j2 = q2 + 28 | 0; h2 = k[j2 >> 2] | 0; if ((h2 | 0) != (g2 | 0)) { do { q2 = h2 + -4 | 0; k[j2 >> 2] = q2; h2 = k[q2 >> 2] | 0; k[q2 >> 2] = 0; if (h2) Lb[k[(k[h2 >> 2] | 0) + 4 >> 2] & 255](h2); h2 = k[j2 >> 2] | 0; } while ((h2 | 0) != (g2 | 0)); g2 = k[l2 >> 2] | 0; } mj(g2); } } else s2 = 5; } else s2 = 5; if ((s2 | 0) == 5) { f2 = Wa(824, 0) | 0; d2 = M; } q2 = (d2 | 0) == (ab(824) | 0); h2 = cb(f2 | 0) | 0; d2 = (e2 | 0) == 0; if (!q2) { if (!d2) i2[e2 >> 0] = 0; eb(); e2 = 14; r = v2; return e2 | 0; } g2 = h2 + 12 | 0; do if (!d2) { d2 = k[g2 >> 2] | 0; x = 0; f2 = Da(1) | 0; q2 = x; x = 0; if (!(q2 & 1)) if ((d2 | 0) == (f2 | 0)) { wl(e2, Ob[k[(k[h2 >> 2] | 0) + 8 >> 2] & 127](h2) | 0) | 0; s2 = 60; break; } else { i2[e2 >> 0] = 0; s2 = 60; break; } } else s2 = 60; while (0); if ((s2 | 0) == 60 ? (t2 = k[g2 >> 2] | 0, x = 0, u2 = Da(1) | 0, e2 = x, x = 0, !(e2 & 1)) : 0) { e2 = (t2 | 0) == (u2 | 0) ? k[h2 + 8 >> 2] | 0 : 13; eb(); r = v2; return e2 | 0; } d2 = Wa() | 0; x = 0; Ga(3); v2 = x; x = 0; if (v2 & 1) { v2 = Wa(0) | 0; oc(v2); } else fb(d2 | 0); return 0; } function nc(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0; j2 = r; r = r + 112 | 0; f2 = j2 + 96 | 0; i3 = j2 + 84 | 0; l2 = j2 + 72 | 0; m2 = j2 + 60 | 0; n2 = j2 + 48 | 0; o2 = j2 + 36 | 0; p2 = j2 + 24 | 0; q2 = j2 + 12 | 0; s2 = j2; h2 = (b2 | 0) == 0; if ((a2 | 0) == 0 & h2) { e2 = Va(16) | 0; x = 0; Fa(5, f2 | 0, 48504, 52); s2 = x; x = 0; if (!(s2 & 1)) { x = 0; b2 = Da(1) | 0; s2 = x; x = 0; if (!(s2 & 1) ? (x = 0, Ja(36, e2 | 0, 1, b2 | 0, f2 | 0), s2 = x, x = 0, !(s2 & 1)) : 0) { x = 0; Fa(6, e2 | 0, 824, 96); x = 0; a2 = 0; } else a2 = 1; b2 = Wa() | 0; Sm(f2); if (!a2) { s2 = b2; fb(s2 | 0); } } else b2 = Wa() | 0; Ua(e2 | 0); s2 = b2; fb(s2 | 0); } g2 = k[d2 >> 2] | 0; if ((g2 + -1 | 0) >>> 0 > 65534) { e2 = Va(16) | 0; x = 0; Fa(5, i3 | 0, 48557, 41); s2 = x; x = 0; if (!(s2 & 1)) { x = 0; b2 = Da(1) | 0; s2 = x; x = 0; if (!(s2 & 1) ? (x = 0, Ja(36, e2 | 0, 1, b2 | 0, i3 | 0), s2 = x, x = 0, !(s2 & 1)) : 0) { x = 0; Fa(6, e2 | 0, 824, 96); x = 0; a2 = 0; } else a2 = 1; b2 = Wa() | 0; Sm(i3); if (!a2) { s2 = b2; fb(s2 | 0); } } else b2 = Wa() | 0; Ua(e2 | 0); s2 = b2; fb(s2 | 0); } f2 = k[d2 + 4 >> 2] | 0; if ((f2 + -1 | 0) >>> 0 > 65534) { e2 = Va(16) | 0; x = 0; Fa(5, l2 | 0, 48599, 42); s2 = x; x = 0; if (!(s2 & 1)) { x = 0; b2 = Da(1) | 0; s2 = x; x = 0; if (!(s2 & 1) ? (x = 0, Ja(36, e2 | 0, 1, b2 | 0, l2 | 0), s2 = x, x = 0, !(s2 & 1)) : 0) { x = 0; Fa(6, e2 | 0, 824, 96); x = 0; a2 = 0; } else a2 = 1; b2 = Wa() | 0; Sm(l2); if (!a2) { s2 = b2; fb(s2 | 0); } } else b2 = Wa() | 0; Ua(e2 | 0); s2 = b2; fb(s2 | 0); } e2 = k[d2 + 8 >> 2] | 0; if ((e2 + -2 | 0) >>> 0 > 14) { e2 = Va(16) | 0; x = 0; Fa(5, m2 | 0, 48642, 46); s2 = x; x = 0; if (!(s2 & 1)) { x = 0; b2 = Da(1) | 0; s2 = x; x = 0; if (!(s2 & 1) ? (x = 0, Ja(36, e2 | 0, 1, b2 | 0, m2 | 0), s2 = x, x = 0, !(s2 & 1)) : 0) { x = 0; Fa(6, e2 | 0, 824, 96); x = 0; a2 = 0; } else a2 = 1; b2 = Wa() | 0; Sm(m2); if (!a2) { s2 = b2; fb(s2 | 0); } } else b2 = Wa() | 0; Ua(e2 | 0); s2 = b2; fb(s2 | 0); } a2 = k[d2 + 24 >> 2] | 0; if (a2 >>> 0 >= 3) { e2 = Va(16) | 0; x = 0; Fa(5, n2 | 0, 48689, 65); s2 = x; x = 0; if (!(s2 & 1)) { x = 0; b2 = Da(1) | 0; s2 = x; x = 0; if (!(s2 & 1) ? (x = 0, Ja(36, e2 | 0, 1, b2 | 0, n2 | 0), s2 = x, x = 0, !(s2 & 1)) : 0) { x = 0; Fa(6, e2 | 0, 824, 96); x = 0; a2 = 0; } else a2 = 1; b2 = Wa() | 0; Sm(n2); if (!a2) { s2 = b2; fb(s2 | 0); } } else b2 = Wa() | 0; Ua(e2 | 0); s2 = b2; fb(s2 | 0); } b2 = k[d2 + 16 >> 2] | 0; if ((b2 + -1 | 0) >>> 0 > 254) { e2 = Va(16) | 0; x = 0; Fa(5, o2 | 0, 48755, 44); s2 = x; x = 0; if (!(s2 & 1)) { x = 0; b2 = Da(1) | 0; s2 = x; x = 0; if (!(s2 & 1) ? (x = 0, Ja(36, e2 | 0, 1, b2 | 0, o2 | 0), s2 = x, x = 0, !(s2 & 1)) : 0) { x = 0; Fa(6, e2 | 0, 824, 96); x = 0; a2 = 0; } else a2 = 1; b2 = Wa() | 0; Sm(o2); if (!a2) { s2 = b2; fb(s2 | 0); } } else b2 = Wa() | 0; Ua(e2 | 0); s2 = b2; fb(s2 | 0); } if (!h2 ? (o2 = ia(f2, g2) | 0, (ia(ia(o2, (e2 | 0) > 8 ? 2 : 1) | 0, b2) | 0) >>> 0 > c2 >>> 0) : 0) { e2 = Va(16) | 0; x = 0; Fa(5, p2 | 0, 48800, 58); s2 = x; x = 0; if (!(s2 & 1)) { x = 0; b2 = Da(1) | 0; s2 = x; x = 0; if (!(s2 & 1) ? (x = 0, Ja(36, e2 | 0, 1, b2 | 0, p2 | 0), s2 = x, x = 0, !(s2 & 1)) : 0) { x = 0; Fa(6, e2 | 0, 824, 96); x = 0; a2 = 0; } else a2 = 1; b2 = Wa() | 0; Sm(p2); if (!a2) { s2 = b2; fb(s2 | 0); } } else b2 = Wa() | 0; Ua(e2 | 0); s2 = b2; fb(s2 | 0); } switch (b2 | 0) { case 4: { if ((a2 | 0) != 2) { r = j2; return; } e2 = Va(16) | 0; x = 0; Fa(5, q2 | 0, 48859, 73); s2 = x; x = 0; if (!(s2 & 1)) { x = 0; b2 = Da(1) | 0; s2 = x; x = 0; if (!(s2 & 1) ? (x = 0, Ja(36, e2 | 0, 1, b2 | 0, q2 | 0), s2 = x, x = 0, !(s2 & 1)) : 0) { x = 0; Fa(6, e2 | 0, 824, 96); x = 0; a2 = 0; } else a2 = 1; b2 = Wa() | 0; Sm(q2); if (!a2) { s2 = b2; fb(s2 | 0); } } else b2 = Wa() | 0; Ua(e2 | 0); s2 = b2; fb(s2 | 0); } case 3: { r = j2; return; } default: { if (!a2) { r = j2; return; } e2 = Va(16) | 0; x = 0; Fa(5, s2 | 0, 48933, 73); q2 = x; x = 0; if (!(q2 & 1)) { x = 0; b2 = Da(1) | 0; q2 = x; x = 0; if (!(q2 & 1) ? (x = 0, Ja(36, e2 | 0, 1, b2 | 0, s2 | 0), q2 = x, x = 0, !(q2 & 1)) : 0) { x = 0; Fa(6, e2 | 0, 824, 96); x = 0; a2 = 0; } else a2 = 1; b2 = Wa() | 0; Sm(s2); if (!a2) { s2 = b2; fb(s2 | 0); } } else b2 = Wa() | 0; Ua(e2 | 0); s2 = b2; fb(s2 | 0); } } } function oc(a2) { a2 = a2 | 0; cb(a2 | 0) | 0; tj(); } function pc(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; m2 = r; r = r + 128 | 0; f2 = m2 + 116 | 0; g2 = m2; x = 0; k[f2 >> 2] = k[b2 >> 2]; k[f2 + 4 >> 2] = k[b2 + 4 >> 2]; k[f2 + 8 >> 2] = k[b2 + 8 >> 2]; ra(59, g2 | 0, f2 | 0); e2 = x; x = 0; if (!(e2 & 1)) { if (c2) { e2 = g2 + 16 | 0; b2 = e2 + 84 | 0; do { k[e2 >> 2] = k[c2 >> 2]; e2 = e2 + 4 | 0; c2 = c2 + 4 | 0; } while ((e2 | 0) < (b2 | 0)); } x = 0; k[f2 >> 2] = k[a2 >> 2]; k[f2 + 4 >> 2] = k[a2 + 4 >> 2]; k[f2 + 8 >> 2] = k[a2 + 8 >> 2]; ra(60, g2 | 0, f2 | 0); g2 = x; x = 0; if (!(g2 & 1)) { if (d2) i2[d2 >> 0] = 0; l2 = 0; r = m2; return l2 | 0; } } a2 = Wa(824, 0) | 0; g2 = M; g2 = (g2 | 0) == (ab(824) | 0); a2 = cb(a2 | 0) | 0; b2 = (d2 | 0) == 0; if (!g2) { if (!b2) i2[d2 >> 0] = 0; eb(); l2 = 14; r = m2; return l2 | 0; } e2 = a2 + 12 | 0; do if (!b2) { b2 = k[e2 >> 2] | 0; x = 0; c2 = Da(1) | 0; g2 = x; x = 0; if (!(g2 & 1)) if ((b2 | 0) == (c2 | 0)) { wl(d2, Ob[k[(k[a2 >> 2] | 0) + 8 >> 2] & 127](a2) | 0) | 0; l2 = 10; break; } else { i2[d2 >> 0] = 0; l2 = 10; break; } } else l2 = 10; while (0); if ((l2 | 0) == 10 ? (h2 = k[e2 >> 2] | 0, x = 0, j2 = Da(1) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) { l2 = (h2 | 0) == (j2 | 0) ? k[a2 + 8 >> 2] | 0 : 13; eb(); r = m2; return l2 | 0; } b2 = Wa() | 0; x = 0; Ga(3); m2 = x; x = 0; if (m2 & 1) { m2 = Wa(0) | 0; oc(m2); } else fb(b2 | 0); return 0; } function qc(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; j2 = r; r = r + 128 | 0; e2 = j2 + 116 | 0; d2 = j2; x = 0; k[e2 >> 2] = k[a2 >> 2]; k[e2 + 4 >> 2] = k[a2 + 4 >> 2]; k[e2 + 8 >> 2] = k[a2 + 8 >> 2]; ra(59, d2 | 0, e2 | 0); e2 = x; x = 0; if ((!(e2 & 1) ? (x = 0, qa(177, d2 | 0), e2 = x, x = 0, !(e2 & 1)) : 0) ? (x = 0, ra(61, d2 | 0, 1), e2 = x, x = 0, !(e2 & 1)) : 0) { a2 = d2 + 16 | 0; d2 = b2 + 84 | 0; do { k[b2 >> 2] = k[a2 >> 2]; b2 = b2 + 4 | 0; a2 = a2 + 4 | 0; } while ((b2 | 0) < (d2 | 0)); if (c2) i2[c2 >> 0] = 0; c2 = 0; r = j2; return c2 | 0; } e2 = Wa(824, 0) | 0; b2 = M; b2 = (b2 | 0) == (ab(824) | 0); e2 = cb(e2 | 0) | 0; a2 = (c2 | 0) == 0; if (!b2) { if (!a2) i2[c2 >> 0] = 0; eb(); c2 = 14; r = j2; return c2 | 0; } b2 = e2 + 12 | 0; do if (!a2) { a2 = k[b2 >> 2] | 0; x = 0; d2 = Da(1) | 0; l2 = x; x = 0; if (!(l2 & 1)) if ((a2 | 0) == (d2 | 0)) { wl(c2, Ob[k[(k[e2 >> 2] | 0) + 8 >> 2] & 127](e2) | 0) | 0; h2 = 13; break; } else { i2[c2 >> 0] = 0; h2 = 13; break; } } else h2 = 13; while (0); if ((h2 | 0) == 13 ? (f2 = k[b2 >> 2] | 0, x = 0, g2 = Da(1) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) { l2 = (f2 | 0) == (g2 | 0) ? k[e2 + 8 >> 2] | 0 : 13; eb(); r = j2; return l2 | 0; } a2 = Wa() | 0; x = 0; Ga(3); l2 = x; x = 0; if (l2 & 1) { l2 = Wa(0) | 0; oc(l2); } else fb(a2 | 0); return 0; } function rc(a2, b2, c2, d2, e2, f2, g2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; var h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0; m2 = r; r = r + 48 | 0; i3 = m2 + 36 | 0; h2 = m2 + 24 | 0; j2 = m2 + 12 | 0; l2 = m2; if (!((a2 | 0) != 0 & (c2 | 0) != 0 & (d2 | 0) != 0 & (f2 | 0) != 0)) { e2 = 1; r = m2; return e2 | 0; } k[j2 >> 2] = 0; k[j2 + 4 >> 2] = a2; k[j2 + 8 >> 2] = b2; k[l2 >> 2] = 0; k[l2 + 4 >> 2] = d2; k[l2 + 8 >> 2] = e2; k[h2 >> 2] = k[j2 >> 2]; k[h2 + 4 >> 2] = k[j2 + 4 >> 2]; k[h2 + 8 >> 2] = k[j2 + 8 >> 2]; k[i3 >> 2] = k[l2 >> 2]; k[i3 + 4 >> 2] = k[l2 + 4 >> 2]; k[i3 + 8 >> 2] = k[l2 + 8 >> 2]; e2 = mc(h2, c2, i3, f2, g2) | 0; r = m2; return e2 | 0; } function sc(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0; e2 = r; r = r + 32 | 0; f2 = e2 + 12 | 0; g2 = e2; h2 = g2; k[h2 >> 2] = 0; k[h2 + 4 >> 2] = 0; k[g2 + 4 >> 2] = a2; k[g2 + 8 >> 2] = b2; k[f2 >> 2] = k[g2 >> 2]; k[f2 + 4 >> 2] = k[g2 + 4 >> 2]; k[f2 + 8 >> 2] = k[g2 + 8 >> 2]; c2 = qc(f2, c2, d2) | 0; r = e2; return c2 | 0; } function tc(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; g2 = r; r = r + 48 | 0; h2 = g2 + 36 | 0; i3 = g2 + 24 | 0; l2 = g2 + 12 | 0; j2 = g2; k[l2 >> 2] = 0; k[l2 + 4 >> 2] = a2; k[l2 + 8 >> 2] = b2; k[j2 >> 2] = 0; k[j2 + 4 >> 2] = c2; k[j2 + 8 >> 2] = d2; k[i3 >> 2] = k[l2 >> 2]; k[i3 + 4 >> 2] = k[l2 + 4 >> 2]; k[i3 + 8 >> 2] = k[l2 + 8 >> 2]; k[h2 >> 2] = k[j2 >> 2]; k[h2 + 4 >> 2] = k[j2 + 4 >> 2]; k[h2 + 8 >> 2] = k[j2 + 8 >> 2]; d2 = pc(i3, h2, e2, f2) | 0; r = g2; return d2 | 0; } function uc(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; j2 = a2 + 4 | 0; c2 = k[a2 >> 2] | 0; e2 = ((k[j2 >> 2] | 0) - c2 >> 2) + 1 | 0; if (e2 >>> 0 > 1073741823) { jj(a2); c2 = k[a2 >> 2] | 0; } l2 = a2 + 8 | 0; d2 = (k[l2 >> 2] | 0) - c2 | 0; if (d2 >> 2 >>> 0 < 536870911) { d2 = d2 >> 1; d2 = d2 >>> 0 < e2 >>> 0 ? e2 : d2; c2 = (k[j2 >> 2] | 0) - c2 >> 2; if (!d2) { f2 = 0; g2 = 0; } else h2 = 6; } else { d2 = 1073741823; c2 = (k[j2 >> 2] | 0) - c2 >> 2; h2 = 6; } if ((h2 | 0) == 6) { f2 = d2; g2 = lj(d2 << 2) | 0; } e2 = g2 + (c2 << 2) | 0; d2 = e2; i3 = g2 + (f2 << 2) | 0; h2 = k[b2 >> 2] | 0; k[b2 >> 2] = 0; k[e2 >> 2] = h2; h2 = g2 + (c2 + 1 << 2) | 0; g2 = k[a2 >> 2] | 0; c2 = k[j2 >> 2] | 0; if ((c2 | 0) == (g2 | 0)) { e2 = a2; f2 = j2; } else { do { c2 = c2 + -4 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; k[e2 + -4 >> 2] = b2; e2 = d2 + -4 | 0; d2 = e2; } while ((c2 | 0) != (g2 | 0)); c2 = d2; e2 = a2; f2 = j2; d2 = c2; g2 = k[a2 >> 2] | 0; c2 = k[j2 >> 2] | 0; } k[e2 >> 2] = d2; k[f2 >> 2] = h2; k[l2 >> 2] = i3; e2 = g2; if ((c2 | 0) != (e2 | 0)) do { c2 = c2 + -4 | 0; d2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (d2) Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); } while ((c2 | 0) != (e2 | 0)); if (!g2) return; mj(g2); return; } function vc() { if (i2[8] | 0) return 35648; if (!(Qa(8) | 0)) return 35648; tb(72, 35648, w | 0) | 0; Ya(8); return 35648; } function wc(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; m2 = r; r = r + 32 | 0; j2 = m2; Oi(j2, (1 << b2) + -1 | 0, 0); f2 = k[j2 >> 2] | 0; l2 = f2 + 1 | 0; c2 = l2 << 1; k[a2 >> 2] = 0; g2 = a2 + 4 | 0; k[g2 >> 2] = 0; k[a2 + 8 >> 2] = 0; a: do if (l2) { if (!((f2 | 0) < -1 ? (x = 0, qa(178, a2 | 0), h2 = x, x = 0, h2 & 1) : 0)) d2 = 4; if ((d2 | 0) == 4 ? (x = 0, e2 = ta(67, c2 | 0) | 0, h2 = x, x = 0, !(h2 & 1)) : 0) { k[g2 >> 2] = e2; k[a2 >> 2] = e2; k[a2 + 8 >> 2] = e2 + c2; b2 = e2; while (1) { i2[b2 >> 0] = 0; b2 = (k[g2 >> 2] | 0) + 1 | 0; k[g2 >> 2] = b2; c2 = c2 + -1 | 0; if (!c2) break a; } } c2 = Wa() | 0; b2 = k[a2 >> 2] | 0; if (!b2) fb(c2 | 0); if ((k[g2 >> 2] | 0) != (b2 | 0)) k[g2 >> 2] = b2; mj(b2); fb(c2 | 0); } while (0); b2 = ~f2; if ((f2 | 0) < (b2 | 0)) { r = m2; return; } g2 = j2 + 12 | 0; h2 = j2 + 8 | 0; f2 = j2 + 4 | 0; e2 = b2; do { b2 = k[g2 >> 2] | 0; if ((e2 | 0) > (0 - b2 | 0)) { c2 = k[h2 >> 2] | 0; if ((e2 | 0) > (0 - c2 | 0)) { d2 = k[f2 >> 2] | 0; if ((e2 | 0) > (0 - d2 | 0)) if ((e2 | 0) >= 0) if ((e2 | 0) > 0) if ((d2 | 0) <= (e2 | 0)) if ((c2 | 0) > (e2 | 0)) b2 = 2; else b2 = (b2 | 0) > (e2 | 0) ? 3 : 4; else b2 = 1; else b2 = 0; else b2 = -1; else b2 = -2; } else b2 = -3; } else b2 = -4; i2[(k[a2 >> 2] | 0) + (e2 + l2) >> 0] = b2; e2 = e2 + 1 | 0; } while ((e2 | 0) < (l2 | 0)); r = m2; return; } function xc(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; p2 = k[c2 + 16 >> 2] | 0; switch (p2 | 0) { case 64: case 0: { x = 0; a2 = Aa(34, a2 | 0, b2 | 0) | 0; b2 = x; x = 0; if (b2 & 1) q2 = 16; else d2 = a2; break; } default: { e2 = (1 << k[b2 + 8 >> 2]) + -1 | 0; o2 = k[b2 + 20 >> 2] | 0; n2 = o2 << 1; n2 = ((n2 + e2 | 0) / (n2 | 1 | 0) | 0) + 1 | 0; a2 = 0; while (1) if ((1 << a2 | 0) < (n2 | 0)) a2 = a2 + 1 | 0; else break; d2 = 0; while (1) if ((1 << d2 | 0) < (e2 | 0)) d2 = d2 + 1 | 0; else { g2 = d2; break; } e2 = k[c2 >> 2] | 0; x = 0; d2 = ta(67, 4624) | 0; m2 = x; x = 0; if (m2 & 1) q2 = 16; else { f2 = ((g2 | 0) < 8 ? 8 : g2) + g2 << 1; h2 = d2 + 4 | 0; l2 = b2; m2 = h2 + 84 | 0; do { k[h2 >> 2] = k[l2 >> 2]; h2 = h2 + 4 | 0; l2 = l2 + 4 | 0; } while ((h2 | 0) < (m2 | 0)); h2 = d2 + 88 | 0; m2 = h2 + 40 | 0; do { k[h2 >> 2] = 0; h2 = h2 + 4 | 0; } while ((h2 | 0) < (m2 | 0)); k[d2 >> 2] = 35660; k[d2 + 128 >> 2] = e2; k[d2 + 132 >> 2] = n2; k[d2 + 136 >> 2] = o2; k[d2 + 140 >> 2] = a2; k[d2 + 144 >> 2] = g2; k[d2 + 148 >> 2] = f2; k[d2 + 152 >> 2] = p2; a2 = d2 + 156 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; k[a2 + 12 >> 2] = 0; k[d2 + 172 >> 2] = k[b2 >> 2]; k[d2 + 176 >> 2] = 0; k[d2 + 180 >> 2] = 0; k[d2 + 184 >> 2] = 0; a2 = d2 + 4568 | 0; e2 = d2 + 188 | 0; do { k[e2 >> 2] = 0; k[e2 + 4 >> 2] = 0; j[e2 + 8 >> 1] = 0; j[e2 + 10 >> 1] = 1; e2 = e2 + 12 | 0; } while ((e2 | 0) != (a2 | 0)); k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; j[a2 + 8 >> 1] = 0; i2[a2 + 10 >> 0] = 0; b2 = d2 + 4580 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; j[b2 + 8 >> 1] = 0; i2[b2 + 10 >> 0] = 0; b2 = d2 + 4592 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[b2 + 16 >> 2] = 0; k[b2 + 20 >> 2] = 0; k[b2 + 24 >> 2] = 0; i2[b2 + 28 >> 0] = 0; if (!(k[d2 + 28 >> 2] | 0)) k[d2 + 20 >> 2] = 1; } } } if ((q2 | 0) == 16) { q2 = Wa() | 0; fb(q2 | 0); } if (!d2) return d2 | 0; x = 0; ra(k[(k[d2 >> 2] | 0) + 12 >> 2] | 0, d2 | 0, c2 | 0); q2 = x; x = 0; if (!(q2 & 1)) return d2 | 0; a2 = Wa() | 0; if (!d2) { q2 = a2; fb(q2 | 0); } Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); q2 = a2; fb(q2 | 0); return 0; } function yc(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; c2 = (k[b2 + 24 >> 2] | 0) == 2; if (c2 ? (k[b2 + 16 >> 2] | 0) != 3 : 0) { b2 = 0; return b2 | 0; } n2 = k[b2 + 20 >> 2] | 0; a2 = k[b2 + 8 >> 2] | 0; a: do if (!n2) { if (c2) { if ((a2 | 0) != 8) break; d2 = lj(4600) | 0; g2 = d2 + 4 | 0; h2 = b2; l2 = g2 + 84 | 0; do { k[g2 >> 2] = k[h2 >> 2]; g2 = g2 + 4 | 0; h2 = h2 + 4 | 0; } while ((g2 | 0) < (l2 | 0)); g2 = d2 + 88 | 0; l2 = g2 + 40 | 0; do { k[g2 >> 2] = 0; g2 = g2 + 4 | 0; } while ((g2 | 0) < (l2 | 0)); k[d2 >> 2] = 35688; a2 = d2 + 132 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; k[a2 + 12 >> 2] = 0; k[d2 + 148 >> 2] = k[b2 >> 2]; k[d2 + 152 >> 2] = 0; k[d2 + 156 >> 2] = 0; k[d2 + 160 >> 2] = 0; a2 = d2 + 4544 | 0; c2 = d2 + 164 | 0; do { k[c2 >> 2] = 0; k[c2 + 4 >> 2] = 0; j[c2 + 8 >> 1] = 0; j[c2 + 10 >> 1] = 1; c2 = c2 + 12 | 0; } while ((c2 | 0) != (a2 | 0)); k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; j[a2 + 8 >> 1] = 0; i2[a2 + 10 >> 0] = 0; b2 = d2 + 4556 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; j[b2 + 8 >> 1] = 0; i2[b2 + 10 >> 0] = 0; b2 = d2 + 4568 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[b2 + 16 >> 2] = 0; k[b2 + 20 >> 2] = 0; k[b2 + 24 >> 2] = 0; i2[b2 + 28 >> 0] = 0; if (!(k[d2 + 28 >> 2] | 0)) k[d2 + 20 >> 2] = 1; b2 = d2; return b2 | 0; } switch (a2 | 0) { case 8: { d2 = lj(4600) | 0; g2 = d2 + 4 | 0; h2 = b2; l2 = g2 + 84 | 0; do { k[g2 >> 2] = k[h2 >> 2]; g2 = g2 + 4 | 0; h2 = h2 + 4 | 0; } while ((g2 | 0) < (l2 | 0)); g2 = d2 + 88 | 0; l2 = g2 + 40 | 0; do { k[g2 >> 2] = 0; g2 = g2 + 4 | 0; } while ((g2 | 0) < (l2 | 0)); k[d2 >> 2] = 35716; a2 = d2 + 132 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; k[a2 + 12 >> 2] = 0; k[d2 + 148 >> 2] = k[b2 >> 2]; k[d2 + 152 >> 2] = 0; k[d2 + 156 >> 2] = 0; k[d2 + 160 >> 2] = 0; a2 = d2 + 4544 | 0; c2 = d2 + 164 | 0; do { k[c2 >> 2] = 0; k[c2 + 4 >> 2] = 0; j[c2 + 8 >> 1] = 0; j[c2 + 10 >> 1] = 1; c2 = c2 + 12 | 0; } while ((c2 | 0) != (a2 | 0)); k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; j[a2 + 8 >> 1] = 0; i2[a2 + 10 >> 0] = 0; b2 = d2 + 4556 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; j[b2 + 8 >> 1] = 0; i2[b2 + 10 >> 0] = 0; b2 = d2 + 4568 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[b2 + 16 >> 2] = 0; k[b2 + 20 >> 2] = 0; k[b2 + 24 >> 2] = 0; i2[b2 + 28 >> 0] = 0; if (!(k[d2 + 28 >> 2] | 0)) k[d2 + 20 >> 2] = 1; b2 = d2; return b2 | 0; } case 12: { d2 = lj(4600) | 0; g2 = d2 + 4 | 0; h2 = b2; l2 = g2 + 84 | 0; do { k[g2 >> 2] = k[h2 >> 2]; g2 = g2 + 4 | 0; h2 = h2 + 4 | 0; } while ((g2 | 0) < (l2 | 0)); g2 = d2 + 88 | 0; l2 = g2 + 40 | 0; do { k[g2 >> 2] = 0; g2 = g2 + 4 | 0; } while ((g2 | 0) < (l2 | 0)); k[d2 >> 2] = 35744; a2 = d2 + 132 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; k[a2 + 12 >> 2] = 0; k[d2 + 148 >> 2] = k[b2 >> 2]; k[d2 + 152 >> 2] = 0; k[d2 + 156 >> 2] = 0; k[d2 + 160 >> 2] = 0; a2 = d2 + 4544 | 0; c2 = d2 + 164 | 0; do { k[c2 >> 2] = 0; k[c2 + 4 >> 2] = 0; j[c2 + 8 >> 1] = 0; j[c2 + 10 >> 1] = 1; c2 = c2 + 12 | 0; } while ((c2 | 0) != (a2 | 0)); k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; j[a2 + 8 >> 1] = 0; i2[a2 + 10 >> 0] = 0; b2 = d2 + 4556 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; j[b2 + 8 >> 1] = 0; i2[b2 + 10 >> 0] = 0; b2 = d2 + 4568 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[b2 + 16 >> 2] = 0; k[b2 + 20 >> 2] = 0; k[b2 + 24 >> 2] = 0; i2[b2 + 28 >> 0] = 0; if (!(k[d2 + 28 >> 2] | 0)) k[d2 + 20 >> 2] = 1; b2 = d2; return b2 | 0; } case 16: { d2 = lj(4600) | 0; g2 = d2 + 4 | 0; h2 = b2; l2 = g2 + 84 | 0; do { k[g2 >> 2] = k[h2 >> 2]; g2 = g2 + 4 | 0; h2 = h2 + 4 | 0; } while ((g2 | 0) < (l2 | 0)); g2 = d2 + 88 | 0; l2 = g2 + 40 | 0; do { k[g2 >> 2] = 0; g2 = g2 + 4 | 0; } while ((g2 | 0) < (l2 | 0)); k[d2 >> 2] = 35772; a2 = d2 + 132 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; k[a2 + 12 >> 2] = 0; k[d2 + 148 >> 2] = k[b2 >> 2]; k[d2 + 152 >> 2] = 0; k[d2 + 156 >> 2] = 0; k[d2 + 160 >> 2] = 0; a2 = d2 + 4544 | 0; c2 = d2 + 164 | 0; do { k[c2 >> 2] = 0; k[c2 + 4 >> 2] = 0; j[c2 + 8 >> 1] = 0; j[c2 + 10 >> 1] = 1; c2 = c2 + 12 | 0; } while ((c2 | 0) != (a2 | 0)); k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; j[a2 + 8 >> 1] = 0; i2[a2 + 10 >> 0] = 0; b2 = d2 + 4556 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; j[b2 + 8 >> 1] = 0; i2[b2 + 10 >> 0] = 0; b2 = d2 + 4568 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[b2 + 16 >> 2] = 0; k[b2 + 20 >> 2] = 0; k[b2 + 24 >> 2] = 0; i2[b2 + 28 >> 0] = 0; if (!(k[d2 + 28 >> 2] | 0)) k[d2 + 20 >> 2] = 1; b2 = d2; return b2 | 0; } default: break a; } } while (0); m2 = (1 << a2) + -1 | 0; if ((a2 | 0) < 9) { f2 = n2 << 1; f2 = ((f2 + m2 | 0) / (f2 | 1 | 0) | 0) + 1 | 0; if (c2) { a2 = 0; while (1) if ((1 << a2 | 0) < (f2 | 0)) a2 = a2 + 1 | 0; else break; c2 = 0; while (1) if ((1 << c2 | 0) < (m2 | 0)) c2 = c2 + 1 | 0; else break; d2 = ((c2 | 0) < 8 ? 8 : c2) + c2 << 1; e2 = lj(4624) | 0; g2 = e2 + 4 | 0; h2 = b2; l2 = g2 + 84 | 0; do { k[g2 >> 2] = k[h2 >> 2]; g2 = g2 + 4 | 0; h2 = h2 + 4 | 0; } while ((g2 | 0) < (l2 | 0)); g2 = e2 + 88 | 0; l2 = g2 + 40 | 0; do { k[g2 >> 2] = 0; g2 = g2 + 4 | 0; } while ((g2 | 0) < (l2 | 0)); k[e2 >> 2] = 35800; k[e2 + 128 >> 2] = m2; k[e2 + 132 >> 2] = f2; k[e2 + 136 >> 2] = n2; k[e2 + 140 >> 2] = a2; k[e2 + 144 >> 2] = c2; k[e2 + 148 >> 2] = d2; k[e2 + 152 >> 2] = 64; a2 = e2 + 156 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; k[a2 + 12 >> 2] = 0; k[e2 + 172 >> 2] = k[b2 >> 2]; k[e2 + 176 >> 2] = 0; k[e2 + 180 >> 2] = 0; k[e2 + 184 >> 2] = 0; a2 = e2 + 4568 | 0; c2 = e2 + 188 | 0; do { k[c2 >> 2] = 0; k[c2 + 4 >> 2] = 0; j[c2 + 8 >> 1] = 0; j[c2 + 10 >> 1] = 1; c2 = c2 + 12 | 0; } while ((c2 | 0) != (a2 | 0)); k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; j[a2 + 8 >> 1] = 0; i2[a2 + 10 >> 0] = 0; b2 = e2 + 4580 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; j[b2 + 8 >> 1] = 0; i2[b2 + 10 >> 0] = 0; b2 = e2 + 4592 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[b2 + 16 >> 2] = 0; k[b2 + 20 >> 2] = 0; k[b2 + 24 >> 2] = 0; i2[b2 + 28 >> 0] = 0; if (!(k[e2 + 28 >> 2] | 0)) k[e2 + 20 >> 2] = 1; b2 = e2; return b2 | 0; } else { a2 = 0; while (1) if ((1 << a2 | 0) < (f2 | 0)) a2 = a2 + 1 | 0; else break; c2 = 0; while (1) if ((1 << c2 | 0) < (m2 | 0)) c2 = c2 + 1 | 0; else break; d2 = ((c2 | 0) < 8 ? 8 : c2) + c2 << 1; e2 = lj(4624) | 0; g2 = e2 + 4 | 0; h2 = b2; l2 = g2 + 84 | 0; do { k[g2 >> 2] = k[h2 >> 2]; g2 = g2 + 4 | 0; h2 = h2 + 4 | 0; } while ((g2 | 0) < (l2 | 0)); g2 = e2 + 88 | 0; l2 = g2 + 40 | 0; do { k[g2 >> 2] = 0; g2 = g2 + 4 | 0; } while ((g2 | 0) < (l2 | 0)); k[e2 >> 2] = 35660; k[e2 + 128 >> 2] = m2; k[e2 + 132 >> 2] = f2; k[e2 + 136 >> 2] = n2; k[e2 + 140 >> 2] = a2; k[e2 + 144 >> 2] = c2; k[e2 + 148 >> 2] = d2; k[e2 + 152 >> 2] = 64; a2 = e2 + 156 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; k[a2 + 12 >> 2] = 0; k[e2 + 172 >> 2] = k[b2 >> 2]; k[e2 + 176 >> 2] = 0; k[e2 + 180 >> 2] = 0; k[e2 + 184 >> 2] = 0; a2 = e2 + 4568 | 0; c2 = e2 + 188 | 0; do { k[c2 >> 2] = 0; k[c2 + 4 >> 2] = 0; j[c2 + 8 >> 1] = 0; j[c2 + 10 >> 1] = 1; c2 = c2 + 12 | 0; } while ((c2 | 0) != (a2 | 0)); k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; j[a2 + 8 >> 1] = 0; i2[a2 + 10 >> 0] = 0; b2 = e2 + 4580 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; j[b2 + 8 >> 1] = 0; i2[b2 + 10 >> 0] = 0; b2 = e2 + 4592 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[b2 + 16 >> 2] = 0; k[b2 + 20 >> 2] = 0; k[b2 + 24 >> 2] = 0; i2[b2 + 28 >> 0] = 0; if (!(k[e2 + 28 >> 2] | 0)) k[e2 + 20 >> 2] = 1; b2 = e2; return b2 | 0; } } if ((a2 | 0) >= 17) { b2 = 0; return b2 | 0; } f2 = n2 << 1; f2 = ((f2 + m2 | 0) / (f2 | 1 | 0) | 0) + 1 | 0; if (c2) { a2 = 0; while (1) if ((1 << a2 | 0) < (f2 | 0)) a2 = a2 + 1 | 0; else break; c2 = 0; while (1) if ((1 << c2 | 0) < (m2 | 0)) c2 = c2 + 1 | 0; else break; d2 = ((c2 | 0) < 8 ? 8 : c2) + c2 << 1; e2 = lj(4624) | 0; g2 = e2 + 4 | 0; h2 = b2; l2 = g2 + 84 | 0; do { k[g2 >> 2] = k[h2 >> 2]; g2 = g2 + 4 | 0; h2 = h2 + 4 | 0; } while ((g2 | 0) < (l2 | 0)); g2 = e2 + 88 | 0; l2 = g2 + 40 | 0; do { k[g2 >> 2] = 0; g2 = g2 + 4 | 0; } while ((g2 | 0) < (l2 | 0)); k[e2 >> 2] = 35828; k[e2 + 128 >> 2] = m2; k[e2 + 132 >> 2] = f2; k[e2 + 136 >> 2] = n2; k[e2 + 140 >> 2] = a2; k[e2 + 144 >> 2] = c2; k[e2 + 148 >> 2] = d2; k[e2 + 152 >> 2] = 64; a2 = e2 + 156 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; k[a2 + 12 >> 2] = 0; k[e2 + 172 >> 2] = k[b2 >> 2]; k[e2 + 176 >> 2] = 0; k[e2 + 180 >> 2] = 0; k[e2 + 184 >> 2] = 0; a2 = e2 + 4568 | 0; c2 = e2 + 188 | 0; do { k[c2 >> 2] = 0; k[c2 + 4 >> 2] = 0; j[c2 + 8 >> 1] = 0; j[c2 + 10 >> 1] = 1; c2 = c2 + 12 | 0; } while ((c2 | 0) != (a2 | 0)); k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; j[a2 + 8 >> 1] = 0; i2[a2 + 10 >> 0] = 0; b2 = e2 + 4580 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; j[b2 + 8 >> 1] = 0; i2[b2 + 10 >> 0] = 0; b2 = e2 + 4592 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[b2 + 16 >> 2] = 0; k[b2 + 20 >> 2] = 0; k[b2 + 24 >> 2] = 0; i2[b2 + 28 >> 0] = 0; if (!(k[e2 + 28 >> 2] | 0)) k[e2 + 20 >> 2] = 1; b2 = e2; return b2 | 0; } else { a2 = 0; while (1) if ((1 << a2 | 0) < (f2 | 0)) a2 = a2 + 1 | 0; else break; c2 = 0; while (1) if ((1 << c2 | 0) < (m2 | 0)) c2 = c2 + 1 | 0; else break; d2 = ((c2 | 0) < 8 ? 8 : c2) + c2 << 1; e2 = lj(4624) | 0; g2 = e2 + 4 | 0; h2 = b2; l2 = g2 + 84 | 0; do { k[g2 >> 2] = k[h2 >> 2]; g2 = g2 + 4 | 0; h2 = h2 + 4 | 0; } while ((g2 | 0) < (l2 | 0)); g2 = e2 + 88 | 0; l2 = g2 + 40 | 0; do { k[g2 >> 2] = 0; g2 = g2 + 4 | 0; } while ((g2 | 0) < (l2 | 0)); k[e2 >> 2] = 35856; k[e2 + 128 >> 2] = m2; k[e2 + 132 >> 2] = f2; k[e2 + 136 >> 2] = n2; k[e2 + 140 >> 2] = a2; k[e2 + 144 >> 2] = c2; k[e2 + 148 >> 2] = d2; k[e2 + 152 >> 2] = 64; a2 = e2 + 156 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; k[a2 + 12 >> 2] = 0; k[e2 + 172 >> 2] = k[b2 >> 2]; k[e2 + 176 >> 2] = 0; k[e2 + 180 >> 2] = 0; k[e2 + 184 >> 2] = 0; a2 = e2 + 4568 | 0; c2 = e2 + 188 | 0; do { k[c2 >> 2] = 0; k[c2 + 4 >> 2] = 0; j[c2 + 8 >> 1] = 0; j[c2 + 10 >> 1] = 1; c2 = c2 + 12 | 0; } while ((c2 | 0) != (a2 | 0)); k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; j[a2 + 8 >> 1] = 0; i2[a2 + 10 >> 0] = 0; b2 = e2 + 4580 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; j[b2 + 8 >> 1] = 0; i2[b2 + 10 >> 0] = 0; b2 = e2 + 4592 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[b2 + 16 >> 2] = 0; k[b2 + 20 >> 2] = 0; k[b2 + 24 >> 2] = 0; i2[b2 + 28 >> 0] = 0; if (!(k[e2 + 28 >> 2] | 0)) k[e2 + 20 >> 2] = 1; b2 = e2; return b2 | 0; } return 0; } function zc(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; p2 = k[c2 + 16 >> 2] | 0; switch (p2 | 0) { case 64: case 0: { x = 0; a2 = Aa(35, a2 | 0, b2 | 0) | 0; b2 = x; x = 0; if (b2 & 1) q2 = 16; else d2 = a2; break; } default: { e2 = (1 << k[b2 + 8 >> 2]) + -1 | 0; o2 = k[b2 + 20 >> 2] | 0; n2 = o2 << 1; n2 = ((n2 + e2 | 0) / (n2 | 1 | 0) | 0) + 1 | 0; a2 = 0; while (1) if ((1 << a2 | 0) < (n2 | 0)) a2 = a2 + 1 | 0; else break; d2 = 0; while (1) if ((1 << d2 | 0) < (e2 | 0)) d2 = d2 + 1 | 0; else { g2 = d2; break; } e2 = k[c2 >> 2] | 0; x = 0; d2 = ta(67, 4632) | 0; m2 = x; x = 0; if (m2 & 1) q2 = 16; else { f2 = ((g2 | 0) < 8 ? 8 : g2) + g2 << 1; k[d2 + 4 >> 2] = 0; h2 = d2 + 8 | 0; l2 = b2; m2 = h2 + 84 | 0; do { k[h2 >> 2] = k[l2 >> 2]; h2 = h2 + 4 | 0; l2 = l2 + 4 | 0; } while ((h2 | 0) < (m2 | 0)); k[d2 + 92 >> 2] = 0; k[d2 + 96 >> 2] = 0; k[d2 + 100 >> 2] = 32; k[d2 + 104 >> 2] = 0; k[d2 + 108 >> 2] = 0; i2[d2 + 112 >> 0] = 0; m2 = d2 + 116 | 0; k[m2 >> 2] = 0; k[m2 + 4 >> 2] = 0; k[m2 + 8 >> 2] = 0; k[m2 + 12 >> 2] = 0; k[m2 + 16 >> 2] = 0; k[d2 >> 2] = 35884; k[d2 + 136 >> 2] = e2; k[d2 + 140 >> 2] = n2; k[d2 + 144 >> 2] = o2; k[d2 + 148 >> 2] = a2; k[d2 + 152 >> 2] = g2; k[d2 + 156 >> 2] = f2; k[d2 + 160 >> 2] = p2; a2 = d2 + 164 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; k[a2 + 12 >> 2] = 0; k[d2 + 180 >> 2] = k[b2 >> 2]; k[d2 + 184 >> 2] = 0; k[d2 + 188 >> 2] = 0; k[d2 + 192 >> 2] = 0; a2 = d2 + 4576 | 0; e2 = d2 + 196 | 0; do { k[e2 >> 2] = 0; k[e2 + 4 >> 2] = 0; j[e2 + 8 >> 1] = 0; j[e2 + 10 >> 1] = 1; e2 = e2 + 12 | 0; } while ((e2 | 0) != (a2 | 0)); k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; j[a2 + 8 >> 1] = 0; i2[a2 + 10 >> 0] = 0; b2 = d2 + 4588 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; j[b2 + 8 >> 1] = 0; i2[b2 + 10 >> 0] = 0; b2 = d2 + 4600 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[b2 + 16 >> 2] = 0; k[b2 + 20 >> 2] = 0; k[b2 + 24 >> 2] = 0; i2[b2 + 28 >> 0] = 0; if (!(k[d2 + 32 >> 2] | 0)) k[d2 + 24 >> 2] = 1; } } } if ((q2 | 0) == 16) { q2 = Wa() | 0; fb(q2 | 0); } if (!d2) return d2 | 0; x = 0; ra(k[(k[d2 >> 2] | 0) + 8 >> 2] | 0, d2 | 0, c2 | 0); q2 = x; x = 0; if (!(q2 & 1)) return d2 | 0; a2 = Wa() | 0; if (!d2) { q2 = a2; fb(q2 | 0); } Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); q2 = a2; fb(q2 | 0); return 0; } function Ac(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; c2 = (k[b2 + 24 >> 2] | 0) == 2; if (c2 ? (k[b2 + 16 >> 2] | 0) != 3 : 0) { b2 = 0; return b2 | 0; } n2 = k[b2 + 20 >> 2] | 0; a2 = k[b2 + 8 >> 2] | 0; a: do if (!n2) { if (c2) { if ((a2 | 0) != 8) break; d2 = lj(4608) | 0; k[d2 + 4 >> 2] = 0; g2 = d2 + 8 | 0; h2 = b2; l2 = g2 + 84 | 0; do { k[g2 >> 2] = k[h2 >> 2]; g2 = g2 + 4 | 0; h2 = h2 + 4 | 0; } while ((g2 | 0) < (l2 | 0)); k[d2 + 92 >> 2] = 0; k[d2 + 96 >> 2] = 0; k[d2 + 100 >> 2] = 32; k[d2 + 104 >> 2] = 0; k[d2 + 108 >> 2] = 0; i2[d2 + 112 >> 0] = 0; a2 = d2 + 116 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; k[a2 + 12 >> 2] = 0; k[a2 + 16 >> 2] = 0; k[d2 >> 2] = 35912; a2 = d2 + 140 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; k[a2 + 12 >> 2] = 0; k[d2 + 156 >> 2] = k[b2 >> 2]; k[d2 + 160 >> 2] = 0; k[d2 + 164 >> 2] = 0; k[d2 + 168 >> 2] = 0; a2 = d2 + 4552 | 0; c2 = d2 + 172 | 0; do { k[c2 >> 2] = 0; k[c2 + 4 >> 2] = 0; j[c2 + 8 >> 1] = 0; j[c2 + 10 >> 1] = 1; c2 = c2 + 12 | 0; } while ((c2 | 0) != (a2 | 0)); k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; j[a2 + 8 >> 1] = 0; i2[a2 + 10 >> 0] = 0; b2 = d2 + 4564 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; j[b2 + 8 >> 1] = 0; i2[b2 + 10 >> 0] = 0; b2 = d2 + 4576 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[b2 + 16 >> 2] = 0; k[b2 + 20 >> 2] = 0; k[b2 + 24 >> 2] = 0; i2[b2 + 28 >> 0] = 0; if (!(k[d2 + 32 >> 2] | 0)) k[d2 + 24 >> 2] = 1; b2 = d2; return b2 | 0; } switch (a2 | 0) { case 8: { d2 = lj(4608) | 0; k[d2 + 4 >> 2] = 0; g2 = d2 + 8 | 0; h2 = b2; l2 = g2 + 84 | 0; do { k[g2 >> 2] = k[h2 >> 2]; g2 = g2 + 4 | 0; h2 = h2 + 4 | 0; } while ((g2 | 0) < (l2 | 0)); k[d2 + 92 >> 2] = 0; k[d2 + 96 >> 2] = 0; k[d2 + 100 >> 2] = 32; k[d2 + 104 >> 2] = 0; k[d2 + 108 >> 2] = 0; i2[d2 + 112 >> 0] = 0; a2 = d2 + 116 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; k[a2 + 12 >> 2] = 0; k[a2 + 16 >> 2] = 0; k[d2 >> 2] = 35940; a2 = d2 + 140 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; k[a2 + 12 >> 2] = 0; k[d2 + 156 >> 2] = k[b2 >> 2]; k[d2 + 160 >> 2] = 0; k[d2 + 164 >> 2] = 0; k[d2 + 168 >> 2] = 0; a2 = d2 + 4552 | 0; c2 = d2 + 172 | 0; do { k[c2 >> 2] = 0; k[c2 + 4 >> 2] = 0; j[c2 + 8 >> 1] = 0; j[c2 + 10 >> 1] = 1; c2 = c2 + 12 | 0; } while ((c2 | 0) != (a2 | 0)); k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; j[a2 + 8 >> 1] = 0; i2[a2 + 10 >> 0] = 0; b2 = d2 + 4564 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; j[b2 + 8 >> 1] = 0; i2[b2 + 10 >> 0] = 0; b2 = d2 + 4576 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[b2 + 16 >> 2] = 0; k[b2 + 20 >> 2] = 0; k[b2 + 24 >> 2] = 0; i2[b2 + 28 >> 0] = 0; if (!(k[d2 + 32 >> 2] | 0)) k[d2 + 24 >> 2] = 1; b2 = d2; return b2 | 0; } case 12: { d2 = lj(4608) | 0; k[d2 + 4 >> 2] = 0; g2 = d2 + 8 | 0; h2 = b2; l2 = g2 + 84 | 0; do { k[g2 >> 2] = k[h2 >> 2]; g2 = g2 + 4 | 0; h2 = h2 + 4 | 0; } while ((g2 | 0) < (l2 | 0)); k[d2 + 92 >> 2] = 0; k[d2 + 96 >> 2] = 0; k[d2 + 100 >> 2] = 32; k[d2 + 104 >> 2] = 0; k[d2 + 108 >> 2] = 0; i2[d2 + 112 >> 0] = 0; a2 = d2 + 116 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; k[a2 + 12 >> 2] = 0; k[a2 + 16 >> 2] = 0; k[d2 >> 2] = 35968; a2 = d2 + 140 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; k[a2 + 12 >> 2] = 0; k[d2 + 156 >> 2] = k[b2 >> 2]; k[d2 + 160 >> 2] = 0; k[d2 + 164 >> 2] = 0; k[d2 + 168 >> 2] = 0; a2 = d2 + 4552 | 0; c2 = d2 + 172 | 0; do { k[c2 >> 2] = 0; k[c2 + 4 >> 2] = 0; j[c2 + 8 >> 1] = 0; j[c2 + 10 >> 1] = 1; c2 = c2 + 12 | 0; } while ((c2 | 0) != (a2 | 0)); k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; j[a2 + 8 >> 1] = 0; i2[a2 + 10 >> 0] = 0; b2 = d2 + 4564 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; j[b2 + 8 >> 1] = 0; i2[b2 + 10 >> 0] = 0; b2 = d2 + 4576 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[b2 + 16 >> 2] = 0; k[b2 + 20 >> 2] = 0; k[b2 + 24 >> 2] = 0; i2[b2 + 28 >> 0] = 0; if (!(k[d2 + 32 >> 2] | 0)) k[d2 + 24 >> 2] = 1; b2 = d2; return b2 | 0; } case 16: { d2 = lj(4608) | 0; k[d2 + 4 >> 2] = 0; g2 = d2 + 8 | 0; h2 = b2; l2 = g2 + 84 | 0; do { k[g2 >> 2] = k[h2 >> 2]; g2 = g2 + 4 | 0; h2 = h2 + 4 | 0; } while ((g2 | 0) < (l2 | 0)); k[d2 + 92 >> 2] = 0; k[d2 + 96 >> 2] = 0; k[d2 + 100 >> 2] = 32; k[d2 + 104 >> 2] = 0; k[d2 + 108 >> 2] = 0; i2[d2 + 112 >> 0] = 0; a2 = d2 + 116 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; k[a2 + 12 >> 2] = 0; k[a2 + 16 >> 2] = 0; k[d2 >> 2] = 35996; a2 = d2 + 140 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; k[a2 + 12 >> 2] = 0; k[d2 + 156 >> 2] = k[b2 >> 2]; k[d2 + 160 >> 2] = 0; k[d2 + 164 >> 2] = 0; k[d2 + 168 >> 2] = 0; a2 = d2 + 4552 | 0; c2 = d2 + 172 | 0; do { k[c2 >> 2] = 0; k[c2 + 4 >> 2] = 0; j[c2 + 8 >> 1] = 0; j[c2 + 10 >> 1] = 1; c2 = c2 + 12 | 0; } while ((c2 | 0) != (a2 | 0)); k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; j[a2 + 8 >> 1] = 0; i2[a2 + 10 >> 0] = 0; b2 = d2 + 4564 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; j[b2 + 8 >> 1] = 0; i2[b2 + 10 >> 0] = 0; b2 = d2 + 4576 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[b2 + 16 >> 2] = 0; k[b2 + 20 >> 2] = 0; k[b2 + 24 >> 2] = 0; i2[b2 + 28 >> 0] = 0; if (!(k[d2 + 32 >> 2] | 0)) k[d2 + 24 >> 2] = 1; b2 = d2; return b2 | 0; } default: break a; } } while (0); m2 = (1 << a2) + -1 | 0; if ((a2 | 0) < 9) { f2 = n2 << 1; f2 = ((f2 + m2 | 0) / (f2 | 1 | 0) | 0) + 1 | 0; if (c2) { a2 = 0; while (1) if ((1 << a2 | 0) < (f2 | 0)) a2 = a2 + 1 | 0; else break; c2 = 0; while (1) if ((1 << c2 | 0) < (m2 | 0)) c2 = c2 + 1 | 0; else break; d2 = ((c2 | 0) < 8 ? 8 : c2) + c2 << 1; e2 = lj(4632) | 0; k[e2 + 4 >> 2] = 0; g2 = e2 + 8 | 0; h2 = b2; l2 = g2 + 84 | 0; do { k[g2 >> 2] = k[h2 >> 2]; g2 = g2 + 4 | 0; h2 = h2 + 4 | 0; } while ((g2 | 0) < (l2 | 0)); k[e2 + 92 >> 2] = 0; k[e2 + 96 >> 2] = 0; k[e2 + 100 >> 2] = 32; k[e2 + 104 >> 2] = 0; k[e2 + 108 >> 2] = 0; i2[e2 + 112 >> 0] = 0; l2 = e2 + 116 | 0; k[l2 >> 2] = 0; k[l2 + 4 >> 2] = 0; k[l2 + 8 >> 2] = 0; k[l2 + 12 >> 2] = 0; k[l2 + 16 >> 2] = 0; k[e2 >> 2] = 36024; k[e2 + 136 >> 2] = m2; k[e2 + 140 >> 2] = f2; k[e2 + 144 >> 2] = n2; k[e2 + 148 >> 2] = a2; k[e2 + 152 >> 2] = c2; k[e2 + 156 >> 2] = d2; k[e2 + 160 >> 2] = 64; a2 = e2 + 164 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; k[a2 + 12 >> 2] = 0; k[e2 + 180 >> 2] = k[b2 >> 2]; k[e2 + 184 >> 2] = 0; k[e2 + 188 >> 2] = 0; k[e2 + 192 >> 2] = 0; a2 = e2 + 4576 | 0; c2 = e2 + 196 | 0; do { k[c2 >> 2] = 0; k[c2 + 4 >> 2] = 0; j[c2 + 8 >> 1] = 0; j[c2 + 10 >> 1] = 1; c2 = c2 + 12 | 0; } while ((c2 | 0) != (a2 | 0)); k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; j[a2 + 8 >> 1] = 0; i2[a2 + 10 >> 0] = 0; b2 = e2 + 4588 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; j[b2 + 8 >> 1] = 0; i2[b2 + 10 >> 0] = 0; b2 = e2 + 4600 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[b2 + 16 >> 2] = 0; k[b2 + 20 >> 2] = 0; k[b2 + 24 >> 2] = 0; i2[b2 + 28 >> 0] = 0; if (!(k[e2 + 32 >> 2] | 0)) k[e2 + 24 >> 2] = 1; b2 = e2; return b2 | 0; } else { a2 = 0; while (1) if ((1 << a2 | 0) < (f2 | 0)) a2 = a2 + 1 | 0; else break; c2 = 0; while (1) if ((1 << c2 | 0) < (m2 | 0)) c2 = c2 + 1 | 0; else break; d2 = ((c2 | 0) < 8 ? 8 : c2) + c2 << 1; e2 = lj(4632) | 0; k[e2 + 4 >> 2] = 0; g2 = e2 + 8 | 0; h2 = b2; l2 = g2 + 84 | 0; do { k[g2 >> 2] = k[h2 >> 2]; g2 = g2 + 4 | 0; h2 = h2 + 4 | 0; } while ((g2 | 0) < (l2 | 0)); k[e2 + 92 >> 2] = 0; k[e2 + 96 >> 2] = 0; k[e2 + 100 >> 2] = 32; k[e2 + 104 >> 2] = 0; k[e2 + 108 >> 2] = 0; i2[e2 + 112 >> 0] = 0; l2 = e2 + 116 | 0; k[l2 >> 2] = 0; k[l2 + 4 >> 2] = 0; k[l2 + 8 >> 2] = 0; k[l2 + 12 >> 2] = 0; k[l2 + 16 >> 2] = 0; k[e2 >> 2] = 35884; k[e2 + 136 >> 2] = m2; k[e2 + 140 >> 2] = f2; k[e2 + 144 >> 2] = n2; k[e2 + 148 >> 2] = a2; k[e2 + 152 >> 2] = c2; k[e2 + 156 >> 2] = d2; k[e2 + 160 >> 2] = 64; a2 = e2 + 164 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; k[a2 + 12 >> 2] = 0; k[e2 + 180 >> 2] = k[b2 >> 2]; k[e2 + 184 >> 2] = 0; k[e2 + 188 >> 2] = 0; k[e2 + 192 >> 2] = 0; a2 = e2 + 4576 | 0; c2 = e2 + 196 | 0; do { k[c2 >> 2] = 0; k[c2 + 4 >> 2] = 0; j[c2 + 8 >> 1] = 0; j[c2 + 10 >> 1] = 1; c2 = c2 + 12 | 0; } while ((c2 | 0) != (a2 | 0)); k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; j[a2 + 8 >> 1] = 0; i2[a2 + 10 >> 0] = 0; b2 = e2 + 4588 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; j[b2 + 8 >> 1] = 0; i2[b2 + 10 >> 0] = 0; b2 = e2 + 4600 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[b2 + 16 >> 2] = 0; k[b2 + 20 >> 2] = 0; k[b2 + 24 >> 2] = 0; i2[b2 + 28 >> 0] = 0; if (!(k[e2 + 32 >> 2] | 0)) k[e2 + 24 >> 2] = 1; b2 = e2; return b2 | 0; } } if ((a2 | 0) >= 17) { b2 = 0; return b2 | 0; } f2 = n2 << 1; f2 = ((f2 + m2 | 0) / (f2 | 1 | 0) | 0) + 1 | 0; if (c2) { a2 = 0; while (1) if ((1 << a2 | 0) < (f2 | 0)) a2 = a2 + 1 | 0; else break; c2 = 0; while (1) if ((1 << c2 | 0) < (m2 | 0)) c2 = c2 + 1 | 0; else break; d2 = ((c2 | 0) < 8 ? 8 : c2) + c2 << 1; e2 = lj(4632) | 0; k[e2 + 4 >> 2] = 0; g2 = e2 + 8 | 0; h2 = b2; l2 = g2 + 84 | 0; do { k[g2 >> 2] = k[h2 >> 2]; g2 = g2 + 4 | 0; h2 = h2 + 4 | 0; } while ((g2 | 0) < (l2 | 0)); k[e2 + 92 >> 2] = 0; k[e2 + 96 >> 2] = 0; k[e2 + 100 >> 2] = 32; k[e2 + 104 >> 2] = 0; k[e2 + 108 >> 2] = 0; i2[e2 + 112 >> 0] = 0; l2 = e2 + 116 | 0; k[l2 >> 2] = 0; k[l2 + 4 >> 2] = 0; k[l2 + 8 >> 2] = 0; k[l2 + 12 >> 2] = 0; k[l2 + 16 >> 2] = 0; k[e2 >> 2] = 36052; k[e2 + 136 >> 2] = m2; k[e2 + 140 >> 2] = f2; k[e2 + 144 >> 2] = n2; k[e2 + 148 >> 2] = a2; k[e2 + 152 >> 2] = c2; k[e2 + 156 >> 2] = d2; k[e2 + 160 >> 2] = 64; a2 = e2 + 164 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; k[a2 + 12 >> 2] = 0; k[e2 + 180 >> 2] = k[b2 >> 2]; k[e2 + 184 >> 2] = 0; k[e2 + 188 >> 2] = 0; k[e2 + 192 >> 2] = 0; a2 = e2 + 4576 | 0; c2 = e2 + 196 | 0; do { k[c2 >> 2] = 0; k[c2 + 4 >> 2] = 0; j[c2 + 8 >> 1] = 0; j[c2 + 10 >> 1] = 1; c2 = c2 + 12 | 0; } while ((c2 | 0) != (a2 | 0)); k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; j[a2 + 8 >> 1] = 0; i2[a2 + 10 >> 0] = 0; b2 = e2 + 4588 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; j[b2 + 8 >> 1] = 0; i2[b2 + 10 >> 0] = 0; b2 = e2 + 4600 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[b2 + 16 >> 2] = 0; k[b2 + 20 >> 2] = 0; k[b2 + 24 >> 2] = 0; i2[b2 + 28 >> 0] = 0; if (!(k[e2 + 32 >> 2] | 0)) k[e2 + 24 >> 2] = 1; b2 = e2; return b2 | 0; } else { a2 = 0; while (1) if ((1 << a2 | 0) < (f2 | 0)) a2 = a2 + 1 | 0; else break; c2 = 0; while (1) if ((1 << c2 | 0) < (m2 | 0)) c2 = c2 + 1 | 0; else break; d2 = ((c2 | 0) < 8 ? 8 : c2) + c2 << 1; e2 = lj(4632) | 0; k[e2 + 4 >> 2] = 0; g2 = e2 + 8 | 0; h2 = b2; l2 = g2 + 84 | 0; do { k[g2 >> 2] = k[h2 >> 2]; g2 = g2 + 4 | 0; h2 = h2 + 4 | 0; } while ((g2 | 0) < (l2 | 0)); k[e2 + 92 >> 2] = 0; k[e2 + 96 >> 2] = 0; k[e2 + 100 >> 2] = 32; k[e2 + 104 >> 2] = 0; k[e2 + 108 >> 2] = 0; i2[e2 + 112 >> 0] = 0; l2 = e2 + 116 | 0; k[l2 >> 2] = 0; k[l2 + 4 >> 2] = 0; k[l2 + 8 >> 2] = 0; k[l2 + 12 >> 2] = 0; k[l2 + 16 >> 2] = 0; k[e2 >> 2] = 36080; k[e2 + 136 >> 2] = m2; k[e2 + 140 >> 2] = f2; k[e2 + 144 >> 2] = n2; k[e2 + 148 >> 2] = a2; k[e2 + 152 >> 2] = c2; k[e2 + 156 >> 2] = d2; k[e2 + 160 >> 2] = 64; a2 = e2 + 164 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; k[a2 + 12 >> 2] = 0; k[e2 + 180 >> 2] = k[b2 >> 2]; k[e2 + 184 >> 2] = 0; k[e2 + 188 >> 2] = 0; k[e2 + 192 >> 2] = 0; a2 = e2 + 4576 | 0; c2 = e2 + 196 | 0; do { k[c2 >> 2] = 0; k[c2 + 4 >> 2] = 0; j[c2 + 8 >> 1] = 0; j[c2 + 10 >> 1] = 1; c2 = c2 + 12 | 0; } while ((c2 | 0) != (a2 | 0)); k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; j[a2 + 8 >> 1] = 0; i2[a2 + 10 >> 0] = 0; b2 = e2 + 4588 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; j[b2 + 8 >> 1] = 0; i2[b2 + 10 >> 0] = 0; b2 = e2 + 4600 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[b2 + 16 >> 2] = 0; k[b2 + 20 >> 2] = 0; k[b2 + 24 >> 2] = 0; i2[b2 + 28 >> 0] = 0; if (!(k[e2 + 32 >> 2] | 0)) k[e2 + 24 >> 2] = 1; b2 = e2; return b2 | 0; } return 0; } function Bc() { var a2 = 0, b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; a2 = 2832; do { k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; a2 = a2 + 8 | 0; } while ((a2 | 0) != 4880); sw(2832, 0, 2048) | 0; a2 = 0; do { g2 = 2832 + (a2 + 128 << 3) | 0; k[g2 >> 2] = 0; k[g2 + 4 >> 2] = 1; a2 = a2 + 1 | 0; } while ((a2 | 0) != 128); a2 = 3088; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3096; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3104; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3112; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3120; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3128; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3136; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3144; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3152; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3160; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3168; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3176; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3184; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3192; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3200; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3208; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3216; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3224; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3232; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3240; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3248; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3256; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3264; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3272; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3280; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3288; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3296; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3304; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3312; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3320; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3328; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 3336; k[a2 >> 2] = 1; k[a2 + 4 >> 2] = 3; a2 = 2896; k[a2 >> 2] = 2; k[a2 + 4 >> 2] = 5; a2 = 2904; k[a2 >> 2] = 2; k[a2 + 4 >> 2] = 5; a2 = 2912; k[a2 >> 2] = 2; k[a2 + 4 >> 2] = 5; a2 = 2920; k[a2 >> 2] = 2; k[a2 + 4 >> 2] = 5; a2 = 2928; k[a2 >> 2] = 2; k[a2 + 4 >> 2] = 5; a2 = 2936; k[a2 >> 2] = 2; k[a2 + 4 >> 2] = 5; a2 = 2944; k[a2 >> 2] = 2; k[a2 + 4 >> 2] = 5; a2 = 2952; k[a2 >> 2] = 2; k[a2 + 4 >> 2] = 5; a2 = 2848; k[a2 >> 2] = 3; k[a2 + 4 >> 2] = 7; a2 = 2856; k[a2 >> 2] = 3; k[a2 + 4 >> 2] = 7; a2 = 0; do { g2 = 2832 + (a2 + 64 << 3) | 0; k[g2 >> 2] = -1; k[g2 + 4 >> 2] = 2; a2 = a2 + 1 | 0; } while ((a2 | 0) != 64); a2 = 2960; k[a2 >> 2] = -2; k[a2 + 4 >> 2] = 4; a2 = 2968; k[a2 >> 2] = -2; k[a2 + 4 >> 2] = 4; a2 = 2976; k[a2 >> 2] = -2; k[a2 + 4 >> 2] = 4; a2 = 2984; k[a2 >> 2] = -2; k[a2 + 4 >> 2] = 4; a2 = 2992; k[a2 >> 2] = -2; k[a2 + 4 >> 2] = 4; a2 = 3e3; k[a2 >> 2] = -2; k[a2 + 4 >> 2] = 4; a2 = 3008; k[a2 >> 2] = -2; k[a2 + 4 >> 2] = 4; a2 = 3016; k[a2 >> 2] = -2; k[a2 + 4 >> 2] = 4; a2 = 3024; k[a2 >> 2] = -2; k[a2 + 4 >> 2] = 4; a2 = 3032; k[a2 >> 2] = -2; k[a2 + 4 >> 2] = 4; a2 = 3040; k[a2 >> 2] = -2; k[a2 + 4 >> 2] = 4; a2 = 3048; k[a2 >> 2] = -2; k[a2 + 4 >> 2] = 4; a2 = 3056; k[a2 >> 2] = -2; k[a2 + 4 >> 2] = 4; a2 = 3064; k[a2 >> 2] = -2; k[a2 + 4 >> 2] = 4; a2 = 3072; k[a2 >> 2] = -2; k[a2 + 4 >> 2] = 4; a2 = 3080; k[a2 >> 2] = -2; k[a2 + 4 >> 2] = 4; a2 = 2864; k[a2 >> 2] = -3; k[a2 + 4 >> 2] = 6; a2 = 2872; k[a2 >> 2] = -3; k[a2 + 4 >> 2] = 6; a2 = 2880; k[a2 >> 2] = -3; k[a2 + 4 >> 2] = 6; a2 = 2888; k[a2 >> 2] = -3; k[a2 + 4 >> 2] = 6; a2 = 2840; k[a2 >> 2] = -4; k[a2 + 4 >> 2] = 8; a2 = 4880; do { k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; a2 = a2 + 8 | 0; } while ((a2 | 0) != 6928); sw(4880, 0, 2048) | 0; c2 = 2; a2 = 0; e2 = 0; f2 = 0; while (1) { c2 = c2 << 16 >> 16; b2 = 8 - c2 | 0; d2 = 1 << b2; if ((b2 | 0) != 31) { a2 = (a2 & 1 | 2) << b2; b2 = 0; do { g2 = 4880 + (b2 + a2 << 3) | 0; k[g2 >> 2] = e2; k[g2 + 4 >> 2] = c2; b2 = b2 + 1 | 0; } while ((b2 | 0) < (d2 | 0)); } b2 = (f2 << 16) + 65536 | 0; a2 = b2 >> 31 ^ b2 >> 15; f2 = f2 + 1 | 0; if ((f2 | 0) == 7) { b2 = 2; e2 = 1; f2 = -1; g2 = -1; break; } else { c2 = (a2 >> 1) + 2 | 0; e2 = b2 >> 16; } } while (1) { c2 = b2 << 16 >> 16; a2 = 8 - c2 | 0; d2 = 1 << a2; if ((a2 | 0) != 31) { a2 = (e2 & 1 | 2) << a2; b2 = 0; do { e2 = 4880 + (b2 + a2 << 3) | 0; k[e2 >> 2] = f2; k[e2 + 4 >> 2] = c2; b2 = b2 + 1 | 0; } while ((b2 | 0) < (d2 | 0)); } a2 = (g2 << 16) + -65536 | 0; e2 = a2 >> 31 ^ a2 >> 15; b2 = (e2 >> 1) + 2 | 0; if ((b2 | 0) > 8) { a2 = 6928; break; } else { f2 = a2 >> 16; g2 = g2 + -1 | 0; } } do { k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; a2 = a2 + 8 | 0; } while ((a2 | 0) != 8976); sw(6928, 0, 2048) | 0; e2 = 3; a2 = 0; d2 = 0; f2 = 0; while (1) { b2 = 8 - e2 | 0; c2 = 1 << b2; if ((b2 | 0) != 31) { a2 = (a2 & 3 | 4) << b2; b2 = 0; do { g2 = 6928 + (b2 + a2 << 3) | 0; k[g2 >> 2] = d2; k[g2 + 4 >> 2] = e2; b2 = b2 + 1 | 0; } while ((b2 | 0) < (c2 | 0)); } b2 = (f2 << 16) + 65536 | 0; a2 = b2 >> 31 ^ b2 >> 15; f2 = f2 + 1 | 0; if ((f2 | 0) == 12) { e2 = 3; b2 = 1; d2 = -1; f2 = -1; break; } else { e2 = (a2 >> 2) + 3 | 0; d2 = b2 >> 16; } } while (1) { a2 = 8 - e2 | 0; c2 = 1 << a2; if ((a2 | 0) != 31) { a2 = (b2 & 3 | 4) << a2; b2 = 0; do { g2 = 6928 + (b2 + a2 << 3) | 0; k[g2 >> 2] = d2; k[g2 + 4 >> 2] = e2; b2 = b2 + 1 | 0; } while ((b2 | 0) < (c2 | 0)); } a2 = (f2 << 16) + -65536 | 0; b2 = a2 >> 31 ^ a2 >> 15; e2 = (b2 >> 2) + 3 | 0; if ((e2 | 0) > 8) { a2 = 8976; break; } else { d2 = a2 >> 16; f2 = f2 + -1 | 0; } } do { k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; a2 = a2 + 8 | 0; } while ((a2 | 0) != 11024); sw(8976, 0, 2048) | 0; e2 = 4; a2 = 0; d2 = 0; f2 = 0; while (1) { b2 = 8 - e2 | 0; c2 = 1 << b2; if ((b2 | 0) != 31) { a2 = (a2 & 7 | 8) << b2; b2 = 0; do { g2 = 8976 + (b2 + a2 << 3) | 0; k[g2 >> 2] = d2; k[g2 + 4 >> 2] = e2; b2 = b2 + 1 | 0; } while ((b2 | 0) < (c2 | 0)); } b2 = (f2 << 16) + 65536 | 0; a2 = b2 >> 31 ^ b2 >> 15; f2 = f2 + 1 | 0; if ((f2 | 0) == 20) { e2 = 4; b2 = 1; d2 = -1; f2 = -1; break; } else { e2 = (a2 >> 3) + 4 | 0; d2 = b2 >> 16; } } while (1) { a2 = 8 - e2 | 0; c2 = 1 << a2; if ((a2 | 0) != 31) { a2 = (b2 & 7 | 8) << a2; b2 = 0; do { g2 = 8976 + (b2 + a2 << 3) | 0; k[g2 >> 2] = d2; k[g2 + 4 >> 2] = e2; b2 = b2 + 1 | 0; } while ((b2 | 0) < (c2 | 0)); } a2 = (f2 << 16) + -65536 | 0; b2 = a2 >> 31 ^ a2 >> 15; e2 = (b2 >> 3) + 4 | 0; if ((e2 | 0) > 8) { a2 = 11024; break; } else { d2 = a2 >> 16; f2 = f2 + -1 | 0; } } do { k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; a2 = a2 + 8 | 0; } while ((a2 | 0) != 13072); sw(11024, 0, 2048) | 0; e2 = 5; a2 = 0; d2 = 0; f2 = 0; while (1) { b2 = 8 - e2 | 0; c2 = 1 << b2; if ((b2 | 0) != 31) { a2 = (a2 & 15 | 16) << b2; b2 = 0; do { g2 = 11024 + (b2 + a2 << 3) | 0; k[g2 >> 2] = d2; k[g2 + 4 >> 2] = e2; b2 = b2 + 1 | 0; } while ((b2 | 0) < (c2 | 0)); } b2 = (f2 << 16) + 65536 | 0; a2 = b2 >> 31 ^ b2 >> 15; f2 = f2 + 1 | 0; if ((f2 | 0) == 32) { e2 = 5; b2 = 1; d2 = -1; f2 = -1; break; } else { e2 = (a2 >> 4) + 5 | 0; d2 = b2 >> 16; } } while (1) { a2 = 8 - e2 | 0; c2 = 1 << a2; if ((a2 | 0) != 31) { a2 = (b2 & 15 | 16) << a2; b2 = 0; do { g2 = 11024 + (b2 + a2 << 3) | 0; k[g2 >> 2] = d2; k[g2 + 4 >> 2] = e2; b2 = b2 + 1 | 0; } while ((b2 | 0) < (c2 | 0)); } a2 = (f2 << 16) + -65536 | 0; b2 = a2 >> 31 ^ a2 >> 15; e2 = (b2 >> 4) + 5 | 0; if ((e2 | 0) > 8) { a2 = 13072; break; } else { d2 = a2 >> 16; f2 = f2 + -1 | 0; } } do { k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; a2 = a2 + 8 | 0; } while ((a2 | 0) != 15120); sw(13072, 0, 2048) | 0; e2 = 6; a2 = 0; d2 = 0; f2 = 0; while (1) { b2 = 8 - e2 | 0; c2 = 1 << b2; if ((b2 | 0) != 31) { a2 = (a2 & 31 | 32) << b2; b2 = 0; do { g2 = 13072 + (b2 + a2 << 3) | 0; k[g2 >> 2] = d2; k[g2 + 4 >> 2] = e2; b2 = b2 + 1 | 0; } while ((b2 | 0) < (c2 | 0)); } b2 = (f2 << 16) + 65536 | 0; a2 = b2 >> 31 ^ b2 >> 15; f2 = f2 + 1 | 0; if ((f2 | 0) == 48) { e2 = 6; b2 = 1; d2 = -1; f2 = -1; break; } else { e2 = (a2 >> 5) + 6 | 0; d2 = b2 >> 16; } } while (1) { a2 = 8 - e2 | 0; c2 = 1 << a2; if ((a2 | 0) != 31) { a2 = (b2 & 31 | 32) << a2; b2 = 0; do { g2 = 13072 + (b2 + a2 << 3) | 0; k[g2 >> 2] = d2; k[g2 + 4 >> 2] = e2; b2 = b2 + 1 | 0; } while ((b2 | 0) < (c2 | 0)); } a2 = (f2 << 16) + -65536 | 0; b2 = a2 >> 31 ^ a2 >> 15; e2 = (b2 >> 5) + 6 | 0; if ((e2 | 0) > 8) { a2 = 15120; break; } else { d2 = a2 >> 16; f2 = f2 + -1 | 0; } } do { k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; a2 = a2 + 8 | 0; } while ((a2 | 0) != 17168); sw(15120, 0, 2048) | 0; e2 = 7; a2 = 0; d2 = 0; f2 = 0; while (1) { b2 = 8 - e2 | 0; c2 = 1 << b2; if ((b2 | 0) != 31) { a2 = (a2 & 63 | 64) << b2; b2 = 0; do { g2 = 15120 + (b2 + a2 << 3) | 0; k[g2 >> 2] = d2; k[g2 + 4 >> 2] = e2; b2 = b2 + 1 | 0; } while ((b2 | 0) < (c2 | 0)); } b2 = (f2 << 16) + 65536 | 0; a2 = b2 >> 31 ^ b2 >> 15; f2 = f2 + 1 | 0; if ((f2 | 0) == 64) { e2 = 7; b2 = 1; d2 = -1; f2 = -1; break; } else { e2 = (a2 >> 6) + 7 | 0; d2 = b2 >> 16; } } while (1) { a2 = 8 - e2 | 0; c2 = 1 << a2; if ((a2 | 0) != 31) { a2 = (b2 & 63 | 64) << a2; b2 = 0; do { g2 = 15120 + (b2 + a2 << 3) | 0; k[g2 >> 2] = d2; k[g2 + 4 >> 2] = e2; b2 = b2 + 1 | 0; } while ((b2 | 0) < (c2 | 0)); } a2 = (f2 << 16) + -65536 | 0; b2 = a2 >> 31 ^ a2 >> 15; e2 = (b2 >> 6) + 7 | 0; if ((e2 | 0) > 8) { a2 = 17168; break; } else { d2 = a2 >> 16; f2 = f2 + -1 | 0; } } do { k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; a2 = a2 + 8 | 0; } while ((a2 | 0) != 19216); sw(17168, 0, 2048) | 0; e2 = 8; a2 = 0; d2 = 0; f2 = 0; while (1) { b2 = 8 - e2 | 0; c2 = 1 << b2; if ((b2 | 0) != 31) { a2 = (a2 & 127 | 128) << b2; b2 = 0; do { g2 = 17168 + (b2 + a2 << 3) | 0; k[g2 >> 2] = d2; k[g2 + 4 >> 2] = e2; b2 = b2 + 1 | 0; } while ((b2 | 0) < (c2 | 0)); } b2 = (f2 << 16) + 65536 | 0; a2 = b2 >> 31 ^ b2 >> 15; f2 = f2 + 1 | 0; if ((f2 | 0) == 64) { f2 = 8; d2 = 1; e2 = -1; g2 = -1; break; } else { e2 = (a2 >> 7) + 8 | 0; d2 = b2 >> 16; } } while (1) { a2 = 8 - f2 | 0; c2 = 1 << a2; if ((a2 | 0) != 31) { a2 = (d2 & 127 | 128) << a2; b2 = 0; do { d2 = 17168 + (b2 + a2 << 3) | 0; k[d2 >> 2] = e2; k[d2 + 4 >> 2] = f2; b2 = b2 + 1 | 0; } while ((b2 | 0) < (c2 | 0)); } b2 = (g2 << 16) + -65536 | 0; d2 = b2 >> 31 ^ b2 >> 15; a2 = d2 >> 7; if ((a2 | 0) > 0) { a2 = 19216; break; } else { f2 = a2 + 8 | 0; e2 = b2 >> 16; g2 = g2 + -1 | 0; } } do { k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; a2 = a2 + 8 | 0; } while ((a2 | 0) != 21264); sw(19216, 0, 2048) | 0; a2 = 21264; do { k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; a2 = a2 + 8 | 0; } while ((a2 | 0) != 23312); sw(21264, 0, 2048) | 0; a2 = 23312; do { k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; a2 = a2 + 8 | 0; } while ((a2 | 0) != 25360); sw(23312, 0, 2048) | 0; a2 = 25360; do { k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; a2 = a2 + 8 | 0; } while ((a2 | 0) != 27408); sw(25360, 0, 2048) | 0; a2 = 27408; do { k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; a2 = a2 + 8 | 0; } while ((a2 | 0) != 29456); sw(27408, 0, 2048) | 0; a2 = 29456; do { k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; a2 = a2 + 8 | 0; } while ((a2 | 0) != 31504); sw(29456, 0, 2048) | 0; a2 = 31504; do { k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; a2 = a2 + 8 | 0; } while ((a2 | 0) != 33552); sw(31504, 0, 2048) | 0; a2 = 33552; do { k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; a2 = a2 + 8 | 0; } while ((a2 | 0) != 35600); sw(33552, 0, 2048) | 0; wc(35600, 8); tb(179, 35600, w | 0) | 0; wc(35612, 10); tb(179, 35612, w | 0) | 0; wc(35624, 12); tb(179, 35624, w | 0) | 0; wc(35636, 16); tb(179, 35636, w | 0) | 0; return; } function Cc(a2) { a2 = a2 | 0; var b2 = 0; b2 = k[a2 >> 2] | 0; if (!b2) return; a2 = a2 + 4 | 0; if ((k[a2 >> 2] | 0) != (b2 | 0)) k[a2 >> 2] = b2; mj(b2); return; } function Dc(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 36080; b2 = k[a2 + 4616 >> 2] | 0; if (b2) { c2 = a2 + 4620 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36612; b2 = k[a2 + 120 >> 2] | 0; if (b2) { c2 = a2 + 124 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = a2 + 92 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); a2 = a2 + 4 | 0; b2 = k[a2 >> 2] | 0; k[a2 >> 2] = 0; if (!b2) return; Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); return; } function Ec(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 36080; b2 = k[a2 + 4616 >> 2] | 0; if (b2) { c2 = a2 + 4620 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36612; b2 = k[a2 + 120 >> 2] | 0; if (b2) { c2 = a2 + 124 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = a2 + 92 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); c2 = a2 + 4 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (!b2) { mj(a2); return; } Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); mj(a2); return; } function Fc(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0; g2 = r; r = r + 32 | 0; l2 = g2; Oi(l2, k[a2 + 136 >> 2] | 0, k[a2 + 144 >> 2] | 0); h2 = k[b2 + 4 >> 2] | 0; f2 = k[b2 + 8 >> 2] | 0; f2 = (f2 | 0) == 0 ? k[l2 + 8 >> 2] | 0 : f2; e2 = k[b2 + 12 >> 2] | 0; e2 = (e2 | 0) == 0 ? k[l2 + 12 >> 2] | 0 : e2; c2 = k[b2 + 16 >> 2] | 0; d2 = k[l2 + 16 >> 2] | 0; k[a2 + 184 >> 2] = (h2 | 0) == 0 ? k[l2 + 4 >> 2] | 0 : h2; k[a2 + 188 >> 2] = f2; k[a2 + 192 >> 2] = e2; re(a2); e2 = a2 + 140 | 0; b2 = (k[e2 >> 2] | 0) + 32 | 0; b2 = (b2 | 0) < 128 ? 2 : (b2 | 0) / 64 | 0; f2 = 0; do { k[a2 + 196 + (f2 * 12 | 0) >> 2] = b2; k[a2 + 196 + (f2 * 12 | 0) + 4 >> 2] = 0; j[a2 + 196 + (f2 * 12 | 0) + 8 >> 1] = 0; j[a2 + 196 + (f2 * 12 | 0) + 10 >> 1] = 1; f2 = f2 + 1 | 0; } while ((f2 | 0) != 365); h2 = (k[e2 >> 2] | 0) + 32 | 0; h2 = (h2 | 0) < 128 ? 2 : (h2 | 0) / 64 | 0; l2 = ((c2 | 0) == 0 ? d2 : c2) & 255; k[a2 + 4576 >> 2] = h2; k[a2 + 4580 >> 2] = 0; i2[a2 + 4584 >> 0] = l2; i2[a2 + 4585 >> 0] = 1; i2[a2 + 4586 >> 0] = 0; k[a2 + 4588 >> 2] = h2; k[a2 + 4592 >> 2] = 1; i2[a2 + 4596 >> 0] = l2; i2[a2 + 4597 >> 0] = 1; i2[a2 + 4598 >> 0] = 0; k[a2 + 4600 >> 2] = 0; r = g2; return; } function Gc(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; n2 = r; r = r + 16 | 0; l2 = n2; h2 = a2 + 92 | 0; g2 = k[b2 >> 2] | 0; k[b2 >> 2] = 0; b2 = k[h2 >> 2] | 0; k[h2 >> 2] = g2; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); k[l2 >> 2] = 0; k[l2 + 4 >> 2] = d2; h2 = c2 + 8 | 0; k[l2 + 8 >> 2] = k[h2 >> 2]; if (d2) { b2 = lj(4624) | 0; d2 = a2 + 8 | 0; e2 = b2 + 4 | 0; f2 = d2; g2 = e2 + 84 | 0; do { k[e2 >> 2] = k[f2 >> 2]; e2 = e2 + 4 | 0; f2 = f2 + 4 | 0; } while ((e2 | 0) < (g2 | 0)); e2 = b2 + 88 | 0; g2 = e2 + 40 | 0; do { k[e2 >> 2] = 0; e2 = e2 + 4 | 0; } while ((e2 | 0) < (g2 | 0)); k[b2 >> 2] = 35856; k[b2 + 128 >> 2] = k[a2 + 136 >> 2]; k[b2 + 132 >> 2] = k[a2 + 140 >> 2]; k[b2 + 136 >> 2] = k[a2 + 144 >> 2]; k[b2 + 140 >> 2] = k[a2 + 148 >> 2]; k[b2 + 144 >> 2] = k[a2 + 152 >> 2]; k[b2 + 148 >> 2] = k[a2 + 156 >> 2]; k[b2 + 152 >> 2] = k[a2 + 160 >> 2]; e2 = b2 + 156 | 0; k[e2 >> 2] = 0; k[e2 + 4 >> 2] = 0; k[e2 + 8 >> 2] = 0; k[e2 + 12 >> 2] = 0; k[b2 + 172 >> 2] = k[d2 >> 2]; k[b2 + 176 >> 2] = 0; k[b2 + 180 >> 2] = 0; k[b2 + 184 >> 2] = 0; e2 = b2 + 4568 | 0; d2 = b2 + 188 | 0; do { k[d2 >> 2] = 0; k[d2 + 4 >> 2] = 0; j[d2 + 8 >> 1] = 0; j[d2 + 10 >> 1] = 1; d2 = d2 + 12 | 0; } while ((d2 | 0) != (e2 | 0)); f2 = a2 + 4 | 0; k[e2 >> 2] = 0; k[e2 + 4 >> 2] = 0; j[e2 + 8 >> 1] = 0; i2[e2 + 10 >> 0] = 0; g2 = b2 + 4580 | 0; k[g2 >> 2] = 0; k[g2 + 4 >> 2] = 0; j[g2 + 8 >> 1] = 0; i2[g2 + 10 >> 0] = 0; g2 = b2 + 4592 | 0; k[g2 >> 2] = 0; k[g2 + 4 >> 2] = 0; k[g2 + 8 >> 2] = 0; k[g2 + 12 >> 2] = 0; k[g2 + 16 >> 2] = 0; k[g2 + 20 >> 2] = 0; k[g2 + 24 >> 2] = 0; i2[g2 + 28 >> 0] = 0; if (!(k[b2 + 28 >> 2] | 0)) k[b2 + 20 >> 2] = 1; d2 = k[f2 >> 2] | 0; k[f2 >> 2] = b2; if (d2) { Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); b2 = k[f2 >> 2] | 0; } ee(b2, l2); } l2 = a2 + 100 | 0; k[l2 >> 2] = 32; k[a2 + 96 >> 2] = 0; b2 = k[c2 >> 2] | 0; if (!b2) { k[a2 + 108 >> 2] = k[c2 + 4 >> 2]; k[a2 + 104 >> 2] = k[h2 >> 2]; ge(a2); m2 = a2 + 116 | 0; m2 = k[m2 >> 2] | 0; a2 = k[l2 >> 2] | 0; a2 = a2 + -32 | 0; a2 = (a2 | 0) / 8 | 0; a2 = m2 - a2 | 0; r = n2; return a2 | 0; } k[a2 + 132 >> 2] = b2; e2 = a2 + 120 | 0; h2 = a2 + 124 | 0; d2 = k[h2 >> 2] | 0; b2 = k[e2 >> 2] | 0; f2 = b2; g2 = d2 - f2 | 0; if (g2 >>> 0 >= 4e3) { if (g2 >>> 0 > 4e3 ? (m2 = b2 + 4e3 | 0, (d2 | 0) != (m2 | 0)) : 0) { k[h2 >> 2] = m2; d2 = m2; } } else { fe(e2, 4e3 - g2 | 0); b2 = k[e2 >> 2] | 0; f2 = b2; d2 = k[h2 >> 2] | 0; } k[a2 + 108 >> 2] = f2; k[a2 + 104 >> 2] = d2 - b2; ge(a2); m2 = a2 + 116 | 0; m2 = k[m2 >> 2] | 0; a2 = k[l2 >> 2] | 0; a2 = a2 + -32 | 0; a2 = (a2 | 0) / 8 | 0; a2 = m2 - a2 | 0; r = n2; return a2 | 0; } function Hc(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; u2 = r; r = r + 352 | 0; v2 = u2 + 328 | 0; y2 = u2 + 192 | 0; c2 = u2 + 343 | 0; d2 = u2 + 342 | 0; e2 = u2 + 341 | 0; f2 = u2 + 340 | 0; o2 = u2 + 176 | 0; h2 = u2 + 168 | 0; j2 = u2 + 160 | 0; l2 = u2 + 152 | 0; t2 = u2; q2 = u2 + 136 | 0; if ((k[a2 + 32 >> 2] | 0) != 0 ? (k[a2 + 24 >> 2] | 0) != 1 : 0) { p2 = a2 + 8 | 0; s2 = a2 + 36 | 0; g2 = k[s2 >> 2] | 0; if (!g2) { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[c2 >> 0] | 0; Ja(37, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } a2 = k[a2 + 16 >> 2] | 0; if ((a2 | 0) == 16) switch (g2 | 0) { case 1: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[d2 >> 0] | 0; Ja(38, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[e2 >> 0] | 0; Ja(39, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[f2 >> 0] | 0; Ja(40, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = y2 + 56 | 0; e2 = y2 + 4 | 0; k[y2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, y2 + 56 | 0, e2 | 0); u2 = x; x = 0; if (u2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[y2 + 128 >> 2] = 0; k[y2 + 132 >> 2] = -1; k[y2 >> 2] = 36200; k[y2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); u2 = x; x = 0; do if (u2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = y2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[y2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); u2 = x; x = 0; if (u2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, y2 | 0, 49007, 21) | 0; v2 = x; x = 0; do if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, o2 | 0, e2 | 0); v2 = x; x = 0; if (!(v2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, o2 | 0); v2 = x; x = 0; if (v2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(o2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 34; while (0); if ((z2 | 0) == 34) a2 = Wa() | 0; k[y2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } if ((a2 | 0) <= 8) { a2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, a2 | 0, 8, 35648); z2 = x; x = 0; if (!(z2 & 1)) ub(a2 | 0, 824, 96); z2 = Wa() | 0; Ua(a2 | 0); fb(z2 | 0); } c2 = 16 - a2 | 0; switch (g2 | 0) { case 1: { a2 = lj(60) | 0; k[h2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[h2 >> 2]; k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(60) | 0; k[j2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[j2 >> 2]; k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(60) | 0; k[l2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[l2 >> 2]; k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = t2 + 56 | 0; e2 = t2 + 4 | 0; k[t2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, t2 + 56 | 0, e2 | 0); y2 = x; x = 0; if (y2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[t2 + 128 >> 2] = 0; k[t2 + 132 >> 2] = -1; k[t2 >> 2] = 36200; k[t2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); y2 = x; x = 0; do if (y2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = t2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[t2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); y2 = x; x = 0; if (y2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, t2 | 0, 49007, 21) | 0; y2 = x; x = 0; do if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, q2 | 0, e2 | 0); y2 = x; x = 0; if (!(y2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, q2 | 0); y2 = x; x = 0; if (y2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(q2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 64; while (0); if ((z2 | 0) == 64) a2 = Wa() | 0; k[t2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } } c2 = k[b2 + 4 >> 2] | 0; d2 = lj(16) | 0; a2 = k[a2 + 20 >> 2] | 0; if (!c2) { z2 = k[b2 >> 2] | 0; k[d2 >> 2] = 36132; k[d2 + 4 >> 2] = z2; k[d2 + 8 >> 2] = 2; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } else { k[d2 >> 2] = 36108; k[d2 + 4 >> 2] = c2; k[d2 + 8 >> 2] = 2; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } return 0; } function Ic(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; k[a2 >> 2] = 36460; k[a2 + 4 >> 2] = c2; n2 = a2 + 8 | 0; f2 = k[c2 >> 2] | 0; l2 = c2 + 16 | 0; d2 = k[l2 >> 2] | 0; g2 = ia(d2, f2) | 0; k[n2 >> 2] = 0; o2 = a2 + 12 | 0; k[o2 >> 2] = 0; k[a2 + 16 >> 2] = 0; do if (g2) { if (!((g2 | 0) < 0 ? (x = 0, qa(178, n2 | 0), f2 = x, x = 0, f2 & 1) : 0)) m2 = 4; if ((m2 | 0) == 4 ? (h2 = g2 << 1, x = 0, j2 = ta(67, h2 | 0) | 0, f2 = x, x = 0, !(f2 & 1)) : 0) { k[n2 >> 2] = j2; f2 = j2 + (g2 << 1) | 0; k[a2 + 16 >> 2] = f2; sw(j2 | 0, 0, h2 | 0) | 0; k[o2 >> 2] = f2; f2 = k[c2 >> 2] | 0; d2 = k[l2 >> 2] | 0; break; } g2 = Wa() | 0; e2 = k[n2 >> 2] | 0; d2 = e2; if (e2) { f2 = k[o2 >> 2] | 0; if ((f2 | 0) != (e2 | 0)) k[o2 >> 2] = f2 + (~((f2 + -2 - d2 | 0) >>> 1) << 1); mj(e2); } o2 = g2; fb(o2 | 0); } while (0); g2 = a2 + 20 | 0; d2 = ia(f2 << 1, d2) | 0; k[g2 >> 2] = 0; h2 = a2 + 24 | 0; k[h2 >> 2] = 0; k[a2 + 28 >> 2] = 0; if (!d2) { o2 = a2 + 36 | 0; k[o2 >> 2] = k[b2 >> 2]; k[o2 + 4 >> 2] = k[b2 + 4 >> 2]; k[o2 + 8 >> 2] = k[b2 + 8 >> 2]; return; } if (!((d2 | 0) < 0 ? (x = 0, qa(178, g2 | 0), c2 = x, x = 0, c2 & 1) : 0)) m2 = 13; if ((m2 | 0) == 13 ? (x = 0, e2 = ta(67, d2 | 0) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) { k[h2 >> 2] = e2; k[g2 >> 2] = e2; k[a2 + 28 >> 2] = e2 + d2; do { i2[e2 >> 0] = 0; e2 = (k[h2 >> 2] | 0) + 1 | 0; k[h2 >> 2] = e2; d2 = d2 + -1 | 0; } while ((d2 | 0) != 0); o2 = a2 + 36 | 0; k[o2 >> 2] = k[b2 >> 2]; k[o2 + 4 >> 2] = k[b2 + 4 >> 2]; k[o2 + 8 >> 2] = k[b2 + 8 >> 2]; return; } f2 = Wa() | 0; e2 = k[g2 >> 2] | 0; if (e2) { if ((k[h2 >> 2] | 0) != (e2 | 0)) k[h2 >> 2] = e2; mj(e2); } e2 = k[n2 >> 2] | 0; if (!e2) { o2 = f2; fb(o2 | 0); } d2 = k[o2 >> 2] | 0; if ((d2 | 0) != (e2 | 0)) k[o2 >> 2] = d2 + (~((d2 + -2 - e2 | 0) >>> 1) << 1); mj(e2); o2 = f2; fb(o2 | 0); } function Jc(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; k[a2 >> 2] = 36436; k[a2 + 4 >> 2] = c2; n2 = a2 + 8 | 0; f2 = k[c2 >> 2] | 0; l2 = c2 + 16 | 0; d2 = k[l2 >> 2] | 0; g2 = ia(d2, f2) | 0; k[n2 >> 2] = 0; o2 = a2 + 12 | 0; k[o2 >> 2] = 0; k[a2 + 16 >> 2] = 0; do if (g2) { if (!((g2 | 0) < 0 ? (x = 0, qa(178, n2 | 0), f2 = x, x = 0, f2 & 1) : 0)) m2 = 4; if ((m2 | 0) == 4 ? (h2 = g2 << 1, x = 0, j2 = ta(67, h2 | 0) | 0, f2 = x, x = 0, !(f2 & 1)) : 0) { k[n2 >> 2] = j2; f2 = j2 + (g2 << 1) | 0; k[a2 + 16 >> 2] = f2; sw(j2 | 0, 0, h2 | 0) | 0; k[o2 >> 2] = f2; f2 = k[c2 >> 2] | 0; d2 = k[l2 >> 2] | 0; break; } g2 = Wa() | 0; e2 = k[n2 >> 2] | 0; d2 = e2; if (e2) { f2 = k[o2 >> 2] | 0; if ((f2 | 0) != (e2 | 0)) k[o2 >> 2] = f2 + (~((f2 + -2 - d2 | 0) >>> 1) << 1); mj(e2); } o2 = g2; fb(o2 | 0); } while (0); g2 = a2 + 20 | 0; d2 = ia(f2 << 1, d2) | 0; k[g2 >> 2] = 0; h2 = a2 + 24 | 0; k[h2 >> 2] = 0; k[a2 + 28 >> 2] = 0; if (!d2) { o2 = a2 + 36 | 0; k[o2 >> 2] = k[b2 >> 2]; k[o2 + 4 >> 2] = k[b2 + 4 >> 2]; k[o2 + 8 >> 2] = k[b2 + 8 >> 2]; return; } if (!((d2 | 0) < 0 ? (x = 0, qa(178, g2 | 0), c2 = x, x = 0, c2 & 1) : 0)) m2 = 13; if ((m2 | 0) == 13 ? (x = 0, e2 = ta(67, d2 | 0) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) { k[h2 >> 2] = e2; k[g2 >> 2] = e2; k[a2 + 28 >> 2] = e2 + d2; do { i2[e2 >> 0] = 0; e2 = (k[h2 >> 2] | 0) + 1 | 0; k[h2 >> 2] = e2; d2 = d2 + -1 | 0; } while ((d2 | 0) != 0); o2 = a2 + 36 | 0; k[o2 >> 2] = k[b2 >> 2]; k[o2 + 4 >> 2] = k[b2 + 4 >> 2]; k[o2 + 8 >> 2] = k[b2 + 8 >> 2]; return; } f2 = Wa() | 0; e2 = k[g2 >> 2] | 0; if (e2) { if ((k[h2 >> 2] | 0) != (e2 | 0)) k[h2 >> 2] = e2; mj(e2); } e2 = k[n2 >> 2] | 0; if (!e2) { o2 = f2; fb(o2 | 0); } d2 = k[o2 >> 2] | 0; if ((d2 | 0) != (e2 | 0)) k[o2 >> 2] = d2 + (~((d2 + -2 - e2 | 0) >>> 1) << 1); mj(e2); o2 = f2; fb(o2 | 0); } function Kc(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; k[a2 >> 2] = 36412; k[a2 + 4 >> 2] = c2; n2 = a2 + 8 | 0; f2 = k[c2 >> 2] | 0; l2 = c2 + 16 | 0; d2 = k[l2 >> 2] | 0; g2 = ia(d2, f2) | 0; k[n2 >> 2] = 0; o2 = a2 + 12 | 0; k[o2 >> 2] = 0; k[a2 + 16 >> 2] = 0; do if (g2) { if (!((g2 | 0) < 0 ? (x = 0, qa(178, n2 | 0), f2 = x, x = 0, f2 & 1) : 0)) m2 = 4; if ((m2 | 0) == 4 ? (h2 = g2 << 1, x = 0, j2 = ta(67, h2 | 0) | 0, f2 = x, x = 0, !(f2 & 1)) : 0) { k[n2 >> 2] = j2; f2 = j2 + (g2 << 1) | 0; k[a2 + 16 >> 2] = f2; sw(j2 | 0, 0, h2 | 0) | 0; k[o2 >> 2] = f2; f2 = k[c2 >> 2] | 0; d2 = k[l2 >> 2] | 0; break; } g2 = Wa() | 0; e2 = k[n2 >> 2] | 0; d2 = e2; if (e2) { f2 = k[o2 >> 2] | 0; if ((f2 | 0) != (e2 | 0)) k[o2 >> 2] = f2 + (~((f2 + -2 - d2 | 0) >>> 1) << 1); mj(e2); } o2 = g2; fb(o2 | 0); } while (0); g2 = a2 + 20 | 0; d2 = ia(f2 << 1, d2) | 0; k[g2 >> 2] = 0; h2 = a2 + 24 | 0; k[h2 >> 2] = 0; k[a2 + 28 >> 2] = 0; if (!d2) { o2 = a2 + 36 | 0; k[o2 >> 2] = k[b2 >> 2]; k[o2 + 4 >> 2] = k[b2 + 4 >> 2]; k[o2 + 8 >> 2] = k[b2 + 8 >> 2]; return; } if (!((d2 | 0) < 0 ? (x = 0, qa(178, g2 | 0), c2 = x, x = 0, c2 & 1) : 0)) m2 = 13; if ((m2 | 0) == 13 ? (x = 0, e2 = ta(67, d2 | 0) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) { k[h2 >> 2] = e2; k[g2 >> 2] = e2; k[a2 + 28 >> 2] = e2 + d2; do { i2[e2 >> 0] = 0; e2 = (k[h2 >> 2] | 0) + 1 | 0; k[h2 >> 2] = e2; d2 = d2 + -1 | 0; } while ((d2 | 0) != 0); o2 = a2 + 36 | 0; k[o2 >> 2] = k[b2 >> 2]; k[o2 + 4 >> 2] = k[b2 + 4 >> 2]; k[o2 + 8 >> 2] = k[b2 + 8 >> 2]; return; } f2 = Wa() | 0; e2 = k[g2 >> 2] | 0; if (e2) { if ((k[h2 >> 2] | 0) != (e2 | 0)) k[h2 >> 2] = e2; mj(e2); } e2 = k[n2 >> 2] | 0; if (!e2) { o2 = f2; fb(o2 | 0); } d2 = k[o2 >> 2] | 0; if ((d2 | 0) != (e2 | 0)) k[o2 >> 2] = d2 + (~((d2 + -2 - e2 | 0) >>> 1) << 1); mj(e2); o2 = f2; fb(o2 | 0); } function Lc(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; k[a2 >> 2] = 36388; k[a2 + 4 >> 2] = c2; n2 = a2 + 8 | 0; f2 = k[c2 >> 2] | 0; l2 = c2 + 16 | 0; d2 = k[l2 >> 2] | 0; g2 = ia(d2, f2) | 0; k[n2 >> 2] = 0; o2 = a2 + 12 | 0; k[o2 >> 2] = 0; k[a2 + 16 >> 2] = 0; do if (g2) { if (!((g2 | 0) < 0 ? (x = 0, qa(178, n2 | 0), f2 = x, x = 0, f2 & 1) : 0)) m2 = 4; if ((m2 | 0) == 4 ? (h2 = g2 << 1, x = 0, j2 = ta(67, h2 | 0) | 0, f2 = x, x = 0, !(f2 & 1)) : 0) { k[n2 >> 2] = j2; f2 = j2 + (g2 << 1) | 0; k[a2 + 16 >> 2] = f2; sw(j2 | 0, 0, h2 | 0) | 0; k[o2 >> 2] = f2; f2 = k[c2 >> 2] | 0; d2 = k[l2 >> 2] | 0; break; } g2 = Wa() | 0; e2 = k[n2 >> 2] | 0; d2 = e2; if (e2) { f2 = k[o2 >> 2] | 0; if ((f2 | 0) != (e2 | 0)) k[o2 >> 2] = f2 + (~((f2 + -2 - d2 | 0) >>> 1) << 1); mj(e2); } o2 = g2; fb(o2 | 0); } while (0); g2 = a2 + 20 | 0; d2 = ia(f2 << 1, d2) | 0; k[g2 >> 2] = 0; h2 = a2 + 24 | 0; k[h2 >> 2] = 0; k[a2 + 28 >> 2] = 0; if (!d2) { o2 = a2 + 36 | 0; k[o2 >> 2] = k[b2 >> 2]; k[o2 + 4 >> 2] = k[b2 + 4 >> 2]; k[o2 + 8 >> 2] = k[b2 + 8 >> 2]; return; } if (!((d2 | 0) < 0 ? (x = 0, qa(178, g2 | 0), c2 = x, x = 0, c2 & 1) : 0)) m2 = 13; if ((m2 | 0) == 13 ? (x = 0, e2 = ta(67, d2 | 0) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) { k[h2 >> 2] = e2; k[g2 >> 2] = e2; k[a2 + 28 >> 2] = e2 + d2; do { i2[e2 >> 0] = 0; e2 = (k[h2 >> 2] | 0) + 1 | 0; k[h2 >> 2] = e2; d2 = d2 + -1 | 0; } while ((d2 | 0) != 0); o2 = a2 + 36 | 0; k[o2 >> 2] = k[b2 >> 2]; k[o2 + 4 >> 2] = k[b2 + 4 >> 2]; k[o2 + 8 >> 2] = k[b2 + 8 >> 2]; return; } f2 = Wa() | 0; e2 = k[g2 >> 2] | 0; if (e2) { if ((k[h2 >> 2] | 0) != (e2 | 0)) k[h2 >> 2] = e2; mj(e2); } e2 = k[n2 >> 2] | 0; if (!e2) { o2 = f2; fb(o2 | 0); } d2 = k[o2 >> 2] | 0; if ((d2 | 0) != (e2 | 0)) k[o2 >> 2] = d2 + (~((d2 + -2 - e2 | 0) >>> 1) << 1); mj(e2); o2 = f2; fb(o2 | 0); } function Mc(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; g2 = a2 + 32 | 0; Tm(g2, b2) | 0; f2 = a2 + 44 | 0; k[f2 >> 2] = 0; h2 = a2 + 48 | 0; e2 = k[h2 >> 2] | 0; if (e2 & 8) { b2 = i2[g2 >> 0] | 0; if (!(b2 & 1)) { b2 = ((b2 & 255) >>> 1) + (g2 + 1) | 0; k[f2 >> 2] = b2; c2 = g2 + 1 | 0; d2 = g2 + 1 | 0; } else { b2 = (k[a2 + 40 >> 2] | 0) + (k[a2 + 36 >> 2] | 0) | 0; k[f2 >> 2] = b2; d2 = k[a2 + 40 >> 2] | 0; c2 = d2; } k[a2 + 8 >> 2] = c2; k[a2 + 12 >> 2] = d2; k[a2 + 16 >> 2] = b2; } if (!(e2 & 16)) return; b2 = i2[g2 >> 0] | 0; if (!(b2 & 1)) { e2 = (b2 & 255) >>> 1; k[f2 >> 2] = g2 + 1 + e2; b2 = 10; f2 = e2; } else { e2 = k[a2 + 36 >> 2] | 0; k[f2 >> 2] = (k[a2 + 40 >> 2] | 0) + e2; b2 = (k[g2 >> 2] & -2) + -1 | 0; f2 = e2; } Wm(g2, b2, 0); b2 = i2[g2 >> 0] | 0; if (!(b2 & 1)) { e2 = g2 + 1 | 0; d2 = (b2 & 255) >>> 1; c2 = g2 + 1 | 0; } else { c2 = k[a2 + 40 >> 2] | 0; e2 = c2; d2 = k[a2 + 36 >> 2] | 0; } b2 = a2 + 24 | 0; k[b2 >> 2] = c2; k[a2 + 20 >> 2] = c2; k[a2 + 28 >> 2] = e2 + d2; if (!(k[h2 >> 2] & 3)) return; k[b2 >> 2] = c2 + f2; return; } function Nc(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; o2 = r; r = r + 32 | 0; g2 = o2 + 16 | 0; n2 = o2 + 8 | 0; h2 = o2; x = 0; ra(65, n2 | 0, a2 | 0); l2 = x; x = 0; a: do if (l2 & 1) { c2 = Wa(0) | 0; d2 = a2; e2 = a2; } else { do if (i2[n2 >> 0] | 0) { d2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; k[h2 >> 2] = k[a2 + (d2 + 24) >> 2]; j2 = a2 + d2 | 0; l2 = k[a2 + (d2 + 4) >> 2] | 0; e2 = b2 + c2 | 0; d2 = a2 + (d2 + 76) | 0; c2 = k[d2 >> 2] | 0; do if ((c2 | 0) == -1) { x = 0; c2 = ta(68, j2 | 0) | 0; p2 = x; x = 0; if (p2 & 1) m2 = 13; else { k[g2 >> 2] = c2; x = 0; c2 = Aa(37, g2 | 0, 44220) | 0; p2 = x; x = 0; if (!(p2 & 1) ? (x = 0, f2 = Aa(k[(k[c2 >> 2] | 0) + 28 >> 2] | 0, c2 | 0, 32) | 0, p2 = x, x = 0, !(p2 & 1)) : 0) { Qs(g2); c2 = f2 << 24 >> 24; k[d2 >> 2] = c2; m2 = 9; break; } c2 = Wa(0) | 0; Qs(g2); } } else m2 = 9; while (0); if ((m2 | 0) == 9) { x = 0; k[g2 >> 2] = k[h2 >> 2]; c2 = sa(39, g2 | 0, b2 | 0, ((l2 & 176 | 0) == 32 ? e2 : b2) | 0, e2 | 0, j2 | 0, c2 & 255 | 0) | 0; p2 = x; x = 0; if (!(p2 & 1)) { if (c2) break; p2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; x = 0; ra(66, a2 + p2 | 0, k[a2 + (p2 + 16) >> 2] | 5 | 0); p2 = x; x = 0; if (!(p2 & 1)) break; else m2 = 13; } else m2 = 13; } if ((m2 | 0) == 13) c2 = Wa(0) | 0; ro(n2); d2 = a2; e2 = a2; break a; } while (0); ro(n2); r = o2; return a2 | 0; } while (0); cb(c2 | 0) | 0; x = 0; qa(181, d2 + (k[(k[e2 >> 2] | 0) + -12 >> 2] | 0) | 0); p2 = x; x = 0; if (!(p2 & 1)) { eb(); r = o2; return a2 | 0; } c2 = Wa() | 0; x = 0; Ga(3); p2 = x; x = 0; if (p2 & 1) { p2 = Wa(0) | 0; oc(p2); } else fb(c2 | 0); return 0; } function Oc(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0; c2 = k[b2 + 48 >> 2] | 0; if (c2 & 16) { c2 = b2 + 44 | 0; d2 = k[c2 >> 2] | 0; e2 = k[b2 + 24 >> 2] | 0; if (d2 >>> 0 < e2 >>> 0) k[c2 >> 2] = e2; else e2 = d2; d2 = k[b2 + 20 >> 2] | 0; f2 = e2 - d2 | 0; if (f2 >>> 0 > 4294967279) ij(a2); if (f2 >>> 0 < 11) { i2[a2 >> 0] = f2 << 1; c2 = a2 + 1 | 0; } else { b2 = f2 + 16 & -16; c2 = lj(b2) | 0; k[a2 + 8 >> 2] = c2; k[a2 >> 2] = b2 | 1; k[a2 + 4 >> 2] = f2; } if ((d2 | 0) != (e2 | 0)) { b2 = c2; while (1) { i2[b2 >> 0] = i2[d2 >> 0] | 0; d2 = d2 + 1 | 0; if ((d2 | 0) == (e2 | 0)) break; else b2 = b2 + 1 | 0; } c2 = c2 + f2 | 0; } i2[c2 >> 0] = 0; return; } if (!(c2 & 8)) { k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; return; } d2 = k[b2 + 8 >> 2] | 0; b2 = k[b2 + 16 >> 2] | 0; f2 = b2 - d2 | 0; if (f2 >>> 0 > 4294967279) ij(a2); if (f2 >>> 0 < 11) { i2[a2 >> 0] = f2 << 1; c2 = a2 + 1 | 0; } else { e2 = f2 + 16 & -16; c2 = lj(e2) | 0; k[a2 + 8 >> 2] = c2; k[a2 >> 2] = e2 | 1; k[a2 + 4 >> 2] = f2; } if ((d2 | 0) != (b2 | 0)) { e2 = c2; while (1) { i2[e2 >> 0] = i2[d2 >> 0] | 0; d2 = d2 + 1 | 0; if ((d2 | 0) == (b2 | 0)) break; else e2 = e2 + 1 | 0; } c2 = c2 + f2 | 0; } i2[c2 >> 0] = 0; return; } function Pc(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; k[a2 >> 2] = 36364; k[a2 + 4 >> 2] = c2; o2 = a2 + 8 | 0; g2 = k[c2 >> 2] | 0; m2 = c2 + 16 | 0; f2 = k[m2 >> 2] | 0; l2 = ia(f2, g2) | 0; k[o2 >> 2] = 0; p2 = a2 + 12 | 0; k[p2 >> 2] = 0; k[a2 + 16 >> 2] = 0; do if (l2) { if (!((l2 | 0) < 0 ? (x = 0, qa(178, o2 | 0), g2 = x, x = 0, g2 & 1) : 0)) n2 = 4; if ((n2 | 0) == 4 ? (h2 = l2 << 1, x = 0, j2 = ta(67, h2 | 0) | 0, g2 = x, x = 0, !(g2 & 1)) : 0) { k[o2 >> 2] = j2; g2 = j2 + (l2 << 1) | 0; k[a2 + 16 >> 2] = g2; sw(j2 | 0, 0, h2 | 0) | 0; k[p2 >> 2] = g2; g2 = k[c2 >> 2] | 0; f2 = k[m2 >> 2] | 0; break; } h2 = Wa() | 0; e2 = k[o2 >> 2] | 0; f2 = e2; if (e2) { g2 = k[p2 >> 2] | 0; if ((g2 | 0) != (e2 | 0)) k[p2 >> 2] = g2 + (~((g2 + -2 - f2 | 0) >>> 1) << 1); mj(e2); } p2 = h2; fb(p2 | 0); } while (0); h2 = a2 + 20 | 0; f2 = ia(g2 << 1, f2) | 0; k[h2 >> 2] = 0; j2 = a2 + 24 | 0; k[j2 >> 2] = 0; k[a2 + 28 >> 2] = 0; if (!f2) { p2 = a2 + 32 | 0; o2 = d2; o2 = k[o2 >> 2] | 0; d2 = d2 + 4 | 0; d2 = k[d2 >> 2] | 0; n2 = p2; k[n2 >> 2] = o2; p2 = p2 + 4 | 0; k[p2 >> 2] = d2; p2 = a2 + 40 | 0; k[p2 >> 2] = o2; p2 = a2 + 48 | 0; k[p2 >> 2] = k[b2 >> 2]; k[p2 + 4 >> 2] = k[b2 + 4 >> 2]; k[p2 + 8 >> 2] = k[b2 + 8 >> 2]; return; } if (!((f2 | 0) < 0 ? (x = 0, qa(178, h2 | 0), m2 = x, x = 0, m2 & 1) : 0)) n2 = 13; if ((n2 | 0) == 13 ? (x = 0, e2 = ta(67, f2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { k[j2 >> 2] = e2; k[h2 >> 2] = e2; k[a2 + 28 >> 2] = e2 + f2; do { i2[e2 >> 0] = 0; e2 = (k[j2 >> 2] | 0) + 1 | 0; k[j2 >> 2] = e2; f2 = f2 + -1 | 0; } while ((f2 | 0) != 0); p2 = a2 + 32 | 0; o2 = d2; o2 = k[o2 >> 2] | 0; d2 = d2 + 4 | 0; d2 = k[d2 >> 2] | 0; n2 = p2; k[n2 >> 2] = o2; p2 = p2 + 4 | 0; k[p2 >> 2] = d2; p2 = a2 + 40 | 0; k[p2 >> 2] = o2; p2 = a2 + 48 | 0; k[p2 >> 2] = k[b2 >> 2]; k[p2 + 4 >> 2] = k[b2 + 4 >> 2]; k[p2 + 8 >> 2] = k[b2 + 8 >> 2]; return; } g2 = Wa() | 0; e2 = k[h2 >> 2] | 0; if (e2) { if ((k[j2 >> 2] | 0) != (e2 | 0)) k[j2 >> 2] = e2; mj(e2); } e2 = k[o2 >> 2] | 0; if (!e2) { p2 = g2; fb(p2 | 0); } f2 = k[p2 >> 2] | 0; if ((f2 | 0) != (e2 | 0)) k[p2 >> 2] = f2 + (~((f2 + -2 - e2 | 0) >>> 1) << 1); mj(e2); p2 = g2; fb(p2 | 0); } function Qc(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; k[a2 >> 2] = 36340; k[a2 + 4 >> 2] = c2; o2 = a2 + 8 | 0; g2 = k[c2 >> 2] | 0; m2 = c2 + 16 | 0; f2 = k[m2 >> 2] | 0; l2 = ia(f2, g2) | 0; k[o2 >> 2] = 0; p2 = a2 + 12 | 0; k[p2 >> 2] = 0; k[a2 + 16 >> 2] = 0; do if (l2) { if (!((l2 | 0) < 0 ? (x = 0, qa(178, o2 | 0), g2 = x, x = 0, g2 & 1) : 0)) n2 = 4; if ((n2 | 0) == 4 ? (h2 = l2 << 1, x = 0, j2 = ta(67, h2 | 0) | 0, g2 = x, x = 0, !(g2 & 1)) : 0) { k[o2 >> 2] = j2; g2 = j2 + (l2 << 1) | 0; k[a2 + 16 >> 2] = g2; sw(j2 | 0, 0, h2 | 0) | 0; k[p2 >> 2] = g2; g2 = k[c2 >> 2] | 0; f2 = k[m2 >> 2] | 0; break; } h2 = Wa() | 0; e2 = k[o2 >> 2] | 0; f2 = e2; if (e2) { g2 = k[p2 >> 2] | 0; if ((g2 | 0) != (e2 | 0)) k[p2 >> 2] = g2 + (~((g2 + -2 - f2 | 0) >>> 1) << 1); mj(e2); } p2 = h2; fb(p2 | 0); } while (0); h2 = a2 + 20 | 0; f2 = ia(g2 << 1, f2) | 0; k[h2 >> 2] = 0; j2 = a2 + 24 | 0; k[j2 >> 2] = 0; k[a2 + 28 >> 2] = 0; if (!f2) { p2 = a2 + 32 | 0; o2 = d2; o2 = k[o2 >> 2] | 0; d2 = d2 + 4 | 0; d2 = k[d2 >> 2] | 0; n2 = p2; k[n2 >> 2] = o2; p2 = p2 + 4 | 0; k[p2 >> 2] = d2; p2 = a2 + 40 | 0; k[p2 >> 2] = o2; p2 = a2 + 48 | 0; k[p2 >> 2] = k[b2 >> 2]; k[p2 + 4 >> 2] = k[b2 + 4 >> 2]; k[p2 + 8 >> 2] = k[b2 + 8 >> 2]; return; } if (!((f2 | 0) < 0 ? (x = 0, qa(178, h2 | 0), m2 = x, x = 0, m2 & 1) : 0)) n2 = 13; if ((n2 | 0) == 13 ? (x = 0, e2 = ta(67, f2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { k[j2 >> 2] = e2; k[h2 >> 2] = e2; k[a2 + 28 >> 2] = e2 + f2; do { i2[e2 >> 0] = 0; e2 = (k[j2 >> 2] | 0) + 1 | 0; k[j2 >> 2] = e2; f2 = f2 + -1 | 0; } while ((f2 | 0) != 0); p2 = a2 + 32 | 0; o2 = d2; o2 = k[o2 >> 2] | 0; d2 = d2 + 4 | 0; d2 = k[d2 >> 2] | 0; n2 = p2; k[n2 >> 2] = o2; p2 = p2 + 4 | 0; k[p2 >> 2] = d2; p2 = a2 + 40 | 0; k[p2 >> 2] = o2; p2 = a2 + 48 | 0; k[p2 >> 2] = k[b2 >> 2]; k[p2 + 4 >> 2] = k[b2 + 4 >> 2]; k[p2 + 8 >> 2] = k[b2 + 8 >> 2]; return; } g2 = Wa() | 0; e2 = k[h2 >> 2] | 0; if (e2) { if ((k[j2 >> 2] | 0) != (e2 | 0)) k[j2 >> 2] = e2; mj(e2); } e2 = k[o2 >> 2] | 0; if (!e2) { p2 = g2; fb(p2 | 0); } f2 = k[p2 >> 2] | 0; if ((f2 | 0) != (e2 | 0)) k[p2 >> 2] = f2 + (~((f2 + -2 - e2 | 0) >>> 1) << 1); mj(e2); p2 = g2; fb(p2 | 0); } function Rc(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; k[a2 >> 2] = 36316; k[a2 + 4 >> 2] = c2; o2 = a2 + 8 | 0; g2 = k[c2 >> 2] | 0; m2 = c2 + 16 | 0; f2 = k[m2 >> 2] | 0; l2 = ia(f2, g2) | 0; k[o2 >> 2] = 0; p2 = a2 + 12 | 0; k[p2 >> 2] = 0; k[a2 + 16 >> 2] = 0; do if (l2) { if (!((l2 | 0) < 0 ? (x = 0, qa(178, o2 | 0), g2 = x, x = 0, g2 & 1) : 0)) n2 = 4; if ((n2 | 0) == 4 ? (h2 = l2 << 1, x = 0, j2 = ta(67, h2 | 0) | 0, g2 = x, x = 0, !(g2 & 1)) : 0) { k[o2 >> 2] = j2; g2 = j2 + (l2 << 1) | 0; k[a2 + 16 >> 2] = g2; sw(j2 | 0, 0, h2 | 0) | 0; k[p2 >> 2] = g2; g2 = k[c2 >> 2] | 0; f2 = k[m2 >> 2] | 0; break; } h2 = Wa() | 0; e2 = k[o2 >> 2] | 0; f2 = e2; if (e2) { g2 = k[p2 >> 2] | 0; if ((g2 | 0) != (e2 | 0)) k[p2 >> 2] = g2 + (~((g2 + -2 - f2 | 0) >>> 1) << 1); mj(e2); } p2 = h2; fb(p2 | 0); } while (0); h2 = a2 + 20 | 0; f2 = ia(g2 << 1, f2) | 0; k[h2 >> 2] = 0; j2 = a2 + 24 | 0; k[j2 >> 2] = 0; k[a2 + 28 >> 2] = 0; if (!f2) { p2 = a2 + 32 | 0; o2 = d2; o2 = k[o2 >> 2] | 0; d2 = d2 + 4 | 0; d2 = k[d2 >> 2] | 0; n2 = p2; k[n2 >> 2] = o2; p2 = p2 + 4 | 0; k[p2 >> 2] = d2; p2 = a2 + 40 | 0; k[p2 >> 2] = o2; p2 = a2 + 48 | 0; k[p2 >> 2] = k[b2 >> 2]; k[p2 + 4 >> 2] = k[b2 + 4 >> 2]; k[p2 + 8 >> 2] = k[b2 + 8 >> 2]; return; } if (!((f2 | 0) < 0 ? (x = 0, qa(178, h2 | 0), m2 = x, x = 0, m2 & 1) : 0)) n2 = 13; if ((n2 | 0) == 13 ? (x = 0, e2 = ta(67, f2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { k[j2 >> 2] = e2; k[h2 >> 2] = e2; k[a2 + 28 >> 2] = e2 + f2; do { i2[e2 >> 0] = 0; e2 = (k[j2 >> 2] | 0) + 1 | 0; k[j2 >> 2] = e2; f2 = f2 + -1 | 0; } while ((f2 | 0) != 0); p2 = a2 + 32 | 0; o2 = d2; o2 = k[o2 >> 2] | 0; d2 = d2 + 4 | 0; d2 = k[d2 >> 2] | 0; n2 = p2; k[n2 >> 2] = o2; p2 = p2 + 4 | 0; k[p2 >> 2] = d2; p2 = a2 + 40 | 0; k[p2 >> 2] = o2; p2 = a2 + 48 | 0; k[p2 >> 2] = k[b2 >> 2]; k[p2 + 4 >> 2] = k[b2 + 4 >> 2]; k[p2 + 8 >> 2] = k[b2 + 8 >> 2]; return; } g2 = Wa() | 0; e2 = k[h2 >> 2] | 0; if (e2) { if ((k[j2 >> 2] | 0) != (e2 | 0)) k[j2 >> 2] = e2; mj(e2); } e2 = k[o2 >> 2] | 0; if (!e2) { p2 = g2; fb(p2 | 0); } f2 = k[p2 >> 2] | 0; if ((f2 | 0) != (e2 | 0)) k[p2 >> 2] = f2 + (~((f2 + -2 - e2 | 0) >>> 1) << 1); mj(e2); p2 = g2; fb(p2 | 0); } function Sc(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0; k[a2 >> 2] = 36316; b2 = k[a2 + 20 >> 2] | 0; if (b2) { c2 = a2 + 24 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } d2 = k[a2 + 8 >> 2] | 0; if (!d2) return; b2 = a2 + 12 | 0; c2 = k[b2 >> 2] | 0; if ((c2 | 0) != (d2 | 0)) k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); mj(d2); return; } function Tc(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0; k[a2 >> 2] = 36316; b2 = k[a2 + 20 >> 2] | 0; if (b2) { c2 = a2 + 24 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } d2 = k[a2 + 8 >> 2] | 0; if (!d2) { mj(a2); return; } b2 = a2 + 12 | 0; c2 = k[b2 >> 2] | 0; if ((c2 | 0) != (d2 | 0)) k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); mj(d2); mj(a2); return; } function Uc(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; e2 = a2 + 48 | 0; if (!(k[e2 >> 2] | 0)) { h2 = a2 + 52 | 0; Zc(a2, b2, k[h2 >> 2] | 0, c2, d2); k[h2 >> 2] = (k[h2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); return; } j2 = a2 + 4 | 0; f2 = c2 << 1; g2 = ia(f2, k[(k[j2 >> 2] | 0) + 16 >> 2] | 0) | 0; h2 = a2 + 20 | 0; Zc(a2, b2, k[h2 >> 2] | 0, c2, d2); b2 = k[j2 >> 2] | 0; if ((k[b2 + 28 >> 2] | 0) == 536870912) Yc(k[h2 >> 2] | 0, ia(f2, k[b2 + 16 >> 2] | 0) | 0); j2 = k[e2 >> 2] | 0; if ((Qb[k[(k[j2 >> 2] | 0) + 48 >> 2] & 63](j2, k[h2 >> 2] | 0, g2) | 0) == (g2 | 0)) return; b2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, b2 | 0, 3, 35648); j2 = x; x = 0; if (j2 & 1) { j2 = Wa() | 0; Ua(b2 | 0); fb(j2 | 0); } else ub(b2 | 0, 824, 96); } function Vc(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0; e2 = k[a2 + 48 >> 2] | 0; if (!e2) { e2 = a2 + 52 | 0; Wc(a2, k[e2 >> 2] | 0, b2, c2, d2); k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); return; } else { Xc(a2, e2, b2, c2, d2); return; } } function Wc(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0; l2 = a2 + 4 | 0; f2 = k[l2 >> 2] | 0; do if (!(i2[f2 + 32 >> 0] | 0)) n2 = b2; else { g2 = a2 + 8 | 0; vw(k[g2 >> 2] | 0, b2 | 0, d2 * 6 | 0) | 0; f2 = k[l2 >> 2] | 0; h2 = k[f2 + 16 >> 2] | 0; if ((d2 | 0) <= 0) { n2 = k[g2 >> 2] | 0; break; } b2 = k[g2 >> 2] | 0; f2 = b2; g2 = 0; while (1) { n2 = f2 + 4 | 0; o2 = j[f2 >> 1] | 0; j[f2 >> 1] = j[n2 >> 1] | 0; j[n2 >> 1] = o2; g2 = g2 + 1 | 0; if ((g2 | 0) == (d2 | 0)) break; else f2 = f2 + (h2 << 1) | 0; } n2 = b2; f2 = k[l2 >> 2] | 0; } while (0); switch (k[f2 + 16 >> 2] | 0) { case 3: if ((k[f2 + 24 >> 2] | 0) == 2) { if ((d2 | 0) <= 0) return; f2 = a2 + 32 | 0; b2 = 0; do { o2 = k[f2 >> 2] | 0; l2 = m[n2 + (b2 * 6 | 0) + 2 >> 1] << o2; e2 = 32768 - l2 | 0; a2 = e2 + (m[n2 + (b2 * 6 | 0) + 4 >> 1] << o2) & 65535; e2 = e2 + (m[n2 + (b2 * 6 | 0) >> 1] << o2) & 65535; j[c2 + (b2 * 6 | 0) >> 1] = (l2 + 49152 + ((a2 + e2 | 0) >>> 2) & 65535) >>> o2; j[c2 + (b2 * 6 | 0) + 2 >> 1] = a2 >>> o2; j[c2 + (b2 * 6 | 0) + 4 >> 1] = e2 >>> o2; b2 = b2 + 1 | 0; } while ((b2 | 0) != (d2 | 0)); return; } else { g2 = (e2 | 0) < (d2 | 0) ? e2 : d2; if ((g2 | 0) <= 0) return; h2 = e2 << 1; f2 = k[a2 + 32 >> 2] | 0; b2 = 0; do { d2 = m[n2 + (b2 * 6 | 0) + 2 >> 1] << f2; o2 = 32768 - d2 | 0; a2 = o2 + (m[n2 + (b2 * 6 | 0) + 4 >> 1] << f2) & 65535; o2 = o2 + (m[n2 + (b2 * 6 | 0) >> 1] << f2) & 65535; j[c2 + (b2 << 1) >> 1] = (d2 + 49152 + ((a2 + o2 | 0) >>> 2) & 65535) >>> f2; j[c2 + (b2 + e2 << 1) >> 1] = a2 >>> f2; j[c2 + (b2 + h2 << 1) >> 1] = o2 >>> f2; b2 = b2 + 1 | 0; } while ((b2 | 0) != (g2 | 0)); return; } case 4: { if ((k[f2 + 24 >> 2] | 0) != 1) return; g2 = (e2 | 0) < (d2 | 0) ? e2 : d2; if ((g2 | 0) <= 0) return; h2 = e2 << 1; l2 = e2 * 3 | 0; f2 = k[a2 + 32 >> 2] | 0; b2 = 0; do { o2 = j[n2 + (b2 << 3) + 6 >> 1] | 0; p2 = m[n2 + (b2 << 3) + 2 >> 1] << f2; a2 = 32768 - p2 | 0; d2 = a2 + (m[n2 + (b2 << 3) + 4 >> 1] << f2) & 65535; a2 = a2 + (m[n2 + (b2 << 3) >> 1] << f2) & 65535; j[c2 + (b2 << 1) >> 1] = (p2 + 49152 + ((d2 + a2 | 0) >>> 2) & 65535) >>> f2; j[c2 + (b2 + e2 << 1) >> 1] = d2 >>> f2; j[c2 + (b2 + h2 << 1) >> 1] = a2 >>> f2; j[c2 + (b2 + l2 << 1) >> 1] = o2; b2 = b2 + 1 | 0; } while ((b2 | 0) != (g2 | 0)); return; } default: return; } } function Xc(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; n2 = r; r = r + 176 | 0; o2 = n2 + 152 | 0; q2 = n2 + 16 | 0; p2 = n2; j2 = a2 + 4 | 0; f2 = k[j2 >> 2] | 0; m2 = d2 << 1; g2 = ia(m2, k[f2 + 16 >> 2] | 0) | 0; do if (g2) { h2 = a2 + 20 | 0; while (1) { f2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, k[h2 >> 2] | 0, g2) | 0; if (!f2) break; if ((g2 | 0) == (f2 | 0)) { l2 = 26; break; } else g2 = g2 - f2 | 0; } if ((l2 | 0) == 26) { f2 = k[j2 >> 2] | 0; break; } l2 = q2 + 56 | 0; j2 = q2 + 4 | 0; k[q2 >> 2] = 36160; k[l2 >> 2] = 36180; x = 0; ra(62, q2 + 56 | 0, j2 | 0); n2 = x; x = 0; if (n2 & 1) { q2 = Wa() | 0; qn(l2); fb(q2 | 0); } k[q2 + 128 >> 2] = 0; k[q2 + 132 >> 2] = -1; k[q2 >> 2] = 36200; k[q2 + 56 >> 2] = 36220; x = 0; qa(180, j2 | 0); n2 = x; x = 0; do if (n2 & 1) f2 = Wa() | 0; else { k[j2 >> 2] = 36236; b2 = q2 + 36 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[q2 + 52 >> 2] = 16; k[o2 >> 2] = 0; k[o2 + 4 >> 2] = 0; k[o2 + 8 >> 2] = 0; x = 0; ra(63, j2 | 0, o2 | 0); n2 = x; x = 0; if (n2 & 1) { f2 = Wa() | 0; Sm(o2); Sm(b2); xn(j2); break; } Sm(o2); x = 0; f2 = va(28, q2 | 0, 49029, 57) | 0; o2 = x; x = 0; if (!(o2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { h2 = Va(16) | 0; x = 0; ra(64, p2 | 0, j2 | 0); o2 = x; x = 0; if (!(o2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, h2 | 0, 3, 35648, p2 | 0); o2 = x; x = 0; if (o2 & 1) g2 = 1; else { x = 0; Fa(6, h2 | 0, 824, 96); x = 0; g2 = 0; } f2 = Wa() | 0; Sm(p2); if (!g2) { p2 = f2; k[q2 >> 2] = 36200; k[l2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(l2); fb(p2 | 0); } } else f2 = Wa() | 0; Ua(h2 | 0); p2 = f2; k[q2 >> 2] = 36200; k[l2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(l2); fb(p2 | 0); } p2 = Wa() | 0; k[q2 >> 2] = 36200; k[l2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(l2); fb(p2 | 0); } while (0); q2 = f2; qn(l2); fb(q2 | 0); } while (0); g2 = a2 + 20 | 0; if ((k[f2 + 28 >> 2] | 0) != 536870912) { q2 = k[g2 >> 2] | 0; Wc(a2, q2, c2, d2, e2); r = n2; return; } Yc(k[g2 >> 2] | 0, ia(m2, k[f2 + 16 >> 2] | 0) | 0); q2 = k[g2 >> 2] | 0; Wc(a2, q2, c2, d2, e2); r = n2; return; } function Yc(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; e2 = r; r = r + 176 | 0; c2 = e2 + 152 | 0; j2 = e2 + 16 | 0; g2 = e2; if (!(b2 & 1)) { c2 = (b2 | 0) / 4 | 0; if ((b2 | 0) > 3) { d2 = 0; do { j2 = a2 + (d2 << 2) | 0; h2 = k[j2 >> 2] | 0; k[j2 >> 2] = h2 >>> 8 & 16711935 | h2 << 8 & -16711936; d2 = d2 + 1 | 0; } while ((d2 | 0) < (c2 | 0)); } if (!(b2 & 3)) { r = e2; return; } g2 = a2 + (b2 + -2) | 0; j2 = a2 + (b2 + -1) | 0; h2 = i2[g2 >> 0] | 0; i2[g2 >> 0] = i2[j2 >> 0] | 0; i2[j2 >> 0] = h2; r = e2; return; } h2 = j2 + 56 | 0; f2 = j2 + 4 | 0; k[j2 >> 2] = 36160; k[h2 >> 2] = 36180; x = 0; ra(62, j2 + 56 | 0, f2 | 0); e2 = x; x = 0; if (e2 & 1) { j2 = Wa() | 0; qn(h2); fb(j2 | 0); } k[j2 + 128 >> 2] = 0; k[j2 + 132 >> 2] = -1; k[j2 >> 2] = 36200; k[j2 + 56 >> 2] = 36220; x = 0; qa(180, f2 | 0); e2 = x; x = 0; do if (e2 & 1) c2 = Wa() | 0; else { k[f2 >> 2] = 36236; e2 = j2 + 36 | 0; k[e2 >> 2] = 0; k[e2 + 4 >> 2] = 0; k[e2 + 8 >> 2] = 0; k[e2 + 12 >> 2] = 0; k[j2 + 52 >> 2] = 16; k[c2 >> 2] = 0; k[c2 + 4 >> 2] = 0; k[c2 + 8 >> 2] = 0; x = 0; ra(63, f2 | 0, c2 | 0); a2 = x; x = 0; if (a2 & 1) { j2 = Wa() | 0; Sm(c2); Sm(e2); xn(f2); c2 = j2; break; } Sm(c2); x = 0; c2 = va(28, j2 | 0, 49087, 24) | 0; a2 = x; x = 0; if ((!(a2 & 1) ? (x = 0, d2 = Aa(36, c2 | 0, b2 | 0) | 0, b2 = x, x = 0, !(b2 & 1)) : 0) ? (x = 0, va(28, d2 | 0, 49112, 20) | 0, b2 = x, x = 0, !(b2 & 1)) : 0) { a2 = Va(16) | 0; x = 0; ra(64, g2 | 0, f2 | 0); b2 = x; x = 0; if (!(b2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, a2 | 0, 1, 35648, g2 | 0); b2 = x; x = 0; if (b2 & 1) d2 = 1; else { x = 0; Fa(6, a2 | 0, 824, 96); x = 0; d2 = 0; } c2 = Wa() | 0; Sm(g2); if (!d2) { g2 = c2; k[j2 >> 2] = 36200; k[h2 >> 2] = 36220; k[f2 >> 2] = 36236; Sm(e2); xn(f2); qn(h2); fb(g2 | 0); } } else c2 = Wa() | 0; Ua(a2 | 0); g2 = c2; k[j2 >> 2] = 36200; k[h2 >> 2] = 36220; k[f2 >> 2] = 36236; Sm(e2); xn(f2); qn(h2); fb(g2 | 0); } g2 = Wa() | 0; k[j2 >> 2] = 36200; k[h2 >> 2] = 36220; k[f2 >> 2] = 36236; Sm(e2); xn(f2); qn(h2); fb(g2 | 0); } while (0); j2 = c2; qn(h2); fb(j2 | 0); } function Zc(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0; n2 = a2 + 4 | 0; f2 = k[n2 >> 2] | 0; a: do switch (k[f2 + 16 >> 2] | 0) { case 3: { if ((k[f2 + 24 >> 2] | 0) == 2) { if ((d2 | 0) <= 0) break a; f2 = a2 + 40 | 0; a2 = 0; do { e2 = k[f2 >> 2] | 0; h2 = m[b2 + (a2 * 6 | 0) + 2 >> 1] << e2; g2 = m[b2 + (a2 * 6 | 0) + 4 >> 1] << e2; l2 = (m[b2 + (a2 * 6 | 0) >> 1] << e2) - (g2 + h2 >> 2) + 16384 | 0; j[c2 + (a2 * 6 | 0) >> 1] = (g2 + 32768 + l2 & 65535) >>> e2; j[c2 + (a2 * 6 | 0) + 2 >> 1] = (l2 & 65535) >>> e2; j[c2 + (a2 * 6 | 0) + 4 >> 1] = (h2 + 32768 + l2 & 65535) >>> e2; a2 = a2 + 1 | 0; } while ((a2 | 0) != (d2 | 0)); } else { g2 = (d2 | 0) < (e2 | 0) ? d2 : e2; if ((g2 | 0) <= 0) break a; h2 = e2 << 1; f2 = a2 + 40 | 0; a2 = 0; do { l2 = k[f2 >> 2] | 0; p2 = m[b2 + (a2 + e2 << 1) >> 1] << l2; q2 = m[b2 + (a2 + h2 << 1) >> 1] << l2; o2 = (m[b2 + (a2 << 1) >> 1] << l2) - (q2 + p2 >> 2) + 16384 | 0; j[c2 + (a2 * 6 | 0) >> 1] = (q2 + 32768 + o2 & 65535) >>> l2; j[c2 + (a2 * 6 | 0) + 2 >> 1] = (o2 & 65535) >>> l2; j[c2 + (a2 * 6 | 0) + 4 >> 1] = (p2 + 32768 + o2 & 65535) >>> l2; a2 = a2 + 1 | 0; } while ((a2 | 0) != (g2 | 0)); } break; } case 4: { if ((k[f2 + 24 >> 2] | 0) == 1 ? (l2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (l2 | 0) > 0) : 0) { h2 = e2 << 1; f2 = a2 + 40 | 0; a2 = e2 * 3 | 0; g2 = 0; do { q2 = k[f2 >> 2] | 0; p2 = m[b2 + (g2 + e2 << 1) >> 1] << q2; s2 = m[b2 + (g2 + h2 << 1) >> 1] << q2; o2 = (m[b2 + (g2 << 1) >> 1] << q2) - (s2 + p2 >> 2) + 16384 | 0; r2 = j[b2 + (g2 + a2 << 1) >> 1] | 0; t2 = ww((o2 & 65535) >>> q2 & 65535 | 0, 0, 16) | 0; p2 = (p2 + 32768 + o2 & 65535) >>> q2 | M; r2 = ww(r2 & 65535 | 0, 0, 48) | 0; r2 = t2 | (s2 + 32768 + o2 & 65535) >>> q2 & 65535 | r2; p2 = p2 & 65535 | M; q2 = c2 + (g2 << 3) | 0; o2 = q2; j[o2 >> 1] = r2; j[o2 + 2 >> 1] = r2 >>> 16; q2 = q2 + 4 | 0; j[q2 >> 1] = p2; j[q2 + 2 >> 1] = p2 >>> 16; g2 = g2 + 1 | 0; } while ((g2 | 0) != (l2 | 0)); } break; } default: { } } while (0); f2 = k[n2 >> 2] | 0; if (!(i2[f2 + 32 >> 0] | 0)) return; g2 = k[f2 + 16 >> 2] | 0; if ((d2 | 0) <= 0) return; f2 = c2; a2 = 0; while (1) { t2 = f2 + 4 | 0; s2 = j[f2 >> 1] | 0; j[f2 >> 1] = j[t2 >> 1] | 0; j[t2 >> 1] = s2; a2 = a2 + 1 | 0; if ((a2 | 0) == (d2 | 0)) break; else f2 = f2 + (g2 << 1) | 0; } return; } function _c(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0; k[a2 >> 2] = 36340; b2 = k[a2 + 20 >> 2] | 0; if (b2) { c2 = a2 + 24 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } d2 = k[a2 + 8 >> 2] | 0; if (!d2) return; b2 = a2 + 12 | 0; c2 = k[b2 >> 2] | 0; if ((c2 | 0) != (d2 | 0)) k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); mj(d2); return; } function $c(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0; k[a2 >> 2] = 36340; b2 = k[a2 + 20 >> 2] | 0; if (b2) { c2 = a2 + 24 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } d2 = k[a2 + 8 >> 2] | 0; if (!d2) { mj(a2); return; } b2 = a2 + 12 | 0; c2 = k[b2 >> 2] | 0; if ((c2 | 0) != (d2 | 0)) k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); mj(d2); mj(a2); return; } function ad(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; e2 = a2 + 48 | 0; if (!(k[e2 >> 2] | 0)) { h2 = a2 + 52 | 0; ed(a2, b2, k[h2 >> 2] | 0, c2, d2); k[h2 >> 2] = (k[h2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); return; } j2 = a2 + 4 | 0; f2 = c2 << 1; g2 = ia(f2, k[(k[j2 >> 2] | 0) + 16 >> 2] | 0) | 0; h2 = a2 + 20 | 0; ed(a2, b2, k[h2 >> 2] | 0, c2, d2); b2 = k[j2 >> 2] | 0; if ((k[b2 + 28 >> 2] | 0) == 536870912) Yc(k[h2 >> 2] | 0, ia(f2, k[b2 + 16 >> 2] | 0) | 0); j2 = k[e2 >> 2] | 0; if ((Qb[k[(k[j2 >> 2] | 0) + 48 >> 2] & 63](j2, k[h2 >> 2] | 0, g2) | 0) == (g2 | 0)) return; b2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, b2 | 0, 3, 35648); j2 = x; x = 0; if (j2 & 1) { j2 = Wa() | 0; Ua(b2 | 0); fb(j2 | 0); } else ub(b2 | 0, 824, 96); } function bd(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0; e2 = k[a2 + 48 >> 2] | 0; if (!e2) { e2 = a2 + 52 | 0; cd(a2, k[e2 >> 2] | 0, b2, c2, d2); k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); return; } else { dd(a2, e2, b2, c2, d2); return; } } function cd(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0; l2 = a2 + 4 | 0; f2 = k[l2 >> 2] | 0; do if (!(i2[f2 + 32 >> 0] | 0)) n2 = b2; else { g2 = a2 + 8 | 0; vw(k[g2 >> 2] | 0, b2 | 0, d2 * 6 | 0) | 0; f2 = k[l2 >> 2] | 0; h2 = k[f2 + 16 >> 2] | 0; if ((d2 | 0) <= 0) { n2 = k[g2 >> 2] | 0; break; } b2 = k[g2 >> 2] | 0; f2 = b2; g2 = 0; while (1) { n2 = f2 + 4 | 0; o2 = j[f2 >> 1] | 0; j[f2 >> 1] = j[n2 >> 1] | 0; j[n2 >> 1] = o2; g2 = g2 + 1 | 0; if ((g2 | 0) == (d2 | 0)) break; else f2 = f2 + (h2 << 1) | 0; } n2 = b2; f2 = k[l2 >> 2] | 0; } while (0); switch (k[f2 + 16 >> 2] | 0) { case 3: if ((k[f2 + 24 >> 2] | 0) == 2) { if ((d2 | 0) <= 0) return; f2 = a2 + 32 | 0; b2 = 0; do { e2 = k[f2 >> 2] | 0; l2 = m[n2 + (b2 * 6 | 0) >> 1] << e2; a2 = m[n2 + (b2 * 6 | 0) + 2 >> 1] << e2; o2 = ((m[n2 + (b2 * 6 | 0) + 4 >> 1] << e2) + 32768 - ((a2 + l2 | 0) >>> 1) & 65535) >>> e2 & 65535; j[c2 + (b2 * 6 | 0) >> 1] = (l2 + 32768 - a2 & 65535) >>> e2; j[c2 + (b2 * 6 | 0) + 2 >> 1] = (a2 & 65535) >>> e2; j[c2 + (b2 * 6 | 0) + 4 >> 1] = o2; b2 = b2 + 1 | 0; } while ((b2 | 0) != (d2 | 0)); return; } else { g2 = (e2 | 0) < (d2 | 0) ? e2 : d2; if ((g2 | 0) <= 0) return; h2 = e2 << 1; f2 = k[a2 + 32 >> 2] | 0; b2 = 0; do { d2 = m[n2 + (b2 * 6 | 0) >> 1] << f2; a2 = m[n2 + (b2 * 6 | 0) + 2 >> 1] << f2; o2 = ((m[n2 + (b2 * 6 | 0) + 4 >> 1] << f2) + 32768 - ((a2 + d2 | 0) >>> 1) & 65535) >>> f2 & 65535; j[c2 + (b2 << 1) >> 1] = (d2 + 32768 - a2 & 65535) >>> f2; j[c2 + (b2 + e2 << 1) >> 1] = (a2 & 65535) >>> f2; j[c2 + (b2 + h2 << 1) >> 1] = o2; b2 = b2 + 1 | 0; } while ((b2 | 0) != (g2 | 0)); return; } case 4: { if ((k[f2 + 24 >> 2] | 0) != 1) return; g2 = (e2 | 0) < (d2 | 0) ? e2 : d2; if ((g2 | 0) <= 0) return; h2 = e2 << 1; l2 = e2 * 3 | 0; f2 = k[a2 + 32 >> 2] | 0; b2 = 0; do { o2 = j[n2 + (b2 << 3) + 6 >> 1] | 0; p2 = m[n2 + (b2 << 3) >> 1] << f2; d2 = m[n2 + (b2 << 3) + 2 >> 1] << f2; a2 = ((m[n2 + (b2 << 3) + 4 >> 1] << f2) + 32768 - ((d2 + p2 | 0) >>> 1) & 65535) >>> f2 & 65535; j[c2 + (b2 << 1) >> 1] = (p2 + 32768 - d2 & 65535) >>> f2; j[c2 + (b2 + e2 << 1) >> 1] = (d2 & 65535) >>> f2; j[c2 + (b2 + h2 << 1) >> 1] = a2; j[c2 + (b2 + l2 << 1) >> 1] = o2; b2 = b2 + 1 | 0; } while ((b2 | 0) != (g2 | 0)); return; } default: return; } } function dd(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; n2 = r; r = r + 176 | 0; o2 = n2 + 152 | 0; q2 = n2 + 16 | 0; p2 = n2; j2 = a2 + 4 | 0; f2 = k[j2 >> 2] | 0; m2 = d2 << 1; g2 = ia(m2, k[f2 + 16 >> 2] | 0) | 0; do if (g2) { h2 = a2 + 20 | 0; while (1) { f2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, k[h2 >> 2] | 0, g2) | 0; if (!f2) break; if ((g2 | 0) == (f2 | 0)) { l2 = 26; break; } else g2 = g2 - f2 | 0; } if ((l2 | 0) == 26) { f2 = k[j2 >> 2] | 0; break; } l2 = q2 + 56 | 0; j2 = q2 + 4 | 0; k[q2 >> 2] = 36160; k[l2 >> 2] = 36180; x = 0; ra(62, q2 + 56 | 0, j2 | 0); n2 = x; x = 0; if (n2 & 1) { q2 = Wa() | 0; qn(l2); fb(q2 | 0); } k[q2 + 128 >> 2] = 0; k[q2 + 132 >> 2] = -1; k[q2 >> 2] = 36200; k[q2 + 56 >> 2] = 36220; x = 0; qa(180, j2 | 0); n2 = x; x = 0; do if (n2 & 1) f2 = Wa() | 0; else { k[j2 >> 2] = 36236; b2 = q2 + 36 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[q2 + 52 >> 2] = 16; k[o2 >> 2] = 0; k[o2 + 4 >> 2] = 0; k[o2 + 8 >> 2] = 0; x = 0; ra(63, j2 | 0, o2 | 0); n2 = x; x = 0; if (n2 & 1) { f2 = Wa() | 0; Sm(o2); Sm(b2); xn(j2); break; } Sm(o2); x = 0; f2 = va(28, q2 | 0, 49029, 57) | 0; o2 = x; x = 0; if (!(o2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { h2 = Va(16) | 0; x = 0; ra(64, p2 | 0, j2 | 0); o2 = x; x = 0; if (!(o2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, h2 | 0, 3, 35648, p2 | 0); o2 = x; x = 0; if (o2 & 1) g2 = 1; else { x = 0; Fa(6, h2 | 0, 824, 96); x = 0; g2 = 0; } f2 = Wa() | 0; Sm(p2); if (!g2) { p2 = f2; k[q2 >> 2] = 36200; k[l2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(l2); fb(p2 | 0); } } else f2 = Wa() | 0; Ua(h2 | 0); p2 = f2; k[q2 >> 2] = 36200; k[l2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(l2); fb(p2 | 0); } p2 = Wa() | 0; k[q2 >> 2] = 36200; k[l2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(l2); fb(p2 | 0); } while (0); q2 = f2; qn(l2); fb(q2 | 0); } while (0); g2 = a2 + 20 | 0; if ((k[f2 + 28 >> 2] | 0) != 536870912) { q2 = k[g2 >> 2] | 0; cd(a2, q2, c2, d2, e2); r = n2; return; } Yc(k[g2 >> 2] | 0, ia(m2, k[f2 + 16 >> 2] | 0) | 0); q2 = k[g2 >> 2] | 0; cd(a2, q2, c2, d2, e2); r = n2; return; } function ed(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0; n2 = a2 + 4 | 0; f2 = k[n2 >> 2] | 0; a: do switch (k[f2 + 16 >> 2] | 0) { case 3: { if ((k[f2 + 24 >> 2] | 0) == 2) { if ((d2 | 0) <= 0) break a; f2 = a2 + 40 | 0; a2 = 0; do { l2 = k[f2 >> 2] | 0; h2 = m[b2 + (a2 * 6 | 0) + 2 >> 1] << l2; g2 = (m[b2 + (a2 * 6 | 0) >> 1] << l2) + 32768 + h2 & 65535; h2 = h2 & 65535; e2 = ((m[b2 + (a2 * 6 | 0) + 4 >> 1] << l2) + 32768 + ((g2 + h2 | 0) >>> 1) & 65535) >>> l2 & 65535; j[c2 + (a2 * 6 | 0) >> 1] = g2 >>> l2; j[c2 + (a2 * 6 | 0) + 2 >> 1] = h2 >>> l2; j[c2 + (a2 * 6 | 0) + 4 >> 1] = e2; a2 = a2 + 1 | 0; } while ((a2 | 0) != (d2 | 0)); } else { g2 = (d2 | 0) < (e2 | 0) ? d2 : e2; if ((g2 | 0) <= 0) break a; h2 = e2 << 1; f2 = a2 + 40 | 0; a2 = 0; do { o2 = k[f2 >> 2] | 0; p2 = m[b2 + (a2 + e2 << 1) >> 1] << o2; q2 = (m[b2 + (a2 << 1) >> 1] << o2) + 32768 + p2 & 65535; p2 = p2 & 65535; l2 = ((m[b2 + (a2 + h2 << 1) >> 1] << o2) + 32768 + ((q2 + p2 | 0) >>> 1) & 65535) >>> o2 & 65535; j[c2 + (a2 * 6 | 0) >> 1] = q2 >>> o2; j[c2 + (a2 * 6 | 0) + 2 >> 1] = p2 >>> o2; j[c2 + (a2 * 6 | 0) + 4 >> 1] = l2; a2 = a2 + 1 | 0; } while ((a2 | 0) != (g2 | 0)); } break; } case 4: { if ((k[f2 + 24 >> 2] | 0) == 1 ? (l2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (l2 | 0) > 0) : 0) { h2 = e2 << 1; f2 = a2 + 40 | 0; a2 = e2 * 3 | 0; g2 = 0; do { o2 = k[f2 >> 2] | 0; q2 = m[b2 + (g2 + e2 << 1) >> 1] << o2; s2 = (m[b2 + (g2 << 1) >> 1] << o2) + 32768 + q2 & 65535; q2 = q2 & 65535; p2 = ((m[b2 + (g2 + h2 << 1) >> 1] << o2) + 32768 + ((s2 + q2 | 0) >>> 1) & 65535) >>> o2; r2 = j[b2 + (g2 + a2 << 1) >> 1] | 0; q2 = ww(q2 >>> o2 & 65535 | 0, 0, 16) | 0; p2 = M | p2; r2 = ww(r2 & 65535 | 0, 0, 48) | 0; r2 = s2 >>> o2 & 65535 | q2 | r2; p2 = p2 & 65535 | M; q2 = c2 + (g2 << 3) | 0; o2 = q2; j[o2 >> 1] = r2; j[o2 + 2 >> 1] = r2 >>> 16; q2 = q2 + 4 | 0; j[q2 >> 1] = p2; j[q2 + 2 >> 1] = p2 >>> 16; g2 = g2 + 1 | 0; } while ((g2 | 0) != (l2 | 0)); } break; } default: { } } while (0); f2 = k[n2 >> 2] | 0; if (!(i2[f2 + 32 >> 0] | 0)) return; g2 = k[f2 + 16 >> 2] | 0; if ((d2 | 0) <= 0) return; f2 = c2; a2 = 0; while (1) { s2 = f2 + 4 | 0; r2 = j[f2 >> 1] | 0; j[f2 >> 1] = j[s2 >> 1] | 0; j[s2 >> 1] = r2; a2 = a2 + 1 | 0; if ((a2 | 0) == (d2 | 0)) break; else f2 = f2 + (g2 << 1) | 0; } return; } function fd(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0; k[a2 >> 2] = 36364; b2 = k[a2 + 20 >> 2] | 0; if (b2) { c2 = a2 + 24 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } d2 = k[a2 + 8 >> 2] | 0; if (!d2) return; b2 = a2 + 12 | 0; c2 = k[b2 >> 2] | 0; if ((c2 | 0) != (d2 | 0)) k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); mj(d2); return; } function gd(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0; k[a2 >> 2] = 36364; b2 = k[a2 + 20 >> 2] | 0; if (b2) { c2 = a2 + 24 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } d2 = k[a2 + 8 >> 2] | 0; if (!d2) { mj(a2); return; } b2 = a2 + 12 | 0; c2 = k[b2 >> 2] | 0; if ((c2 | 0) != (d2 | 0)) k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); mj(d2); mj(a2); return; } function hd(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; e2 = a2 + 48 | 0; if (!(k[e2 >> 2] | 0)) { h2 = a2 + 52 | 0; ld(a2, b2, k[h2 >> 2] | 0, c2, d2); k[h2 >> 2] = (k[h2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); return; } j2 = a2 + 4 | 0; f2 = c2 << 1; g2 = ia(f2, k[(k[j2 >> 2] | 0) + 16 >> 2] | 0) | 0; h2 = a2 + 20 | 0; ld(a2, b2, k[h2 >> 2] | 0, c2, d2); b2 = k[j2 >> 2] | 0; if ((k[b2 + 28 >> 2] | 0) == 536870912) Yc(k[h2 >> 2] | 0, ia(f2, k[b2 + 16 >> 2] | 0) | 0); j2 = k[e2 >> 2] | 0; if ((Qb[k[(k[j2 >> 2] | 0) + 48 >> 2] & 63](j2, k[h2 >> 2] | 0, g2) | 0) == (g2 | 0)) return; b2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, b2 | 0, 3, 35648); j2 = x; x = 0; if (j2 & 1) { j2 = Wa() | 0; Ua(b2 | 0); fb(j2 | 0); } else ub(b2 | 0, 824, 96); } function id(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0; e2 = k[a2 + 48 >> 2] | 0; if (!e2) { e2 = a2 + 52 | 0; jd(a2, k[e2 >> 2] | 0, b2, c2, d2); k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); return; } else { kd(a2, e2, b2, c2, d2); return; } } function jd(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0; l2 = a2 + 4 | 0; f2 = k[l2 >> 2] | 0; do if (!(i2[f2 + 32 >> 0] | 0)) n2 = b2; else { g2 = a2 + 8 | 0; vw(k[g2 >> 2] | 0, b2 | 0, d2 * 6 | 0) | 0; f2 = k[l2 >> 2] | 0; h2 = k[f2 + 16 >> 2] | 0; if ((d2 | 0) <= 0) { n2 = k[g2 >> 2] | 0; break; } b2 = k[g2 >> 2] | 0; f2 = b2; g2 = 0; while (1) { n2 = f2 + 4 | 0; o2 = j[f2 >> 1] | 0; j[f2 >> 1] = j[n2 >> 1] | 0; j[n2 >> 1] = o2; g2 = g2 + 1 | 0; if ((g2 | 0) == (d2 | 0)) break; else f2 = f2 + (h2 << 1) | 0; } n2 = b2; f2 = k[l2 >> 2] | 0; } while (0); switch (k[f2 + 16 >> 2] | 0) { case 3: if ((k[f2 + 24 >> 2] | 0) == 2) { if ((d2 | 0) <= 0) return; f2 = a2 + 32 | 0; b2 = 0; do { e2 = k[f2 >> 2] | 0; a2 = m[n2 + (b2 * 6 | 0) + 2 >> 1] << e2; o2 = (32768 - a2 + (m[n2 + (b2 * 6 | 0) + 4 >> 1] << e2) & 65535) >>> e2 & 65535; j[c2 + (b2 * 6 | 0) >> 1] = ((m[n2 + (b2 * 6 | 0) >> 1] << e2) + 32768 - a2 & 65535) >>> e2; j[c2 + (b2 * 6 | 0) + 2 >> 1] = (a2 & 65535) >>> e2; j[c2 + (b2 * 6 | 0) + 4 >> 1] = o2; b2 = b2 + 1 | 0; } while ((b2 | 0) != (d2 | 0)); return; } else { g2 = (e2 | 0) < (d2 | 0) ? e2 : d2; if ((g2 | 0) <= 0) return; h2 = e2 << 1; f2 = k[a2 + 32 >> 2] | 0; b2 = 0; do { a2 = m[n2 + (b2 * 6 | 0) + 2 >> 1] << f2; o2 = (32768 - a2 + (m[n2 + (b2 * 6 | 0) + 4 >> 1] << f2) & 65535) >>> f2 & 65535; j[c2 + (b2 << 1) >> 1] = ((m[n2 + (b2 * 6 | 0) >> 1] << f2) + 32768 - a2 & 65535) >>> f2; j[c2 + (b2 + e2 << 1) >> 1] = (a2 & 65535) >>> f2; j[c2 + (b2 + h2 << 1) >> 1] = o2; b2 = b2 + 1 | 0; } while ((b2 | 0) != (g2 | 0)); return; } case 4: { if ((k[f2 + 24 >> 2] | 0) != 1) return; h2 = (e2 | 0) < (d2 | 0) ? e2 : d2; if ((h2 | 0) <= 0) return; l2 = e2 << 1; g2 = e2 * 3 | 0; f2 = k[a2 + 32 >> 2] | 0; b2 = 0; do { o2 = j[n2 + (b2 << 3) + 6 >> 1] | 0; d2 = m[n2 + (b2 << 3) + 2 >> 1] << f2; a2 = (32768 - d2 + (m[n2 + (b2 << 3) + 4 >> 1] << f2) & 65535) >>> f2 & 65535; j[c2 + (b2 << 1) >> 1] = ((m[n2 + (b2 << 3) >> 1] << f2) + 32768 - d2 & 65535) >>> f2; j[c2 + (b2 + e2 << 1) >> 1] = (d2 & 65535) >>> f2; j[c2 + (b2 + l2 << 1) >> 1] = a2; j[c2 + (b2 + g2 << 1) >> 1] = o2; b2 = b2 + 1 | 0; } while ((b2 | 0) != (h2 | 0)); return; } default: return; } } function kd(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; n2 = r; r = r + 176 | 0; o2 = n2 + 152 | 0; q2 = n2 + 16 | 0; p2 = n2; j2 = a2 + 4 | 0; f2 = k[j2 >> 2] | 0; m2 = d2 << 1; g2 = ia(m2, k[f2 + 16 >> 2] | 0) | 0; do if (g2) { h2 = a2 + 20 | 0; while (1) { f2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, k[h2 >> 2] | 0, g2) | 0; if (!f2) break; if ((g2 | 0) == (f2 | 0)) { l2 = 26; break; } else g2 = g2 - f2 | 0; } if ((l2 | 0) == 26) { f2 = k[j2 >> 2] | 0; break; } l2 = q2 + 56 | 0; j2 = q2 + 4 | 0; k[q2 >> 2] = 36160; k[l2 >> 2] = 36180; x = 0; ra(62, q2 + 56 | 0, j2 | 0); n2 = x; x = 0; if (n2 & 1) { q2 = Wa() | 0; qn(l2); fb(q2 | 0); } k[q2 + 128 >> 2] = 0; k[q2 + 132 >> 2] = -1; k[q2 >> 2] = 36200; k[q2 + 56 >> 2] = 36220; x = 0; qa(180, j2 | 0); n2 = x; x = 0; do if (n2 & 1) f2 = Wa() | 0; else { k[j2 >> 2] = 36236; b2 = q2 + 36 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[q2 + 52 >> 2] = 16; k[o2 >> 2] = 0; k[o2 + 4 >> 2] = 0; k[o2 + 8 >> 2] = 0; x = 0; ra(63, j2 | 0, o2 | 0); n2 = x; x = 0; if (n2 & 1) { f2 = Wa() | 0; Sm(o2); Sm(b2); xn(j2); break; } Sm(o2); x = 0; f2 = va(28, q2 | 0, 49029, 57) | 0; o2 = x; x = 0; if (!(o2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { h2 = Va(16) | 0; x = 0; ra(64, p2 | 0, j2 | 0); o2 = x; x = 0; if (!(o2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, h2 | 0, 3, 35648, p2 | 0); o2 = x; x = 0; if (o2 & 1) g2 = 1; else { x = 0; Fa(6, h2 | 0, 824, 96); x = 0; g2 = 0; } f2 = Wa() | 0; Sm(p2); if (!g2) { p2 = f2; k[q2 >> 2] = 36200; k[l2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(l2); fb(p2 | 0); } } else f2 = Wa() | 0; Ua(h2 | 0); p2 = f2; k[q2 >> 2] = 36200; k[l2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(l2); fb(p2 | 0); } p2 = Wa() | 0; k[q2 >> 2] = 36200; k[l2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(l2); fb(p2 | 0); } while (0); q2 = f2; qn(l2); fb(q2 | 0); } while (0); g2 = a2 + 20 | 0; if ((k[f2 + 28 >> 2] | 0) != 536870912) { q2 = k[g2 >> 2] | 0; jd(a2, q2, c2, d2, e2); r = n2; return; } Yc(k[g2 >> 2] | 0, ia(m2, k[f2 + 16 >> 2] | 0) | 0); q2 = k[g2 >> 2] | 0; jd(a2, q2, c2, d2, e2); r = n2; return; } function ld(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0; n2 = a2 + 4 | 0; f2 = k[n2 >> 2] | 0; a: do switch (k[f2 + 16 >> 2] | 0) { case 3: { if ((k[f2 + 24 >> 2] | 0) == 2) { if ((d2 | 0) <= 0) break a; f2 = a2 + 40 | 0; a2 = 0; do { l2 = k[f2 >> 2] | 0; h2 = m[b2 + (a2 * 6 | 0) + 2 >> 1] << l2; e2 = (h2 + 32768 + (m[b2 + (a2 * 6 | 0) + 4 >> 1] << l2) & 65535) >>> l2 & 65535; j[c2 + (a2 * 6 | 0) >> 1] = ((m[b2 + (a2 * 6 | 0) >> 1] << l2) + 32768 + h2 & 65535) >>> l2; j[c2 + (a2 * 6 | 0) + 2 >> 1] = (h2 & 65535) >>> l2; j[c2 + (a2 * 6 | 0) + 4 >> 1] = e2; a2 = a2 + 1 | 0; } while ((a2 | 0) != (d2 | 0)); } else { g2 = (d2 | 0) < (e2 | 0) ? d2 : e2; if ((g2 | 0) <= 0) break a; h2 = e2 << 1; f2 = a2 + 40 | 0; a2 = 0; do { o2 = k[f2 >> 2] | 0; p2 = m[b2 + (a2 + e2 << 1) >> 1] << o2; l2 = (p2 + 32768 + (m[b2 + (a2 + h2 << 1) >> 1] << o2) & 65535) >>> o2 & 65535; j[c2 + (a2 * 6 | 0) >> 1] = ((m[b2 + (a2 << 1) >> 1] << o2) + 32768 + p2 & 65535) >>> o2; j[c2 + (a2 * 6 | 0) + 2 >> 1] = (p2 & 65535) >>> o2; j[c2 + (a2 * 6 | 0) + 4 >> 1] = l2; a2 = a2 + 1 | 0; } while ((a2 | 0) != (g2 | 0)); } break; } case 4: { if ((k[f2 + 24 >> 2] | 0) == 1 ? (l2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (l2 | 0) > 0) : 0) { h2 = e2 << 1; f2 = a2 + 40 | 0; a2 = e2 * 3 | 0; g2 = 0; do { q2 = k[f2 >> 2] | 0; s2 = m[b2 + (g2 + e2 << 1) >> 1] << q2; p2 = ((m[b2 + (g2 << 1) >> 1] << q2) + 32768 + s2 & 65535) >>> q2; o2 = (s2 + 32768 + (m[b2 + (g2 + h2 << 1) >> 1] << q2) & 65535) >>> q2; r2 = j[b2 + (g2 + a2 << 1) >> 1] | 0; q2 = ww((s2 & 65535) >>> q2 & 65535 | 0, 0, 16) | 0; o2 = o2 | M; r2 = ww(r2 & 65535 | 0, 0, 48) | 0; r2 = q2 | p2 & 65535 | r2; o2 = o2 & 65535 | M; p2 = c2 + (g2 << 3) | 0; q2 = p2; j[q2 >> 1] = r2; j[q2 + 2 >> 1] = r2 >>> 16; p2 = p2 + 4 | 0; j[p2 >> 1] = o2; j[p2 + 2 >> 1] = o2 >>> 16; g2 = g2 + 1 | 0; } while ((g2 | 0) != (l2 | 0)); } break; } default: { } } while (0); f2 = k[n2 >> 2] | 0; if (!(i2[f2 + 32 >> 0] | 0)) return; g2 = k[f2 + 16 >> 2] | 0; if ((d2 | 0) <= 0) return; f2 = c2; a2 = 0; while (1) { s2 = f2 + 4 | 0; r2 = j[f2 >> 1] | 0; j[f2 >> 1] = j[s2 >> 1] | 0; j[s2 >> 1] = r2; a2 = a2 + 1 | 0; if ((a2 | 0) == (d2 | 0)) break; else f2 = f2 + (g2 << 1) | 0; } return; } function md(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; n2 = r; r = r + 16 | 0; l2 = n2; m2 = k[a2 >> 2] | 0; if (!m2) { a2 = 0; r = n2; return a2 | 0; } o2 = b2; h2 = d2 - o2 | 0; j2 = e2 + 12 | 0; g2 = k[j2 >> 2] | 0; h2 = (g2 | 0) > (h2 | 0) ? g2 - h2 | 0 : 0; g2 = c2; e2 = g2 - o2 | 0; if ((e2 | 0) > 0 ? (Qb[k[(k[m2 >> 2] | 0) + 48 >> 2] & 63](m2, b2, e2) | 0) != (e2 | 0) : 0) { k[a2 >> 2] = 0; o2 = 0; r = n2; return o2 | 0; } do if ((h2 | 0) > 0) { Rm(l2, h2, f2); x = 0; e2 = va(k[(k[m2 >> 2] | 0) + 48 >> 2] | 0, m2 | 0, ((i2[l2 >> 0] & 1) == 0 ? l2 + 1 | 0 : k[l2 + 8 >> 2] | 0) | 0, h2 | 0) | 0; o2 = x; x = 0; if (o2 & 1) { o2 = Wa() | 0; Sm(l2); fb(o2 | 0); } if ((e2 | 0) == (h2 | 0)) { Sm(l2); break; } k[a2 >> 2] = 0; Sm(l2); o2 = 0; r = n2; return o2 | 0; } while (0); d2 = d2 - g2 | 0; if ((d2 | 0) > 0 ? (Qb[k[(k[m2 >> 2] | 0) + 48 >> 2] & 63](m2, c2, d2) | 0) != (d2 | 0) : 0) { k[a2 >> 2] = 0; o2 = 0; r = n2; return o2 | 0; } k[j2 >> 2] = 0; o2 = m2; r = n2; return o2 | 0; } function nd(a2) { a2 = a2 | 0; k[a2 >> 2] = 36236; Sm(a2 + 32 | 0); xn(a2); return; } function od(a2) { a2 = a2 | 0; k[a2 >> 2] = 36236; Sm(a2 + 32 | 0); xn(a2); mj(a2); return; } function pd(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; g2 = b2 + 44 | 0; h2 = k[g2 >> 2] | 0; l2 = b2 + 24 | 0; m2 = k[l2 >> 2] | 0; if (h2 >>> 0 < m2 >>> 0) { k[g2 >> 2] = m2; h2 = m2; } j2 = h2; g2 = f2 & 24; if (!g2) { b2 = a2; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; b2 = a2 + 8 | 0; k[b2 >> 2] = -1; k[b2 + 4 >> 2] = -1; return; } if ((e2 | 0) == 1 & (g2 | 0) == 24) { b2 = a2; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; b2 = a2 + 8 | 0; k[b2 >> 2] = -1; k[b2 + 4 >> 2] = -1; return; } a: do switch (e2 | 0) { case 0: { g2 = 0; e2 = 0; break; } case 1: if (!(f2 & 8)) { e2 = m2 - (k[b2 + 20 >> 2] | 0) | 0; g2 = e2; e2 = ((e2 | 0) < 0) << 31 >> 31; break a; } else { e2 = (k[b2 + 12 >> 2] | 0) - (k[b2 + 8 >> 2] | 0) | 0; g2 = e2; e2 = ((e2 | 0) < 0) << 31 >> 31; break a; } case 2: { g2 = b2 + 32 | 0; if (!(i2[g2 >> 0] & 1)) g2 = g2 + 1 | 0; else g2 = k[b2 + 40 >> 2] | 0; e2 = h2 - g2 | 0; g2 = e2; e2 = ((e2 | 0) < 0) << 31 >> 31; break; } default: { b2 = a2; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; b2 = a2 + 8 | 0; k[b2 >> 2] = -1; k[b2 + 4 >> 2] = -1; return; } } while (0); e2 = tw(g2 | 0, e2 | 0, c2 | 0, d2 | 0) | 0; c2 = M; if ((c2 | 0) >= 0) { g2 = b2 + 32 | 0; if (!(i2[g2 >> 0] & 1)) g2 = g2 + 1 | 0; else g2 = k[b2 + 40 >> 2] | 0; d2 = h2 - g2 | 0; h2 = ((d2 | 0) < 0) << 31 >> 31; if (!((h2 | 0) < (c2 | 0) | (h2 | 0) == (c2 | 0) & d2 >>> 0 < e2 >>> 0)) { g2 = f2 & 8; if (!((e2 | 0) == 0 & (c2 | 0) == 0)) { if ((g2 | 0) != 0 ? (k[b2 + 12 >> 2] | 0) == 0 : 0) { b2 = a2; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; b2 = a2 + 8 | 0; k[b2 >> 2] = -1; k[b2 + 4 >> 2] = -1; return; } if ((f2 & 16 | 0) != 0 & (m2 | 0) == 0) { b2 = a2; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; b2 = a2 + 8 | 0; k[b2 >> 2] = -1; k[b2 + 4 >> 2] = -1; return; } } if (g2) { k[b2 + 12 >> 2] = (k[b2 + 8 >> 2] | 0) + e2; k[b2 + 16 >> 2] = j2; } if (f2 & 16) k[l2 >> 2] = (k[b2 + 20 >> 2] | 0) + e2; b2 = a2; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; b2 = a2 + 8 | 0; k[b2 >> 2] = e2; k[b2 + 4 >> 2] = c2; return; } } b2 = a2; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; b2 = a2 + 8 | 0; k[b2 >> 2] = -1; k[b2 + 4 >> 2] = -1; return; } function qd(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; c2 = c2 + 8 | 0; Sb[k[(k[b2 >> 2] | 0) + 16 >> 2] & 15](a2, b2, k[c2 >> 2] | 0, k[c2 + 4 >> 2] | 0, 0, d2); return; } function rd(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0; b2 = a2 + 44 | 0; c2 = k[b2 >> 2] | 0; d2 = k[a2 + 24 >> 2] | 0; if (c2 >>> 0 < d2 >>> 0) { k[b2 >> 2] = d2; c2 = d2; } if (!(k[a2 + 48 >> 2] & 8)) { a2 = -1; return a2 | 0; } e2 = a2 + 16 | 0; b2 = k[e2 >> 2] | 0; d2 = a2 + 12 | 0; if (b2 >>> 0 < c2 >>> 0) { d2 = k[d2 >> 2] | 0; k[e2 >> 2] = c2; b2 = c2; } else d2 = k[d2 >> 2] | 0; if (d2 >>> 0 >= b2 >>> 0) { a2 = -1; return a2 | 0; } a2 = l[d2 >> 0] | 0; return a2 | 0; } function sd(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; d2 = a2 + 44 | 0; c2 = k[d2 >> 2] | 0; e2 = k[a2 + 24 >> 2] | 0; if (c2 >>> 0 < e2 >>> 0) { k[d2 >> 2] = e2; c2 = e2; } h2 = a2 + 8 | 0; d2 = k[h2 >> 2] | 0; j2 = a2 + 12 | 0; f2 = k[j2 >> 2] | 0; g2 = d2; if (d2 >>> 0 >= f2 >>> 0) { a2 = -1; return a2 | 0; } if ((b2 | 0) == -1) { k[h2 >> 2] = d2; k[j2 >> 2] = f2 + -1; k[a2 + 16 >> 2] = c2; a2 = 0; return a2 | 0; } if (!(k[a2 + 48 >> 2] & 16)) { e2 = b2 & 255; d2 = f2 + -1 | 0; if (e2 << 24 >> 24 != (i2[d2 >> 0] | 0)) { a2 = -1; return a2 | 0; } } else { e2 = b2 & 255; d2 = f2 + -1 | 0; } k[h2 >> 2] = g2; k[j2 >> 2] = d2; k[a2 + 16 >> 2] = c2; i2[d2 >> 0] = e2; a2 = b2; return a2 | 0; } function td(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0; s2 = r; r = r + 16 | 0; m2 = s2; if ((b2 | 0) == -1) { a2 = 0; r = s2; return a2 | 0; } n2 = a2 + 12 | 0; o2 = a2 + 8 | 0; p2 = (k[n2 >> 2] | 0) - (k[o2 >> 2] | 0) | 0; q2 = a2 + 24 | 0; c2 = k[q2 >> 2] | 0; l2 = a2 + 28 | 0; d2 = k[l2 >> 2] | 0; do if ((c2 | 0) == (d2 | 0)) { h2 = a2 + 48 | 0; if (!(k[h2 >> 2] & 16)) { a2 = -1; r = s2; return a2 | 0; } j2 = a2 + 20 | 0; g2 = k[j2 >> 2] | 0; e2 = c2 - g2 | 0; f2 = a2 + 44 | 0; g2 = (k[f2 >> 2] | 0) - g2 | 0; d2 = a2 + 32 | 0; x = 0; ra(67, d2 | 0, 0); c2 = x; x = 0; if (!(c2 & 1)) { if (!(i2[d2 >> 0] & 1)) c2 = 10; else c2 = (k[d2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, d2 | 0, c2 | 0, 0); c2 = x; x = 0; if (!(c2 & 1)) { c2 = i2[d2 >> 0] | 0; if (!(c2 & 1)) { d2 = d2 + 1 | 0; c2 = (c2 & 255) >>> 1; } else { d2 = k[a2 + 40 >> 2] | 0; c2 = k[a2 + 36 >> 2] | 0; } t2 = d2 + c2 | 0; k[j2 >> 2] = d2; k[l2 >> 2] = t2; j2 = d2 + e2 | 0; k[q2 >> 2] = j2; c2 = d2 + g2 | 0; k[f2 >> 2] = c2; d2 = t2; break; } } t2 = Wa(0) | 0; cb(t2 | 0) | 0; eb(); t2 = -1; r = s2; return t2 | 0; } else { t2 = a2 + 44 | 0; h2 = a2 + 48 | 0; f2 = t2; j2 = c2; c2 = k[t2 >> 2] | 0; } while (0); g2 = j2 + 1 | 0; k[m2 >> 2] = g2; e2 = k[(g2 >>> 0 < c2 >>> 0 ? f2 : m2) >> 2] | 0; k[f2 >> 2] = e2; if (k[h2 >> 2] & 8) { c2 = a2 + 32 | 0; if (!(i2[c2 >> 0] & 1)) c2 = c2 + 1 | 0; else c2 = k[a2 + 40 >> 2] | 0; k[o2 >> 2] = c2; k[n2 >> 2] = c2 + p2; k[a2 + 16 >> 2] = e2; } if ((j2 | 0) == (d2 | 0)) { t2 = Vb[k[(k[a2 >> 2] | 0) + 52 >> 2] & 63](a2, b2 & 255) | 0; r = s2; return t2 | 0; } else { k[q2 >> 2] = g2; i2[j2 >> 0] = b2; t2 = b2 & 255; r = s2; return t2 | 0; } return 0; } function ud(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 36200; b2 = a2 + 56 | 0; k[b2 >> 2] = 36220; c2 = a2 + 4 | 0; k[c2 >> 2] = 36236; Sm(a2 + 36 | 0); xn(c2); qn(b2); return; } function vd(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 36200; b2 = a2 + 56 | 0; k[b2 >> 2] = 36220; c2 = a2 + 4 | 0; k[c2 >> 2] = 36236; Sm(a2 + 36 | 0); xn(c2); qn(b2); mj(a2); return; } function wd(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0; e2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; b2 = a2 + e2 | 0; k[b2 >> 2] = 36200; c2 = a2 + (e2 + 56) | 0; k[c2 >> 2] = 36220; d2 = a2 + (e2 + 4) | 0; k[d2 >> 2] = 36236; Sm(a2 + (e2 + 36) | 0); xn(d2); qn(c2); mj(b2); return; } function xd(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0; k[a2 >> 2] = 36388; b2 = k[a2 + 20 >> 2] | 0; if (b2) { c2 = a2 + 24 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } d2 = k[a2 + 8 >> 2] | 0; if (!d2) return; b2 = a2 + 12 | 0; c2 = k[b2 >> 2] | 0; if ((c2 | 0) != (d2 | 0)) k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); mj(d2); return; } function yd(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0; k[a2 >> 2] = 36388; b2 = k[a2 + 20 >> 2] | 0; if (b2) { c2 = a2 + 24 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } d2 = k[a2 + 8 >> 2] | 0; if (!d2) { mj(a2); return; } b2 = a2 + 12 | 0; c2 = k[b2 >> 2] | 0; if ((c2 | 0) != (d2 | 0)) k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); mj(d2); mj(a2); return; } function zd(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; e2 = a2 + 36 | 0; if (!(k[e2 >> 2] | 0)) { h2 = a2 + 40 | 0; Dd(a2, b2, k[h2 >> 2] | 0, c2, d2); k[h2 >> 2] = (k[h2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); return; } j2 = a2 + 4 | 0; f2 = c2 << 1; g2 = ia(f2, k[(k[j2 >> 2] | 0) + 16 >> 2] | 0) | 0; h2 = a2 + 20 | 0; Dd(a2, b2, k[h2 >> 2] | 0, c2, d2); b2 = k[j2 >> 2] | 0; if ((k[b2 + 28 >> 2] | 0) == 536870912) Yc(k[h2 >> 2] | 0, ia(f2, k[b2 + 16 >> 2] | 0) | 0); j2 = k[e2 >> 2] | 0; if ((Qb[k[(k[j2 >> 2] | 0) + 48 >> 2] & 63](j2, k[h2 >> 2] | 0, g2) | 0) == (g2 | 0)) return; b2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, b2 | 0, 3, 35648); j2 = x; x = 0; if (j2 & 1) { j2 = Wa() | 0; Ua(b2 | 0); fb(j2 | 0); } else ub(b2 | 0, 824, 96); } function Ad(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0; e2 = k[a2 + 36 >> 2] | 0; if (!e2) { e2 = a2 + 40 | 0; Bd(a2, k[e2 >> 2] | 0, b2, c2, d2); k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); return; } else { Cd(a2, e2, b2, c2, d2); return; } } function Bd(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0; h2 = a2 + 4 | 0; f2 = k[h2 >> 2] | 0; do if (!(i2[f2 + 32 >> 0] | 0)) l2 = b2; else { a2 = a2 + 8 | 0; vw(k[a2 >> 2] | 0, b2 | 0, d2 * 6 | 0) | 0; f2 = k[h2 >> 2] | 0; g2 = k[f2 + 16 >> 2] | 0; if ((d2 | 0) <= 0) { l2 = k[a2 >> 2] | 0; break; } a2 = k[a2 >> 2] | 0; f2 = a2; b2 = 0; while (1) { l2 = f2 + 4 | 0; n2 = j[f2 >> 1] | 0; j[f2 >> 1] = j[l2 >> 1] | 0; j[l2 >> 1] = n2; b2 = b2 + 1 | 0; if ((b2 | 0) == (d2 | 0)) break; else f2 = f2 + (g2 << 1) | 0; } l2 = a2; f2 = k[h2 >> 2] | 0; } while (0); switch (k[f2 + 16 >> 2] | 0) { case 3: { if ((k[f2 + 24 >> 2] | 0) == 2) { if ((d2 | 0) > 0) f2 = 0; else return; do { h2 = m[l2 + (f2 * 6 | 0) + 2 >> 1] | 0; e2 = 32768 - h2 + (m[l2 + (f2 * 6 | 0) + 4 >> 1] | 0) | 0; n2 = (m[l2 + (f2 * 6 | 0) >> 1] | 0) - h2 + 32768 | 0; j[c2 + (f2 * 6 | 0) >> 1] = h2 + 49152 + (((e2 & 65535) + (n2 & 65535) | 0) >>> 2); j[c2 + (f2 * 6 | 0) + 2 >> 1] = e2; j[c2 + (f2 * 6 | 0) + 4 >> 1] = n2; f2 = f2 + 1 | 0; } while ((f2 | 0) != (d2 | 0)); return; } f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; if ((f2 | 0) <= 0) return; a2 = e2 << 1; b2 = 0; do { h2 = m[l2 + (b2 * 6 | 0) + 2 >> 1] | 0; d2 = 32768 - h2 + (m[l2 + (b2 * 6 | 0) + 4 >> 1] | 0) | 0; n2 = (m[l2 + (b2 * 6 | 0) >> 1] | 0) - h2 + 32768 | 0; j[c2 + (b2 << 1) >> 1] = h2 + 49152 + (((d2 & 65535) + (n2 & 65535) | 0) >>> 2); j[c2 + (b2 + e2 << 1) >> 1] = d2; j[c2 + (b2 + a2 << 1) >> 1] = n2; b2 = b2 + 1 | 0; } while ((b2 | 0) != (f2 | 0)); return; } case 4: { if ((k[f2 + 24 >> 2] | 0) != 1) return; f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; if ((f2 | 0) <= 0) return; a2 = e2 << 1; b2 = e2 * 3 | 0; g2 = 0; do { n2 = j[l2 + (g2 << 3) + 6 >> 1] | 0; o2 = m[l2 + (g2 << 3) + 2 >> 1] | 0; h2 = 32768 - o2 + (m[l2 + (g2 << 3) + 4 >> 1] | 0) | 0; d2 = (m[l2 + (g2 << 3) >> 1] | 0) - o2 + 32768 | 0; j[c2 + (g2 << 1) >> 1] = o2 + 49152 + (((h2 & 65535) + (d2 & 65535) | 0) >>> 2); j[c2 + (g2 + e2 << 1) >> 1] = h2; j[c2 + (g2 + a2 << 1) >> 1] = d2; j[c2 + (g2 + b2 << 1) >> 1] = n2; g2 = g2 + 1 | 0; } while ((g2 | 0) != (f2 | 0)); return; } default: return; } } function Cd(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; n2 = r; r = r + 176 | 0; o2 = n2 + 152 | 0; q2 = n2 + 16 | 0; p2 = n2; j2 = a2 + 4 | 0; f2 = k[j2 >> 2] | 0; m2 = d2 << 1; g2 = ia(m2, k[f2 + 16 >> 2] | 0) | 0; do if (g2) { h2 = a2 + 20 | 0; while (1) { f2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, k[h2 >> 2] | 0, g2) | 0; if (!f2) break; if ((g2 | 0) == (f2 | 0)) { l2 = 26; break; } else g2 = g2 - f2 | 0; } if ((l2 | 0) == 26) { f2 = k[j2 >> 2] | 0; break; } l2 = q2 + 56 | 0; j2 = q2 + 4 | 0; k[q2 >> 2] = 36160; k[l2 >> 2] = 36180; x = 0; ra(62, q2 + 56 | 0, j2 | 0); n2 = x; x = 0; if (n2 & 1) { q2 = Wa() | 0; qn(l2); fb(q2 | 0); } k[q2 + 128 >> 2] = 0; k[q2 + 132 >> 2] = -1; k[q2 >> 2] = 36200; k[q2 + 56 >> 2] = 36220; x = 0; qa(180, j2 | 0); n2 = x; x = 0; do if (n2 & 1) f2 = Wa() | 0; else { k[j2 >> 2] = 36236; b2 = q2 + 36 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[q2 + 52 >> 2] = 16; k[o2 >> 2] = 0; k[o2 + 4 >> 2] = 0; k[o2 + 8 >> 2] = 0; x = 0; ra(63, j2 | 0, o2 | 0); n2 = x; x = 0; if (n2 & 1) { f2 = Wa() | 0; Sm(o2); Sm(b2); xn(j2); break; } Sm(o2); x = 0; f2 = va(28, q2 | 0, 49029, 57) | 0; o2 = x; x = 0; if (!(o2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { h2 = Va(16) | 0; x = 0; ra(64, p2 | 0, j2 | 0); o2 = x; x = 0; if (!(o2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, h2 | 0, 3, 35648, p2 | 0); o2 = x; x = 0; if (o2 & 1) g2 = 1; else { x = 0; Fa(6, h2 | 0, 824, 96); x = 0; g2 = 0; } f2 = Wa() | 0; Sm(p2); if (!g2) { p2 = f2; k[q2 >> 2] = 36200; k[l2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(l2); fb(p2 | 0); } } else f2 = Wa() | 0; Ua(h2 | 0); p2 = f2; k[q2 >> 2] = 36200; k[l2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(l2); fb(p2 | 0); } p2 = Wa() | 0; k[q2 >> 2] = 36200; k[l2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(l2); fb(p2 | 0); } while (0); q2 = f2; qn(l2); fb(q2 | 0); } while (0); g2 = a2 + 20 | 0; if ((k[f2 + 28 >> 2] | 0) != 536870912) { q2 = k[g2 >> 2] | 0; Bd(a2, q2, c2, d2, e2); r = n2; return; } Yc(k[g2 >> 2] | 0, ia(m2, k[f2 + 16 >> 2] | 0) | 0); q2 = k[g2 >> 2] | 0; Bd(a2, q2, c2, d2, e2); r = n2; return; } function Dd(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; l2 = a2 + 4 | 0; a2 = k[l2 >> 2] | 0; a: do switch (k[a2 + 16 >> 2] | 0) { case 3: { if ((k[a2 + 24 >> 2] | 0) == 2) { if ((d2 | 0) > 0) a2 = 0; else break a; while (1) { h2 = m[b2 + (a2 * 6 | 0) + 2 >> 1] | 0; g2 = m[b2 + (a2 * 6 | 0) + 4 >> 1] | 0; e2 = (m[b2 + (a2 * 6 | 0) >> 1] | 0) - ((g2 + h2 | 0) >>> 2) + 16384 | 0; j[c2 + (a2 * 6 | 0) >> 1] = g2 + 32768 + e2; j[c2 + (a2 * 6 | 0) + 2 >> 1] = e2; j[c2 + (a2 * 6 | 0) + 4 >> 1] = h2 + 32768 + e2; a2 = a2 + 1 | 0; if ((a2 | 0) == (d2 | 0)) break a; } } a2 = (d2 | 0) < (e2 | 0) ? d2 : e2; if ((a2 | 0) > 0) { f2 = e2 << 1; g2 = 0; do { n2 = m[b2 + (g2 + e2 << 1) >> 1] | 0; o2 = m[b2 + (g2 + f2 << 1) >> 1] | 0; h2 = (m[b2 + (g2 << 1) >> 1] | 0) - ((o2 + n2 | 0) >>> 2) + 16384 | 0; j[c2 + (g2 * 6 | 0) >> 1] = o2 + 32768 + h2; j[c2 + (g2 * 6 | 0) + 2 >> 1] = h2; j[c2 + (g2 * 6 | 0) + 4 >> 1] = n2 + 32768 + h2; g2 = g2 + 1 | 0; } while ((g2 | 0) != (a2 | 0)); } break; } case 4: { if ((k[a2 + 24 >> 2] | 0) == 1 ? (h2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (h2 | 0) > 0) : 0) { a2 = e2 << 1; f2 = e2 * 3 | 0; g2 = 0; do { n2 = m[b2 + (g2 + e2 << 1) >> 1] | 0; p2 = m[b2 + (g2 + a2 << 1) >> 1] | 0; o2 = (m[b2 + (g2 << 1) >> 1] | 0) - ((p2 + n2 | 0) >>> 2) + 16384 | 0; q2 = j[b2 + (g2 + f2 << 1) >> 1] | 0; r2 = ww(o2 & 65535 | 0, 0, 16) | 0; n2 = n2 + 32768 + o2 | M; q2 = ww(q2 & 65535 | 0, 0, 48) | 0; q2 = r2 | p2 + 32768 + o2 & 65535 | q2; n2 = n2 & 65535 | M; o2 = c2 + (g2 << 3) | 0; p2 = o2; j[p2 >> 1] = q2; j[p2 + 2 >> 1] = q2 >>> 16; o2 = o2 + 4 | 0; j[o2 >> 1] = n2; j[o2 + 2 >> 1] = n2 >>> 16; g2 = g2 + 1 | 0; } while ((g2 | 0) != (h2 | 0)); } break; } default: { } } while (0); a2 = k[l2 >> 2] | 0; if (!(i2[a2 + 32 >> 0] | 0)) return; g2 = k[a2 + 16 >> 2] | 0; if ((d2 | 0) <= 0) return; a2 = c2; f2 = 0; while (1) { r2 = a2 + 4 | 0; q2 = j[a2 >> 1] | 0; j[a2 >> 1] = j[r2 >> 1] | 0; j[r2 >> 1] = q2; f2 = f2 + 1 | 0; if ((f2 | 0) == (d2 | 0)) break; else a2 = a2 + (g2 << 1) | 0; } return; } function Ed(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0; k[a2 >> 2] = 36412; b2 = k[a2 + 20 >> 2] | 0; if (b2) { c2 = a2 + 24 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } d2 = k[a2 + 8 >> 2] | 0; if (!d2) return; b2 = a2 + 12 | 0; c2 = k[b2 >> 2] | 0; if ((c2 | 0) != (d2 | 0)) k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); mj(d2); return; } function Fd(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0; k[a2 >> 2] = 36412; b2 = k[a2 + 20 >> 2] | 0; if (b2) { c2 = a2 + 24 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } d2 = k[a2 + 8 >> 2] | 0; if (!d2) { mj(a2); return; } b2 = a2 + 12 | 0; c2 = k[b2 >> 2] | 0; if ((c2 | 0) != (d2 | 0)) k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); mj(d2); mj(a2); return; } function Gd(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; e2 = a2 + 36 | 0; if (!(k[e2 >> 2] | 0)) { h2 = a2 + 40 | 0; Kd(a2, b2, k[h2 >> 2] | 0, c2, d2); k[h2 >> 2] = (k[h2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); return; } j2 = a2 + 4 | 0; f2 = c2 << 1; g2 = ia(f2, k[(k[j2 >> 2] | 0) + 16 >> 2] | 0) | 0; h2 = a2 + 20 | 0; Kd(a2, b2, k[h2 >> 2] | 0, c2, d2); b2 = k[j2 >> 2] | 0; if ((k[b2 + 28 >> 2] | 0) == 536870912) Yc(k[h2 >> 2] | 0, ia(f2, k[b2 + 16 >> 2] | 0) | 0); j2 = k[e2 >> 2] | 0; if ((Qb[k[(k[j2 >> 2] | 0) + 48 >> 2] & 63](j2, k[h2 >> 2] | 0, g2) | 0) == (g2 | 0)) return; b2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, b2 | 0, 3, 35648); j2 = x; x = 0; if (j2 & 1) { j2 = Wa() | 0; Ua(b2 | 0); fb(j2 | 0); } else ub(b2 | 0, 824, 96); } function Hd(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0; e2 = k[a2 + 36 >> 2] | 0; if (!e2) { e2 = a2 + 40 | 0; Id(a2, k[e2 >> 2] | 0, b2, c2, d2); k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); return; } else { Jd(a2, e2, b2, c2, d2); return; } } function Id(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0; h2 = a2 + 4 | 0; f2 = k[h2 >> 2] | 0; do if (!(i2[f2 + 32 >> 0] | 0)) l2 = b2; else { a2 = a2 + 8 | 0; vw(k[a2 >> 2] | 0, b2 | 0, d2 * 6 | 0) | 0; f2 = k[h2 >> 2] | 0; g2 = k[f2 + 16 >> 2] | 0; if ((d2 | 0) <= 0) { l2 = k[a2 >> 2] | 0; break; } a2 = k[a2 >> 2] | 0; f2 = a2; b2 = 0; while (1) { l2 = f2 + 4 | 0; n2 = j[f2 >> 1] | 0; j[f2 >> 1] = j[l2 >> 1] | 0; j[l2 >> 1] = n2; b2 = b2 + 1 | 0; if ((b2 | 0) == (d2 | 0)) break; else f2 = f2 + (g2 << 1) | 0; } l2 = a2; f2 = k[h2 >> 2] | 0; } while (0); switch (k[f2 + 16 >> 2] | 0) { case 3: { if ((k[f2 + 24 >> 2] | 0) == 2) { if ((d2 | 0) > 0) f2 = 0; else return; do { g2 = m[l2 + (f2 * 6 | 0) >> 1] | 0; e2 = j[l2 + (f2 * 6 | 0) + 2 >> 1] | 0; h2 = e2 & 65535; n2 = (m[l2 + (f2 * 6 | 0) + 4 >> 1] | 0) + 32768 - ((h2 + g2 | 0) >>> 1) & 65535; j[c2 + (f2 * 6 | 0) >> 1] = g2 + 32768 - h2; j[c2 + (f2 * 6 | 0) + 2 >> 1] = e2; j[c2 + (f2 * 6 | 0) + 4 >> 1] = n2; f2 = f2 + 1 | 0; } while ((f2 | 0) != (d2 | 0)); return; } f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; if ((f2 | 0) <= 0) return; a2 = e2 << 1; b2 = 0; do { d2 = j[l2 + (b2 * 6 | 0) + 2 >> 1] | 0; g2 = m[l2 + (b2 * 6 | 0) >> 1] | 0; h2 = d2 & 65535; n2 = (m[l2 + (b2 * 6 | 0) + 4 >> 1] | 0) + 32768 - ((h2 + g2 | 0) >>> 1) & 65535; j[c2 + (b2 << 1) >> 1] = g2 + 32768 - h2; j[c2 + (b2 + e2 << 1) >> 1] = d2; j[c2 + (b2 + a2 << 1) >> 1] = n2; b2 = b2 + 1 | 0; } while ((b2 | 0) != (f2 | 0)); return; } case 4: { if ((k[f2 + 24 >> 2] | 0) != 1) return; f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; if ((f2 | 0) <= 0) return; a2 = e2 << 1; b2 = e2 * 3 | 0; g2 = 0; do { h2 = j[l2 + (g2 << 3) + 2 >> 1] | 0; n2 = j[l2 + (g2 << 3) + 6 >> 1] | 0; p2 = m[l2 + (g2 << 3) >> 1] | 0; o2 = h2 & 65535; d2 = (m[l2 + (g2 << 3) + 4 >> 1] | 0) + 32768 - ((o2 + p2 | 0) >>> 1) & 65535; j[c2 + (g2 << 1) >> 1] = p2 + 32768 - o2; j[c2 + (g2 + e2 << 1) >> 1] = h2; j[c2 + (g2 + a2 << 1) >> 1] = d2; j[c2 + (g2 + b2 << 1) >> 1] = n2; g2 = g2 + 1 | 0; } while ((g2 | 0) != (f2 | 0)); return; } default: return; } } function Jd(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; n2 = r; r = r + 176 | 0; o2 = n2 + 152 | 0; q2 = n2 + 16 | 0; p2 = n2; j2 = a2 + 4 | 0; f2 = k[j2 >> 2] | 0; m2 = d2 << 1; g2 = ia(m2, k[f2 + 16 >> 2] | 0) | 0; do if (g2) { h2 = a2 + 20 | 0; while (1) { f2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, k[h2 >> 2] | 0, g2) | 0; if (!f2) break; if ((g2 | 0) == (f2 | 0)) { l2 = 26; break; } else g2 = g2 - f2 | 0; } if ((l2 | 0) == 26) { f2 = k[j2 >> 2] | 0; break; } l2 = q2 + 56 | 0; j2 = q2 + 4 | 0; k[q2 >> 2] = 36160; k[l2 >> 2] = 36180; x = 0; ra(62, q2 + 56 | 0, j2 | 0); n2 = x; x = 0; if (n2 & 1) { q2 = Wa() | 0; qn(l2); fb(q2 | 0); } k[q2 + 128 >> 2] = 0; k[q2 + 132 >> 2] = -1; k[q2 >> 2] = 36200; k[q2 + 56 >> 2] = 36220; x = 0; qa(180, j2 | 0); n2 = x; x = 0; do if (n2 & 1) f2 = Wa() | 0; else { k[j2 >> 2] = 36236; b2 = q2 + 36 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[q2 + 52 >> 2] = 16; k[o2 >> 2] = 0; k[o2 + 4 >> 2] = 0; k[o2 + 8 >> 2] = 0; x = 0; ra(63, j2 | 0, o2 | 0); n2 = x; x = 0; if (n2 & 1) { f2 = Wa() | 0; Sm(o2); Sm(b2); xn(j2); break; } Sm(o2); x = 0; f2 = va(28, q2 | 0, 49029, 57) | 0; o2 = x; x = 0; if (!(o2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { h2 = Va(16) | 0; x = 0; ra(64, p2 | 0, j2 | 0); o2 = x; x = 0; if (!(o2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, h2 | 0, 3, 35648, p2 | 0); o2 = x; x = 0; if (o2 & 1) g2 = 1; else { x = 0; Fa(6, h2 | 0, 824, 96); x = 0; g2 = 0; } f2 = Wa() | 0; Sm(p2); if (!g2) { p2 = f2; k[q2 >> 2] = 36200; k[l2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(l2); fb(p2 | 0); } } else f2 = Wa() | 0; Ua(h2 | 0); p2 = f2; k[q2 >> 2] = 36200; k[l2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(l2); fb(p2 | 0); } p2 = Wa() | 0; k[q2 >> 2] = 36200; k[l2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(l2); fb(p2 | 0); } while (0); q2 = f2; qn(l2); fb(q2 | 0); } while (0); g2 = a2 + 20 | 0; if ((k[f2 + 28 >> 2] | 0) != 536870912) { q2 = k[g2 >> 2] | 0; Id(a2, q2, c2, d2, e2); r = n2; return; } Yc(k[g2 >> 2] | 0, ia(m2, k[f2 + 16 >> 2] | 0) | 0); q2 = k[g2 >> 2] | 0; Id(a2, q2, c2, d2, e2); r = n2; return; } function Kd(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; l2 = a2 + 4 | 0; a2 = k[l2 >> 2] | 0; a: do switch (k[a2 + 16 >> 2] | 0) { case 3: { if ((k[a2 + 24 >> 2] | 0) == 2) { if ((d2 | 0) > 0) a2 = 0; else break a; while (1) { h2 = j[b2 + (a2 * 6 | 0) + 2 >> 1] | 0; e2 = h2 & 65535; g2 = (m[b2 + (a2 * 6 | 0) >> 1] | 0) + 32768 + e2 | 0; e2 = (m[b2 + (a2 * 6 | 0) + 4 >> 1] | 0) + 32768 + (((g2 & 65535) + e2 | 0) >>> 1) & 65535; j[c2 + (a2 * 6 | 0) >> 1] = g2; j[c2 + (a2 * 6 | 0) + 2 >> 1] = h2; j[c2 + (a2 * 6 | 0) + 4 >> 1] = e2; a2 = a2 + 1 | 0; if ((a2 | 0) == (d2 | 0)) break a; } } a2 = (d2 | 0) < (e2 | 0) ? d2 : e2; if ((a2 | 0) > 0) { f2 = e2 << 1; g2 = 0; do { n2 = j[b2 + (g2 + e2 << 1) >> 1] | 0; h2 = n2 & 65535; o2 = (m[b2 + (g2 << 1) >> 1] | 0) + 32768 + h2 | 0; h2 = (m[b2 + (g2 + f2 << 1) >> 1] | 0) + 32768 + (((o2 & 65535) + h2 | 0) >>> 1) & 65535; j[c2 + (g2 * 6 | 0) >> 1] = o2; j[c2 + (g2 * 6 | 0) + 2 >> 1] = n2; j[c2 + (g2 * 6 | 0) + 4 >> 1] = h2; g2 = g2 + 1 | 0; } while ((g2 | 0) != (a2 | 0)); } break; } case 4: { if ((k[a2 + 24 >> 2] | 0) == 1 ? (h2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (h2 | 0) > 0) : 0) { a2 = e2 << 1; f2 = e2 * 3 | 0; g2 = 0; do { o2 = j[b2 + (g2 + e2 << 1) >> 1] | 0; n2 = o2 & 65535; p2 = (m[b2 + (g2 << 1) >> 1] | 0) + 32768 + n2 & 65535; n2 = (m[b2 + (g2 + a2 << 1) >> 1] | 0) + 32768 + ((p2 + n2 | 0) >>> 1) | 0; q2 = j[b2 + (g2 + f2 << 1) >> 1] | 0; o2 = ww(o2 & 65535 | 0, 0, 16) | 0; n2 = M | n2; q2 = ww(q2 & 65535 | 0, 0, 48) | 0; q2 = p2 | o2 | q2; n2 = n2 & 65535 | M; o2 = c2 + (g2 << 3) | 0; p2 = o2; j[p2 >> 1] = q2; j[p2 + 2 >> 1] = q2 >>> 16; o2 = o2 + 4 | 0; j[o2 >> 1] = n2; j[o2 + 2 >> 1] = n2 >>> 16; g2 = g2 + 1 | 0; } while ((g2 | 0) != (h2 | 0)); } break; } default: { } } while (0); a2 = k[l2 >> 2] | 0; if (!(i2[a2 + 32 >> 0] | 0)) return; g2 = k[a2 + 16 >> 2] | 0; if ((d2 | 0) <= 0) return; a2 = c2; f2 = 0; while (1) { q2 = a2 + 4 | 0; p2 = j[a2 >> 1] | 0; j[a2 >> 1] = j[q2 >> 1] | 0; j[q2 >> 1] = p2; f2 = f2 + 1 | 0; if ((f2 | 0) == (d2 | 0)) break; else a2 = a2 + (g2 << 1) | 0; } return; } function Ld(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0; k[a2 >> 2] = 36436; b2 = k[a2 + 20 >> 2] | 0; if (b2) { c2 = a2 + 24 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } d2 = k[a2 + 8 >> 2] | 0; if (!d2) return; b2 = a2 + 12 | 0; c2 = k[b2 >> 2] | 0; if ((c2 | 0) != (d2 | 0)) k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); mj(d2); return; } function Md(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0; k[a2 >> 2] = 36436; b2 = k[a2 + 20 >> 2] | 0; if (b2) { c2 = a2 + 24 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } d2 = k[a2 + 8 >> 2] | 0; if (!d2) { mj(a2); return; } b2 = a2 + 12 | 0; c2 = k[b2 >> 2] | 0; if ((c2 | 0) != (d2 | 0)) k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); mj(d2); mj(a2); return; } function Nd(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; e2 = a2 + 36 | 0; if (!(k[e2 >> 2] | 0)) { h2 = a2 + 40 | 0; Rd(a2, b2, k[h2 >> 2] | 0, c2, d2); k[h2 >> 2] = (k[h2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); return; } j2 = a2 + 4 | 0; f2 = c2 << 1; g2 = ia(f2, k[(k[j2 >> 2] | 0) + 16 >> 2] | 0) | 0; h2 = a2 + 20 | 0; Rd(a2, b2, k[h2 >> 2] | 0, c2, d2); b2 = k[j2 >> 2] | 0; if ((k[b2 + 28 >> 2] | 0) == 536870912) Yc(k[h2 >> 2] | 0, ia(f2, k[b2 + 16 >> 2] | 0) | 0); j2 = k[e2 >> 2] | 0; if ((Qb[k[(k[j2 >> 2] | 0) + 48 >> 2] & 63](j2, k[h2 >> 2] | 0, g2) | 0) == (g2 | 0)) return; b2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, b2 | 0, 3, 35648); j2 = x; x = 0; if (j2 & 1) { j2 = Wa() | 0; Ua(b2 | 0); fb(j2 | 0); } else ub(b2 | 0, 824, 96); } function Od(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0; e2 = k[a2 + 36 >> 2] | 0; if (!e2) { e2 = a2 + 40 | 0; Pd(a2, k[e2 >> 2] | 0, b2, c2, d2); k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); return; } else { Qd(a2, e2, b2, c2, d2); return; } } function Pd(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0; h2 = a2 + 4 | 0; f2 = k[h2 >> 2] | 0; do if (!(i2[f2 + 32 >> 0] | 0)) l2 = b2; else { a2 = a2 + 8 | 0; vw(k[a2 >> 2] | 0, b2 | 0, d2 * 6 | 0) | 0; f2 = k[h2 >> 2] | 0; g2 = k[f2 + 16 >> 2] | 0; if ((d2 | 0) <= 0) { l2 = k[a2 >> 2] | 0; break; } a2 = k[a2 >> 2] | 0; f2 = a2; b2 = 0; while (1) { l2 = f2 + 4 | 0; n2 = j[f2 >> 1] | 0; j[f2 >> 1] = j[l2 >> 1] | 0; j[l2 >> 1] = n2; b2 = b2 + 1 | 0; if ((b2 | 0) == (d2 | 0)) break; else f2 = f2 + (g2 << 1) | 0; } l2 = a2; f2 = k[h2 >> 2] | 0; } while (0); switch (k[f2 + 16 >> 2] | 0) { case 3: { if ((k[f2 + 24 >> 2] | 0) == 2) { if ((d2 | 0) > 0) f2 = 0; else return; do { e2 = j[l2 + (f2 * 6 | 0) + 2 >> 1] | 0; h2 = e2 & 65535; n2 = 32768 - h2 + (m[l2 + (f2 * 6 | 0) + 4 >> 1] | 0) & 65535; j[c2 + (f2 * 6 | 0) >> 1] = (m[l2 + (f2 * 6 | 0) >> 1] | 0) + 32768 - h2; j[c2 + (f2 * 6 | 0) + 2 >> 1] = e2; j[c2 + (f2 * 6 | 0) + 4 >> 1] = n2; f2 = f2 + 1 | 0; } while ((f2 | 0) != (d2 | 0)); return; } f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; if ((f2 | 0) <= 0) return; a2 = e2 << 1; b2 = 0; do { d2 = j[l2 + (b2 * 6 | 0) + 2 >> 1] | 0; h2 = d2 & 65535; n2 = 32768 - h2 + (m[l2 + (b2 * 6 | 0) + 4 >> 1] | 0) & 65535; j[c2 + (b2 << 1) >> 1] = (m[l2 + (b2 * 6 | 0) >> 1] | 0) + 32768 - h2; j[c2 + (b2 + e2 << 1) >> 1] = d2; j[c2 + (b2 + a2 << 1) >> 1] = n2; b2 = b2 + 1 | 0; } while ((b2 | 0) != (f2 | 0)); return; } case 4: { if ((k[f2 + 24 >> 2] | 0) != 1) return; f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; if ((f2 | 0) <= 0) return; a2 = e2 << 1; b2 = e2 * 3 | 0; g2 = 0; do { h2 = j[l2 + (g2 << 3) + 2 >> 1] | 0; n2 = j[l2 + (g2 << 3) + 6 >> 1] | 0; o2 = h2 & 65535; d2 = 32768 - o2 + (m[l2 + (g2 << 3) + 4 >> 1] | 0) & 65535; j[c2 + (g2 << 1) >> 1] = (m[l2 + (g2 << 3) >> 1] | 0) + 32768 - o2; j[c2 + (g2 + e2 << 1) >> 1] = h2; j[c2 + (g2 + a2 << 1) >> 1] = d2; j[c2 + (g2 + b2 << 1) >> 1] = n2; g2 = g2 + 1 | 0; } while ((g2 | 0) != (f2 | 0)); return; } default: return; } } function Qd(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; n2 = r; r = r + 176 | 0; o2 = n2 + 152 | 0; q2 = n2 + 16 | 0; p2 = n2; j2 = a2 + 4 | 0; f2 = k[j2 >> 2] | 0; m2 = d2 << 1; g2 = ia(m2, k[f2 + 16 >> 2] | 0) | 0; do if (g2) { h2 = a2 + 20 | 0; while (1) { f2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, k[h2 >> 2] | 0, g2) | 0; if (!f2) break; if ((g2 | 0) == (f2 | 0)) { l2 = 26; break; } else g2 = g2 - f2 | 0; } if ((l2 | 0) == 26) { f2 = k[j2 >> 2] | 0; break; } l2 = q2 + 56 | 0; j2 = q2 + 4 | 0; k[q2 >> 2] = 36160; k[l2 >> 2] = 36180; x = 0; ra(62, q2 + 56 | 0, j2 | 0); n2 = x; x = 0; if (n2 & 1) { q2 = Wa() | 0; qn(l2); fb(q2 | 0); } k[q2 + 128 >> 2] = 0; k[q2 + 132 >> 2] = -1; k[q2 >> 2] = 36200; k[q2 + 56 >> 2] = 36220; x = 0; qa(180, j2 | 0); n2 = x; x = 0; do if (n2 & 1) f2 = Wa() | 0; else { k[j2 >> 2] = 36236; b2 = q2 + 36 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[q2 + 52 >> 2] = 16; k[o2 >> 2] = 0; k[o2 + 4 >> 2] = 0; k[o2 + 8 >> 2] = 0; x = 0; ra(63, j2 | 0, o2 | 0); n2 = x; x = 0; if (n2 & 1) { f2 = Wa() | 0; Sm(o2); Sm(b2); xn(j2); break; } Sm(o2); x = 0; f2 = va(28, q2 | 0, 49029, 57) | 0; o2 = x; x = 0; if (!(o2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { h2 = Va(16) | 0; x = 0; ra(64, p2 | 0, j2 | 0); o2 = x; x = 0; if (!(o2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, h2 | 0, 3, 35648, p2 | 0); o2 = x; x = 0; if (o2 & 1) g2 = 1; else { x = 0; Fa(6, h2 | 0, 824, 96); x = 0; g2 = 0; } f2 = Wa() | 0; Sm(p2); if (!g2) { p2 = f2; k[q2 >> 2] = 36200; k[l2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(l2); fb(p2 | 0); } } else f2 = Wa() | 0; Ua(h2 | 0); p2 = f2; k[q2 >> 2] = 36200; k[l2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(l2); fb(p2 | 0); } p2 = Wa() | 0; k[q2 >> 2] = 36200; k[l2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(l2); fb(p2 | 0); } while (0); q2 = f2; qn(l2); fb(q2 | 0); } while (0); g2 = a2 + 20 | 0; if ((k[f2 + 28 >> 2] | 0) != 536870912) { q2 = k[g2 >> 2] | 0; Pd(a2, q2, c2, d2, e2); r = n2; return; } Yc(k[g2 >> 2] | 0, ia(m2, k[f2 + 16 >> 2] | 0) | 0); q2 = k[g2 >> 2] | 0; Pd(a2, q2, c2, d2, e2); r = n2; return; } function Rd(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; l2 = a2 + 4 | 0; a2 = k[l2 >> 2] | 0; a: do switch (k[a2 + 16 >> 2] | 0) { case 3: { if ((k[a2 + 24 >> 2] | 0) == 2) { if ((d2 | 0) > 0) a2 = 0; else break a; while (1) { h2 = j[b2 + (a2 * 6 | 0) + 2 >> 1] | 0; g2 = h2 & 65535; e2 = g2 + 32768 + (m[b2 + (a2 * 6 | 0) + 4 >> 1] | 0) & 65535; j[c2 + (a2 * 6 | 0) >> 1] = (m[b2 + (a2 * 6 | 0) >> 1] | 0) + 32768 + g2; j[c2 + (a2 * 6 | 0) + 2 >> 1] = h2; j[c2 + (a2 * 6 | 0) + 4 >> 1] = e2; a2 = a2 + 1 | 0; if ((a2 | 0) == (d2 | 0)) break a; } } a2 = (d2 | 0) < (e2 | 0) ? d2 : e2; if ((a2 | 0) > 0) { f2 = e2 << 1; g2 = 0; do { n2 = j[b2 + (g2 + e2 << 1) >> 1] | 0; o2 = n2 & 65535; h2 = o2 + 32768 + (m[b2 + (g2 + f2 << 1) >> 1] | 0) & 65535; j[c2 + (g2 * 6 | 0) >> 1] = (m[b2 + (g2 << 1) >> 1] | 0) + 32768 + o2; j[c2 + (g2 * 6 | 0) + 2 >> 1] = n2; j[c2 + (g2 * 6 | 0) + 4 >> 1] = h2; g2 = g2 + 1 | 0; } while ((g2 | 0) != (a2 | 0)); } break; } case 4: { if ((k[a2 + 24 >> 2] | 0) == 1 ? (h2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (h2 | 0) > 0) : 0) { a2 = e2 << 1; f2 = e2 * 3 | 0; g2 = 0; do { o2 = j[b2 + (g2 + e2 << 1) >> 1] | 0; n2 = o2 & 65535; p2 = (m[b2 + (g2 << 1) >> 1] | 0) + 32768 + n2 | 0; n2 = n2 + 32768 + (m[b2 + (g2 + a2 << 1) >> 1] | 0) | 0; q2 = j[b2 + (g2 + f2 << 1) >> 1] | 0; o2 = ww(o2 & 65535 | 0, 0, 16) | 0; n2 = M | n2; q2 = ww(q2 & 65535 | 0, 0, 48) | 0; q2 = p2 & 65535 | o2 | q2; n2 = n2 & 65535 | M; o2 = c2 + (g2 << 3) | 0; p2 = o2; j[p2 >> 1] = q2; j[p2 + 2 >> 1] = q2 >>> 16; o2 = o2 + 4 | 0; j[o2 >> 1] = n2; j[o2 + 2 >> 1] = n2 >>> 16; g2 = g2 + 1 | 0; } while ((g2 | 0) != (h2 | 0)); } break; } default: { } } while (0); a2 = k[l2 >> 2] | 0; if (!(i2[a2 + 32 >> 0] | 0)) return; g2 = k[a2 + 16 >> 2] | 0; if ((d2 | 0) <= 0) return; a2 = c2; f2 = 0; while (1) { q2 = a2 + 4 | 0; p2 = j[a2 >> 1] | 0; j[a2 >> 1] = j[q2 >> 1] | 0; j[q2 >> 1] = p2; f2 = f2 + 1 | 0; if ((f2 | 0) == (d2 | 0)) break; else a2 = a2 + (g2 << 1) | 0; } return; } function Sd(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0; k[a2 >> 2] = 36460; b2 = k[a2 + 20 >> 2] | 0; if (b2) { c2 = a2 + 24 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } d2 = k[a2 + 8 >> 2] | 0; if (!d2) return; b2 = a2 + 12 | 0; c2 = k[b2 >> 2] | 0; if ((c2 | 0) != (d2 | 0)) k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); mj(d2); return; } function Td(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0; k[a2 >> 2] = 36460; b2 = k[a2 + 20 >> 2] | 0; if (b2) { c2 = a2 + 24 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } d2 = k[a2 + 8 >> 2] | 0; if (!d2) { mj(a2); return; } b2 = a2 + 12 | 0; c2 = k[b2 >> 2] | 0; if ((c2 | 0) != (d2 | 0)) k[b2 >> 2] = c2 + (~((c2 + -2 - d2 | 0) >>> 1) << 1); mj(d2); mj(a2); return; } function Ud(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; e2 = a2 + 36 | 0; if (!(k[e2 >> 2] | 0)) { h2 = a2 + 40 | 0; Yd(a2, b2, k[h2 >> 2] | 0, c2, d2); k[h2 >> 2] = (k[h2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); return; } j2 = a2 + 4 | 0; f2 = c2 << 1; g2 = ia(f2, k[(k[j2 >> 2] | 0) + 16 >> 2] | 0) | 0; h2 = a2 + 20 | 0; Yd(a2, b2, k[h2 >> 2] | 0, c2, d2); b2 = k[j2 >> 2] | 0; if ((k[b2 + 28 >> 2] | 0) == 536870912) Yc(k[h2 >> 2] | 0, ia(f2, k[b2 + 16 >> 2] | 0) | 0); j2 = k[e2 >> 2] | 0; if ((Qb[k[(k[j2 >> 2] | 0) + 48 >> 2] & 63](j2, k[h2 >> 2] | 0, g2) | 0) == (g2 | 0)) return; b2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, b2 | 0, 3, 35648); j2 = x; x = 0; if (j2 & 1) { j2 = Wa() | 0; Ua(b2 | 0); fb(j2 | 0); } else ub(b2 | 0, 824, 96); } function Vd(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0; e2 = k[a2 + 36 >> 2] | 0; if (!e2) { e2 = a2 + 40 | 0; Wd(a2, k[e2 >> 2] | 0, b2, c2, d2); k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); return; } else { Xd(a2, e2, b2, c2, d2); return; } } function Wd(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0; h2 = a2 + 4 | 0; f2 = k[h2 >> 2] | 0; do if (!(i2[f2 + 32 >> 0] | 0)) l2 = b2; else { a2 = a2 + 8 | 0; vw(k[a2 >> 2] | 0, b2 | 0, d2 * 6 | 0) | 0; f2 = k[h2 >> 2] | 0; g2 = k[f2 + 16 >> 2] | 0; if ((d2 | 0) <= 0) { l2 = k[a2 >> 2] | 0; break; } a2 = k[a2 >> 2] | 0; f2 = a2; b2 = 0; while (1) { l2 = f2 + 4 | 0; m2 = j[f2 >> 1] | 0; j[f2 >> 1] = j[l2 >> 1] | 0; j[l2 >> 1] = m2; b2 = b2 + 1 | 0; if ((b2 | 0) == (d2 | 0)) break; else f2 = f2 + (g2 << 1) | 0; } l2 = a2; f2 = k[h2 >> 2] | 0; } while (0); switch (k[f2 + 16 >> 2] | 0) { case 3: { if ((k[f2 + 24 >> 2] | 0) == 2) { if ((d2 | 0) > 0) f2 = 0; else return; do { e2 = j[l2 + (f2 * 6 | 0) + 2 >> 1] | 0; m2 = j[l2 + (f2 * 6 | 0) + 4 >> 1] | 0; j[c2 + (f2 * 6 | 0) >> 1] = j[l2 + (f2 * 6 | 0) >> 1] | 0; j[c2 + (f2 * 6 | 0) + 2 >> 1] = e2; j[c2 + (f2 * 6 | 0) + 4 >> 1] = m2; f2 = f2 + 1 | 0; } while ((f2 | 0) != (d2 | 0)); return; } f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; if ((f2 | 0) <= 0) return; a2 = e2 << 1; b2 = 0; do { d2 = j[l2 + (b2 * 6 | 0) + 2 >> 1] | 0; m2 = j[l2 + (b2 * 6 | 0) + 4 >> 1] | 0; j[c2 + (b2 << 1) >> 1] = j[l2 + (b2 * 6 | 0) >> 1] | 0; j[c2 + (b2 + e2 << 1) >> 1] = d2; j[c2 + (b2 + a2 << 1) >> 1] = m2; b2 = b2 + 1 | 0; } while ((b2 | 0) != (f2 | 0)); return; } case 4: { if ((k[f2 + 24 >> 2] | 0) != 1) return; f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; if ((f2 | 0) <= 0) return; a2 = e2 << 1; b2 = e2 * 3 | 0; g2 = 0; do { h2 = j[l2 + (g2 << 3) + 2 >> 1] | 0; d2 = j[l2 + (g2 << 3) + 4 >> 1] | 0; m2 = j[l2 + (g2 << 3) + 6 >> 1] | 0; j[c2 + (g2 << 1) >> 1] = j[l2 + (g2 << 3) >> 1] | 0; j[c2 + (g2 + e2 << 1) >> 1] = h2; j[c2 + (g2 + a2 << 1) >> 1] = d2; j[c2 + (g2 + b2 << 1) >> 1] = m2; g2 = g2 + 1 | 0; } while ((g2 | 0) != (f2 | 0)); return; } default: return; } } function Xd(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; n2 = r; r = r + 176 | 0; o2 = n2 + 152 | 0; q2 = n2 + 16 | 0; p2 = n2; j2 = a2 + 4 | 0; f2 = k[j2 >> 2] | 0; m2 = d2 << 1; g2 = ia(m2, k[f2 + 16 >> 2] | 0) | 0; do if (g2) { h2 = a2 + 20 | 0; while (1) { f2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, k[h2 >> 2] | 0, g2) | 0; if (!f2) break; if ((g2 | 0) == (f2 | 0)) { l2 = 26; break; } else g2 = g2 - f2 | 0; } if ((l2 | 0) == 26) { f2 = k[j2 >> 2] | 0; break; } l2 = q2 + 56 | 0; j2 = q2 + 4 | 0; k[q2 >> 2] = 36160; k[l2 >> 2] = 36180; x = 0; ra(62, q2 + 56 | 0, j2 | 0); n2 = x; x = 0; if (n2 & 1) { q2 = Wa() | 0; qn(l2); fb(q2 | 0); } k[q2 + 128 >> 2] = 0; k[q2 + 132 >> 2] = -1; k[q2 >> 2] = 36200; k[q2 + 56 >> 2] = 36220; x = 0; qa(180, j2 | 0); n2 = x; x = 0; do if (n2 & 1) f2 = Wa() | 0; else { k[j2 >> 2] = 36236; b2 = q2 + 36 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[q2 + 52 >> 2] = 16; k[o2 >> 2] = 0; k[o2 + 4 >> 2] = 0; k[o2 + 8 >> 2] = 0; x = 0; ra(63, j2 | 0, o2 | 0); n2 = x; x = 0; if (n2 & 1) { f2 = Wa() | 0; Sm(o2); Sm(b2); xn(j2); break; } Sm(o2); x = 0; f2 = va(28, q2 | 0, 49029, 57) | 0; o2 = x; x = 0; if (!(o2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { h2 = Va(16) | 0; x = 0; ra(64, p2 | 0, j2 | 0); o2 = x; x = 0; if (!(o2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, h2 | 0, 3, 35648, p2 | 0); o2 = x; x = 0; if (o2 & 1) g2 = 1; else { x = 0; Fa(6, h2 | 0, 824, 96); x = 0; g2 = 0; } f2 = Wa() | 0; Sm(p2); if (!g2) { p2 = f2; k[q2 >> 2] = 36200; k[l2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(l2); fb(p2 | 0); } } else f2 = Wa() | 0; Ua(h2 | 0); p2 = f2; k[q2 >> 2] = 36200; k[l2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(l2); fb(p2 | 0); } p2 = Wa() | 0; k[q2 >> 2] = 36200; k[l2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(l2); fb(p2 | 0); } while (0); q2 = f2; qn(l2); fb(q2 | 0); } while (0); g2 = a2 + 20 | 0; if ((k[f2 + 28 >> 2] | 0) != 536870912) { q2 = k[g2 >> 2] | 0; Wd(a2, q2, c2, d2, e2); r = n2; return; } Yc(k[g2 >> 2] | 0, ia(m2, k[f2 + 16 >> 2] | 0) | 0); q2 = k[g2 >> 2] | 0; Wd(a2, q2, c2, d2, e2); r = n2; return; } function Yd(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; l2 = a2 + 4 | 0; a2 = k[l2 >> 2] | 0; a: do switch (k[a2 + 16 >> 2] | 0) { case 3: { if ((k[a2 + 24 >> 2] | 0) == 2) { if ((d2 | 0) > 0) a2 = 0; else break a; while (1) { h2 = j[b2 + (a2 * 6 | 0) + 2 >> 1] | 0; e2 = j[b2 + (a2 * 6 | 0) + 4 >> 1] | 0; j[c2 + (a2 * 6 | 0) >> 1] = j[b2 + (a2 * 6 | 0) >> 1] | 0; j[c2 + (a2 * 6 | 0) + 2 >> 1] = h2; j[c2 + (a2 * 6 | 0) + 4 >> 1] = e2; a2 = a2 + 1 | 0; if ((a2 | 0) == (d2 | 0)) break a; } } a2 = (d2 | 0) < (e2 | 0) ? d2 : e2; if ((a2 | 0) > 0) { f2 = e2 << 1; g2 = 0; do { n2 = j[b2 + (g2 + e2 << 1) >> 1] | 0; h2 = j[b2 + (g2 + f2 << 1) >> 1] | 0; j[c2 + (g2 * 6 | 0) >> 1] = j[b2 + (g2 << 1) >> 1] | 0; j[c2 + (g2 * 6 | 0) + 2 >> 1] = n2; j[c2 + (g2 * 6 | 0) + 4 >> 1] = h2; g2 = g2 + 1 | 0; } while ((g2 | 0) != (a2 | 0)); } break; } case 4: { if ((k[a2 + 24 >> 2] | 0) == 1 ? (h2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (h2 | 0) > 0) : 0) { a2 = e2 << 1; f2 = e2 * 3 | 0; g2 = 0; do { n2 = j[b2 + (g2 << 1) >> 1] | 0; q2 = j[b2 + (g2 + f2 << 1) >> 1] | 0; o2 = m[b2 + (g2 + a2 << 1) >> 1] | 0; p2 = ww(m[b2 + (g2 + e2 << 1) >> 1] | 0, 0, 16) | 0; o2 = M | o2; q2 = ww(q2 & 65535 | 0, 0, 48) | 0; q2 = p2 | n2 & 65535 | q2; o2 = o2 & 65535 | M; n2 = c2 + (g2 << 3) | 0; p2 = n2; j[p2 >> 1] = q2; j[p2 + 2 >> 1] = q2 >>> 16; n2 = n2 + 4 | 0; j[n2 >> 1] = o2; j[n2 + 2 >> 1] = o2 >>> 16; g2 = g2 + 1 | 0; } while ((g2 | 0) != (h2 | 0)); } break; } default: { } } while (0); a2 = k[l2 >> 2] | 0; if (!(i2[a2 + 32 >> 0] | 0)) return; g2 = k[a2 + 16 >> 2] | 0; if ((d2 | 0) <= 0) return; a2 = c2; f2 = 0; while (1) { q2 = a2 + 4 | 0; p2 = j[a2 >> 1] | 0; j[a2 >> 1] = j[q2 >> 1] | 0; j[q2 >> 1] = p2; f2 = f2 + 1 | 0; if ((f2 | 0) == (d2 | 0)) break; else a2 = a2 + (g2 << 1) | 0; } return; } function Zd(a2) { a2 = a2 | 0; return; } function _d(a2) { a2 = a2 | 0; mj(a2); return; } function $d(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; c2 = ia(k[a2 + 8 >> 2] | 0, c2) | 0; a2 = k[a2 + 4 >> 2] | 0; if ((Qb[k[(k[a2 >> 2] | 0) + 48 >> 2] & 63](a2, b2, c2) | 0) == (c2 | 0)) return; d2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, d2 | 0, 3, 35648); a2 = x; x = 0; if (a2 & 1) { a2 = Wa() | 0; Ua(d2 | 0); fb(a2 | 0); } else ub(d2 | 0, 824, 96); } function ae(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; m2 = r; r = r + 16 | 0; l2 = m2; j2 = a2 + 8 | 0; e2 = k[j2 >> 2] | 0; d2 = ia(e2, c2) | 0; do if (d2) { g2 = a2 + 4 | 0; f2 = d2; while (1) { e2 = k[g2 >> 2] | 0; e2 = Qb[k[(k[e2 >> 2] | 0) + 32 >> 2] & 63](e2, b2, f2) | 0; if (!e2) break; d2 = f2 - e2 | 0; if ((f2 | 0) == (e2 | 0)) { h2 = 11; break; } else f2 = d2; } if ((h2 | 0) == 11) { e2 = k[j2 >> 2] | 0; f2 = d2; break; } d2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, d2 | 0, 3, 35648); a2 = x; x = 0; if (a2 & 1) { a2 = Wa() | 0; Ua(d2 | 0); fb(a2 | 0); } else ub(d2 | 0, 824, 96); } else f2 = 0; while (0); if ((e2 | 0) == 2) { Yc(b2, c2 << 1); e2 = k[j2 >> 2] | 0; } d2 = k[a2 + 12 >> 2] | 0; if ((d2 | 0) <= (ia(e2, c2) | 0)) { r = m2; return; } a2 = k[a2 + 4 >> 2] | 0; Sb[k[(k[a2 >> 2] | 0) + 16 >> 2] & 15](l2, a2, d2 - f2 | 0, 0, 1, 24); r = m2; return; } function be(a2) { a2 = a2 | 0; mj(a2); return; } function ce(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; d2 = a2 + 4 | 0; vw(k[d2 >> 2] | 0, b2 | 0, ia(k[a2 + 8 >> 2] | 0, c2) | 0) | 0; k[d2 >> 2] = (k[d2 >> 2] | 0) + (k[a2 + 12 >> 2] | 0); return; } function de(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; d2 = a2 + 4 | 0; vw(b2 | 0, k[d2 >> 2] | 0, ia(k[a2 + 8 >> 2] | 0, c2) | 0) | 0; k[d2 >> 2] = (k[d2 >> 2] | 0) + (k[a2 + 12 >> 2] | 0); return; } function ee(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; k[a2 + 112 >> 2] = 0; k[a2 + 108 >> 2] = 0; l2 = k[b2 >> 2] | 0; e2 = l2; do if (l2) { g2 = a2 + 92 | 0; l2 = a2 + 96 | 0; h2 = k[l2 >> 2] | 0; j2 = k[g2 >> 2] | 0; c2 = j2; d2 = h2 - c2 | 0; if (d2 >>> 0 >= 4e4) if (d2 >>> 0 > 4e4 ? (f2 = j2 + 4e4 | 0, (h2 | 0) != (f2 | 0)) : 0) { k[l2 >> 2] = f2; f2 = c2; } else f2 = c2; else { fe(g2, 4e4 - d2 | 0); f2 = k[g2 >> 2] | 0; e2 = k[b2 >> 2] | 0; } c2 = a2 + 116 | 0; k[c2 >> 2] = f2; h2 = a2 + 124 | 0; k[h2 >> 2] = f2; j2 = a2 + 104 | 0; k[j2 >> 2] = e2; d2 = e2; if (e2) { if ((k[d2 + 12 >> 2] | 0) == (k[d2 + 16 >> 2] | 0)) { b2 = (Ob[k[(k[e2 >> 2] | 0) + 36 >> 2] & 127](d2) | 0) == -1; d2 = k[h2 >> 2] | 0; if (b2) break; e2 = k[c2 >> 2] | 0; } else { d2 = f2; e2 = f2; } g2 = d2 - e2 | 0; if (g2 >>> 0 <= 64) { f2 = a2 + 92 | 0; if ((d2 | 0) == (e2 | 0)) d2 = e2; else { d2 = e2; e2 = 0; do { i2[(k[f2 >> 2] | 0) + e2 >> 0] = i2[d2 + e2 >> 0] | 0; e2 = e2 + 1 | 0; d2 = k[c2 >> 2] | 0; } while (e2 >>> 0 < g2 >>> 0); e2 = k[h2 >> 2] | 0; } f2 = k[f2 >> 2] | 0; b2 = f2; m2 = b2 - d2 | 0; k[c2 >> 2] = f2; d2 = e2 + m2 | 0; k[h2 >> 2] = d2; f2 = a2 + 120 | 0; k[f2 >> 2] = (k[f2 >> 2] | 0) + m2; j2 = k[j2 >> 2] | 0; d2 = Qb[k[(k[j2 >> 2] | 0) + 32 >> 2] & 63](j2, d2, (k[l2 >> 2] | 0) - (b2 + g2) | 0) | 0; d2 = (k[h2 >> 2] | 0) + d2 | 0; k[h2 >> 2] = d2; } } else d2 = f2; } else { k[a2 + 104 >> 2] = 0; d2 = k[b2 + 4 >> 2] | 0; c2 = a2 + 116 | 0; k[c2 >> 2] = d2; d2 = d2 + (k[b2 + 8 >> 2] | 0) | 0; k[a2 + 124 >> 2] = d2; } while (0); c2 = k[c2 >> 2] | 0; if (c2 >>> 0 >= d2 >>> 0) { l2 = c2; m2 = a2 + 120 | 0; k[m2 >> 2] = l2; qe(a2); return; } while (1) { if ((i2[c2 >> 0] | 0) == -1) { d2 = 20; break; } c2 = c2 + 1 | 0; if (c2 >>> 0 >= d2 >>> 0) { d2 = 20; break; } } if ((d2 | 0) == 20) { m2 = a2 + 120 | 0; k[m2 >> 2] = c2; qe(a2); return; } } function fe(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; j2 = a2 + 8 | 0; e2 = k[j2 >> 2] | 0; l2 = a2 + 4 | 0; c2 = k[l2 >> 2] | 0; d2 = c2; if ((e2 - d2 | 0) >>> 0 >= b2 >>> 0) { do { i2[c2 >> 0] = 0; c2 = (k[l2 >> 2] | 0) + 1 | 0; k[l2 >> 2] = c2; b2 = b2 + -1 | 0; } while ((b2 | 0) != 0); return; } c2 = k[a2 >> 2] | 0; f2 = d2 - c2 + b2 | 0; if ((f2 | 0) < 0) { jj(a2); e2 = k[j2 >> 2] | 0; c2 = k[a2 >> 2] | 0; } d2 = e2 - c2 | 0; if (d2 >>> 0 < 1073741823) { d2 = d2 << 1; d2 = d2 >>> 0 < f2 >>> 0 ? f2 : d2; c2 = (k[l2 >> 2] | 0) - c2 | 0; if (!d2) { e2 = 0; g2 = 0; f2 = c2; } else h2 = 8; } else { d2 = 2147483647; c2 = (k[l2 >> 2] | 0) - c2 | 0; h2 = 8; } if ((h2 | 0) == 8) { e2 = d2; g2 = lj(d2) | 0; f2 = c2; } c2 = g2 + f2 | 0; e2 = g2 + e2 | 0; d2 = c2; do { i2[d2 >> 0] = 0; d2 = c2 + 1 | 0; c2 = d2; b2 = b2 + -1 | 0; } while ((b2 | 0) != 0); b2 = k[a2 >> 2] | 0; d2 = (k[l2 >> 2] | 0) - b2 | 0; h2 = g2 + (f2 - d2) | 0; vw(h2 | 0, b2 | 0, d2 | 0) | 0; k[a2 >> 2] = h2; k[l2 >> 2] = c2; k[j2 >> 2] = e2; if (!b2) return; mj(b2); return; } function ge(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0; u2 = r; r = r + 32 | 0; w2 = u2 + 12 | 0; t2 = u2; p2 = a2 + 180 | 0; q2 = (k[p2 >> 2] | 0) + 4 | 0; if ((k[a2 + 32 >> 2] | 0) == 1) s2 = k[a2 + 24 >> 2] | 0; else s2 = 1; b2 = ia(s2 << 1, q2) | 0; k[w2 >> 2] = 0; y2 = w2 + 4 | 0; k[y2 >> 2] = 0; k[w2 + 8 >> 2] = 0; do if (b2) { if (!((b2 | 0) < 0 ? (x = 0, qa(178, w2 | 0), v2 = x, x = 0, v2 & 1) : 0)) g2 = 6; if ((g2 | 0) == 6 ? (c2 = b2 << 1, x = 0, d2 = ta(67, c2 | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { k[w2 >> 2] = d2; v2 = d2 + (b2 << 1) | 0; k[w2 + 8 >> 2] = v2; sw(d2 | 0, 0, c2 | 0) | 0; k[y2 >> 2] = v2; break; } d2 = Wa() | 0; b2 = k[w2 >> 2] | 0; if (!b2) fb(d2 | 0); c2 = k[y2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[y2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); mj(b2); fb(d2 | 0); } while (0); k[t2 >> 2] = 0; v2 = t2 + 4 | 0; k[v2 >> 2] = 0; k[t2 + 8 >> 2] = 0; do if (!s2) g2 = 18; else { if (!(s2 >>> 0 > 1073741823 ? (x = 0, qa(178, t2 | 0), o2 = x, x = 0, o2 & 1) : 0)) g2 = 16; if ((g2 | 0) == 16 ? (e2 = s2 << 2, x = 0, f2 = ta(67, e2 | 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { k[t2 >> 2] = f2; g2 = f2 + (s2 << 2) | 0; k[t2 + 8 >> 2] = g2; sw(f2 | 0, 0, e2 | 0) | 0; k[v2 >> 2] = g2; g2 = 18; break; } d2 = Wa() | 0; b2 = k[t2 >> 2] | 0; c2 = b2; if (b2) { e2 = k[v2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[v2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } } while (0); if ((g2 | 0) == 18) { f2 = a2 + 12 | 0; a: do if ((k[f2 >> 2] | 0) > 0) { g2 = a2 + 4604 | 0; h2 = (ia(s2, q2) | 0) + 1 | 0; i3 = a2 + 4608 | 0; l2 = a2 + 92 | 0; m2 = (s2 | 0) > 0; n2 = a2 + 4600 | 0; o2 = 0; b: while (1) { c2 = k[w2 >> 2] | 0; b2 = c2 + 2 | 0; k[g2 >> 2] = b2; c2 = c2 + (h2 << 1) | 0; k[i3 >> 2] = c2; if (!(o2 & 1)) b2 = c2; else { k[g2 >> 2] = c2; k[i3 >> 2] = b2; } e2 = k[l2 >> 2] | 0; x = 0; Ja(k[(k[e2 >> 2] | 0) + 12 >> 2] | 0, e2 | 0, b2 | 0, k[p2 >> 2] | 0, q2 | 0); e2 = x; x = 0; if (e2 & 1) { g2 = 28; break; } if (m2) { b2 = k[g2 >> 2] | 0; c2 = k[i3 >> 2] | 0; d2 = k[t2 >> 2] | 0; e2 = 0; do { k[n2 >> 2] = k[d2 + (e2 << 2) >> 2]; d2 = k[p2 >> 2] | 0; j[b2 + (d2 << 1) >> 1] = j[b2 + (d2 + -1 << 1) >> 1] | 0; j[c2 + -2 >> 1] = j[b2 >> 1] | 0; x = 0; ra(68, a2 | 0, 0); d2 = x; x = 0; if (d2 & 1) { g2 = 27; break b; } d2 = k[t2 >> 2] | 0; k[d2 + (e2 << 2) >> 2] = k[n2 >> 2]; b2 = (k[g2 >> 2] | 0) + (q2 << 1) | 0; k[g2 >> 2] = b2; c2 = (k[i3 >> 2] | 0) + (q2 << 1) | 0; k[i3 >> 2] = c2; e2 = e2 + 1 | 0; } while ((e2 | 0) < (s2 | 0)); } o2 = o2 + 1 | 0; if ((o2 | 0) >= (k[f2 >> 2] | 0)) { g2 = 40; break a; } } if ((g2 | 0) == 27) { d2 = Wa() | 0; break; } else if ((g2 | 0) == 28) { d2 = Wa() | 0; break; } } else g2 = 40; while (0); do if ((g2 | 0) == 40) { x = 0; qa(182, a2 | 0); a2 = x; x = 0; if (a2 & 1) { d2 = Wa() | 0; break; } b2 = k[t2 >> 2] | 0; c2 = b2; if (b2) { d2 = k[v2 >> 2] | 0; if ((d2 | 0) != (b2 | 0)) k[v2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } b2 = k[w2 >> 2] | 0; if (!b2) { r = u2; return; } c2 = k[y2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[y2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); mj(b2); r = u2; return; } while (0); b2 = k[t2 >> 2] | 0; c2 = b2; if (b2) { e2 = k[v2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[v2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } } b2 = k[w2 >> 2] | 0; if (!b2) fb(d2 | 0); c2 = k[y2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[y2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); mj(b2); fb(d2 | 0); } function he(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0; p2 = a2 + 4604 | 0; b2 = k[p2 >> 2] | 0; s2 = a2 + 180 | 0; if ((k[s2 >> 2] | 0) <= 0) return; q2 = a2 + 4608 | 0; r2 = a2 + 4612 | 0; e2 = b2; f2 = m[b2 + -2 >> 1] | 0; b2 = m[b2 >> 1] | 0; o2 = 0; while (1) { n2 = k[q2 >> 2] | 0; l2 = m[n2 + (o2 + -1 << 1) >> 1] | 0; d2 = o2 + 1 | 0; c2 = m[e2 + (d2 << 1) >> 1] | 0; h2 = k[r2 >> 2] | 0; g2 = b2 - f2 | 0; e2 = f2 - l2 | 0; h2 = ((((i2[h2 + (c2 - b2) >> 0] | 0) * 9 | 0) + (i2[h2 + g2 >> 0] | 0) | 0) * 9 | 0) + (i2[h2 + e2 >> 0] | 0) | 0; if (!h2) { d2 = (me(a2, o2, 0) | 0) + o2 | 0; c2 = k[p2 >> 2] | 0; b2 = m[c2 + (d2 + -1 << 1) >> 1] | 0; c2 = m[c2 + (d2 << 1) >> 1] | 0; } else { f2 = b2 - l2 >> 31; if ((f2 ^ e2 | 0) < 0) e2 = b2; else e2 = l2 + ((f2 ^ g2 | 0) < 0 ? 0 : g2) | 0; n2 = le(a2, h2, m[n2 + (o2 << 1) >> 1] | 0, e2, 0) | 0; j[(k[q2 >> 2] | 0) + (o2 << 1) >> 1] = n2; } if ((d2 | 0) >= (k[s2 >> 2] | 0)) break; e2 = k[p2 >> 2] | 0; f2 = b2; b2 = c2; o2 = d2; } return; } function ie(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; e2 = a2 + 104 | 0; if ((k[e2 >> 2] | 0) >>> 0 < 4) je(a2); f2 = a2 + 100 | 0; g2 = a2 + 112 | 0; h2 = a2 + 96 | 0; j2 = a2 + 108 | 0; l2 = a2 + 116 | 0; b2 = k[f2 >> 2] | 0; d2 = 0; do { c2 = i2[g2 >> 0] | 0; if ((b2 | 0) > 31) break; b2 = k[h2 >> 2] | 0; if (!(c2 << 24 >> 24)) { i2[k[j2 >> 2] >> 0] = b2 >>> 24; k[h2 >> 2] = k[h2 >> 2] << 8; b2 = (k[f2 >> 2] | 0) + 8 | 0; } else { i2[k[j2 >> 2] >> 0] = b2 >>> 25; k[h2 >> 2] = k[h2 >> 2] << 7; b2 = (k[f2 >> 2] | 0) + 7 | 0; } k[f2 >> 2] = b2; m2 = k[j2 >> 2] | 0; c2 = (i2[m2 >> 0] | 0) == -1 & 1; i2[g2 >> 0] = c2; k[j2 >> 2] = m2 + 1; k[e2 >> 2] = (k[e2 >> 2] | 0) + -1; k[l2 >> 2] = (k[l2 >> 2] | 0) + 1; d2 = d2 + 1 | 0; } while ((d2 | 0) < 4); if (!(c2 << 24 >> 24)) ke(a2, 0, (b2 | 0) % 8 | 0); else ke(a2, 0, (b2 + -1 | 0) % 8 | 0); if ((k[e2 >> 2] | 0) >>> 0 < 4) je(a2); b2 = k[f2 >> 2] | 0; c2 = 0; do { if ((b2 | 0) > 31) break; b2 = k[h2 >> 2] | 0; if (!(i2[g2 >> 0] | 0)) { i2[k[j2 >> 2] >> 0] = b2 >>> 24; k[h2 >> 2] = k[h2 >> 2] << 8; b2 = (k[f2 >> 2] | 0) + 8 | 0; } else { i2[k[j2 >> 2] >> 0] = b2 >>> 25; k[h2 >> 2] = k[h2 >> 2] << 7; b2 = (k[f2 >> 2] | 0) + 7 | 0; } k[f2 >> 2] = b2; m2 = k[j2 >> 2] | 0; i2[g2 >> 0] = (i2[m2 >> 0] | 0) == -1 & 1; k[j2 >> 2] = m2 + 1; k[e2 >> 2] = (k[e2 >> 2] | 0) + -1; k[l2 >> 2] = (k[l2 >> 2] | 0) + 1; c2 = c2 + 1 | 0; } while ((c2 | 0) < 4); if (!(k[a2 + 132 >> 2] | 0)) return; je(a2); return; } function je(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0; b2 = k[a2 + 132 >> 2] | 0; if (!b2) { b2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, b2 | 0, 4, 35648); a2 = x; x = 0; if (!(a2 & 1)) ub(b2 | 0, 824, 96); a2 = Wa() | 0; Ua(b2 | 0); fb(a2 | 0); } c2 = a2 + 108 | 0; d2 = a2 + 120 | 0; f2 = k[d2 >> 2] | 0; e2 = (k[c2 >> 2] | 0) - f2 | 0; if ((Qb[k[(k[b2 >> 2] | 0) + 48 >> 2] & 63](b2, f2, e2) | 0) == (e2 | 0)) { f2 = k[d2 >> 2] | 0; k[c2 >> 2] = f2; k[a2 + 104 >> 2] = (k[a2 + 124 >> 2] | 0) - f2; return; } b2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, b2 | 0, 4, 35648); f2 = x; x = 0; if (!(f2 & 1)) ub(b2 | 0, 824, 96); f2 = Wa() | 0; Ua(b2 | 0); fb(f2 | 0); } function ke(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; l2 = a2 + 100 | 0; c2 = (k[l2 >> 2] | 0) - c2 | 0; k[l2 >> 2] = c2; if ((c2 | 0) > -1) { m2 = a2 + 96 | 0; k[m2 >> 2] = k[m2 >> 2] | b2 << c2; return; } m2 = a2 + 96 | 0; k[m2 >> 2] = k[m2 >> 2] | b2 >> 0 - c2; j2 = a2 + 104 | 0; if ((k[j2 >> 2] | 0) >>> 0 < 4) { je(a2); c2 = k[l2 >> 2] | 0; } f2 = a2 + 112 | 0; g2 = a2 + 108 | 0; h2 = a2 + 116 | 0; d2 = 0; while (1) { if ((c2 | 0) > 31) break; c2 = k[m2 >> 2] | 0; if (!(i2[f2 >> 0] | 0)) { i2[k[g2 >> 2] >> 0] = c2 >>> 24; k[m2 >> 2] = k[m2 >> 2] << 8; c2 = (k[l2 >> 2] | 0) + 8 | 0; } else { i2[k[g2 >> 2] >> 0] = c2 >>> 25; k[m2 >> 2] = k[m2 >> 2] << 7; c2 = (k[l2 >> 2] | 0) + 7 | 0; } k[l2 >> 2] = c2; n2 = k[g2 >> 2] | 0; i2[f2 >> 0] = (i2[n2 >> 0] | 0) == -1 & 1; k[g2 >> 2] = n2 + 1; k[j2 >> 2] = (k[j2 >> 2] | 0) + -1; k[h2 >> 2] = (k[h2 >> 2] | 0) + 1; d2 = d2 + 1 | 0; if ((d2 | 0) >= 4) { e2 = 11; break; } } a: do if ((e2 | 0) == 11) { if ((c2 | 0) < 0) { k[m2 >> 2] = k[m2 >> 2] | b2 >> 0 - c2; if ((k[j2 >> 2] | 0) >>> 0 < 4) { je(a2); c2 = k[l2 >> 2] | 0; d2 = 0; } else d2 = 0; do { if ((c2 | 0) > 31) break a; c2 = k[m2 >> 2] | 0; if (!(i2[f2 >> 0] | 0)) { i2[k[g2 >> 2] >> 0] = c2 >>> 24; k[m2 >> 2] = k[m2 >> 2] << 8; c2 = (k[l2 >> 2] | 0) + 8 | 0; } else { i2[k[g2 >> 2] >> 0] = c2 >>> 25; k[m2 >> 2] = k[m2 >> 2] << 7; c2 = (k[l2 >> 2] | 0) + 7 | 0; } k[l2 >> 2] = c2; n2 = k[g2 >> 2] | 0; i2[f2 >> 0] = (i2[n2 >> 0] | 0) == -1 & 1; k[g2 >> 2] = n2 + 1; k[j2 >> 2] = (k[j2 >> 2] | 0) + -1; k[h2 >> 2] = (k[h2 >> 2] | 0) + 1; d2 = d2 + 1 | 0; } while ((d2 | 0) < 4); } } while (0); k[m2 >> 2] = k[m2 >> 2] | b2 << c2; return; } function le(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; r2 = b2 >> 31; f2 = (r2 ^ b2) - r2 | 0; p2 = a2 + 196 + (f2 * 12 | 0) + 10 | 0; g2 = j[p2 >> 1] | 0; o2 = a2 + 196 + (f2 * 12 | 0) | 0; e2 = k[o2 >> 2] | 0; if ((g2 | 0) < (e2 | 0)) if ((g2 << 1 | 0) < (e2 | 0)) if ((g2 << 2 | 0) < (e2 | 0)) if ((g2 << 3 | 0) < (e2 | 0)) if ((g2 << 4 | 0) < (e2 | 0)) { b2 = 5; while (1) if ((g2 << b2 | 0) < (e2 | 0)) b2 = b2 + 1 | 0; else break; } else b2 = 4; else b2 = 3; else b2 = 2; else b2 = 1; else b2 = 0; m2 = a2 + 196 + (f2 * 12 | 0) + 8 | 0; e2 = (j[m2 >> 1] ^ r2) - r2 + d2 | 0; q2 = a2 + 136 | 0; d2 = k[q2 >> 2] | 0; if ((e2 & d2 | 0) == (e2 | 0)) l2 = e2; else l2 = d2 & ~(e2 >> 31); e2 = (c2 - l2 ^ r2) - r2 | 0; i3 = a2 + 144 | 0; d2 = k[i3 >> 2] | 0; if ((e2 | 0) > 0) e2 = (e2 + d2 | 0) / (d2 << 1 | 1 | 0) | 0; else e2 = (e2 - d2 | 0) / (d2 << 1 | 1 | 0) | 0; n2 = a2 + 140 | 0; h2 = k[n2 >> 2] | 0; c2 = ((e2 | 0) < 0 ? h2 : 0) + e2 | 0; h2 = c2 - ((c2 | 0) < ((h2 + 1 | 0) / 2 | 0 | 0) ? 0 : h2) | 0; f2 = a2 + 196 + (f2 * 12 | 0) + 4 | 0; if (!(d2 | b2)) e2 = (k[f2 >> 2] << 1) + -1 + g2 >> 31; else e2 = 0; d2 = e2 ^ h2; pe(a2, b2, d2 >> 30 ^ d2 << 1, k[a2 + 156 >> 2] | 0); d2 = k[a2 + 160 >> 2] | 0; b2 = (k[o2 >> 2] | 0) + ((h2 | 0) > -1 ? h2 : 0 - h2 | 0) | 0; e2 = (k[f2 >> 2] | 0) + (ia(k[i3 >> 2] << 1 | 1, h2) | 0) | 0; c2 = j[p2 >> 1] | 0; if ((c2 | 0) == (d2 | 0)) { b2 = b2 >> 1; e2 = e2 >> 1; c2 = d2 >> 1; } k[o2 >> 2] = b2; d2 = c2 + 1 | 0; j[p2 >> 1] = d2; b2 = d2 + e2 | 0; if ((b2 | 0) >= 1) { if ((e2 | 0) > 0) { e2 = e2 - d2 | 0; p2 = j[m2 >> 1] | 0; j[m2 >> 1] = (p2 << 16 >> 16 < 127 & 1) + (p2 & 65535); e2 = (e2 | 0) > 0 ? 0 : e2; } } else { e2 = j[m2 >> 1] | 0; j[m2 >> 1] = (e2 & 65535) - (e2 << 16 >> 16 > -128 & 1); e2 = (b2 | 0) > (~c2 | 0) ? b2 : 0 - c2 | 0; } k[f2 >> 2] = e2; d2 = k[i3 >> 2] | 0; c2 = d2 << 1 | 1; b2 = (ia(c2, (h2 ^ r2) - r2 | 0) | 0) + l2 | 0; if ((b2 | 0) >= (0 - d2 | 0)) { e2 = k[q2 >> 2] | 0; if ((e2 + d2 | 0) < (b2 | 0)) b2 = b2 - (ia(k[n2 >> 2] | 0, c2) | 0) | 0; } else { b2 = (ia(k[n2 >> 2] | 0, c2) | 0) + b2 | 0; e2 = k[q2 >> 2] | 0; } if ((b2 & e2 | 0) == (b2 | 0)) { r2 = b2; r2 = r2 & 65535; return r2 | 0; } r2 = e2 & ~(b2 >> 31); r2 = r2 & 65535; return r2 | 0; } function me(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, n2 = 0; i3 = (k[a2 + 180 >> 2] | 0) - b2 | 0; l2 = k[a2 + 4608 >> 2] | 0; n2 = k[a2 + 4604 >> 2] | 0; e2 = j[l2 + (b2 + -1 << 1) >> 1] | 0; h2 = e2 & 65535; c2 = k[a2 + 144 >> 2] | 0; f2 = 0; while (1) { d2 = l2 + (f2 + b2 << 1) | 0; g2 = (m[d2 >> 1] | 0) - h2 | 0; if ((((g2 | 0) > -1 ? g2 : 0 - g2 | 0) | 0) > (c2 | 0)) break; j[d2 >> 1] = e2; f2 = f2 + 1 | 0; if ((f2 | 0) == (i3 | 0)) { f2 = i3; break; } } e2 = (f2 | 0) == (i3 | 0); g2 = a2 + 4600 | 0; d2 = k[36476 + (k[g2 >> 2] << 2) >> 2] | 0; if ((1 << d2 | 0) > (f2 | 0)) c2 = f2; else { c2 = f2; do { ke(a2, 1, 1); d2 = k[g2 >> 2] | 0; c2 = c2 - (1 << k[36476 + (d2 << 2) >> 2]) | 0; d2 = (d2 | 0) > 30 ? 31 : d2 + 1 | 0; k[g2 >> 2] = d2; d2 = k[36476 + (d2 << 2) >> 2] | 0; } while ((c2 | 0) >= (1 << d2 | 0)); } if (!e2) { ke(a2, c2, d2 + 1 | 0); i3 = f2 + b2 | 0; b2 = l2 + (i3 << 1) | 0; a2 = ne(a2, m[b2 >> 1] | 0, h2, m[n2 + (i3 << 1) >> 1] | 0) | 0; j[b2 >> 1] = a2; a2 = k[g2 >> 2] | 0; k[g2 >> 2] = (a2 | 0) < 1 ? 0 : a2 + -1 | 0; a2 = f2 + 1 | 0; return a2 | 0; } if (!c2) { a2 = i3; return a2 | 0; } ke(a2, 1, 1); a2 = i3; return a2 | 0; } function ne(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0; h2 = c2 - d2 | 0; i3 = a2 + 136 | 0; g2 = a2 + 144 | 0; e2 = k[g2 >> 2] | 0; if ((((h2 | 0) > -1 ? h2 : 0 - h2 | 0) | 0) > (e2 | 0)) { f2 = d2 - c2 >> 31 | 1; b2 = ia(f2, b2 - d2 | 0) | 0; if ((b2 | 0) > 0) b2 = (e2 + b2 | 0) / (e2 << 1 | 1 | 0) | 0; else b2 = (b2 - e2 | 0) / (e2 << 1 | 1 | 0) | 0; h2 = a2 + 140 | 0; e2 = k[h2 >> 2] | 0; c2 = ((b2 | 0) < 0 ? e2 : 0) + b2 | 0; e2 = c2 - ((c2 | 0) < ((e2 + 1 | 0) / 2 | 0 | 0) ? 0 : e2) | 0; oe(a2, a2 + 4576 | 0, e2); e2 = ia(e2, f2) | 0; f2 = k[g2 >> 2] | 0; g2 = f2 << 1 | 1; e2 = (ia(e2, g2) | 0) + d2 | 0; if ((e2 | 0) >= (0 - f2 | 0)) { b2 = k[i3 >> 2] | 0; if ((b2 + f2 | 0) < (e2 | 0)) e2 = e2 - (ia(k[h2 >> 2] | 0, g2) | 0) | 0; } else { e2 = (ia(k[h2 >> 2] | 0, g2) | 0) + e2 | 0; b2 = k[i3 >> 2] | 0; } if ((e2 & b2 | 0) == (e2 | 0)) { i3 = e2; i3 = i3 & 65535; return i3 | 0; } i3 = b2 & ~(e2 >> 31); i3 = i3 & 65535; return i3 | 0; } else { b2 = b2 - c2 | 0; if ((b2 | 0) > 0) b2 = (e2 + b2 | 0) / (e2 << 1 | 1 | 0) | 0; else b2 = (b2 - e2 | 0) / (e2 << 1 | 1 | 0) | 0; h2 = a2 + 140 | 0; e2 = k[h2 >> 2] | 0; f2 = ((b2 | 0) < 0 ? e2 : 0) + b2 | 0; e2 = f2 - ((f2 | 0) < ((e2 + 1 | 0) / 2 | 0 | 0) ? 0 : e2) | 0; oe(a2, a2 + 4588 | 0, e2); f2 = k[g2 >> 2] | 0; g2 = f2 << 1 | 1; e2 = (ia(g2, e2) | 0) + c2 | 0; if ((e2 | 0) >= (0 - f2 | 0)) { b2 = k[i3 >> 2] | 0; if ((b2 + f2 | 0) < (e2 | 0)) e2 = e2 - (ia(k[h2 >> 2] | 0, g2) | 0) | 0; } else { e2 = (ia(k[h2 >> 2] | 0, g2) | 0) + e2 | 0; b2 = k[i3 >> 2] | 0; } if ((e2 & b2 | 0) == (e2 | 0)) { i3 = e2; i3 = i3 & 65535; return i3 | 0; } i3 = b2 & ~(e2 >> 31); i3 = i3 & 65535; return i3 | 0; } return 0; } function oe(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; n2 = b2 + 9 | 0; g2 = l[n2 >> 0] | 0; m2 = b2 + 4 | 0; j2 = k[m2 >> 2] | 0; e2 = (ia(g2 >>> 1, j2) | 0) + (k[b2 >> 2] | 0) | 0; if ((g2 | 0) < (e2 | 0)) { f2 = g2; d2 = 0; do { f2 = f2 << 1; d2 = d2 + 1 | 0; } while ((f2 | 0) < (e2 | 0)); e2 = d2; } else e2 = 0; if ((c2 | 0) > 0 & (e2 | 0) == 0 ? l[b2 + 10 >> 0] << 1 >>> 0 < g2 >>> 0 : 0) d2 = 1; else h2 = 5; do if ((h2 | 0) == 5) { d2 = (c2 | 0) < 0; if (d2 ? l[b2 + 10 >> 0] << 1 >>> 0 >= g2 >>> 0 : 0) { d2 = 1; break; } d2 = d2 & (e2 | 0) != 0; } while (0); d2 = (((c2 | 0) > -1 ? c2 : 0 - c2 | 0) << 1) - j2 + (d2 << 31 >> 31) | 0; pe(a2, e2, d2, (k[a2 + 156 >> 2] | 0) + -1 - (k[36476 + (k[a2 + 4600 >> 2] << 2) >> 2] | 0) | 0); if ((c2 | 0) < 0) { a2 = b2 + 10 | 0; i2[a2 >> 0] = (l[a2 >> 0] | 0) + 1; } d2 = (d2 + 1 - (k[m2 >> 2] | 0) >> 1) + (k[b2 >> 2] | 0) | 0; k[b2 >> 2] = d2; e2 = i2[n2 >> 0] | 0; if (e2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { b2 = e2; b2 = b2 & 255; b2 = b2 + 1 | 0; b2 = b2 & 255; i2[n2 >> 0] = b2; return; } k[b2 >> 2] = d2 >> 1; a2 = (e2 & 255) >>> 1; i2[n2 >> 0] = a2; b2 = b2 + 10 | 0; i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; b2 = a2; b2 = b2 & 255; b2 = b2 + 1 | 0; b2 = b2 & 255; i2[n2 >> 0] = b2; return; } function pe(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0; e2 = c2 >> b2; f2 = a2 + 148 | 0; g2 = d2 - (k[f2 >> 2] | 0) | 0; if ((e2 | 0) < (g2 + -1 | 0)) { if ((e2 | 0) > 30) { d2 = (e2 | 0) / 2 | 0; ke(a2, 0, d2); e2 = e2 - d2 | 0; } ke(a2, 1, e2 + 1 | 0); ke(a2, (1 << b2) + -1 & c2, b2); return; } if ((g2 | 0) > 31) { ke(a2, 0, 31); ke(a2, 1, d2 + -31 - (k[f2 >> 2] | 0) | 0); } else ke(a2, 1, g2); b2 = k[f2 >> 2] | 0; ke(a2, (1 << b2) + -1 & c2 + -1, b2); return; } function qe(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; h2 = a2 + 116 | 0; b2 = k[h2 >> 2] | 0; j2 = a2 + 120 | 0; if (b2 >>> 0 < ((k[j2 >> 2] | 0) + -3 | 0) >>> 0) { j2 = a2 + 112 | 0; g2 = k[j2 >> 2] | 0; a2 = a2 + 108 | 0; k[a2 >> 2] = (l[b2 + 1 >> 0] << 16 | l[b2 >> 0] << 24 | l[b2 + 2 >> 0] << 8 | l[b2 + 3 >> 0]) >>> g2 | k[a2 >> 2]; a2 = 32 - g2 >> 3; k[h2 >> 2] = b2 + a2; k[j2 >> 2] = (a2 << 3) + g2; return; } g2 = a2 + 104 | 0; c2 = k[g2 >> 2] | 0; do if (c2) { if ((k[c2 + 12 >> 2] | 0) == (k[c2 + 16 >> 2] | 0)) { if ((Ob[k[(k[c2 >> 2] | 0) + 36 >> 2] & 127](c2) | 0) == -1) break; b2 = k[h2 >> 2] | 0; } e2 = a2 + 124 | 0; c2 = k[e2 >> 2] | 0; f2 = c2 - b2 | 0; if (f2 >>> 0 <= 64) { d2 = a2 + 92 | 0; if ((c2 | 0) == (b2 | 0)) c2 = b2; else { c2 = 0; do { i2[(k[d2 >> 2] | 0) + c2 >> 0] = i2[b2 + c2 >> 0] | 0; c2 = c2 + 1 | 0; b2 = k[h2 >> 2] | 0; } while (c2 >>> 0 < f2 >>> 0); c2 = b2; b2 = k[e2 >> 2] | 0; } n2 = k[d2 >> 2] | 0; d2 = n2; m2 = d2 - c2 | 0; k[h2 >> 2] = n2; c2 = b2 + m2 | 0; k[e2 >> 2] = c2; k[j2 >> 2] = (k[j2 >> 2] | 0) + m2; g2 = k[g2 >> 2] | 0; g2 = Qb[k[(k[g2 >> 2] | 0) + 32 >> 2] & 63](g2, c2, (k[a2 + 96 >> 2] | 0) - (d2 + f2) | 0) | 0; k[e2 >> 2] = (k[e2 >> 2] | 0) + g2; } } while (0); g2 = a2 + 112 | 0; f2 = a2 + 108 | 0; a2 = k[a2 + 124 >> 2] | 0; e2 = a2 + -1 | 0; b2 = k[h2 >> 2] | 0; while (1) { if (b2 >>> 0 >= a2 >>> 0) { c2 = 14; break; } d2 = i2[b2 >> 0] | 0; c2 = d2 & 255; d2 = d2 << 24 >> 24 == -1; if (d2) { if ((b2 | 0) == (e2 | 0)) { c2 = 25; break; } b2 = b2 + 1 | 0; if ((i2[b2 >> 0] | 0) < 0) { c2 = 25; break; } } else b2 = b2 + 1 | 0; n2 = k[g2 >> 2] | 0; k[f2 >> 2] = c2 << 24 - n2 | k[f2 >> 2]; k[h2 >> 2] = b2; n2 = n2 + (d2 ? 7 : 8) | 0; k[g2 >> 2] = n2; if ((n2 | 0) >= 24) { c2 = 33; break; } } if ((c2 | 0) == 14) { if ((k[g2 >> 2] | 0) >= 1) return; b2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, b2 | 0, 5, 35648); n2 = x; x = 0; if (!(n2 & 1)) ub(b2 | 0, 824, 96); n2 = Wa() | 0; Ua(b2 | 0); fb(n2 | 0); } else if ((c2 | 0) == 25) { if ((k[g2 >> 2] | 0) >= 1) return; b2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, b2 | 0, 5, 35648); n2 = x; x = 0; if (!(n2 & 1)) ub(b2 | 0, 824, 96); n2 = Wa() | 0; Ua(b2 | 0); fb(n2 | 0); } else if ((c2 | 0) == 33) { a: do if (b2 >>> 0 < a2 >>> 0) do { if ((i2[b2 >> 0] | 0) == -1) break a; b2 = b2 + 1 | 0; } while (b2 >>> 0 < a2 >>> 0); while (0); k[j2 >> 2] = b2; return; } } function re(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; o2 = r; r = r + 32 | 0; d2 = o2; n2 = a2 + 144 | 0; a: do if (!(k[n2 >> 2] | 0)) { c2 = k[a2 + 136 >> 2] | 0; b2 = a2 + 152 | 0; if ((((c2 | 0) == ((1 << k[b2 >> 2]) + -1 | 0) ? (Oi(d2, c2, 0), (k[d2 + 4 >> 2] | 0) == (k[a2 + 184 >> 2] | 0)) : 0) ? (k[d2 + 8 >> 2] | 0) == (k[a2 + 188 >> 2] | 0) : 0) ? (k[d2 + 12 >> 2] | 0) == (k[a2 + 192 >> 2] | 0) : 0) switch (k[b2 >> 2] | 0) { case 8: { n2 = k[8900] | 0; k[a2 + 4612 >> 2] = n2 + (((k[8901] | 0) - n2 | 0) >>> 1); r = o2; return; } case 10: { n2 = k[8903] | 0; k[a2 + 4612 >> 2] = n2 + (((k[8904] | 0) - n2 | 0) >>> 1); r = o2; return; } case 12: { n2 = k[8906] | 0; k[a2 + 4612 >> 2] = n2 + (((k[8907] | 0) - n2 | 0) >>> 1); r = o2; return; } case 16: { n2 = k[8909] | 0; k[a2 + 4612 >> 2] = n2 + (((k[8910] | 0) - n2 | 0) >>> 1); r = o2; return; } default: break a; } } else b2 = a2 + 152 | 0; while (0); m2 = 1 << k[b2 >> 2]; c2 = a2 + 4616 | 0; d2 = m2 << 1; e2 = a2 + 4620 | 0; f2 = k[e2 >> 2] | 0; b2 = k[c2 >> 2] | 0; g2 = f2 - b2 | 0; if (d2 >>> 0 <= g2 >>> 0) { if (d2 >>> 0 < g2 >>> 0 ? (h2 = b2 + d2 | 0, (f2 | 0) != (h2 | 0)) : 0) k[e2 >> 2] = h2; } else { se(c2, d2 - g2 | 0); b2 = k[c2 >> 2] | 0; } l2 = a2 + 4612 | 0; k[l2 >> 2] = b2 + m2; b2 = 0 - m2 | 0; if ((m2 | 0) <= (b2 | 0)) { r = o2; return; } h2 = a2 + 192 | 0; j2 = a2 + 188 | 0; g2 = a2 + 184 | 0; f2 = b2; do { b2 = k[h2 >> 2] | 0; if ((f2 | 0) > (0 - b2 | 0)) { c2 = k[j2 >> 2] | 0; if ((f2 | 0) > (0 - c2 | 0)) { d2 = k[g2 >> 2] | 0; if ((f2 | 0) > (0 - d2 | 0)) { e2 = k[n2 >> 2] | 0; if ((f2 | 0) >= (0 - e2 | 0)) if ((e2 | 0) < (f2 | 0)) if ((d2 | 0) <= (f2 | 0)) if ((c2 | 0) > (f2 | 0)) b2 = 2; else b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; else b2 = 1; else b2 = 0; else b2 = -1; } else b2 = -2; } else b2 = -3; } else b2 = -4; i2[(k[l2 >> 2] | 0) + f2 >> 0] = b2; f2 = f2 + 1 | 0; } while ((f2 | 0) != (m2 | 0)); r = o2; return; } function se(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; j2 = a2 + 8 | 0; e2 = k[j2 >> 2] | 0; l2 = a2 + 4 | 0; c2 = k[l2 >> 2] | 0; d2 = c2; if ((e2 - d2 | 0) >>> 0 >= b2 >>> 0) { do { i2[c2 >> 0] = 0; c2 = (k[l2 >> 2] | 0) + 1 | 0; k[l2 >> 2] = c2; b2 = b2 + -1 | 0; } while ((b2 | 0) != 0); return; } c2 = k[a2 >> 2] | 0; f2 = d2 - c2 + b2 | 0; if ((f2 | 0) < 0) { jj(a2); e2 = k[j2 >> 2] | 0; c2 = k[a2 >> 2] | 0; } d2 = e2 - c2 | 0; if (d2 >>> 0 < 1073741823) { d2 = d2 << 1; d2 = d2 >>> 0 < f2 >>> 0 ? f2 : d2; c2 = (k[l2 >> 2] | 0) - c2 | 0; if (!d2) { e2 = 0; g2 = 0; f2 = c2; } else h2 = 8; } else { d2 = 2147483647; c2 = (k[l2 >> 2] | 0) - c2 | 0; h2 = 8; } if ((h2 | 0) == 8) { e2 = d2; g2 = lj(d2) | 0; f2 = c2; } c2 = g2 + f2 | 0; e2 = g2 + e2 | 0; d2 = c2; do { i2[d2 >> 0] = 0; d2 = c2 + 1 | 0; c2 = d2; b2 = b2 + -1 | 0; } while ((b2 | 0) != 0); b2 = k[a2 >> 2] | 0; d2 = (k[l2 >> 2] | 0) - b2 | 0; h2 = g2 + (f2 - d2) | 0; vw(h2 | 0, b2 | 0, d2 | 0) | 0; k[a2 >> 2] = h2; k[l2 >> 2] = c2; k[j2 >> 2] = e2; if (!b2) return; mj(b2); return; } function te(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 36612; b2 = k[a2 + 120 >> 2] | 0; if (b2) { c2 = a2 + 124 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = a2 + 92 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); a2 = a2 + 4 | 0; b2 = k[a2 >> 2] | 0; k[a2 >> 2] = 0; if (!b2) return; Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); return; } function ue(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 36612; b2 = k[a2 + 120 >> 2] | 0; if (b2) { c2 = a2 + 124 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = a2 + 92 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); c2 = a2 + 4 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (!b2) { mj(a2); return; } Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); mj(a2); return; } function ve(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 36052; b2 = k[a2 + 4616 >> 2] | 0; if (b2) { c2 = a2 + 4620 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36612; b2 = k[a2 + 120 >> 2] | 0; if (b2) { c2 = a2 + 124 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = a2 + 92 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); a2 = a2 + 4 | 0; b2 = k[a2 >> 2] | 0; k[a2 >> 2] = 0; if (!b2) return; Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); return; } function we(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 36052; b2 = k[a2 + 4616 >> 2] | 0; if (b2) { c2 = a2 + 4620 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36612; b2 = k[a2 + 120 >> 2] | 0; if (b2) { c2 = a2 + 124 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = a2 + 92 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); c2 = a2 + 4 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (!b2) { mj(a2); return; } Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); mj(a2); return; } function xe(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0; g2 = r; r = r + 32 | 0; l2 = g2; Oi(l2, k[a2 + 136 >> 2] | 0, k[a2 + 144 >> 2] | 0); h2 = k[b2 + 4 >> 2] | 0; f2 = k[b2 + 8 >> 2] | 0; f2 = (f2 | 0) == 0 ? k[l2 + 8 >> 2] | 0 : f2; e2 = k[b2 + 12 >> 2] | 0; e2 = (e2 | 0) == 0 ? k[l2 + 12 >> 2] | 0 : e2; c2 = k[b2 + 16 >> 2] | 0; d2 = k[l2 + 16 >> 2] | 0; k[a2 + 184 >> 2] = (h2 | 0) == 0 ? k[l2 + 4 >> 2] | 0 : h2; k[a2 + 188 >> 2] = f2; k[a2 + 192 >> 2] = e2; He(a2); e2 = a2 + 140 | 0; b2 = (k[e2 >> 2] | 0) + 32 | 0; b2 = (b2 | 0) < 128 ? 2 : (b2 | 0) / 64 | 0; f2 = 0; do { k[a2 + 196 + (f2 * 12 | 0) >> 2] = b2; k[a2 + 196 + (f2 * 12 | 0) + 4 >> 2] = 0; j[a2 + 196 + (f2 * 12 | 0) + 8 >> 1] = 0; j[a2 + 196 + (f2 * 12 | 0) + 10 >> 1] = 1; f2 = f2 + 1 | 0; } while ((f2 | 0) != 365); h2 = (k[e2 >> 2] | 0) + 32 | 0; h2 = (h2 | 0) < 128 ? 2 : (h2 | 0) / 64 | 0; l2 = ((c2 | 0) == 0 ? d2 : c2) & 255; k[a2 + 4576 >> 2] = h2; k[a2 + 4580 >> 2] = 0; i2[a2 + 4584 >> 0] = l2; i2[a2 + 4585 >> 0] = 1; i2[a2 + 4586 >> 0] = 0; k[a2 + 4588 >> 2] = h2; k[a2 + 4592 >> 2] = 1; i2[a2 + 4596 >> 0] = l2; i2[a2 + 4597 >> 0] = 1; i2[a2 + 4598 >> 0] = 0; k[a2 + 4600 >> 2] = 0; r = g2; return; } function ye(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; n2 = r; r = r + 16 | 0; l2 = n2; h2 = a2 + 92 | 0; g2 = k[b2 >> 2] | 0; k[b2 >> 2] = 0; b2 = k[h2 >> 2] | 0; k[h2 >> 2] = g2; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); k[l2 >> 2] = 0; k[l2 + 4 >> 2] = d2; h2 = c2 + 8 | 0; k[l2 + 8 >> 2] = k[h2 >> 2]; if (d2) { b2 = lj(4624) | 0; d2 = a2 + 8 | 0; e2 = b2 + 4 | 0; f2 = d2; g2 = e2 + 84 | 0; do { k[e2 >> 2] = k[f2 >> 2]; e2 = e2 + 4 | 0; f2 = f2 + 4 | 0; } while ((e2 | 0) < (g2 | 0)); e2 = b2 + 88 | 0; g2 = e2 + 40 | 0; do { k[e2 >> 2] = 0; e2 = e2 + 4 | 0; } while ((e2 | 0) < (g2 | 0)); k[b2 >> 2] = 35828; k[b2 + 128 >> 2] = k[a2 + 136 >> 2]; k[b2 + 132 >> 2] = k[a2 + 140 >> 2]; k[b2 + 136 >> 2] = k[a2 + 144 >> 2]; k[b2 + 140 >> 2] = k[a2 + 148 >> 2]; k[b2 + 144 >> 2] = k[a2 + 152 >> 2]; k[b2 + 148 >> 2] = k[a2 + 156 >> 2]; k[b2 + 152 >> 2] = k[a2 + 160 >> 2]; e2 = b2 + 156 | 0; k[e2 >> 2] = 0; k[e2 + 4 >> 2] = 0; k[e2 + 8 >> 2] = 0; k[e2 + 12 >> 2] = 0; k[b2 + 172 >> 2] = k[d2 >> 2]; k[b2 + 176 >> 2] = 0; k[b2 + 180 >> 2] = 0; k[b2 + 184 >> 2] = 0; e2 = b2 + 4568 | 0; d2 = b2 + 188 | 0; do { k[d2 >> 2] = 0; k[d2 + 4 >> 2] = 0; j[d2 + 8 >> 1] = 0; j[d2 + 10 >> 1] = 1; d2 = d2 + 12 | 0; } while ((d2 | 0) != (e2 | 0)); f2 = a2 + 4 | 0; k[e2 >> 2] = 0; k[e2 + 4 >> 2] = 0; j[e2 + 8 >> 1] = 0; i2[e2 + 10 >> 0] = 0; g2 = b2 + 4580 | 0; k[g2 >> 2] = 0; k[g2 + 4 >> 2] = 0; j[g2 + 8 >> 1] = 0; i2[g2 + 10 >> 0] = 0; g2 = b2 + 4592 | 0; k[g2 >> 2] = 0; k[g2 + 4 >> 2] = 0; k[g2 + 8 >> 2] = 0; k[g2 + 12 >> 2] = 0; k[g2 + 16 >> 2] = 0; k[g2 + 20 >> 2] = 0; k[g2 + 24 >> 2] = 0; i2[g2 + 28 >> 0] = 0; if (!(k[b2 + 28 >> 2] | 0)) k[b2 + 20 >> 2] = 1; d2 = k[f2 >> 2] | 0; k[f2 >> 2] = b2; if (d2) { Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); b2 = k[f2 >> 2] | 0; } ee(b2, l2); } l2 = a2 + 100 | 0; k[l2 >> 2] = 32; k[a2 + 96 >> 2] = 0; b2 = k[c2 >> 2] | 0; if (!b2) { k[a2 + 108 >> 2] = k[c2 + 4 >> 2]; k[a2 + 104 >> 2] = k[h2 >> 2]; Ae(a2); m2 = a2 + 116 | 0; m2 = k[m2 >> 2] | 0; a2 = k[l2 >> 2] | 0; a2 = a2 + -32 | 0; a2 = (a2 | 0) / 8 | 0; a2 = m2 - a2 | 0; r = n2; return a2 | 0; } k[a2 + 132 >> 2] = b2; e2 = a2 + 120 | 0; h2 = a2 + 124 | 0; d2 = k[h2 >> 2] | 0; b2 = k[e2 >> 2] | 0; f2 = b2; g2 = d2 - f2 | 0; if (g2 >>> 0 >= 4e3) { if (g2 >>> 0 > 4e3 ? (m2 = b2 + 4e3 | 0, (d2 | 0) != (m2 | 0)) : 0) { k[h2 >> 2] = m2; d2 = m2; } } else { fe(e2, 4e3 - g2 | 0); b2 = k[e2 >> 2] | 0; f2 = b2; d2 = k[h2 >> 2] | 0; } k[a2 + 108 >> 2] = f2; k[a2 + 104 >> 2] = d2 - b2; Ae(a2); m2 = a2 + 116 | 0; m2 = k[m2 >> 2] | 0; a2 = k[l2 >> 2] | 0; a2 = a2 + -32 | 0; a2 = (a2 | 0) / 8 | 0; a2 = m2 - a2 | 0; r = n2; return a2 | 0; } function ze(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; u2 = r; r = r + 352 | 0; v2 = u2 + 328 | 0; y2 = u2 + 192 | 0; c2 = u2 + 343 | 0; d2 = u2 + 342 | 0; e2 = u2 + 341 | 0; f2 = u2 + 340 | 0; o2 = u2 + 176 | 0; h2 = u2 + 168 | 0; j2 = u2 + 160 | 0; l2 = u2 + 152 | 0; t2 = u2; q2 = u2 + 136 | 0; if ((k[a2 + 32 >> 2] | 0) != 0 ? (k[a2 + 24 >> 2] | 0) != 1 : 0) { p2 = a2 + 8 | 0; s2 = a2 + 36 | 0; g2 = k[s2 >> 2] | 0; if (!g2) { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[c2 >> 0] | 0; Ja(37, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } a2 = k[a2 + 16 >> 2] | 0; if ((a2 | 0) == 16) switch (g2 | 0) { case 1: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[d2 >> 0] | 0; Ja(38, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[e2 >> 0] | 0; Ja(39, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[f2 >> 0] | 0; Ja(40, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = y2 + 56 | 0; e2 = y2 + 4 | 0; k[y2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, y2 + 56 | 0, e2 | 0); u2 = x; x = 0; if (u2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[y2 + 128 >> 2] = 0; k[y2 + 132 >> 2] = -1; k[y2 >> 2] = 36200; k[y2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); u2 = x; x = 0; do if (u2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = y2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[y2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); u2 = x; x = 0; if (u2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, y2 | 0, 49007, 21) | 0; v2 = x; x = 0; do if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, o2 | 0, e2 | 0); v2 = x; x = 0; if (!(v2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, o2 | 0); v2 = x; x = 0; if (v2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(o2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 34; while (0); if ((z2 | 0) == 34) a2 = Wa() | 0; k[y2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } if ((a2 | 0) <= 8) { a2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, a2 | 0, 8, 35648); z2 = x; x = 0; if (!(z2 & 1)) ub(a2 | 0, 824, 96); z2 = Wa() | 0; Ua(a2 | 0); fb(z2 | 0); } c2 = 16 - a2 | 0; switch (g2 | 0) { case 1: { a2 = lj(60) | 0; k[h2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[h2 >> 2]; k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(60) | 0; k[j2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[j2 >> 2]; k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(60) | 0; k[l2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[l2 >> 2]; k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = t2 + 56 | 0; e2 = t2 + 4 | 0; k[t2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, t2 + 56 | 0, e2 | 0); y2 = x; x = 0; if (y2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[t2 + 128 >> 2] = 0; k[t2 + 132 >> 2] = -1; k[t2 >> 2] = 36200; k[t2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); y2 = x; x = 0; do if (y2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = t2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[t2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); y2 = x; x = 0; if (y2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, t2 | 0, 49007, 21) | 0; y2 = x; x = 0; do if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, q2 | 0, e2 | 0); y2 = x; x = 0; if (!(y2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, q2 | 0); y2 = x; x = 0; if (y2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(q2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 64; while (0); if ((z2 | 0) == 64) a2 = Wa() | 0; k[t2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } } c2 = k[b2 + 4 >> 2] | 0; d2 = lj(16) | 0; a2 = k[a2 + 20 >> 2] | 0; if (!c2) { z2 = k[b2 >> 2] | 0; k[d2 >> 2] = 36132; k[d2 + 4 >> 2] = z2; k[d2 + 8 >> 2] = 6; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } else { k[d2 >> 2] = 36108; k[d2 + 4 >> 2] = c2; k[d2 + 8 >> 2] = 6; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } return 0; } function Ae(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0; t2 = r; r = r + 32 | 0; v2 = t2 + 12 | 0; s2 = t2; o2 = a2 + 180 | 0; p2 = (k[o2 >> 2] | 0) + 4 | 0; if ((k[a2 + 32 >> 2] | 0) == 1) q2 = k[a2 + 24 >> 2] | 0; else q2 = 1; b2 = ia(q2 << 1, p2) | 0; k[v2 >> 2] = 0; w2 = v2 + 4 | 0; k[w2 >> 2] = 0; k[v2 + 8 >> 2] = 0; do if (b2) { if (!(b2 >>> 0 > 715827882 ? (x = 0, qa(178, v2 | 0), u2 = x, x = 0, u2 & 1) : 0)) g2 = 6; if ((g2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 * 6 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { k[w2 >> 2] = c2; k[v2 >> 2] = c2; d2 = c2 + (b2 * 6 | 0) | 0; k[v2 + 8 >> 2] = d2; while (1) { j[c2 >> 1] = 0; j[c2 + 2 >> 1] = 0; j[c2 + 4 >> 1] = 0; b2 = b2 + -1 | 0; if (!b2) break; else c2 = c2 + 6 | 0; } k[w2 >> 2] = d2; break; } d2 = Wa() | 0; b2 = k[v2 >> 2] | 0; if (!b2) fb(d2 | 0); c2 = k[w2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[w2 >> 2] = c2 + (~(((c2 + -6 - b2 | 0) >>> 0) / 6 | 0) * 6 | 0); mj(b2); fb(d2 | 0); } while (0); k[s2 >> 2] = 0; u2 = s2 + 4 | 0; k[u2 >> 2] = 0; k[s2 + 8 >> 2] = 0; do if (!q2) g2 = 20; else { if (!(q2 >>> 0 > 1073741823 ? (x = 0, qa(178, s2 | 0), n2 = x, x = 0, n2 & 1) : 0)) g2 = 18; if ((g2 | 0) == 18 ? (e2 = q2 << 2, x = 0, f2 = ta(67, e2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { k[s2 >> 2] = f2; g2 = f2 + (q2 << 2) | 0; k[s2 + 8 >> 2] = g2; sw(f2 | 0, 0, e2 | 0) | 0; k[u2 >> 2] = g2; g2 = 20; break; } d2 = Wa() | 0; b2 = k[s2 >> 2] | 0; c2 = b2; if (b2) { e2 = k[u2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[u2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } } while (0); if ((g2 | 0) == 20) { e2 = a2 + 12 | 0; a: do if ((k[e2 >> 2] | 0) > 0) { f2 = a2 + 4604 | 0; g2 = (ia(q2, p2) | 0) + 1 | 0; h2 = a2 + 4608 | 0; i3 = a2 + 92 | 0; l2 = (q2 | 0) > 0; m2 = a2 + 4600 | 0; n2 = 0; b: while (1) { c2 = k[v2 >> 2] | 0; b2 = c2 + 6 | 0; k[f2 >> 2] = b2; c2 = c2 + (g2 * 6 | 0) | 0; k[h2 >> 2] = c2; if (!(n2 & 1)) b2 = c2; else { k[f2 >> 2] = c2; k[h2 >> 2] = b2; } d2 = k[i3 >> 2] | 0; x = 0; Ja(k[(k[d2 >> 2] | 0) + 12 >> 2] | 0, d2 | 0, b2 | 0, k[o2 >> 2] | 0, p2 | 0); d2 = x; x = 0; if (d2 & 1) { g2 = 30; break; } if (l2) { b2 = k[s2 >> 2] | 0; c2 = k[f2 >> 2] | 0; d2 = 0; do { k[m2 >> 2] = k[b2 + (d2 << 2) >> 2]; y2 = k[o2 >> 2] | 0; b2 = c2 + (y2 * 6 | 0) | 0; c2 = c2 + ((y2 + -1 | 0) * 6 | 0) | 0; j[b2 >> 1] = j[c2 >> 1] | 0; j[b2 + 2 >> 1] = j[c2 + 2 >> 1] | 0; j[b2 + 4 >> 1] = j[c2 + 4 >> 1] | 0; c2 = (k[h2 >> 2] | 0) + -6 | 0; b2 = k[f2 >> 2] | 0; j[c2 >> 1] = j[b2 >> 1] | 0; j[c2 + 2 >> 1] = j[b2 + 2 >> 1] | 0; j[c2 + 4 >> 1] = j[b2 + 4 >> 1] | 0; x = 0; ra(69, a2 | 0, 0); c2 = x; x = 0; if (c2 & 1) { g2 = 29; break b; } b2 = k[s2 >> 2] | 0; k[b2 + (d2 << 2) >> 2] = k[m2 >> 2]; c2 = (k[f2 >> 2] | 0) + (p2 * 6 | 0) | 0; k[f2 >> 2] = c2; k[h2 >> 2] = (k[h2 >> 2] | 0) + (p2 * 6 | 0); d2 = d2 + 1 | 0; } while ((d2 | 0) < (q2 | 0)); } n2 = n2 + 1 | 0; if ((n2 | 0) >= (k[e2 >> 2] | 0)) { g2 = 42; break a; } } if ((g2 | 0) == 29) { d2 = Wa() | 0; break; } else if ((g2 | 0) == 30) { d2 = Wa() | 0; break; } } else g2 = 42; while (0); do if ((g2 | 0) == 42) { x = 0; qa(182, a2 | 0); y2 = x; x = 0; if (y2 & 1) { d2 = Wa() | 0; break; } b2 = k[s2 >> 2] | 0; c2 = b2; if (b2) { d2 = k[u2 >> 2] | 0; if ((d2 | 0) != (b2 | 0)) k[u2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } b2 = k[v2 >> 2] | 0; if (!b2) { r = t2; return; } c2 = k[w2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[w2 >> 2] = c2 + (~(((c2 + -6 - b2 | 0) >>> 0) / 6 | 0) * 6 | 0); mj(b2); r = t2; return; } while (0); b2 = k[s2 >> 2] | 0; c2 = b2; if (b2) { e2 = k[u2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[u2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } } b2 = k[v2 >> 2] | 0; if (!b2) fb(d2 | 0); c2 = k[w2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[w2 >> 2] = c2 + (~(((c2 + -6 - b2 | 0) >>> 0) / 6 | 0) * 6 | 0); mj(b2); fb(d2 | 0); } function Be(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0; B2 = a2 + 180 | 0; if ((k[B2 >> 2] | 0) <= 0) return; C2 = a2 + 4608 | 0; D2 = a2 + 4604 | 0; E2 = a2 + 4612 | 0; A2 = 0; while (1) { x2 = A2 + -1 | 0; f2 = k[C2 >> 2] | 0; g2 = k[D2 >> 2] | 0; b2 = A2 + 1 | 0; e2 = m[g2 + (A2 * 6 | 0) >> 1] | 0; z2 = k[E2 >> 2] | 0; h2 = m[g2 + (x2 * 6 | 0) >> 1] | 0; l2 = e2 - h2 | 0; n2 = m[f2 + (x2 * 6 | 0) >> 1] | 0; o2 = h2 - n2 | 0; p2 = ((((i2[z2 + ((m[g2 + (b2 * 6 | 0) >> 1] | 0) - e2) >> 0] | 0) * 9 | 0) + (i2[z2 + l2 >> 0] | 0) | 0) * 9 | 0) + (i2[z2 + o2 >> 0] | 0) | 0; d2 = m[g2 + (A2 * 6 | 0) + 2 >> 1] | 0; q2 = m[g2 + (x2 * 6 | 0) + 2 >> 1] | 0; r2 = d2 - q2 | 0; s2 = m[f2 + (x2 * 6 | 0) + 2 >> 1] | 0; t2 = q2 - s2 | 0; u2 = ((((i2[z2 + ((m[g2 + (b2 * 6 | 0) + 2 >> 1] | 0) - d2) >> 0] | 0) * 9 | 0) + (i2[z2 + r2 >> 0] | 0) | 0) * 9 | 0) + (i2[z2 + t2 >> 0] | 0) | 0; c2 = m[g2 + (A2 * 6 | 0) + 4 >> 1] | 0; v2 = m[g2 + (x2 * 6 | 0) + 4 >> 1] | 0; w2 = c2 - v2 | 0; x2 = m[f2 + (x2 * 6 | 0) + 4 >> 1] | 0; y2 = v2 - x2 | 0; z2 = ((((i2[z2 + ((m[g2 + (b2 * 6 | 0) + 4 >> 1] | 0) - c2) >> 0] | 0) * 9 | 0) + (i2[z2 + w2 >> 0] | 0) | 0) * 9 | 0) + (i2[z2 + y2 >> 0] | 0) | 0; if (!(u2 | p2 | z2)) b2 = (Ce(a2, A2, 0) | 0) + A2 | 0; else { g2 = m[f2 + (A2 * 6 | 0) >> 1] | 0; f2 = e2 - n2 >> 31; if ((f2 ^ o2 | 0) >= 0) if ((f2 ^ l2 | 0) < 0) e2 = n2; else e2 = n2 - h2 + e2 | 0; g2 = De(a2, p2, g2, e2, 0) | 0; f2 = m[(k[C2 >> 2] | 0) + (A2 * 6 | 0) + 2 >> 1] | 0; e2 = d2 - s2 >> 31; if ((e2 ^ t2 | 0) >= 0) if ((e2 ^ r2 | 0) < 0) d2 = s2; else d2 = s2 - q2 + d2 | 0; e2 = De(a2, u2, f2, d2, 0) | 0; f2 = m[(k[C2 >> 2] | 0) + (A2 * 6 | 0) + 4 >> 1] | 0; d2 = c2 - x2 >> 31; if ((d2 ^ y2 | 0) >= 0) if ((d2 ^ w2 | 0) < 0) c2 = x2; else c2 = x2 - v2 + c2 | 0; y2 = De(a2, z2, f2, c2, 0) | 0; z2 = k[C2 >> 2] | 0; j[z2 + (A2 * 6 | 0) >> 1] = g2; j[z2 + (A2 * 6 | 0) + 2 >> 1] = e2; j[z2 + (A2 * 6 | 0) + 4 >> 1] = y2; } if ((b2 | 0) < (k[B2 >> 2] | 0)) A2 = b2; else break; } return; } function Ce(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0; B2 = r; r = r + 48 | 0; q2 = B2 + 30 | 0; p2 = B2 + 24 | 0; o2 = B2 + 18 | 0; s2 = B2 + 12 | 0; x2 = B2 + 6 | 0; y2 = B2; z2 = (k[a2 + 180 >> 2] | 0) - b2 | 0; A2 = k[a2 + 4608 >> 2] | 0; t2 = k[a2 + 4604 >> 2] | 0; w2 = b2 + -1 | 0; u2 = j[A2 + (w2 * 6 | 0) >> 1] | 0; v2 = j[A2 + (w2 * 6 | 0) + 2 >> 1] | 0; w2 = j[A2 + (w2 * 6 | 0) + 4 >> 1] | 0; c2 = u2 & 65535; d2 = a2 + 144 | 0; e2 = v2 & 65535; f2 = w2 & 65535; n2 = 0; while (1) { i3 = n2 + b2 | 0; g2 = A2 + (i3 * 6 | 0) | 0; h2 = A2 + (i3 * 6 | 0) + 2 | 0; i3 = A2 + (i3 * 6 | 0) + 4 | 0; C2 = (m[g2 >> 1] | 0) - c2 | 0; l2 = k[d2 >> 2] | 0; if ((((C2 | 0) > -1 ? C2 : 0 - C2 | 0) | 0) > (l2 | 0)) break; C2 = (m[h2 >> 1] | 0) - e2 | 0; if ((((C2 | 0) > -1 ? C2 : 0 - C2 | 0) | 0) > (l2 | 0)) break; C2 = (m[i3 >> 1] | 0) - f2 | 0; if ((((C2 | 0) > -1 ? C2 : 0 - C2 | 0) | 0) > (l2 | 0)) break; j[g2 >> 1] = u2; j[h2 >> 1] = v2; j[i3 >> 1] = w2; n2 = n2 + 1 | 0; if ((n2 | 0) == (z2 | 0)) { n2 = z2; break; } } e2 = (n2 | 0) == (z2 | 0); f2 = a2 + 4600 | 0; d2 = k[36476 + (k[f2 >> 2] << 2) >> 2] | 0; if ((1 << d2 | 0) > (n2 | 0)) c2 = n2; else { c2 = n2; do { ke(a2, 1, 1); d2 = k[f2 >> 2] | 0; c2 = c2 - (1 << k[36476 + (d2 << 2) >> 2]) | 0; d2 = (d2 | 0) > 30 ? 31 : d2 + 1 | 0; k[f2 >> 2] = d2; d2 = k[36476 + (d2 << 2) >> 2] | 0; } while ((c2 | 0) >= (1 << d2 | 0)); } if (!e2) { ke(a2, c2, d2 + 1 | 0); b2 = n2 + b2 | 0; C2 = A2 + (b2 * 6 | 0) | 0; j[x2 >> 1] = j[C2 >> 1] | 0; j[x2 + 2 >> 1] = j[C2 + 2 >> 1] | 0; j[x2 + 4 >> 1] = j[C2 + 4 >> 1] | 0; j[y2 >> 1] = u2; j[y2 + 2 >> 1] = v2; j[y2 + 4 >> 1] = w2; b2 = t2 + (b2 * 6 | 0) | 0; j[o2 >> 1] = j[x2 >> 1] | 0; j[o2 + 2 >> 1] = j[x2 + 2 >> 1] | 0; j[o2 + 4 >> 1] = j[x2 + 4 >> 1] | 0; j[p2 >> 1] = j[y2 >> 1] | 0; j[p2 + 2 >> 1] = j[y2 + 2 >> 1] | 0; j[p2 + 4 >> 1] = j[y2 + 4 >> 1] | 0; j[q2 >> 1] = j[b2 >> 1] | 0; j[q2 + 2 >> 1] = j[b2 + 2 >> 1] | 0; j[q2 + 4 >> 1] = j[b2 + 4 >> 1] | 0; Fe(s2, a2, o2, p2, q2); j[C2 >> 1] = j[s2 >> 1] | 0; j[C2 + 2 >> 1] = j[s2 + 2 >> 1] | 0; j[C2 + 4 >> 1] = j[s2 + 4 >> 1] | 0; C2 = k[f2 >> 2] | 0; k[f2 >> 2] = (C2 | 0) < 1 ? 0 : C2 + -1 | 0; C2 = n2 + 1 | 0; r = B2; return C2 | 0; } if (!c2) { C2 = z2; r = B2; return C2 | 0; } ke(a2, 1, 1); C2 = z2; r = B2; return C2 | 0; } function De(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; r2 = b2 >> 31; f2 = (r2 ^ b2) - r2 | 0; p2 = a2 + 196 + (f2 * 12 | 0) + 10 | 0; g2 = j[p2 >> 1] | 0; o2 = a2 + 196 + (f2 * 12 | 0) | 0; e2 = k[o2 >> 2] | 0; if ((g2 | 0) < (e2 | 0)) if ((g2 << 1 | 0) < (e2 | 0)) if ((g2 << 2 | 0) < (e2 | 0)) if ((g2 << 3 | 0) < (e2 | 0)) if ((g2 << 4 | 0) < (e2 | 0)) { b2 = 5; while (1) if ((g2 << b2 | 0) < (e2 | 0)) b2 = b2 + 1 | 0; else break; } else b2 = 4; else b2 = 3; else b2 = 2; else b2 = 1; else b2 = 0; m2 = a2 + 196 + (f2 * 12 | 0) + 8 | 0; e2 = (j[m2 >> 1] ^ r2) - r2 + d2 | 0; q2 = a2 + 136 | 0; d2 = k[q2 >> 2] | 0; if ((e2 & d2 | 0) == (e2 | 0)) l2 = e2; else l2 = d2 & ~(e2 >> 31); e2 = (c2 - l2 ^ r2) - r2 | 0; i3 = a2 + 144 | 0; d2 = k[i3 >> 2] | 0; if ((e2 | 0) > 0) e2 = (e2 + d2 | 0) / (d2 << 1 | 1 | 0) | 0; else e2 = (e2 - d2 | 0) / (d2 << 1 | 1 | 0) | 0; n2 = a2 + 140 | 0; h2 = k[n2 >> 2] | 0; c2 = ((e2 | 0) < 0 ? h2 : 0) + e2 | 0; h2 = c2 - ((c2 | 0) < ((h2 + 1 | 0) / 2 | 0 | 0) ? 0 : h2) | 0; f2 = a2 + 196 + (f2 * 12 | 0) + 4 | 0; if (!(d2 | b2)) e2 = (k[f2 >> 2] << 1) + -1 + g2 >> 31; else e2 = 0; d2 = e2 ^ h2; Ee(a2, b2, d2 >> 30 ^ d2 << 1, k[a2 + 156 >> 2] | 0); d2 = k[a2 + 160 >> 2] | 0; b2 = (k[o2 >> 2] | 0) + ((h2 | 0) > -1 ? h2 : 0 - h2 | 0) | 0; e2 = (k[f2 >> 2] | 0) + (ia(k[i3 >> 2] << 1 | 1, h2) | 0) | 0; c2 = j[p2 >> 1] | 0; if ((c2 | 0) == (d2 | 0)) { b2 = b2 >> 1; e2 = e2 >> 1; c2 = d2 >> 1; } k[o2 >> 2] = b2; d2 = c2 + 1 | 0; j[p2 >> 1] = d2; b2 = d2 + e2 | 0; if ((b2 | 0) >= 1) { if ((e2 | 0) > 0) { e2 = e2 - d2 | 0; p2 = j[m2 >> 1] | 0; j[m2 >> 1] = (p2 << 16 >> 16 < 127 & 1) + (p2 & 65535); e2 = (e2 | 0) > 0 ? 0 : e2; } } else { e2 = j[m2 >> 1] | 0; j[m2 >> 1] = (e2 & 65535) - (e2 << 16 >> 16 > -128 & 1); e2 = (b2 | 0) > (~c2 | 0) ? b2 : 0 - c2 | 0; } k[f2 >> 2] = e2; d2 = k[i3 >> 2] | 0; c2 = d2 << 1 | 1; b2 = (ia(c2, (h2 ^ r2) - r2 | 0) | 0) + l2 | 0; if ((b2 | 0) >= (0 - d2 | 0)) { e2 = k[q2 >> 2] | 0; if ((e2 + d2 | 0) < (b2 | 0)) b2 = b2 - (ia(k[n2 >> 2] | 0, c2) | 0) | 0; } else { b2 = (ia(k[n2 >> 2] | 0, c2) | 0) + b2 | 0; e2 = k[q2 >> 2] | 0; } if ((b2 & e2 | 0) == (b2 | 0)) { r2 = b2; r2 = r2 & 65535; return r2 | 0; } r2 = e2 & ~(b2 >> 31); r2 = r2 & 65535; return r2 | 0; } function Ee(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0; e2 = c2 >> b2; f2 = a2 + 148 | 0; g2 = d2 - (k[f2 >> 2] | 0) | 0; if ((e2 | 0) < (g2 + -1 | 0)) { if ((e2 | 0) > 30) { d2 = (e2 | 0) / 2 | 0; ke(a2, 0, d2); e2 = e2 - d2 | 0; } ke(a2, 1, e2 + 1 | 0); ke(a2, (1 << b2) + -1 & c2, b2); return; } if ((g2 | 0) > 31) { ke(a2, 0, 31); ke(a2, 1, d2 + -31 - (k[f2 >> 2] | 0) | 0); } else ke(a2, 1, g2); b2 = k[f2 >> 2] | 0; ke(a2, (1 << b2) + -1 & c2 + -1, b2); return; } function Fe(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; r2 = b2 + 136 | 0; o2 = m[e2 >> 1] | 0; p2 = o2 - (m[d2 >> 1] | 0) >> 31 | 1; f2 = ia(p2, (m[c2 >> 1] | 0) - o2 | 0) | 0; l2 = b2 + 144 | 0; g2 = k[l2 >> 2] | 0; if ((f2 | 0) > 0) f2 = (f2 + g2 | 0) / (g2 << 1 | 1 | 0) | 0; else f2 = (f2 - g2 | 0) / (g2 << 1 | 1 | 0) | 0; w2 = b2 + 140 | 0; i3 = k[w2 >> 2] | 0; h2 = ((f2 | 0) < 0 ? i3 : 0) + f2 | 0; i3 = h2 - ((h2 | 0) < ((i3 + 1 | 0) / 2 | 0 | 0) ? 0 : i3) | 0; h2 = b2 + 4576 | 0; Ge(b2, h2, i3); t2 = m[e2 + 2 >> 1] | 0; u2 = t2 - (m[d2 + 2 >> 1] | 0) >> 31 | 1; f2 = ia(u2, (m[c2 + 2 >> 1] | 0) - t2 | 0) | 0; g2 = k[l2 >> 2] | 0; if ((f2 | 0) > 0) f2 = (f2 + g2 | 0) / (g2 << 1 | 1 | 0) | 0; else f2 = (f2 - g2 | 0) / (g2 << 1 | 1 | 0) | 0; q2 = k[w2 >> 2] | 0; v2 = ((f2 | 0) < 0 ? q2 : 0) + f2 | 0; q2 = v2 - ((v2 | 0) < ((q2 + 1 | 0) / 2 | 0 | 0) ? 0 : q2) | 0; Ge(b2, h2, q2); v2 = m[e2 + 4 >> 1] | 0; s2 = v2 - (m[d2 + 4 >> 1] | 0) >> 31 | 1; f2 = ia(s2, (m[c2 + 4 >> 1] | 0) - v2 | 0) | 0; g2 = k[l2 >> 2] | 0; if ((f2 | 0) > 0) f2 = (f2 + g2 | 0) / (g2 << 1 | 1 | 0) | 0; else f2 = (f2 - g2 | 0) / (g2 << 1 | 1 | 0) | 0; n2 = k[w2 >> 2] | 0; f2 = ((f2 | 0) < 0 ? n2 : 0) + f2 | 0; n2 = f2 - ((f2 | 0) < ((n2 + 1 | 0) / 2 | 0 | 0) ? 0 : n2) | 0; Ge(b2, h2, n2); h2 = k[l2 >> 2] | 0; l2 = h2 << 1 | 1; f2 = (ia(ia(l2, i3) | 0, p2) | 0) + o2 | 0; c2 = 0 - h2 | 0; if ((f2 | 0) >= (c2 | 0)) { g2 = k[r2 >> 2] | 0; if ((g2 + h2 | 0) < (f2 | 0)) { f2 = f2 - (ia(k[w2 >> 2] | 0, l2) | 0) | 0; d2 = g2; } else d2 = g2; } else { f2 = (ia(k[w2 >> 2] | 0, l2) | 0) + f2 | 0; d2 = k[r2 >> 2] | 0; } if ((f2 & d2 | 0) != (f2 | 0)) f2 = d2 & ~(f2 >> 31); e2 = f2 & 65535; f2 = (ia(ia(l2, q2) | 0, u2) | 0) + t2 | 0; if ((f2 | 0) >= (c2 | 0)) { if ((d2 + h2 | 0) < (f2 | 0)) f2 = f2 - (ia(k[w2 >> 2] | 0, l2) | 0) | 0; } else f2 = (ia(k[w2 >> 2] | 0, l2) | 0) + f2 | 0; if ((f2 & d2 | 0) != (f2 | 0)) f2 = d2 & ~(f2 >> 31); g2 = f2 & 65535; f2 = (ia(ia(l2, n2) | 0, s2) | 0) + v2 | 0; if ((f2 | 0) >= (c2 | 0)) { if ((d2 + h2 | 0) < (f2 | 0)) f2 = f2 - (ia(k[w2 >> 2] | 0, l2) | 0) | 0; } else f2 = (ia(k[w2 >> 2] | 0, l2) | 0) + f2 | 0; if ((f2 & d2 | 0) == (f2 | 0)) { w2 = f2; w2 = w2 & 65535; j[a2 >> 1] = e2; v2 = a2 + 2 | 0; j[v2 >> 1] = g2; a2 = a2 + 4 | 0; j[a2 >> 1] = w2; return; } w2 = d2 & ~(f2 >> 31); w2 = w2 & 65535; j[a2 >> 1] = e2; v2 = a2 + 2 | 0; j[v2 >> 1] = g2; a2 = a2 + 4 | 0; j[a2 >> 1] = w2; return; } function Ge(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; n2 = b2 + 9 | 0; g2 = l[n2 >> 0] | 0; m2 = b2 + 4 | 0; j2 = k[m2 >> 2] | 0; e2 = (ia(g2 >>> 1, j2) | 0) + (k[b2 >> 2] | 0) | 0; if ((g2 | 0) < (e2 | 0)) { f2 = g2; d2 = 0; do { f2 = f2 << 1; d2 = d2 + 1 | 0; } while ((f2 | 0) < (e2 | 0)); e2 = d2; } else e2 = 0; if ((c2 | 0) > 0 & (e2 | 0) == 0 ? l[b2 + 10 >> 0] << 1 >>> 0 < g2 >>> 0 : 0) d2 = 1; else h2 = 5; do if ((h2 | 0) == 5) { d2 = (c2 | 0) < 0; if (d2 ? l[b2 + 10 >> 0] << 1 >>> 0 >= g2 >>> 0 : 0) { d2 = 1; break; } d2 = d2 & (e2 | 0) != 0; } while (0); d2 = (((c2 | 0) > -1 ? c2 : 0 - c2 | 0) << 1) - j2 + (d2 << 31 >> 31) | 0; Ee(a2, e2, d2, (k[a2 + 156 >> 2] | 0) + -1 - (k[36476 + (k[a2 + 4600 >> 2] << 2) >> 2] | 0) | 0); if ((c2 | 0) < 0) { a2 = b2 + 10 | 0; i2[a2 >> 0] = (l[a2 >> 0] | 0) + 1; } d2 = (d2 + 1 - (k[m2 >> 2] | 0) >> 1) + (k[b2 >> 2] | 0) | 0; k[b2 >> 2] = d2; e2 = i2[n2 >> 0] | 0; if (e2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { b2 = e2; b2 = b2 & 255; b2 = b2 + 1 | 0; b2 = b2 & 255; i2[n2 >> 0] = b2; return; } k[b2 >> 2] = d2 >> 1; a2 = (e2 & 255) >>> 1; i2[n2 >> 0] = a2; b2 = b2 + 10 | 0; i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; b2 = a2; b2 = b2 & 255; b2 = b2 + 1 | 0; b2 = b2 & 255; i2[n2 >> 0] = b2; return; } function He(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; o2 = r; r = r + 32 | 0; d2 = o2; n2 = a2 + 144 | 0; a: do if (!(k[n2 >> 2] | 0)) { c2 = k[a2 + 136 >> 2] | 0; b2 = a2 + 152 | 0; if ((((c2 | 0) == ((1 << k[b2 >> 2]) + -1 | 0) ? (Oi(d2, c2, 0), (k[d2 + 4 >> 2] | 0) == (k[a2 + 184 >> 2] | 0)) : 0) ? (k[d2 + 8 >> 2] | 0) == (k[a2 + 188 >> 2] | 0) : 0) ? (k[d2 + 12 >> 2] | 0) == (k[a2 + 192 >> 2] | 0) : 0) switch (k[b2 >> 2] | 0) { case 8: { n2 = k[8900] | 0; k[a2 + 4612 >> 2] = n2 + (((k[8901] | 0) - n2 | 0) >>> 1); r = o2; return; } case 10: { n2 = k[8903] | 0; k[a2 + 4612 >> 2] = n2 + (((k[8904] | 0) - n2 | 0) >>> 1); r = o2; return; } case 12: { n2 = k[8906] | 0; k[a2 + 4612 >> 2] = n2 + (((k[8907] | 0) - n2 | 0) >>> 1); r = o2; return; } case 16: { n2 = k[8909] | 0; k[a2 + 4612 >> 2] = n2 + (((k[8910] | 0) - n2 | 0) >>> 1); r = o2; return; } default: break a; } } else b2 = a2 + 152 | 0; while (0); m2 = 1 << k[b2 >> 2]; c2 = a2 + 4616 | 0; d2 = m2 << 1; e2 = a2 + 4620 | 0; f2 = k[e2 >> 2] | 0; b2 = k[c2 >> 2] | 0; g2 = f2 - b2 | 0; if (d2 >>> 0 <= g2 >>> 0) { if (d2 >>> 0 < g2 >>> 0 ? (h2 = b2 + d2 | 0, (f2 | 0) != (h2 | 0)) : 0) k[e2 >> 2] = h2; } else { se(c2, d2 - g2 | 0); b2 = k[c2 >> 2] | 0; } l2 = a2 + 4612 | 0; k[l2 >> 2] = b2 + m2; b2 = 0 - m2 | 0; if ((m2 | 0) <= (b2 | 0)) { r = o2; return; } h2 = a2 + 192 | 0; j2 = a2 + 188 | 0; g2 = a2 + 184 | 0; f2 = b2; do { b2 = k[h2 >> 2] | 0; if ((f2 | 0) > (0 - b2 | 0)) { c2 = k[j2 >> 2] | 0; if ((f2 | 0) > (0 - c2 | 0)) { d2 = k[g2 >> 2] | 0; if ((f2 | 0) > (0 - d2 | 0)) { e2 = k[n2 >> 2] | 0; if ((f2 | 0) >= (0 - e2 | 0)) if ((e2 | 0) < (f2 | 0)) if ((d2 | 0) <= (f2 | 0)) if ((c2 | 0) > (f2 | 0)) b2 = 2; else b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; else b2 = 1; else b2 = 0; else b2 = -1; } else b2 = -2; } else b2 = -3; } else b2 = -4; i2[(k[l2 >> 2] | 0) + f2 >> 0] = b2; f2 = f2 + 1 | 0; } while ((f2 | 0) != (m2 | 0)); r = o2; return; } function Ie(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 36024; b2 = k[a2 + 4616 >> 2] | 0; if (b2) { c2 = a2 + 4620 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36612; b2 = k[a2 + 120 >> 2] | 0; if (b2) { c2 = a2 + 124 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = a2 + 92 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); a2 = a2 + 4 | 0; b2 = k[a2 >> 2] | 0; k[a2 >> 2] = 0; if (!b2) return; Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); return; } function Je(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 36024; b2 = k[a2 + 4616 >> 2] | 0; if (b2) { c2 = a2 + 4620 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36612; b2 = k[a2 + 120 >> 2] | 0; if (b2) { c2 = a2 + 124 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = a2 + 92 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); c2 = a2 + 4 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (!b2) { mj(a2); return; } Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); mj(a2); return; } function Ke(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0; g2 = r; r = r + 32 | 0; l2 = g2; Oi(l2, k[a2 + 136 >> 2] | 0, k[a2 + 144 >> 2] | 0); h2 = k[b2 + 4 >> 2] | 0; f2 = k[b2 + 8 >> 2] | 0; f2 = (f2 | 0) == 0 ? k[l2 + 8 >> 2] | 0 : f2; e2 = k[b2 + 12 >> 2] | 0; e2 = (e2 | 0) == 0 ? k[l2 + 12 >> 2] | 0 : e2; c2 = k[b2 + 16 >> 2] | 0; d2 = k[l2 + 16 >> 2] | 0; k[a2 + 184 >> 2] = (h2 | 0) == 0 ? k[l2 + 4 >> 2] | 0 : h2; k[a2 + 188 >> 2] = f2; k[a2 + 192 >> 2] = e2; zf(a2); e2 = a2 + 140 | 0; b2 = (k[e2 >> 2] | 0) + 32 | 0; b2 = (b2 | 0) < 128 ? 2 : (b2 | 0) / 64 | 0; f2 = 0; do { k[a2 + 196 + (f2 * 12 | 0) >> 2] = b2; k[a2 + 196 + (f2 * 12 | 0) + 4 >> 2] = 0; j[a2 + 196 + (f2 * 12 | 0) + 8 >> 1] = 0; j[a2 + 196 + (f2 * 12 | 0) + 10 >> 1] = 1; f2 = f2 + 1 | 0; } while ((f2 | 0) != 365); h2 = (k[e2 >> 2] | 0) + 32 | 0; h2 = (h2 | 0) < 128 ? 2 : (h2 | 0) / 64 | 0; l2 = ((c2 | 0) == 0 ? d2 : c2) & 255; k[a2 + 4576 >> 2] = h2; k[a2 + 4580 >> 2] = 0; i2[a2 + 4584 >> 0] = l2; i2[a2 + 4585 >> 0] = 1; i2[a2 + 4586 >> 0] = 0; k[a2 + 4588 >> 2] = h2; k[a2 + 4592 >> 2] = 1; i2[a2 + 4596 >> 0] = l2; i2[a2 + 4597 >> 0] = 1; i2[a2 + 4598 >> 0] = 0; k[a2 + 4600 >> 2] = 0; r = g2; return; } function Le(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; n2 = r; r = r + 16 | 0; l2 = n2; h2 = a2 + 92 | 0; g2 = k[b2 >> 2] | 0; k[b2 >> 2] = 0; b2 = k[h2 >> 2] | 0; k[h2 >> 2] = g2; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); k[l2 >> 2] = 0; k[l2 + 4 >> 2] = d2; h2 = c2 + 8 | 0; k[l2 + 8 >> 2] = k[h2 >> 2]; if (d2) { b2 = lj(4624) | 0; d2 = a2 + 8 | 0; e2 = b2 + 4 | 0; f2 = d2; g2 = e2 + 84 | 0; do { k[e2 >> 2] = k[f2 >> 2]; e2 = e2 + 4 | 0; f2 = f2 + 4 | 0; } while ((e2 | 0) < (g2 | 0)); e2 = b2 + 88 | 0; g2 = e2 + 40 | 0; do { k[e2 >> 2] = 0; e2 = e2 + 4 | 0; } while ((e2 | 0) < (g2 | 0)); k[b2 >> 2] = 35800; k[b2 + 128 >> 2] = k[a2 + 136 >> 2]; k[b2 + 132 >> 2] = k[a2 + 140 >> 2]; k[b2 + 136 >> 2] = k[a2 + 144 >> 2]; k[b2 + 140 >> 2] = k[a2 + 148 >> 2]; k[b2 + 144 >> 2] = k[a2 + 152 >> 2]; k[b2 + 148 >> 2] = k[a2 + 156 >> 2]; k[b2 + 152 >> 2] = k[a2 + 160 >> 2]; e2 = b2 + 156 | 0; k[e2 >> 2] = 0; k[e2 + 4 >> 2] = 0; k[e2 + 8 >> 2] = 0; k[e2 + 12 >> 2] = 0; k[b2 + 172 >> 2] = k[d2 >> 2]; k[b2 + 176 >> 2] = 0; k[b2 + 180 >> 2] = 0; k[b2 + 184 >> 2] = 0; e2 = b2 + 4568 | 0; d2 = b2 + 188 | 0; do { k[d2 >> 2] = 0; k[d2 + 4 >> 2] = 0; j[d2 + 8 >> 1] = 0; j[d2 + 10 >> 1] = 1; d2 = d2 + 12 | 0; } while ((d2 | 0) != (e2 | 0)); f2 = a2 + 4 | 0; k[e2 >> 2] = 0; k[e2 + 4 >> 2] = 0; j[e2 + 8 >> 1] = 0; i2[e2 + 10 >> 0] = 0; g2 = b2 + 4580 | 0; k[g2 >> 2] = 0; k[g2 + 4 >> 2] = 0; j[g2 + 8 >> 1] = 0; i2[g2 + 10 >> 0] = 0; g2 = b2 + 4592 | 0; k[g2 >> 2] = 0; k[g2 + 4 >> 2] = 0; k[g2 + 8 >> 2] = 0; k[g2 + 12 >> 2] = 0; k[g2 + 16 >> 2] = 0; k[g2 + 20 >> 2] = 0; k[g2 + 24 >> 2] = 0; i2[g2 + 28 >> 0] = 0; if (!(k[b2 + 28 >> 2] | 0)) k[b2 + 20 >> 2] = 1; d2 = k[f2 >> 2] | 0; k[f2 >> 2] = b2; if (d2) { Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); b2 = k[f2 >> 2] | 0; } ee(b2, l2); } l2 = a2 + 100 | 0; k[l2 >> 2] = 32; k[a2 + 96 >> 2] = 0; b2 = k[c2 >> 2] | 0; if (!b2) { k[a2 + 108 >> 2] = k[c2 + 4 >> 2]; k[a2 + 104 >> 2] = k[h2 >> 2]; sf(a2); m2 = a2 + 116 | 0; m2 = k[m2 >> 2] | 0; a2 = k[l2 >> 2] | 0; a2 = a2 + -32 | 0; a2 = (a2 | 0) / 8 | 0; a2 = m2 - a2 | 0; r = n2; return a2 | 0; } k[a2 + 132 >> 2] = b2; e2 = a2 + 120 | 0; h2 = a2 + 124 | 0; d2 = k[h2 >> 2] | 0; b2 = k[e2 >> 2] | 0; f2 = b2; g2 = d2 - f2 | 0; if (g2 >>> 0 >= 4e3) { if (g2 >>> 0 > 4e3 ? (m2 = b2 + 4e3 | 0, (d2 | 0) != (m2 | 0)) : 0) { k[h2 >> 2] = m2; d2 = m2; } } else { fe(e2, 4e3 - g2 | 0); b2 = k[e2 >> 2] | 0; f2 = b2; d2 = k[h2 >> 2] | 0; } k[a2 + 108 >> 2] = f2; k[a2 + 104 >> 2] = d2 - b2; sf(a2); m2 = a2 + 116 | 0; m2 = k[m2 >> 2] | 0; a2 = k[l2 >> 2] | 0; a2 = a2 + -32 | 0; a2 = (a2 | 0) / 8 | 0; a2 = m2 - a2 | 0; r = n2; return a2 | 0; } function Me(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; u2 = r; r = r + 352 | 0; v2 = u2 + 328 | 0; y2 = u2 + 192 | 0; c2 = u2 + 343 | 0; d2 = u2 + 342 | 0; e2 = u2 + 341 | 0; f2 = u2 + 340 | 0; o2 = u2 + 176 | 0; h2 = u2 + 168 | 0; j2 = u2 + 160 | 0; l2 = u2 + 152 | 0; t2 = u2; q2 = u2 + 136 | 0; if ((k[a2 + 32 >> 2] | 0) != 0 ? (k[a2 + 24 >> 2] | 0) != 1 : 0) { p2 = a2 + 8 | 0; s2 = a2 + 36 | 0; g2 = k[s2 >> 2] | 0; if (!g2) { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[c2 >> 0] | 0; Ja(44, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } a2 = k[a2 + 16 >> 2] | 0; if ((a2 | 0) == 8) switch (g2 | 0) { case 1: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[d2 >> 0] | 0; Ja(45, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[e2 >> 0] | 0; Ja(46, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[f2 >> 0] | 0; Ja(47, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = y2 + 56 | 0; e2 = y2 + 4 | 0; k[y2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, y2 + 56 | 0, e2 | 0); u2 = x; x = 0; if (u2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[y2 + 128 >> 2] = 0; k[y2 + 132 >> 2] = -1; k[y2 >> 2] = 36200; k[y2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); u2 = x; x = 0; do if (u2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = y2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[y2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); u2 = x; x = 0; if (u2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, y2 | 0, 49007, 21) | 0; v2 = x; x = 0; do if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, o2 | 0, e2 | 0); v2 = x; x = 0; if (!(v2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, o2 | 0); v2 = x; x = 0; if (v2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(o2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 34; while (0); if ((z2 | 0) == 34) a2 = Wa() | 0; k[y2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } if ((a2 | 0) <= 8) { a2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, a2 | 0, 8, 35648); z2 = x; x = 0; if (!(z2 & 1)) ub(a2 | 0, 824, 96); z2 = Wa() | 0; Ua(a2 | 0); fb(z2 | 0); } c2 = 16 - a2 | 0; switch (g2 | 0) { case 1: { a2 = lj(60) | 0; k[h2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[h2 >> 2]; k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(60) | 0; k[j2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[j2 >> 2]; k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(60) | 0; k[l2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[l2 >> 2]; k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = t2 + 56 | 0; e2 = t2 + 4 | 0; k[t2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, t2 + 56 | 0, e2 | 0); y2 = x; x = 0; if (y2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[t2 + 128 >> 2] = 0; k[t2 + 132 >> 2] = -1; k[t2 >> 2] = 36200; k[t2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); y2 = x; x = 0; do if (y2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = t2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[t2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); y2 = x; x = 0; if (y2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, t2 | 0, 49007, 21) | 0; y2 = x; x = 0; do if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, q2 | 0, e2 | 0); y2 = x; x = 0; if (!(y2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, q2 | 0); y2 = x; x = 0; if (y2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(q2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 64; while (0); if ((z2 | 0) == 64) a2 = Wa() | 0; k[t2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } } c2 = k[b2 + 4 >> 2] | 0; d2 = lj(16) | 0; a2 = k[a2 + 20 >> 2] | 0; if (!c2) { z2 = k[b2 >> 2] | 0; k[d2 >> 2] = 36132; k[d2 + 4 >> 2] = z2; k[d2 + 8 >> 2] = 3; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } else { k[d2 >> 2] = 36108; k[d2 + 4 >> 2] = c2; k[d2 + 8 >> 2] = 3; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } return 0; } function Ne(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; k[a2 >> 2] = 36712; k[a2 + 4 >> 2] = c2; m2 = a2 + 8 | 0; d2 = k[c2 >> 2] | 0; j2 = c2 + 16 | 0; g2 = k[j2 >> 2] | 0; f2 = ia(g2, d2) | 0; k[m2 >> 2] = 0; n2 = a2 + 12 | 0; k[n2 >> 2] = 0; k[a2 + 16 >> 2] = 0; do if (!f2) f2 = g2; else { if (!((f2 | 0) < 0 ? (x = 0, qa(178, m2 | 0), g2 = x, x = 0, g2 & 1) : 0)) l2 = 4; if ((l2 | 0) == 4 ? (x = 0, h2 = ta(67, f2 | 0) | 0, g2 = x, x = 0, !(g2 & 1)) : 0) { k[n2 >> 2] = h2; k[m2 >> 2] = h2; k[a2 + 16 >> 2] = h2 + f2; d2 = h2; do { i2[d2 >> 0] = 0; d2 = (k[n2 >> 2] | 0) + 1 | 0; k[n2 >> 2] = d2; f2 = f2 + -1 | 0; } while ((f2 | 0) != 0); f2 = k[j2 >> 2] | 0; d2 = k[c2 >> 2] | 0; break; } d2 = Wa() | 0; e2 = k[m2 >> 2] | 0; if (e2) { if ((k[n2 >> 2] | 0) != (e2 | 0)) k[n2 >> 2] = e2; mj(e2); } n2 = d2; fb(n2 | 0); } while (0); g2 = a2 + 20 | 0; d2 = ia(f2, d2) | 0; k[g2 >> 2] = 0; f2 = a2 + 24 | 0; k[f2 >> 2] = 0; k[a2 + 28 >> 2] = 0; if (!d2) { n2 = a2 + 36 | 0; k[n2 >> 2] = k[b2 >> 2]; k[n2 + 4 >> 2] = k[b2 + 4 >> 2]; k[n2 + 8 >> 2] = k[b2 + 8 >> 2]; return; } if (!((d2 | 0) < 0 ? (x = 0, qa(178, g2 | 0), c2 = x, x = 0, c2 & 1) : 0)) l2 = 15; if ((l2 | 0) == 15 ? (x = 0, e2 = ta(67, d2 | 0) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) { k[f2 >> 2] = e2; k[g2 >> 2] = e2; k[a2 + 28 >> 2] = e2 + d2; do { i2[e2 >> 0] = 0; e2 = (k[f2 >> 2] | 0) + 1 | 0; k[f2 >> 2] = e2; d2 = d2 + -1 | 0; } while ((d2 | 0) != 0); n2 = a2 + 36 | 0; k[n2 >> 2] = k[b2 >> 2]; k[n2 + 4 >> 2] = k[b2 + 4 >> 2]; k[n2 + 8 >> 2] = k[b2 + 8 >> 2]; return; } d2 = Wa() | 0; e2 = k[g2 >> 2] | 0; if (e2) { if ((k[f2 >> 2] | 0) != (e2 | 0)) k[f2 >> 2] = e2; mj(e2); } e2 = k[m2 >> 2] | 0; if (!e2) { n2 = d2; fb(n2 | 0); } if ((k[n2 >> 2] | 0) != (e2 | 0)) k[n2 >> 2] = e2; mj(e2); n2 = d2; fb(n2 | 0); } function Oe(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; k[a2 >> 2] = 36688; k[a2 + 4 >> 2] = c2; m2 = a2 + 8 | 0; d2 = k[c2 >> 2] | 0; j2 = c2 + 16 | 0; g2 = k[j2 >> 2] | 0; f2 = ia(g2, d2) | 0; k[m2 >> 2] = 0; n2 = a2 + 12 | 0; k[n2 >> 2] = 0; k[a2 + 16 >> 2] = 0; do if (!f2) f2 = g2; else { if (!((f2 | 0) < 0 ? (x = 0, qa(178, m2 | 0), g2 = x, x = 0, g2 & 1) : 0)) l2 = 4; if ((l2 | 0) == 4 ? (x = 0, h2 = ta(67, f2 | 0) | 0, g2 = x, x = 0, !(g2 & 1)) : 0) { k[n2 >> 2] = h2; k[m2 >> 2] = h2; k[a2 + 16 >> 2] = h2 + f2; d2 = h2; do { i2[d2 >> 0] = 0; d2 = (k[n2 >> 2] | 0) + 1 | 0; k[n2 >> 2] = d2; f2 = f2 + -1 | 0; } while ((f2 | 0) != 0); f2 = k[j2 >> 2] | 0; d2 = k[c2 >> 2] | 0; break; } d2 = Wa() | 0; e2 = k[m2 >> 2] | 0; if (e2) { if ((k[n2 >> 2] | 0) != (e2 | 0)) k[n2 >> 2] = e2; mj(e2); } n2 = d2; fb(n2 | 0); } while (0); g2 = a2 + 20 | 0; d2 = ia(f2, d2) | 0; k[g2 >> 2] = 0; f2 = a2 + 24 | 0; k[f2 >> 2] = 0; k[a2 + 28 >> 2] = 0; if (!d2) { n2 = a2 + 36 | 0; k[n2 >> 2] = k[b2 >> 2]; k[n2 + 4 >> 2] = k[b2 + 4 >> 2]; k[n2 + 8 >> 2] = k[b2 + 8 >> 2]; return; } if (!((d2 | 0) < 0 ? (x = 0, qa(178, g2 | 0), c2 = x, x = 0, c2 & 1) : 0)) l2 = 15; if ((l2 | 0) == 15 ? (x = 0, e2 = ta(67, d2 | 0) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) { k[f2 >> 2] = e2; k[g2 >> 2] = e2; k[a2 + 28 >> 2] = e2 + d2; do { i2[e2 >> 0] = 0; e2 = (k[f2 >> 2] | 0) + 1 | 0; k[f2 >> 2] = e2; d2 = d2 + -1 | 0; } while ((d2 | 0) != 0); n2 = a2 + 36 | 0; k[n2 >> 2] = k[b2 >> 2]; k[n2 + 4 >> 2] = k[b2 + 4 >> 2]; k[n2 + 8 >> 2] = k[b2 + 8 >> 2]; return; } d2 = Wa() | 0; e2 = k[g2 >> 2] | 0; if (e2) { if ((k[f2 >> 2] | 0) != (e2 | 0)) k[f2 >> 2] = e2; mj(e2); } e2 = k[m2 >> 2] | 0; if (!e2) { n2 = d2; fb(n2 | 0); } if ((k[n2 >> 2] | 0) != (e2 | 0)) k[n2 >> 2] = e2; mj(e2); n2 = d2; fb(n2 | 0); } function Pe(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; k[a2 >> 2] = 36664; k[a2 + 4 >> 2] = c2; m2 = a2 + 8 | 0; d2 = k[c2 >> 2] | 0; j2 = c2 + 16 | 0; g2 = k[j2 >> 2] | 0; f2 = ia(g2, d2) | 0; k[m2 >> 2] = 0; n2 = a2 + 12 | 0; k[n2 >> 2] = 0; k[a2 + 16 >> 2] = 0; do if (!f2) f2 = g2; else { if (!((f2 | 0) < 0 ? (x = 0, qa(178, m2 | 0), g2 = x, x = 0, g2 & 1) : 0)) l2 = 4; if ((l2 | 0) == 4 ? (x = 0, h2 = ta(67, f2 | 0) | 0, g2 = x, x = 0, !(g2 & 1)) : 0) { k[n2 >> 2] = h2; k[m2 >> 2] = h2; k[a2 + 16 >> 2] = h2 + f2; d2 = h2; do { i2[d2 >> 0] = 0; d2 = (k[n2 >> 2] | 0) + 1 | 0; k[n2 >> 2] = d2; f2 = f2 + -1 | 0; } while ((f2 | 0) != 0); f2 = k[j2 >> 2] | 0; d2 = k[c2 >> 2] | 0; break; } d2 = Wa() | 0; e2 = k[m2 >> 2] | 0; if (e2) { if ((k[n2 >> 2] | 0) != (e2 | 0)) k[n2 >> 2] = e2; mj(e2); } n2 = d2; fb(n2 | 0); } while (0); g2 = a2 + 20 | 0; d2 = ia(f2, d2) | 0; k[g2 >> 2] = 0; f2 = a2 + 24 | 0; k[f2 >> 2] = 0; k[a2 + 28 >> 2] = 0; if (!d2) { n2 = a2 + 36 | 0; k[n2 >> 2] = k[b2 >> 2]; k[n2 + 4 >> 2] = k[b2 + 4 >> 2]; k[n2 + 8 >> 2] = k[b2 + 8 >> 2]; return; } if (!((d2 | 0) < 0 ? (x = 0, qa(178, g2 | 0), c2 = x, x = 0, c2 & 1) : 0)) l2 = 15; if ((l2 | 0) == 15 ? (x = 0, e2 = ta(67, d2 | 0) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) { k[f2 >> 2] = e2; k[g2 >> 2] = e2; k[a2 + 28 >> 2] = e2 + d2; do { i2[e2 >> 0] = 0; e2 = (k[f2 >> 2] | 0) + 1 | 0; k[f2 >> 2] = e2; d2 = d2 + -1 | 0; } while ((d2 | 0) != 0); n2 = a2 + 36 | 0; k[n2 >> 2] = k[b2 >> 2]; k[n2 + 4 >> 2] = k[b2 + 4 >> 2]; k[n2 + 8 >> 2] = k[b2 + 8 >> 2]; return; } d2 = Wa() | 0; e2 = k[g2 >> 2] | 0; if (e2) { if ((k[f2 >> 2] | 0) != (e2 | 0)) k[f2 >> 2] = e2; mj(e2); } e2 = k[m2 >> 2] | 0; if (!e2) { n2 = d2; fb(n2 | 0); } if ((k[n2 >> 2] | 0) != (e2 | 0)) k[n2 >> 2] = e2; mj(e2); n2 = d2; fb(n2 | 0); } function Qe(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; k[a2 >> 2] = 36640; k[a2 + 4 >> 2] = c2; m2 = a2 + 8 | 0; d2 = k[c2 >> 2] | 0; j2 = c2 + 16 | 0; g2 = k[j2 >> 2] | 0; f2 = ia(g2, d2) | 0; k[m2 >> 2] = 0; n2 = a2 + 12 | 0; k[n2 >> 2] = 0; k[a2 + 16 >> 2] = 0; do if (!f2) f2 = g2; else { if (!((f2 | 0) < 0 ? (x = 0, qa(178, m2 | 0), g2 = x, x = 0, g2 & 1) : 0)) l2 = 4; if ((l2 | 0) == 4 ? (x = 0, h2 = ta(67, f2 | 0) | 0, g2 = x, x = 0, !(g2 & 1)) : 0) { k[n2 >> 2] = h2; k[m2 >> 2] = h2; k[a2 + 16 >> 2] = h2 + f2; d2 = h2; do { i2[d2 >> 0] = 0; d2 = (k[n2 >> 2] | 0) + 1 | 0; k[n2 >> 2] = d2; f2 = f2 + -1 | 0; } while ((f2 | 0) != 0); f2 = k[j2 >> 2] | 0; d2 = k[c2 >> 2] | 0; break; } d2 = Wa() | 0; e2 = k[m2 >> 2] | 0; if (e2) { if ((k[n2 >> 2] | 0) != (e2 | 0)) k[n2 >> 2] = e2; mj(e2); } n2 = d2; fb(n2 | 0); } while (0); g2 = a2 + 20 | 0; d2 = ia(f2, d2) | 0; k[g2 >> 2] = 0; f2 = a2 + 24 | 0; k[f2 >> 2] = 0; k[a2 + 28 >> 2] = 0; if (!d2) { n2 = a2 + 36 | 0; k[n2 >> 2] = k[b2 >> 2]; k[n2 + 4 >> 2] = k[b2 + 4 >> 2]; k[n2 + 8 >> 2] = k[b2 + 8 >> 2]; return; } if (!((d2 | 0) < 0 ? (x = 0, qa(178, g2 | 0), c2 = x, x = 0, c2 & 1) : 0)) l2 = 15; if ((l2 | 0) == 15 ? (x = 0, e2 = ta(67, d2 | 0) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) { k[f2 >> 2] = e2; k[g2 >> 2] = e2; k[a2 + 28 >> 2] = e2 + d2; do { i2[e2 >> 0] = 0; e2 = (k[f2 >> 2] | 0) + 1 | 0; k[f2 >> 2] = e2; d2 = d2 + -1 | 0; } while ((d2 | 0) != 0); n2 = a2 + 36 | 0; k[n2 >> 2] = k[b2 >> 2]; k[n2 + 4 >> 2] = k[b2 + 4 >> 2]; k[n2 + 8 >> 2] = k[b2 + 8 >> 2]; return; } d2 = Wa() | 0; e2 = k[g2 >> 2] | 0; if (e2) { if ((k[f2 >> 2] | 0) != (e2 | 0)) k[f2 >> 2] = e2; mj(e2); } e2 = k[m2 >> 2] | 0; if (!e2) { n2 = d2; fb(n2 | 0); } if ((k[n2 >> 2] | 0) != (e2 | 0)) k[n2 >> 2] = e2; mj(e2); n2 = d2; fb(n2 | 0); } function Re(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 36640; b2 = k[a2 + 20 >> 2] | 0; if (b2) { c2 = a2 + 24 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = k[a2 + 8 >> 2] | 0; if (!c2) return; b2 = a2 + 12 | 0; if ((k[b2 >> 2] | 0) != (c2 | 0)) k[b2 >> 2] = c2; mj(c2); return; } function Se(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 36640; b2 = k[a2 + 20 >> 2] | 0; if (b2) { c2 = a2 + 24 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } b2 = k[a2 + 8 >> 2] | 0; if (!b2) { mj(a2); return; } c2 = a2 + 12 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); mj(a2); return; } function Te(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0; e2 = a2 + 36 | 0; if (!(k[e2 >> 2] | 0)) { e2 = a2 + 40 | 0; Xe(a2, b2, k[e2 >> 2] | 0, c2, d2); k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); return; } f2 = ia(k[(k[a2 + 4 >> 2] | 0) + 16 >> 2] | 0, c2) | 0; g2 = a2 + 20 | 0; Xe(a2, b2, k[g2 >> 2] | 0, c2, d2); a2 = k[e2 >> 2] | 0; if ((Qb[k[(k[a2 >> 2] | 0) + 48 >> 2] & 63](a2, k[g2 >> 2] | 0, f2) | 0) == (f2 | 0)) return; e2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, e2 | 0, 3, 35648); g2 = x; x = 0; if (g2 & 1) { g2 = Wa() | 0; Ua(e2 | 0); fb(g2 | 0); } else ub(e2 | 0, 824, 96); } function Ue(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0; e2 = k[a2 + 36 >> 2] | 0; if (!e2) { e2 = a2 + 40 | 0; Ve(a2, k[e2 >> 2] | 0, b2, c2, d2); k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); return; } else { We(a2, e2, b2, c2, d2); return; } } function Ve(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; h2 = a2 + 4 | 0; f2 = k[h2 >> 2] | 0; if (!(i2[f2 + 32 >> 0] | 0)) h2 = b2; else { g2 = a2 + 8 | 0; vw(k[g2 >> 2] | 0, b2 | 0, d2 * 3 | 0) | 0; f2 = k[h2 >> 2] | 0; b2 = k[f2 + 16 >> 2] | 0; if ((d2 | 0) > 0) { f2 = k[g2 >> 2] | 0; a2 = 0; while (1) { j2 = f2 + 2 | 0; m2 = i2[f2 >> 0] | 0; i2[f2 >> 0] = i2[j2 >> 0] | 0; i2[j2 >> 0] = m2; a2 = a2 + 1 | 0; if ((a2 | 0) == (d2 | 0)) break; else f2 = f2 + b2 | 0; } f2 = k[h2 >> 2] | 0; } h2 = k[g2 >> 2] | 0; } switch (k[f2 + 16 >> 2] | 0) { case 3: { if ((k[f2 + 24 >> 2] | 0) == 2) { if ((d2 | 0) > 0) f2 = 0; else return; do { g2 = l[h2 + (f2 * 3 | 0) + 1 >> 0] | 0; e2 = 128 - g2 + (l[h2 + (f2 * 3 | 0) + 2 >> 0] | 0) | 0; j2 = (l[h2 + (f2 * 3 | 0) >> 0] | 0) - g2 + 128 | 0; m2 = c2 + (f2 * 3 | 0) | 0; i2[m2 >> 0] = g2 + 192 + (((e2 & 255) + (j2 & 255) | 0) >>> 2); i2[m2 + 1 >> 0] = e2; i2[m2 + 2 >> 0] = j2; f2 = f2 + 1 | 0; } while ((f2 | 0) != (d2 | 0)); return; } f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; if ((f2 | 0) <= 0) return; a2 = e2 << 1; b2 = 0; do { d2 = l[h2 + (b2 * 3 | 0) + 1 >> 0] | 0; j2 = 128 - d2 + (l[h2 + (b2 * 3 | 0) + 2 >> 0] | 0) | 0; m2 = (l[h2 + (b2 * 3 | 0) >> 0] | 0) - d2 + 128 | 0; i2[c2 + b2 >> 0] = d2 + 192 + (((j2 & 255) + (m2 & 255) | 0) >>> 2); i2[c2 + (b2 + e2) >> 0] = j2; i2[c2 + (b2 + a2) >> 0] = m2; b2 = b2 + 1 | 0; } while ((b2 | 0) != (f2 | 0)); return; } case 4: { if ((k[f2 + 24 >> 2] | 0) != 1) return; f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; if ((f2 | 0) <= 0) return; a2 = e2 << 1; b2 = e2 * 3 | 0; g2 = 0; do { m2 = i2[h2 + (g2 << 2) + 3 >> 0] | 0; n2 = l[h2 + (g2 << 2) + 1 >> 0] | 0; d2 = 128 - n2 + (l[h2 + (g2 << 2) + 2 >> 0] | 0) | 0; j2 = (l[h2 + (g2 << 2) >> 0] | 0) - n2 + 128 | 0; i2[c2 + g2 >> 0] = n2 + 192 + (((d2 & 255) + (j2 & 255) | 0) >>> 2); i2[c2 + (g2 + e2) >> 0] = d2; i2[c2 + (g2 + a2) >> 0] = j2; i2[c2 + (g2 + b2) >> 0] = m2; g2 = g2 + 1 | 0; } while ((g2 | 0) != (f2 | 0)); return; } default: return; } } function We(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; m2 = r; r = r + 176 | 0; n2 = m2 + 152 | 0; p2 = m2 + 16 | 0; o2 = m2; g2 = ia(k[(k[a2 + 4 >> 2] | 0) + 16 >> 2] | 0, d2) | 0; j2 = a2 + 20 | 0; f2 = k[j2 >> 2] | 0; if (!g2) { p2 = f2; Ve(a2, p2, c2, d2, e2); r = m2; return; } while (1) { h2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, f2, g2) | 0; if (!h2) break; f2 = k[j2 >> 2] | 0; if ((g2 | 0) == (h2 | 0)) { l2 = 26; break; } else g2 = g2 - h2 | 0; } if ((l2 | 0) == 26) { Ve(a2, f2, c2, d2, e2); r = m2; return; } c2 = p2 + 56 | 0; j2 = p2 + 4 | 0; k[p2 >> 2] = 36160; k[c2 >> 2] = 36180; x = 0; ra(62, p2 + 56 | 0, j2 | 0); m2 = x; x = 0; if (m2 & 1) { p2 = Wa() | 0; qn(c2); fb(p2 | 0); } k[p2 + 128 >> 2] = 0; k[p2 + 132 >> 2] = -1; k[p2 >> 2] = 36200; k[p2 + 56 >> 2] = 36220; x = 0; qa(180, j2 | 0); m2 = x; x = 0; do if (m2 & 1) f2 = Wa() | 0; else { k[j2 >> 2] = 36236; b2 = p2 + 36 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[p2 + 52 >> 2] = 16; k[n2 >> 2] = 0; k[n2 + 4 >> 2] = 0; k[n2 + 8 >> 2] = 0; x = 0; ra(63, j2 | 0, n2 | 0); m2 = x; x = 0; if (m2 & 1) { f2 = Wa() | 0; Sm(n2); Sm(b2); xn(j2); break; } Sm(n2); x = 0; f2 = va(28, p2 | 0, 49029, 57) | 0; n2 = x; x = 0; if (!(n2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { h2 = Va(16) | 0; x = 0; ra(64, o2 | 0, j2 | 0); n2 = x; x = 0; if (!(n2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, h2 | 0, 3, 35648, o2 | 0); n2 = x; x = 0; if (n2 & 1) g2 = 1; else { x = 0; Fa(6, h2 | 0, 824, 96); x = 0; g2 = 0; } f2 = Wa() | 0; Sm(o2); if (!g2) { o2 = f2; k[p2 >> 2] = 36200; k[c2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(c2); fb(o2 | 0); } } else f2 = Wa() | 0; Ua(h2 | 0); o2 = f2; k[p2 >> 2] = 36200; k[c2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(c2); fb(o2 | 0); } o2 = Wa() | 0; k[p2 >> 2] = 36200; k[c2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(c2); fb(o2 | 0); } while (0); p2 = f2; qn(c2); fb(p2 | 0); } function Xe(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; j2 = a2 + 4 | 0; a2 = k[j2 >> 2] | 0; a: do switch (k[a2 + 16 >> 2] | 0) { case 3: { if ((k[a2 + 24 >> 2] | 0) == 2) { if ((d2 | 0) > 0) a2 = 0; else break a; while (1) { g2 = l[b2 + (a2 * 3 | 0) + 1 >> 0] | 0; f2 = l[b2 + (a2 * 3 | 0) + 2 >> 0] | 0; h2 = (l[b2 + (a2 * 3 | 0) >> 0] | 0) - ((f2 + g2 | 0) >>> 2) + 64 | 0; e2 = c2 + (a2 * 3 | 0) | 0; i2[e2 >> 0] = f2 + 128 + h2; i2[e2 + 1 >> 0] = h2; i2[e2 + 2 >> 0] = g2 + 128 + h2; a2 = a2 + 1 | 0; if ((a2 | 0) == (d2 | 0)) break a; } } a2 = (d2 | 0) < (e2 | 0) ? d2 : e2; if ((a2 | 0) > 0) { f2 = e2 << 1; g2 = 0; do { n2 = l[b2 + (g2 + e2) >> 0] | 0; o2 = l[b2 + (g2 + f2) >> 0] | 0; m2 = (l[b2 + g2 >> 0] | 0) - ((o2 + n2 | 0) >>> 2) + 64 | 0; h2 = c2 + (g2 * 3 | 0) | 0; i2[h2 >> 0] = o2 + 128 + m2; i2[h2 + 1 >> 0] = m2; i2[h2 + 2 >> 0] = n2 + 128 + m2; g2 = g2 + 1 | 0; } while ((g2 | 0) != (a2 | 0)); } break; } case 4: { if ((k[a2 + 24 >> 2] | 0) == 1 ? (h2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (h2 | 0) > 0) : 0) { a2 = e2 << 1; f2 = e2 * 3 | 0; g2 = 0; do { m2 = l[b2 + (g2 + e2) >> 0] | 0; p2 = l[b2 + (g2 + a2) >> 0] | 0; n2 = (l[b2 + g2 >> 0] | 0) - ((p2 + m2 | 0) >>> 2) + 64 | 0; o2 = c2 + (g2 << 2) | 0; n2 = n2 << 8 & 65280 | l[b2 + (g2 + f2) >> 0] << 24 | p2 + 128 + n2 & 255 | m2 + 128 + n2 << 16 & 16711680; i2[o2 >> 0] = n2; i2[o2 + 1 >> 0] = n2 >> 8; i2[o2 + 2 >> 0] = n2 >> 16; i2[o2 + 3 >> 0] = n2 >> 24; g2 = g2 + 1 | 0; } while ((g2 | 0) != (h2 | 0)); } break; } default: { } } while (0); a2 = k[j2 >> 2] | 0; if (!(i2[a2 + 32 >> 0] | 0)) return; g2 = k[a2 + 16 >> 2] | 0; if ((d2 | 0) > 0) { a2 = c2; f2 = 0; } else return; while (1) { p2 = a2 + 2 | 0; o2 = i2[a2 >> 0] | 0; i2[a2 >> 0] = i2[p2 >> 0] | 0; i2[p2 >> 0] = o2; f2 = f2 + 1 | 0; if ((f2 | 0) == (d2 | 0)) break; else a2 = a2 + g2 | 0; } return; } function Ye(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 36664; b2 = k[a2 + 20 >> 2] | 0; if (b2) { c2 = a2 + 24 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = k[a2 + 8 >> 2] | 0; if (!c2) return; b2 = a2 + 12 | 0; if ((k[b2 >> 2] | 0) != (c2 | 0)) k[b2 >> 2] = c2; mj(c2); return; } function Ze(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 36664; b2 = k[a2 + 20 >> 2] | 0; if (b2) { c2 = a2 + 24 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } b2 = k[a2 + 8 >> 2] | 0; if (!b2) { mj(a2); return; } c2 = a2 + 12 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); mj(a2); return; } function _e(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0; e2 = a2 + 36 | 0; if (!(k[e2 >> 2] | 0)) { e2 = a2 + 40 | 0; cf(a2, b2, k[e2 >> 2] | 0, c2, d2); k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); return; } f2 = ia(k[(k[a2 + 4 >> 2] | 0) + 16 >> 2] | 0, c2) | 0; g2 = a2 + 20 | 0; cf(a2, b2, k[g2 >> 2] | 0, c2, d2); a2 = k[e2 >> 2] | 0; if ((Qb[k[(k[a2 >> 2] | 0) + 48 >> 2] & 63](a2, k[g2 >> 2] | 0, f2) | 0) == (f2 | 0)) return; e2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, e2 | 0, 3, 35648); g2 = x; x = 0; if (g2 & 1) { g2 = Wa() | 0; Ua(e2 | 0); fb(g2 | 0); } else ub(e2 | 0, 824, 96); } function $e(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0; e2 = k[a2 + 36 >> 2] | 0; if (!e2) { e2 = a2 + 40 | 0; af(a2, k[e2 >> 2] | 0, b2, c2, d2); k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); return; } else { bf(a2, e2, b2, c2, d2); return; } } function af(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0; h2 = a2 + 4 | 0; f2 = k[h2 >> 2] | 0; if (!(i2[f2 + 32 >> 0] | 0)) h2 = b2; else { g2 = a2 + 8 | 0; vw(k[g2 >> 2] | 0, b2 | 0, d2 * 3 | 0) | 0; f2 = k[h2 >> 2] | 0; b2 = k[f2 + 16 >> 2] | 0; if ((d2 | 0) > 0) { f2 = k[g2 >> 2] | 0; a2 = 0; while (1) { j2 = f2 + 2 | 0; m2 = i2[f2 >> 0] | 0; i2[f2 >> 0] = i2[j2 >> 0] | 0; i2[j2 >> 0] = m2; a2 = a2 + 1 | 0; if ((a2 | 0) == (d2 | 0)) break; else f2 = f2 + b2 | 0; } f2 = k[h2 >> 2] | 0; } h2 = k[g2 >> 2] | 0; } switch (k[f2 + 16 >> 2] | 0) { case 3: { if ((k[f2 + 24 >> 2] | 0) == 2) { if ((d2 | 0) > 0) f2 = 0; else return; do { b2 = l[h2 + (f2 * 3 | 0) >> 0] | 0; e2 = i2[h2 + (f2 * 3 | 0) + 1 >> 0] | 0; g2 = e2 & 255; j2 = (l[h2 + (f2 * 3 | 0) + 2 >> 0] | 0) + 128 - ((g2 + b2 | 0) >>> 1) & 255; m2 = c2 + (f2 * 3 | 0) | 0; i2[m2 >> 0] = b2 + 128 - g2; i2[m2 + 1 >> 0] = e2; i2[m2 + 2 >> 0] = j2; f2 = f2 + 1 | 0; } while ((f2 | 0) != (d2 | 0)); return; } f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; if ((f2 | 0) <= 0) return; a2 = e2 << 1; b2 = 0; do { j2 = i2[h2 + (b2 * 3 | 0) + 1 >> 0] | 0; g2 = l[h2 + (b2 * 3 | 0) >> 0] | 0; d2 = j2 & 255; m2 = (l[h2 + (b2 * 3 | 0) + 2 >> 0] | 0) + 128 - ((d2 + g2 | 0) >>> 1) & 255; i2[c2 + b2 >> 0] = g2 + 128 - d2; i2[c2 + (b2 + e2) >> 0] = j2; i2[c2 + (b2 + a2) >> 0] = m2; b2 = b2 + 1 | 0; } while ((b2 | 0) != (f2 | 0)); return; } case 4: { if ((k[f2 + 24 >> 2] | 0) != 1) return; f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; if ((f2 | 0) <= 0) return; a2 = e2 << 1; b2 = e2 * 3 | 0; g2 = 0; do { d2 = i2[h2 + (g2 << 2) + 1 >> 0] | 0; m2 = i2[h2 + (g2 << 2) + 3 >> 0] | 0; o2 = l[h2 + (g2 << 2) >> 0] | 0; n2 = d2 & 255; j2 = (l[h2 + (g2 << 2) + 2 >> 0] | 0) + 128 - ((n2 + o2 | 0) >>> 1) & 255; i2[c2 + g2 >> 0] = o2 + 128 - n2; i2[c2 + (g2 + e2) >> 0] = d2; i2[c2 + (g2 + a2) >> 0] = j2; i2[c2 + (g2 + b2) >> 0] = m2; g2 = g2 + 1 | 0; } while ((g2 | 0) != (f2 | 0)); return; } default: return; } } function bf(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; m2 = r; r = r + 176 | 0; n2 = m2 + 152 | 0; p2 = m2 + 16 | 0; o2 = m2; g2 = ia(k[(k[a2 + 4 >> 2] | 0) + 16 >> 2] | 0, d2) | 0; j2 = a2 + 20 | 0; f2 = k[j2 >> 2] | 0; if (!g2) { p2 = f2; af(a2, p2, c2, d2, e2); r = m2; return; } while (1) { h2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, f2, g2) | 0; if (!h2) break; f2 = k[j2 >> 2] | 0; if ((g2 | 0) == (h2 | 0)) { l2 = 26; break; } else g2 = g2 - h2 | 0; } if ((l2 | 0) == 26) { af(a2, f2, c2, d2, e2); r = m2; return; } c2 = p2 + 56 | 0; j2 = p2 + 4 | 0; k[p2 >> 2] = 36160; k[c2 >> 2] = 36180; x = 0; ra(62, p2 + 56 | 0, j2 | 0); m2 = x; x = 0; if (m2 & 1) { p2 = Wa() | 0; qn(c2); fb(p2 | 0); } k[p2 + 128 >> 2] = 0; k[p2 + 132 >> 2] = -1; k[p2 >> 2] = 36200; k[p2 + 56 >> 2] = 36220; x = 0; qa(180, j2 | 0); m2 = x; x = 0; do if (m2 & 1) f2 = Wa() | 0; else { k[j2 >> 2] = 36236; b2 = p2 + 36 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[p2 + 52 >> 2] = 16; k[n2 >> 2] = 0; k[n2 + 4 >> 2] = 0; k[n2 + 8 >> 2] = 0; x = 0; ra(63, j2 | 0, n2 | 0); m2 = x; x = 0; if (m2 & 1) { f2 = Wa() | 0; Sm(n2); Sm(b2); xn(j2); break; } Sm(n2); x = 0; f2 = va(28, p2 | 0, 49029, 57) | 0; n2 = x; x = 0; if (!(n2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { h2 = Va(16) | 0; x = 0; ra(64, o2 | 0, j2 | 0); n2 = x; x = 0; if (!(n2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, h2 | 0, 3, 35648, o2 | 0); n2 = x; x = 0; if (n2 & 1) g2 = 1; else { x = 0; Fa(6, h2 | 0, 824, 96); x = 0; g2 = 0; } f2 = Wa() | 0; Sm(o2); if (!g2) { o2 = f2; k[p2 >> 2] = 36200; k[c2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(c2); fb(o2 | 0); } } else f2 = Wa() | 0; Ua(h2 | 0); o2 = f2; k[p2 >> 2] = 36200; k[c2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(c2); fb(o2 | 0); } o2 = Wa() | 0; k[p2 >> 2] = 36200; k[c2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(c2); fb(o2 | 0); } while (0); p2 = f2; qn(c2); fb(p2 | 0); } function cf(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0; j2 = a2 + 4 | 0; a2 = k[j2 >> 2] | 0; a: do switch (k[a2 + 16 >> 2] | 0) { case 3: { if ((k[a2 + 24 >> 2] | 0) == 2) { if ((d2 | 0) > 0) a2 = 0; else break a; while (1) { g2 = i2[b2 + (a2 * 3 | 0) + 1 >> 0] | 0; h2 = g2 & 255; f2 = (l[b2 + (a2 * 3 | 0) >> 0] | 0) + 128 + h2 | 0; h2 = (l[b2 + (a2 * 3 | 0) + 2 >> 0] | 0) + 128 + (((f2 & 255) + h2 | 0) >>> 1) & 255; e2 = c2 + (a2 * 3 | 0) | 0; i2[e2 >> 0] = f2; i2[e2 + 1 >> 0] = g2; i2[e2 + 2 >> 0] = h2; a2 = a2 + 1 | 0; if ((a2 | 0) == (d2 | 0)) break a; } } a2 = (d2 | 0) < (e2 | 0) ? d2 : e2; if ((a2 | 0) > 0) { f2 = e2 << 1; g2 = 0; do { n2 = i2[b2 + (g2 + e2) >> 0] | 0; m2 = n2 & 255; o2 = (l[b2 + g2 >> 0] | 0) + 128 + m2 | 0; m2 = (l[b2 + (g2 + f2) >> 0] | 0) + 128 + (((o2 & 255) + m2 | 0) >>> 1) & 255; h2 = c2 + (g2 * 3 | 0) | 0; i2[h2 >> 0] = o2; i2[h2 + 1 >> 0] = n2; i2[h2 + 2 >> 0] = m2; g2 = g2 + 1 | 0; } while ((g2 | 0) != (a2 | 0)); } break; } case 4: { if ((k[a2 + 24 >> 2] | 0) == 1 ? (h2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (h2 | 0) > 0) : 0) { a2 = e2 << 1; f2 = e2 * 3 | 0; g2 = 0; do { n2 = l[b2 + (g2 + e2) >> 0] | 0; m2 = (l[b2 + g2 >> 0] | 0) + 128 + n2 & 255; o2 = c2 + (g2 << 2) | 0; n2 = m2 | n2 << 8 | l[b2 + (g2 + f2) >> 0] << 24 | (l[b2 + (g2 + a2) >> 0] | 0) + 128 + ((m2 + n2 | 0) >>> 1) << 16 & 16711680; i2[o2 >> 0] = n2; i2[o2 + 1 >> 0] = n2 >> 8; i2[o2 + 2 >> 0] = n2 >> 16; i2[o2 + 3 >> 0] = n2 >> 24; g2 = g2 + 1 | 0; } while ((g2 | 0) != (h2 | 0)); } break; } default: { } } while (0); a2 = k[j2 >> 2] | 0; if (!(i2[a2 + 32 >> 0] | 0)) return; g2 = k[a2 + 16 >> 2] | 0; if ((d2 | 0) > 0) { a2 = c2; f2 = 0; } else return; while (1) { o2 = a2 + 2 | 0; n2 = i2[a2 >> 0] | 0; i2[a2 >> 0] = i2[o2 >> 0] | 0; i2[o2 >> 0] = n2; f2 = f2 + 1 | 0; if ((f2 | 0) == (d2 | 0)) break; else a2 = a2 + g2 | 0; } return; } function df(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 36688; b2 = k[a2 + 20 >> 2] | 0; if (b2) { c2 = a2 + 24 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = k[a2 + 8 >> 2] | 0; if (!c2) return; b2 = a2 + 12 | 0; if ((k[b2 >> 2] | 0) != (c2 | 0)) k[b2 >> 2] = c2; mj(c2); return; } function ef(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 36688; b2 = k[a2 + 20 >> 2] | 0; if (b2) { c2 = a2 + 24 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } b2 = k[a2 + 8 >> 2] | 0; if (!b2) { mj(a2); return; } c2 = a2 + 12 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); mj(a2); return; } function ff(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0; e2 = a2 + 36 | 0; if (!(k[e2 >> 2] | 0)) { e2 = a2 + 40 | 0; kf(a2, b2, k[e2 >> 2] | 0, c2, d2); k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); return; } f2 = ia(k[(k[a2 + 4 >> 2] | 0) + 16 >> 2] | 0, c2) | 0; g2 = a2 + 20 | 0; kf(a2, b2, k[g2 >> 2] | 0, c2, d2); a2 = k[e2 >> 2] | 0; if ((Qb[k[(k[a2 >> 2] | 0) + 48 >> 2] & 63](a2, k[g2 >> 2] | 0, f2) | 0) == (f2 | 0)) return; e2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, e2 | 0, 3, 35648); g2 = x; x = 0; if (g2 & 1) { g2 = Wa() | 0; Ua(e2 | 0); fb(g2 | 0); } else ub(e2 | 0, 824, 96); } function gf(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0; e2 = k[a2 + 36 >> 2] | 0; if (!e2) { e2 = a2 + 40 | 0; hf(a2, k[e2 >> 2] | 0, b2, c2, d2); k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); return; } else { jf(a2, e2, b2, c2, d2); return; } } function hf(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; h2 = a2 + 4 | 0; f2 = k[h2 >> 2] | 0; if (!(i2[f2 + 32 >> 0] | 0)) h2 = b2; else { g2 = a2 + 8 | 0; vw(k[g2 >> 2] | 0, b2 | 0, d2 * 3 | 0) | 0; f2 = k[h2 >> 2] | 0; b2 = k[f2 + 16 >> 2] | 0; if ((d2 | 0) > 0) { f2 = k[g2 >> 2] | 0; a2 = 0; while (1) { j2 = f2 + 2 | 0; m2 = i2[f2 >> 0] | 0; i2[f2 >> 0] = i2[j2 >> 0] | 0; i2[j2 >> 0] = m2; a2 = a2 + 1 | 0; if ((a2 | 0) == (d2 | 0)) break; else f2 = f2 + b2 | 0; } f2 = k[h2 >> 2] | 0; } h2 = k[g2 >> 2] | 0; } switch (k[f2 + 16 >> 2] | 0) { case 3: { if ((k[f2 + 24 >> 2] | 0) == 2) { if ((d2 | 0) > 0) f2 = 0; else return; do { e2 = i2[h2 + (f2 * 3 | 0) + 1 >> 0] | 0; g2 = e2 & 255; j2 = 128 - g2 + (l[h2 + (f2 * 3 | 0) + 2 >> 0] | 0) & 255; m2 = c2 + (f2 * 3 | 0) | 0; i2[m2 >> 0] = (l[h2 + (f2 * 3 | 0) >> 0] | 0) + 128 - g2; i2[m2 + 1 >> 0] = e2; i2[m2 + 2 >> 0] = j2; f2 = f2 + 1 | 0; } while ((f2 | 0) != (d2 | 0)); return; } f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; if ((f2 | 0) <= 0) return; a2 = e2 << 1; b2 = 0; do { j2 = i2[h2 + (b2 * 3 | 0) + 1 >> 0] | 0; d2 = j2 & 255; m2 = 128 - d2 + (l[h2 + (b2 * 3 | 0) + 2 >> 0] | 0) & 255; i2[c2 + b2 >> 0] = (l[h2 + (b2 * 3 | 0) >> 0] | 0) + 128 - d2; i2[c2 + (b2 + e2) >> 0] = j2; i2[c2 + (b2 + a2) >> 0] = m2; b2 = b2 + 1 | 0; } while ((b2 | 0) != (f2 | 0)); return; } case 4: { if ((k[f2 + 24 >> 2] | 0) != 1) return; f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; if ((f2 | 0) <= 0) return; a2 = e2 << 1; b2 = e2 * 3 | 0; g2 = 0; do { d2 = i2[h2 + (g2 << 2) + 1 >> 0] | 0; m2 = i2[h2 + (g2 << 2) + 3 >> 0] | 0; n2 = d2 & 255; j2 = 128 - n2 + (l[h2 + (g2 << 2) + 2 >> 0] | 0) & 255; i2[c2 + g2 >> 0] = (l[h2 + (g2 << 2) >> 0] | 0) + 128 - n2; i2[c2 + (g2 + e2) >> 0] = d2; i2[c2 + (g2 + a2) >> 0] = j2; i2[c2 + (g2 + b2) >> 0] = m2; g2 = g2 + 1 | 0; } while ((g2 | 0) != (f2 | 0)); return; } default: return; } } function jf(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; m2 = r; r = r + 176 | 0; n2 = m2 + 152 | 0; p2 = m2 + 16 | 0; o2 = m2; g2 = ia(k[(k[a2 + 4 >> 2] | 0) + 16 >> 2] | 0, d2) | 0; j2 = a2 + 20 | 0; f2 = k[j2 >> 2] | 0; if (!g2) { p2 = f2; hf(a2, p2, c2, d2, e2); r = m2; return; } while (1) { h2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, f2, g2) | 0; if (!h2) break; f2 = k[j2 >> 2] | 0; if ((g2 | 0) == (h2 | 0)) { l2 = 26; break; } else g2 = g2 - h2 | 0; } if ((l2 | 0) == 26) { hf(a2, f2, c2, d2, e2); r = m2; return; } c2 = p2 + 56 | 0; j2 = p2 + 4 | 0; k[p2 >> 2] = 36160; k[c2 >> 2] = 36180; x = 0; ra(62, p2 + 56 | 0, j2 | 0); m2 = x; x = 0; if (m2 & 1) { p2 = Wa() | 0; qn(c2); fb(p2 | 0); } k[p2 + 128 >> 2] = 0; k[p2 + 132 >> 2] = -1; k[p2 >> 2] = 36200; k[p2 + 56 >> 2] = 36220; x = 0; qa(180, j2 | 0); m2 = x; x = 0; do if (m2 & 1) f2 = Wa() | 0; else { k[j2 >> 2] = 36236; b2 = p2 + 36 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[p2 + 52 >> 2] = 16; k[n2 >> 2] = 0; k[n2 + 4 >> 2] = 0; k[n2 + 8 >> 2] = 0; x = 0; ra(63, j2 | 0, n2 | 0); m2 = x; x = 0; if (m2 & 1) { f2 = Wa() | 0; Sm(n2); Sm(b2); xn(j2); break; } Sm(n2); x = 0; f2 = va(28, p2 | 0, 49029, 57) | 0; n2 = x; x = 0; if (!(n2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { h2 = Va(16) | 0; x = 0; ra(64, o2 | 0, j2 | 0); n2 = x; x = 0; if (!(n2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, h2 | 0, 3, 35648, o2 | 0); n2 = x; x = 0; if (n2 & 1) g2 = 1; else { x = 0; Fa(6, h2 | 0, 824, 96); x = 0; g2 = 0; } f2 = Wa() | 0; Sm(o2); if (!g2) { o2 = f2; k[p2 >> 2] = 36200; k[c2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(c2); fb(o2 | 0); } } else f2 = Wa() | 0; Ua(h2 | 0); o2 = f2; k[p2 >> 2] = 36200; k[c2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(c2); fb(o2 | 0); } o2 = Wa() | 0; k[p2 >> 2] = 36200; k[c2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(c2); fb(o2 | 0); } while (0); p2 = f2; qn(c2); fb(p2 | 0); } function kf(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0; j2 = a2 + 4 | 0; a2 = k[j2 >> 2] | 0; a: do switch (k[a2 + 16 >> 2] | 0) { case 3: { if ((k[a2 + 24 >> 2] | 0) == 2) { if ((d2 | 0) > 0) a2 = 0; else break a; while (1) { g2 = i2[b2 + (a2 * 3 | 0) + 1 >> 0] | 0; f2 = g2 & 255; h2 = f2 + 128 + (l[b2 + (a2 * 3 | 0) + 2 >> 0] | 0) & 255; e2 = c2 + (a2 * 3 | 0) | 0; i2[e2 >> 0] = (l[b2 + (a2 * 3 | 0) >> 0] | 0) + 128 + f2; i2[e2 + 1 >> 0] = g2; i2[e2 + 2 >> 0] = h2; a2 = a2 + 1 | 0; if ((a2 | 0) == (d2 | 0)) break a; } } a2 = (d2 | 0) < (e2 | 0) ? d2 : e2; if ((a2 | 0) > 0) { f2 = e2 << 1; g2 = 0; do { n2 = i2[b2 + (g2 + e2) >> 0] | 0; o2 = n2 & 255; m2 = o2 + 128 + (l[b2 + (g2 + f2) >> 0] | 0) & 255; h2 = c2 + (g2 * 3 | 0) | 0; i2[h2 >> 0] = (l[b2 + g2 >> 0] | 0) + 128 + o2; i2[h2 + 1 >> 0] = n2; i2[h2 + 2 >> 0] = m2; g2 = g2 + 1 | 0; } while ((g2 | 0) != (a2 | 0)); } break; } case 4: { if ((k[a2 + 24 >> 2] | 0) == 1 ? (h2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (h2 | 0) > 0) : 0) { a2 = e2 << 1; f2 = e2 * 3 | 0; g2 = 0; do { n2 = l[b2 + (g2 + e2) >> 0] | 0; o2 = c2 + (g2 << 2) | 0; n2 = (l[b2 + g2 >> 0] | 0) + 128 + n2 & 255 | n2 << 8 | l[b2 + (g2 + f2) >> 0] << 24 | n2 + 128 + (l[b2 + (g2 + a2) >> 0] | 0) << 16 & 16711680; i2[o2 >> 0] = n2; i2[o2 + 1 >> 0] = n2 >> 8; i2[o2 + 2 >> 0] = n2 >> 16; i2[o2 + 3 >> 0] = n2 >> 24; g2 = g2 + 1 | 0; } while ((g2 | 0) != (h2 | 0)); } break; } default: { } } while (0); a2 = k[j2 >> 2] | 0; if (!(i2[a2 + 32 >> 0] | 0)) return; g2 = k[a2 + 16 >> 2] | 0; if ((d2 | 0) > 0) { a2 = c2; f2 = 0; } else return; while (1) { o2 = a2 + 2 | 0; n2 = i2[a2 >> 0] | 0; i2[a2 >> 0] = i2[o2 >> 0] | 0; i2[o2 >> 0] = n2; f2 = f2 + 1 | 0; if ((f2 | 0) == (d2 | 0)) break; else a2 = a2 + g2 | 0; } return; } function lf(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 36712; b2 = k[a2 + 20 >> 2] | 0; if (b2) { c2 = a2 + 24 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = k[a2 + 8 >> 2] | 0; if (!c2) return; b2 = a2 + 12 | 0; if ((k[b2 >> 2] | 0) != (c2 | 0)) k[b2 >> 2] = c2; mj(c2); return; } function mf(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 36712; b2 = k[a2 + 20 >> 2] | 0; if (b2) { c2 = a2 + 24 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } b2 = k[a2 + 8 >> 2] | 0; if (!b2) { mj(a2); return; } c2 = a2 + 12 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); mj(a2); return; } function nf(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0; e2 = a2 + 36 | 0; if (!(k[e2 >> 2] | 0)) { e2 = a2 + 40 | 0; rf(a2, b2, k[e2 >> 2] | 0, c2, d2); k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); return; } f2 = ia(k[(k[a2 + 4 >> 2] | 0) + 16 >> 2] | 0, c2) | 0; g2 = a2 + 20 | 0; rf(a2, b2, k[g2 >> 2] | 0, c2, d2); a2 = k[e2 >> 2] | 0; if ((Qb[k[(k[a2 >> 2] | 0) + 48 >> 2] & 63](a2, k[g2 >> 2] | 0, f2) | 0) == (f2 | 0)) return; e2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, e2 | 0, 3, 35648); g2 = x; x = 0; if (g2 & 1) { g2 = Wa() | 0; Ua(e2 | 0); fb(g2 | 0); } else ub(e2 | 0, 824, 96); } function of(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0; e2 = k[a2 + 36 >> 2] | 0; if (!e2) { e2 = a2 + 40 | 0; pf(a2, k[e2 >> 2] | 0, b2, c2, d2); k[e2 >> 2] = (k[e2 >> 2] | 0) + (k[(k[a2 + 4 >> 2] | 0) + 12 >> 2] | 0); return; } else { qf(a2, e2, b2, c2, d2); return; } } function pf(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; h2 = a2 + 4 | 0; f2 = k[h2 >> 2] | 0; if (!(i2[f2 + 32 >> 0] | 0)) h2 = b2; else { g2 = a2 + 8 | 0; vw(k[g2 >> 2] | 0, b2 | 0, d2 * 3 | 0) | 0; f2 = k[h2 >> 2] | 0; b2 = k[f2 + 16 >> 2] | 0; if ((d2 | 0) > 0) { f2 = k[g2 >> 2] | 0; a2 = 0; while (1) { j2 = f2 + 2 | 0; l2 = i2[f2 >> 0] | 0; i2[f2 >> 0] = i2[j2 >> 0] | 0; i2[j2 >> 0] = l2; a2 = a2 + 1 | 0; if ((a2 | 0) == (d2 | 0)) break; else f2 = f2 + b2 | 0; } f2 = k[h2 >> 2] | 0; } h2 = k[g2 >> 2] | 0; } switch (k[f2 + 16 >> 2] | 0) { case 3: { if ((k[f2 + 24 >> 2] | 0) == 2) { if ((d2 | 0) > 0) f2 = 0; else return; do { e2 = i2[h2 + (f2 * 3 | 0) + 1 >> 0] | 0; j2 = i2[h2 + (f2 * 3 | 0) + 2 >> 0] | 0; l2 = c2 + (f2 * 3 | 0) | 0; i2[l2 >> 0] = i2[h2 + (f2 * 3 | 0) >> 0] | 0; i2[l2 + 1 >> 0] = e2; i2[l2 + 2 >> 0] = j2; f2 = f2 + 1 | 0; } while ((f2 | 0) != (d2 | 0)); return; } f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; if ((f2 | 0) <= 0) return; a2 = e2 << 1; b2 = 0; do { j2 = i2[h2 + (b2 * 3 | 0) + 1 >> 0] | 0; l2 = i2[h2 + (b2 * 3 | 0) + 2 >> 0] | 0; i2[c2 + b2 >> 0] = i2[h2 + (b2 * 3 | 0) >> 0] | 0; i2[c2 + (b2 + e2) >> 0] = j2; i2[c2 + (b2 + a2) >> 0] = l2; b2 = b2 + 1 | 0; } while ((b2 | 0) != (f2 | 0)); return; } case 4: { if ((k[f2 + 24 >> 2] | 0) != 1) return; f2 = (e2 | 0) < (d2 | 0) ? e2 : d2; if ((f2 | 0) <= 0) return; a2 = e2 << 1; b2 = e2 * 3 | 0; g2 = 0; do { d2 = i2[h2 + (g2 << 2) + 1 >> 0] | 0; j2 = i2[h2 + (g2 << 2) + 2 >> 0] | 0; l2 = i2[h2 + (g2 << 2) + 3 >> 0] | 0; i2[c2 + g2 >> 0] = i2[h2 + (g2 << 2) >> 0] | 0; i2[c2 + (g2 + e2) >> 0] = d2; i2[c2 + (g2 + a2) >> 0] = j2; i2[c2 + (g2 + b2) >> 0] = l2; g2 = g2 + 1 | 0; } while ((g2 | 0) != (f2 | 0)); return; } default: return; } } function qf(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; m2 = r; r = r + 176 | 0; n2 = m2 + 152 | 0; p2 = m2 + 16 | 0; o2 = m2; g2 = ia(k[(k[a2 + 4 >> 2] | 0) + 16 >> 2] | 0, d2) | 0; j2 = a2 + 20 | 0; f2 = k[j2 >> 2] | 0; if (!g2) { p2 = f2; pf(a2, p2, c2, d2, e2); r = m2; return; } while (1) { h2 = Qb[k[(k[b2 >> 2] | 0) + 32 >> 2] & 63](b2, f2, g2) | 0; if (!h2) break; f2 = k[j2 >> 2] | 0; if ((g2 | 0) == (h2 | 0)) { l2 = 26; break; } else g2 = g2 - h2 | 0; } if ((l2 | 0) == 26) { pf(a2, f2, c2, d2, e2); r = m2; return; } c2 = p2 + 56 | 0; j2 = p2 + 4 | 0; k[p2 >> 2] = 36160; k[c2 >> 2] = 36180; x = 0; ra(62, p2 + 56 | 0, j2 | 0); m2 = x; x = 0; if (m2 & 1) { p2 = Wa() | 0; qn(c2); fb(p2 | 0); } k[p2 + 128 >> 2] = 0; k[p2 + 132 >> 2] = -1; k[p2 >> 2] = 36200; k[p2 + 56 >> 2] = 36220; x = 0; qa(180, j2 | 0); m2 = x; x = 0; do if (m2 & 1) f2 = Wa() | 0; else { k[j2 >> 2] = 36236; b2 = p2 + 36 | 0; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; k[b2 + 12 >> 2] = 0; k[p2 + 52 >> 2] = 16; k[n2 >> 2] = 0; k[n2 + 4 >> 2] = 0; k[n2 + 8 >> 2] = 0; x = 0; ra(63, j2 | 0, n2 | 0); m2 = x; x = 0; if (m2 & 1) { f2 = Wa() | 0; Sm(n2); Sm(b2); xn(j2); break; } Sm(n2); x = 0; f2 = va(28, p2 | 0, 49029, 57) | 0; n2 = x; x = 0; if (!(n2 & 1) ? (x = 0, Aa(36, f2 | 0, 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { h2 = Va(16) | 0; x = 0; ra(64, o2 | 0, j2 | 0); n2 = x; x = 0; if (!(n2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, h2 | 0, 3, 35648, o2 | 0); n2 = x; x = 0; if (n2 & 1) g2 = 1; else { x = 0; Fa(6, h2 | 0, 824, 96); x = 0; g2 = 0; } f2 = Wa() | 0; Sm(o2); if (!g2) { o2 = f2; k[p2 >> 2] = 36200; k[c2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(c2); fb(o2 | 0); } } else f2 = Wa() | 0; Ua(h2 | 0); o2 = f2; k[p2 >> 2] = 36200; k[c2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(c2); fb(o2 | 0); } o2 = Wa() | 0; k[p2 >> 2] = 36200; k[c2 >> 2] = 36220; k[j2 >> 2] = 36236; Sm(b2); xn(j2); qn(c2); fb(o2 | 0); } while (0); p2 = f2; qn(c2); fb(p2 | 0); } function rf(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; j2 = a2 + 4 | 0; a2 = k[j2 >> 2] | 0; a: do switch (k[a2 + 16 >> 2] | 0) { case 3: { if ((k[a2 + 24 >> 2] | 0) == 2) { if ((d2 | 0) > 0) a2 = 0; else break a; while (1) { g2 = i2[b2 + (a2 * 3 | 0) + 1 >> 0] | 0; h2 = i2[b2 + (a2 * 3 | 0) + 2 >> 0] | 0; e2 = c2 + (a2 * 3 | 0) | 0; i2[e2 >> 0] = i2[b2 + (a2 * 3 | 0) >> 0] | 0; i2[e2 + 1 >> 0] = g2; i2[e2 + 2 >> 0] = h2; a2 = a2 + 1 | 0; if ((a2 | 0) == (d2 | 0)) break a; } } a2 = (d2 | 0) < (e2 | 0) ? d2 : e2; if ((a2 | 0) > 0) { f2 = e2 << 1; g2 = 0; do { n2 = i2[b2 + (g2 + e2) >> 0] | 0; m2 = i2[b2 + (g2 + f2) >> 0] | 0; h2 = c2 + (g2 * 3 | 0) | 0; i2[h2 >> 0] = i2[b2 + g2 >> 0] | 0; i2[h2 + 1 >> 0] = n2; i2[h2 + 2 >> 0] = m2; g2 = g2 + 1 | 0; } while ((g2 | 0) != (a2 | 0)); } break; } case 4: { if ((k[a2 + 24 >> 2] | 0) == 1 ? (h2 = (d2 | 0) < (e2 | 0) ? d2 : e2, (h2 | 0) > 0) : 0) { a2 = e2 << 1; f2 = e2 * 3 | 0; g2 = 0; do { n2 = c2 + (g2 << 2) | 0; m2 = l[b2 + (g2 + e2) >> 0] << 8 | l[b2 + g2 >> 0] | l[b2 + (g2 + a2) >> 0] << 16 | l[b2 + (g2 + f2) >> 0] << 24; i2[n2 >> 0] = m2; i2[n2 + 1 >> 0] = m2 >> 8; i2[n2 + 2 >> 0] = m2 >> 16; i2[n2 + 3 >> 0] = m2 >> 24; g2 = g2 + 1 | 0; } while ((g2 | 0) != (h2 | 0)); } break; } default: { } } while (0); a2 = k[j2 >> 2] | 0; if (!(i2[a2 + 32 >> 0] | 0)) return; g2 = k[a2 + 16 >> 2] | 0; if ((d2 | 0) > 0) { a2 = c2; f2 = 0; } else return; while (1) { n2 = a2 + 2 | 0; m2 = i2[a2 >> 0] | 0; i2[a2 >> 0] = i2[n2 >> 0] | 0; i2[n2 >> 0] = m2; f2 = f2 + 1 | 0; if ((f2 | 0) == (d2 | 0)) break; else a2 = a2 + g2 | 0; } return; } function sf(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0; t2 = r; r = r + 32 | 0; v2 = t2 + 12 | 0; s2 = t2; o2 = a2 + 180 | 0; p2 = (k[o2 >> 2] | 0) + 4 | 0; if ((k[a2 + 32 >> 2] | 0) == 1) q2 = k[a2 + 24 >> 2] | 0; else q2 = 1; b2 = ia(q2 << 1, p2) | 0; k[v2 >> 2] = 0; w2 = v2 + 4 | 0; k[w2 >> 2] = 0; k[v2 + 8 >> 2] = 0; a: do if (b2) { if (!(b2 >>> 0 > 1431655765 ? (x = 0, qa(178, v2 | 0), u2 = x, x = 0, u2 & 1) : 0)) f2 = 6; if ((f2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 * 3 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { k[w2 >> 2] = c2; k[v2 >> 2] = c2; k[v2 + 8 >> 2] = c2 + (b2 * 3 | 0); while (1) { i2[c2 >> 0] = 0; i2[c2 + 1 >> 0] = 0; i2[c2 + 2 >> 0] = 0; c2 = (k[w2 >> 2] | 0) + 3 | 0; k[w2 >> 2] = c2; b2 = b2 + -1 | 0; if (!b2) break a; } } d2 = Wa() | 0; b2 = k[v2 >> 2] | 0; if (!b2) fb(d2 | 0); c2 = k[w2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[w2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); mj(b2); fb(d2 | 0); } while (0); k[s2 >> 2] = 0; u2 = s2 + 4 | 0; k[u2 >> 2] = 0; k[s2 + 8 >> 2] = 0; do if (!q2) f2 = 19; else { if (!(q2 >>> 0 > 1073741823 ? (x = 0, qa(178, s2 | 0), n2 = x, x = 0, n2 & 1) : 0)) f2 = 17; if ((f2 | 0) == 17 ? (d2 = q2 << 2, x = 0, e2 = ta(67, d2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { k[s2 >> 2] = e2; f2 = e2 + (q2 << 2) | 0; k[s2 + 8 >> 2] = f2; sw(e2 | 0, 0, d2 | 0) | 0; k[u2 >> 2] = f2; f2 = 19; break; } d2 = Wa() | 0; b2 = k[s2 >> 2] | 0; c2 = b2; if (b2) { e2 = k[u2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[u2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } } while (0); if ((f2 | 0) == 19) { e2 = a2 + 12 | 0; b: do if ((k[e2 >> 2] | 0) > 0) { f2 = a2 + 4604 | 0; g2 = (ia(q2, p2) | 0) + 1 | 0; h2 = a2 + 4608 | 0; j2 = a2 + 92 | 0; l2 = (q2 | 0) > 0; m2 = a2 + 4600 | 0; n2 = 0; c: while (1) { d2 = k[v2 >> 2] | 0; b2 = d2 + 3 | 0; k[f2 >> 2] = b2; c2 = d2 + (g2 * 3 | 0) | 0; k[h2 >> 2] = c2; if (!(n2 & 1)) b2 = g2; else { k[f2 >> 2] = c2; k[h2 >> 2] = b2; b2 = 1; } c2 = k[j2 >> 2] | 0; x = 0; Ja(k[(k[c2 >> 2] | 0) + 12 >> 2] | 0, c2 | 0, d2 + (b2 * 3 | 0) | 0, k[o2 >> 2] | 0, p2 | 0); d2 = x; x = 0; if (d2 & 1) { f2 = 29; break; } if (l2) { b2 = k[s2 >> 2] | 0; c2 = k[f2 >> 2] | 0; d2 = 0; do { k[m2 >> 2] = k[b2 + (d2 << 2) >> 2]; y2 = k[o2 >> 2] | 0; b2 = c2 + (y2 * 3 | 0) | 0; c2 = c2 + ((y2 + -1 | 0) * 3 | 0) | 0; i2[b2 >> 0] = i2[c2 >> 0] | 0; i2[b2 + 1 >> 0] = i2[c2 + 1 >> 0] | 0; i2[b2 + 2 >> 0] = i2[c2 + 2 >> 0] | 0; b2 = k[f2 >> 2] | 0; c2 = (k[h2 >> 2] | 0) + -3 | 0; i2[c2 >> 0] = i2[b2 >> 0] | 0; i2[c2 + 1 >> 0] = i2[b2 + 1 >> 0] | 0; i2[c2 + 2 >> 0] = i2[b2 + 2 >> 0] | 0; x = 0; ra(70, a2 | 0, 0); c2 = x; x = 0; if (c2 & 1) { f2 = 28; break c; } b2 = k[s2 >> 2] | 0; k[b2 + (d2 << 2) >> 2] = k[m2 >> 2]; c2 = (k[f2 >> 2] | 0) + (p2 * 3 | 0) | 0; k[f2 >> 2] = c2; k[h2 >> 2] = (k[h2 >> 2] | 0) + (p2 * 3 | 0); d2 = d2 + 1 | 0; } while ((d2 | 0) < (q2 | 0)); } n2 = n2 + 1 | 0; if ((n2 | 0) >= (k[e2 >> 2] | 0)) { f2 = 41; break b; } } if ((f2 | 0) == 28) { d2 = Wa() | 0; break; } else if ((f2 | 0) == 29) { d2 = Wa() | 0; break; } } else f2 = 41; while (0); do if ((f2 | 0) == 41) { x = 0; qa(182, a2 | 0); y2 = x; x = 0; if (y2 & 1) { d2 = Wa() | 0; break; } b2 = k[s2 >> 2] | 0; c2 = b2; if (b2) { d2 = k[u2 >> 2] | 0; if ((d2 | 0) != (b2 | 0)) k[u2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } b2 = k[v2 >> 2] | 0; if (!b2) { r = t2; return; } c2 = k[w2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[w2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); mj(b2); r = t2; return; } while (0); b2 = k[s2 >> 2] | 0; c2 = b2; if (b2) { e2 = k[u2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[u2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } } b2 = k[v2 >> 2] | 0; if (!b2) fb(d2 | 0); c2 = k[w2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[w2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); mj(b2); fb(d2 | 0); } function tf(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; A2 = a2 + 180 | 0; if ((k[A2 >> 2] | 0) <= 0) return; B2 = a2 + 4608 | 0; C2 = a2 + 4604 | 0; D2 = a2 + 4612 | 0; z2 = 0; while (1) { w2 = z2 + -1 | 0; f2 = k[B2 >> 2] | 0; g2 = k[C2 >> 2] | 0; b2 = z2 + 1 | 0; e2 = l[g2 + (z2 * 3 | 0) >> 0] | 0; y2 = k[D2 >> 2] | 0; h2 = l[g2 + (w2 * 3 | 0) >> 0] | 0; j2 = e2 - h2 | 0; m2 = l[f2 + (w2 * 3 | 0) >> 0] | 0; n2 = h2 - m2 | 0; o2 = ((((i2[y2 + ((l[g2 + (b2 * 3 | 0) >> 0] | 0) - e2) >> 0] | 0) * 9 | 0) + (i2[y2 + j2 >> 0] | 0) | 0) * 9 | 0) + (i2[y2 + n2 >> 0] | 0) | 0; d2 = l[g2 + (z2 * 3 | 0) + 1 >> 0] | 0; p2 = l[g2 + (w2 * 3 | 0) + 1 >> 0] | 0; q2 = d2 - p2 | 0; r2 = l[f2 + (w2 * 3 | 0) + 1 >> 0] | 0; s2 = p2 - r2 | 0; t2 = ((((i2[y2 + ((l[g2 + (b2 * 3 | 0) + 1 >> 0] | 0) - d2) >> 0] | 0) * 9 | 0) + (i2[y2 + q2 >> 0] | 0) | 0) * 9 | 0) + (i2[y2 + s2 >> 0] | 0) | 0; c2 = l[g2 + (z2 * 3 | 0) + 2 >> 0] | 0; u2 = l[g2 + (w2 * 3 | 0) + 2 >> 0] | 0; v2 = c2 - u2 | 0; w2 = l[f2 + (w2 * 3 | 0) + 2 >> 0] | 0; x2 = u2 - w2 | 0; y2 = ((((i2[y2 + ((l[g2 + (b2 * 3 | 0) + 2 >> 0] | 0) - c2) >> 0] | 0) * 9 | 0) + (i2[y2 + v2 >> 0] | 0) | 0) * 9 | 0) + (i2[y2 + x2 >> 0] | 0) | 0; if (!(t2 | o2 | y2)) b2 = (uf(a2, z2, 0) | 0) + z2 | 0; else { g2 = l[f2 + (z2 * 3 | 0) >> 0] | 0; f2 = e2 - m2 >> 31; if ((f2 ^ n2 | 0) >= 0) if ((f2 ^ j2 | 0) < 0) e2 = m2; else e2 = m2 - h2 + e2 | 0; g2 = vf(a2, o2, g2, e2, 0) | 0; f2 = l[(k[B2 >> 2] | 0) + (z2 * 3 | 0) + 1 >> 0] | 0; e2 = d2 - r2 >> 31; if ((e2 ^ s2 | 0) >= 0) if ((e2 ^ q2 | 0) < 0) d2 = r2; else d2 = r2 - p2 + d2 | 0; e2 = vf(a2, t2, f2, d2, 0) | 0; f2 = l[(k[B2 >> 2] | 0) + (z2 * 3 | 0) + 2 >> 0] | 0; d2 = c2 - w2 >> 31; if ((d2 ^ x2 | 0) >= 0) if ((d2 ^ v2 | 0) < 0) c2 = w2; else c2 = w2 - u2 + c2 | 0; y2 = vf(a2, y2, f2, c2, 0) | 0; z2 = (k[B2 >> 2] | 0) + (z2 * 3 | 0) | 0; i2[z2 >> 0] = g2; i2[z2 + 1 >> 0] = e2; i2[z2 + 2 >> 0] = y2; } if ((b2 | 0) < (k[A2 >> 2] | 0)) z2 = b2; else break; } return; } function uf(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0; B2 = r; r = r + 32 | 0; A2 = B2 + 15 | 0; p2 = B2 + 12 | 0; o2 = B2 + 9 | 0; q2 = B2 + 6 | 0; w2 = B2 + 3 | 0; x2 = B2; y2 = (k[a2 + 180 >> 2] | 0) - b2 | 0; z2 = k[a2 + 4608 >> 2] | 0; s2 = k[a2 + 4604 >> 2] | 0; v2 = z2 + ((b2 + -1 | 0) * 3 | 0) | 0; t2 = i2[v2 >> 0] | 0; u2 = i2[v2 + 1 >> 0] | 0; v2 = i2[v2 + 2 >> 0] | 0; c2 = t2 & 255; d2 = a2 + 144 | 0; e2 = u2 & 255; f2 = v2 & 255; n2 = 0; while (1) { g2 = z2 + ((n2 + b2 | 0) * 3 | 0) | 0; h2 = g2 + 1 | 0; j2 = g2 + 2 | 0; C2 = (l[g2 >> 0] | 0) - c2 | 0; m2 = k[d2 >> 2] | 0; if ((((C2 | 0) > -1 ? C2 : 0 - C2 | 0) | 0) > (m2 | 0)) break; C2 = (l[h2 >> 0] | 0) - e2 | 0; if ((((C2 | 0) > -1 ? C2 : 0 - C2 | 0) | 0) > (m2 | 0)) break; C2 = (l[j2 >> 0] | 0) - f2 | 0; if ((((C2 | 0) > -1 ? C2 : 0 - C2 | 0) | 0) > (m2 | 0)) break; i2[g2 >> 0] = t2; i2[h2 >> 0] = u2; i2[j2 >> 0] = v2; n2 = n2 + 1 | 0; if ((n2 | 0) == (y2 | 0)) { n2 = y2; break; } } e2 = (n2 | 0) == (y2 | 0); f2 = a2 + 4600 | 0; d2 = k[36476 + (k[f2 >> 2] << 2) >> 2] | 0; if ((1 << d2 | 0) > (n2 | 0)) c2 = n2; else { c2 = n2; do { ke(a2, 1, 1); d2 = k[f2 >> 2] | 0; c2 = c2 - (1 << k[36476 + (d2 << 2) >> 2]) | 0; d2 = (d2 | 0) > 30 ? 31 : d2 + 1 | 0; k[f2 >> 2] = d2; d2 = k[36476 + (d2 << 2) >> 2] | 0; } while ((c2 | 0) >= (1 << d2 | 0)); } if (!e2) { ke(a2, c2, d2 + 1 | 0); b2 = n2 + b2 | 0; C2 = z2 + (b2 * 3 | 0) | 0; i2[w2 >> 0] = i2[C2 >> 0] | 0; i2[w2 + 1 >> 0] = i2[C2 + 1 >> 0] | 0; i2[w2 + 2 >> 0] = i2[C2 + 2 >> 0] | 0; i2[x2 >> 0] = t2; i2[x2 + 1 >> 0] = u2; i2[x2 + 2 >> 0] = v2; b2 = s2 + (b2 * 3 | 0) | 0; i2[o2 >> 0] = i2[w2 >> 0] | 0; i2[o2 + 1 >> 0] = i2[w2 + 1 >> 0] | 0; i2[o2 + 2 >> 0] = i2[w2 + 2 >> 0] | 0; i2[p2 >> 0] = i2[x2 >> 0] | 0; i2[p2 + 1 >> 0] = i2[x2 + 1 >> 0] | 0; i2[p2 + 2 >> 0] = i2[x2 + 2 >> 0] | 0; i2[A2 >> 0] = i2[b2 >> 0] | 0; i2[A2 + 1 >> 0] = i2[b2 + 1 >> 0] | 0; i2[A2 + 2 >> 0] = i2[b2 + 2 >> 0] | 0; xf(q2, a2, o2, p2, A2); i2[C2 >> 0] = i2[q2 >> 0] | 0; i2[C2 + 1 >> 0] = i2[q2 + 1 >> 0] | 0; i2[C2 + 2 >> 0] = i2[q2 + 2 >> 0] | 0; C2 = k[f2 >> 2] | 0; k[f2 >> 2] = (C2 | 0) < 1 ? 0 : C2 + -1 | 0; C2 = n2 + 1 | 0; r = B2; return C2 | 0; } if (!c2) { C2 = y2; r = B2; return C2 | 0; } ke(a2, 1, 1); C2 = y2; r = B2; return C2 | 0; } function vf(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; r2 = b2 >> 31; f2 = (r2 ^ b2) - r2 | 0; p2 = a2 + 196 + (f2 * 12 | 0) + 10 | 0; g2 = j[p2 >> 1] | 0; o2 = a2 + 196 + (f2 * 12 | 0) | 0; e2 = k[o2 >> 2] | 0; if ((g2 | 0) < (e2 | 0)) if ((g2 << 1 | 0) < (e2 | 0)) if ((g2 << 2 | 0) < (e2 | 0)) if ((g2 << 3 | 0) < (e2 | 0)) if ((g2 << 4 | 0) < (e2 | 0)) { b2 = 5; while (1) if ((g2 << b2 | 0) < (e2 | 0)) b2 = b2 + 1 | 0; else break; } else b2 = 4; else b2 = 3; else b2 = 2; else b2 = 1; else b2 = 0; m2 = a2 + 196 + (f2 * 12 | 0) + 8 | 0; e2 = (j[m2 >> 1] ^ r2) - r2 + d2 | 0; q2 = a2 + 136 | 0; d2 = k[q2 >> 2] | 0; if ((e2 & d2 | 0) == (e2 | 0)) l2 = e2; else l2 = d2 & ~(e2 >> 31); e2 = (c2 - l2 ^ r2) - r2 | 0; i3 = a2 + 144 | 0; d2 = k[i3 >> 2] | 0; if ((e2 | 0) > 0) e2 = (e2 + d2 | 0) / (d2 << 1 | 1 | 0) | 0; else e2 = (e2 - d2 | 0) / (d2 << 1 | 1 | 0) | 0; n2 = a2 + 140 | 0; h2 = k[n2 >> 2] | 0; c2 = ((e2 | 0) < 0 ? h2 : 0) + e2 | 0; h2 = c2 - ((c2 | 0) < ((h2 + 1 | 0) / 2 | 0 | 0) ? 0 : h2) | 0; f2 = a2 + 196 + (f2 * 12 | 0) + 4 | 0; if (!(d2 | b2)) e2 = (k[f2 >> 2] << 1) + -1 + g2 >> 31; else e2 = 0; d2 = e2 ^ h2; wf(a2, b2, d2 >> 30 ^ d2 << 1, k[a2 + 156 >> 2] | 0); d2 = k[a2 + 160 >> 2] | 0; b2 = (k[o2 >> 2] | 0) + ((h2 | 0) > -1 ? h2 : 0 - h2 | 0) | 0; e2 = (k[f2 >> 2] | 0) + (ia(k[i3 >> 2] << 1 | 1, h2) | 0) | 0; c2 = j[p2 >> 1] | 0; if ((c2 | 0) == (d2 | 0)) { b2 = b2 >> 1; e2 = e2 >> 1; c2 = d2 >> 1; } k[o2 >> 2] = b2; d2 = c2 + 1 | 0; j[p2 >> 1] = d2; b2 = d2 + e2 | 0; if ((b2 | 0) >= 1) { if ((e2 | 0) > 0) { e2 = e2 - d2 | 0; p2 = j[m2 >> 1] | 0; j[m2 >> 1] = (p2 << 16 >> 16 < 127 & 1) + (p2 & 65535); e2 = (e2 | 0) > 0 ? 0 : e2; } } else { e2 = j[m2 >> 1] | 0; j[m2 >> 1] = (e2 & 65535) - (e2 << 16 >> 16 > -128 & 1); e2 = (b2 | 0) > (~c2 | 0) ? b2 : 0 - c2 | 0; } k[f2 >> 2] = e2; d2 = k[i3 >> 2] | 0; c2 = d2 << 1 | 1; b2 = (ia(c2, (h2 ^ r2) - r2 | 0) | 0) + l2 | 0; if ((b2 | 0) >= (0 - d2 | 0)) { e2 = k[q2 >> 2] | 0; if ((e2 + d2 | 0) < (b2 | 0)) b2 = b2 - (ia(k[n2 >> 2] | 0, c2) | 0) | 0; } else { b2 = (ia(k[n2 >> 2] | 0, c2) | 0) + b2 | 0; e2 = k[q2 >> 2] | 0; } if ((b2 & e2 | 0) == (b2 | 0)) { r2 = b2; r2 = r2 & 255; return r2 | 0; } r2 = e2 & ~(b2 >> 31); r2 = r2 & 255; return r2 | 0; } function wf(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0; e2 = c2 >> b2; f2 = a2 + 148 | 0; g2 = d2 - (k[f2 >> 2] | 0) | 0; if ((e2 | 0) < (g2 + -1 | 0)) { if ((e2 | 0) > 30) { d2 = (e2 | 0) / 2 | 0; ke(a2, 0, d2); e2 = e2 - d2 | 0; } ke(a2, 1, e2 + 1 | 0); ke(a2, (1 << b2) + -1 & c2, b2); return; } if ((g2 | 0) > 31) { ke(a2, 0, 31); ke(a2, 1, d2 + -31 - (k[f2 >> 2] | 0) | 0); } else ke(a2, 1, g2); b2 = k[f2 >> 2] | 0; ke(a2, (1 << b2) + -1 & c2 + -1, b2); return; } function xf(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; r2 = b2 + 136 | 0; o2 = l[e2 >> 0] | 0; p2 = o2 - (l[d2 >> 0] | 0) >> 31 | 1; f2 = ia(p2, (l[c2 >> 0] | 0) - o2 | 0) | 0; m2 = b2 + 144 | 0; g2 = k[m2 >> 2] | 0; if ((f2 | 0) > 0) f2 = (f2 + g2 | 0) / (g2 << 1 | 1 | 0) | 0; else f2 = (f2 - g2 | 0) / (g2 << 1 | 1 | 0) | 0; w2 = b2 + 140 | 0; j2 = k[w2 >> 2] | 0; h2 = ((f2 | 0) < 0 ? j2 : 0) + f2 | 0; j2 = h2 - ((h2 | 0) < ((j2 + 1 | 0) / 2 | 0 | 0) ? 0 : j2) | 0; h2 = b2 + 4576 | 0; yf(b2, h2, j2); t2 = l[e2 + 1 >> 0] | 0; u2 = t2 - (l[d2 + 1 >> 0] | 0) >> 31 | 1; f2 = ia(u2, (l[c2 + 1 >> 0] | 0) - t2 | 0) | 0; g2 = k[m2 >> 2] | 0; if ((f2 | 0) > 0) f2 = (f2 + g2 | 0) / (g2 << 1 | 1 | 0) | 0; else f2 = (f2 - g2 | 0) / (g2 << 1 | 1 | 0) | 0; q2 = k[w2 >> 2] | 0; v2 = ((f2 | 0) < 0 ? q2 : 0) + f2 | 0; q2 = v2 - ((v2 | 0) < ((q2 + 1 | 0) / 2 | 0 | 0) ? 0 : q2) | 0; yf(b2, h2, q2); v2 = l[e2 + 2 >> 0] | 0; s2 = v2 - (l[d2 + 2 >> 0] | 0) >> 31 | 1; f2 = ia(s2, (l[c2 + 2 >> 0] | 0) - v2 | 0) | 0; g2 = k[m2 >> 2] | 0; if ((f2 | 0) > 0) f2 = (f2 + g2 | 0) / (g2 << 1 | 1 | 0) | 0; else f2 = (f2 - g2 | 0) / (g2 << 1 | 1 | 0) | 0; n2 = k[w2 >> 2] | 0; f2 = ((f2 | 0) < 0 ? n2 : 0) + f2 | 0; n2 = f2 - ((f2 | 0) < ((n2 + 1 | 0) / 2 | 0 | 0) ? 0 : n2) | 0; yf(b2, h2, n2); h2 = k[m2 >> 2] | 0; m2 = h2 << 1 | 1; f2 = (ia(ia(m2, j2) | 0, p2) | 0) + o2 | 0; c2 = 0 - h2 | 0; if ((f2 | 0) >= (c2 | 0)) { g2 = k[r2 >> 2] | 0; if ((g2 + h2 | 0) < (f2 | 0)) { f2 = f2 - (ia(k[w2 >> 2] | 0, m2) | 0) | 0; d2 = g2; } else d2 = g2; } else { f2 = (ia(k[w2 >> 2] | 0, m2) | 0) + f2 | 0; d2 = k[r2 >> 2] | 0; } if ((f2 & d2 | 0) != (f2 | 0)) f2 = d2 & ~(f2 >> 31); e2 = f2 & 255; f2 = (ia(ia(m2, q2) | 0, u2) | 0) + t2 | 0; if ((f2 | 0) >= (c2 | 0)) { if ((d2 + h2 | 0) < (f2 | 0)) f2 = f2 - (ia(k[w2 >> 2] | 0, m2) | 0) | 0; } else f2 = (ia(k[w2 >> 2] | 0, m2) | 0) + f2 | 0; if ((f2 & d2 | 0) != (f2 | 0)) f2 = d2 & ~(f2 >> 31); g2 = f2 & 255; f2 = (ia(ia(m2, n2) | 0, s2) | 0) + v2 | 0; if ((f2 | 0) >= (c2 | 0)) { if ((d2 + h2 | 0) < (f2 | 0)) f2 = f2 - (ia(k[w2 >> 2] | 0, m2) | 0) | 0; } else f2 = (ia(k[w2 >> 2] | 0, m2) | 0) + f2 | 0; if ((f2 & d2 | 0) == (f2 | 0)) { w2 = f2; w2 = w2 & 255; i2[a2 >> 0] = e2; v2 = a2 + 1 | 0; i2[v2 >> 0] = g2; a2 = a2 + 2 | 0; i2[a2 >> 0] = w2; return; } w2 = d2 & ~(f2 >> 31); w2 = w2 & 255; i2[a2 >> 0] = e2; v2 = a2 + 1 | 0; i2[v2 >> 0] = g2; a2 = a2 + 2 | 0; i2[a2 >> 0] = w2; return; } function yf(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; n2 = b2 + 9 | 0; g2 = l[n2 >> 0] | 0; m2 = b2 + 4 | 0; j2 = k[m2 >> 2] | 0; e2 = (ia(g2 >>> 1, j2) | 0) + (k[b2 >> 2] | 0) | 0; if ((g2 | 0) < (e2 | 0)) { f2 = g2; d2 = 0; do { f2 = f2 << 1; d2 = d2 + 1 | 0; } while ((f2 | 0) < (e2 | 0)); e2 = d2; } else e2 = 0; if ((c2 | 0) > 0 & (e2 | 0) == 0 ? l[b2 + 10 >> 0] << 1 >>> 0 < g2 >>> 0 : 0) d2 = 1; else h2 = 5; do if ((h2 | 0) == 5) { d2 = (c2 | 0) < 0; if (d2 ? l[b2 + 10 >> 0] << 1 >>> 0 >= g2 >>> 0 : 0) { d2 = 1; break; } d2 = d2 & (e2 | 0) != 0; } while (0); d2 = (((c2 | 0) > -1 ? c2 : 0 - c2 | 0) << 1) - j2 + (d2 << 31 >> 31) | 0; wf(a2, e2, d2, (k[a2 + 156 >> 2] | 0) + -1 - (k[36476 + (k[a2 + 4600 >> 2] << 2) >> 2] | 0) | 0); if ((c2 | 0) < 0) { a2 = b2 + 10 | 0; i2[a2 >> 0] = (l[a2 >> 0] | 0) + 1; } d2 = (d2 + 1 - (k[m2 >> 2] | 0) >> 1) + (k[b2 >> 2] | 0) | 0; k[b2 >> 2] = d2; e2 = i2[n2 >> 0] | 0; if (e2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { b2 = e2; b2 = b2 & 255; b2 = b2 + 1 | 0; b2 = b2 & 255; i2[n2 >> 0] = b2; return; } k[b2 >> 2] = d2 >> 1; a2 = (e2 & 255) >>> 1; i2[n2 >> 0] = a2; b2 = b2 + 10 | 0; i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; b2 = a2; b2 = b2 & 255; b2 = b2 + 1 | 0; b2 = b2 & 255; i2[n2 >> 0] = b2; return; } function zf(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; o2 = r; r = r + 32 | 0; d2 = o2; n2 = a2 + 144 | 0; a: do if (!(k[n2 >> 2] | 0)) { c2 = k[a2 + 136 >> 2] | 0; b2 = a2 + 152 | 0; if ((((c2 | 0) == ((1 << k[b2 >> 2]) + -1 | 0) ? (Oi(d2, c2, 0), (k[d2 + 4 >> 2] | 0) == (k[a2 + 184 >> 2] | 0)) : 0) ? (k[d2 + 8 >> 2] | 0) == (k[a2 + 188 >> 2] | 0) : 0) ? (k[d2 + 12 >> 2] | 0) == (k[a2 + 192 >> 2] | 0) : 0) switch (k[b2 >> 2] | 0) { case 8: { n2 = k[8900] | 0; k[a2 + 4612 >> 2] = n2 + (((k[8901] | 0) - n2 | 0) >>> 1); r = o2; return; } case 10: { n2 = k[8903] | 0; k[a2 + 4612 >> 2] = n2 + (((k[8904] | 0) - n2 | 0) >>> 1); r = o2; return; } case 12: { n2 = k[8906] | 0; k[a2 + 4612 >> 2] = n2 + (((k[8907] | 0) - n2 | 0) >>> 1); r = o2; return; } case 16: { n2 = k[8909] | 0; k[a2 + 4612 >> 2] = n2 + (((k[8910] | 0) - n2 | 0) >>> 1); r = o2; return; } default: break a; } } else b2 = a2 + 152 | 0; while (0); m2 = 1 << k[b2 >> 2]; c2 = a2 + 4616 | 0; d2 = m2 << 1; e2 = a2 + 4620 | 0; f2 = k[e2 >> 2] | 0; b2 = k[c2 >> 2] | 0; g2 = f2 - b2 | 0; if (d2 >>> 0 <= g2 >>> 0) { if (d2 >>> 0 < g2 >>> 0 ? (h2 = b2 + d2 | 0, (f2 | 0) != (h2 | 0)) : 0) k[e2 >> 2] = h2; } else { se(c2, d2 - g2 | 0); b2 = k[c2 >> 2] | 0; } l2 = a2 + 4612 | 0; k[l2 >> 2] = b2 + m2; b2 = 0 - m2 | 0; if ((m2 | 0) <= (b2 | 0)) { r = o2; return; } h2 = a2 + 192 | 0; j2 = a2 + 188 | 0; g2 = a2 + 184 | 0; f2 = b2; do { b2 = k[h2 >> 2] | 0; if ((f2 | 0) > (0 - b2 | 0)) { c2 = k[j2 >> 2] | 0; if ((f2 | 0) > (0 - c2 | 0)) { d2 = k[g2 >> 2] | 0; if ((f2 | 0) > (0 - d2 | 0)) { e2 = k[n2 >> 2] | 0; if ((f2 | 0) >= (0 - e2 | 0)) if ((e2 | 0) < (f2 | 0)) if ((d2 | 0) <= (f2 | 0)) if ((c2 | 0) > (f2 | 0)) b2 = 2; else b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; else b2 = 1; else b2 = 0; else b2 = -1; } else b2 = -2; } else b2 = -3; } else b2 = -4; i2[(k[l2 >> 2] | 0) + f2 >> 0] = b2; f2 = f2 + 1 | 0; } while ((f2 | 0) != (m2 | 0)); r = o2; return; } function Af(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 35996; b2 = k[a2 + 4592 >> 2] | 0; if (b2) { c2 = a2 + 4596 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36612; b2 = k[a2 + 120 >> 2] | 0; if (b2) { c2 = a2 + 124 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = a2 + 92 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); a2 = a2 + 4 | 0; b2 = k[a2 >> 2] | 0; k[a2 >> 2] = 0; if (!b2) return; Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); return; } function Bf(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 35996; b2 = k[a2 + 4592 >> 2] | 0; if (b2) { c2 = a2 + 4596 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36612; b2 = k[a2 + 120 >> 2] | 0; if (b2) { c2 = a2 + 124 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = a2 + 92 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); c2 = a2 + 4 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (!b2) { mj(a2); return; } Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); mj(a2); return; } function Cf(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; e2 = r; r = r + 32 | 0; h2 = e2; Oi(h2, 65535, 0); g2 = k[b2 + 4 >> 2] | 0; f2 = k[b2 + 8 >> 2] | 0; f2 = (f2 | 0) == 0 ? k[h2 + 8 >> 2] | 0 : f2; d2 = k[b2 + 12 >> 2] | 0; d2 = (d2 | 0) == 0 ? k[h2 + 12 >> 2] | 0 : d2; b2 = k[b2 + 16 >> 2] | 0; c2 = k[h2 + 16 >> 2] | 0; k[a2 + 160 >> 2] = (g2 | 0) == 0 ? k[h2 + 4 >> 2] | 0 : g2; k[a2 + 164 >> 2] = f2; k[a2 + 168 >> 2] = d2; Lf(a2); d2 = 0; do { k[a2 + 172 + (d2 * 12 | 0) >> 2] = 1024; k[a2 + 172 + (d2 * 12 | 0) + 4 >> 2] = 0; j[a2 + 172 + (d2 * 12 | 0) + 8 >> 1] = 0; j[a2 + 172 + (d2 * 12 | 0) + 10 >> 1] = 1; d2 = d2 + 1 | 0; } while ((d2 | 0) != 365); h2 = ((b2 | 0) == 0 ? c2 : b2) & 255; k[a2 + 4552 >> 2] = 1024; k[a2 + 4556 >> 2] = 0; i2[a2 + 4560 >> 0] = h2; i2[a2 + 4561 >> 0] = 1; i2[a2 + 4562 >> 0] = 0; k[a2 + 4564 >> 2] = 1024; k[a2 + 4568 >> 2] = 1; i2[a2 + 4572 >> 0] = h2; i2[a2 + 4573 >> 0] = 1; i2[a2 + 4574 >> 0] = 0; k[a2 + 4576 >> 2] = 0; r = e2; return; } function Df(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; n2 = r; r = r + 16 | 0; l2 = n2; h2 = a2 + 92 | 0; g2 = k[b2 >> 2] | 0; k[b2 >> 2] = 0; b2 = k[h2 >> 2] | 0; k[h2 >> 2] = g2; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); k[l2 >> 2] = 0; k[l2 + 4 >> 2] = d2; h2 = c2 + 8 | 0; k[l2 + 8 >> 2] = k[h2 >> 2]; if (d2) { b2 = lj(4600) | 0; d2 = a2 + 8 | 0; e2 = b2 + 4 | 0; f2 = d2; g2 = e2 + 84 | 0; do { k[e2 >> 2] = k[f2 >> 2]; e2 = e2 + 4 | 0; f2 = f2 + 4 | 0; } while ((e2 | 0) < (g2 | 0)); e2 = b2 + 88 | 0; g2 = e2 + 40 | 0; do { k[e2 >> 2] = 0; e2 = e2 + 4 | 0; } while ((e2 | 0) < (g2 | 0)); k[b2 >> 2] = 35772; e2 = b2 + 132 | 0; k[e2 >> 2] = 0; k[e2 + 4 >> 2] = 0; k[e2 + 8 >> 2] = 0; k[e2 + 12 >> 2] = 0; k[b2 + 148 >> 2] = k[d2 >> 2]; k[b2 + 152 >> 2] = 0; k[b2 + 156 >> 2] = 0; k[b2 + 160 >> 2] = 0; e2 = b2 + 4544 | 0; d2 = b2 + 164 | 0; do { k[d2 >> 2] = 0; k[d2 + 4 >> 2] = 0; j[d2 + 8 >> 1] = 0; j[d2 + 10 >> 1] = 1; d2 = d2 + 12 | 0; } while ((d2 | 0) != (e2 | 0)); f2 = a2 + 4 | 0; k[e2 >> 2] = 0; k[e2 + 4 >> 2] = 0; j[e2 + 8 >> 1] = 0; i2[e2 + 10 >> 0] = 0; g2 = b2 + 4556 | 0; k[g2 >> 2] = 0; k[g2 + 4 >> 2] = 0; j[g2 + 8 >> 1] = 0; i2[g2 + 10 >> 0] = 0; g2 = b2 + 4568 | 0; k[g2 >> 2] = 0; k[g2 + 4 >> 2] = 0; k[g2 + 8 >> 2] = 0; k[g2 + 12 >> 2] = 0; k[g2 + 16 >> 2] = 0; k[g2 + 20 >> 2] = 0; k[g2 + 24 >> 2] = 0; i2[g2 + 28 >> 0] = 0; if (!(k[b2 + 28 >> 2] | 0)) k[b2 + 20 >> 2] = 1; d2 = k[f2 >> 2] | 0; k[f2 >> 2] = b2; if (d2) { Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); b2 = k[f2 >> 2] | 0; } ee(b2, l2); } l2 = a2 + 100 | 0; k[l2 >> 2] = 32; k[a2 + 96 >> 2] = 0; b2 = k[c2 >> 2] | 0; if (!b2) { k[a2 + 108 >> 2] = k[c2 + 4 >> 2]; k[a2 + 104 >> 2] = k[h2 >> 2]; Ff(a2); m2 = a2 + 116 | 0; m2 = k[m2 >> 2] | 0; a2 = k[l2 >> 2] | 0; a2 = a2 + -32 | 0; a2 = (a2 | 0) / 8 | 0; a2 = m2 - a2 | 0; r = n2; return a2 | 0; } k[a2 + 132 >> 2] = b2; e2 = a2 + 120 | 0; h2 = a2 + 124 | 0; d2 = k[h2 >> 2] | 0; b2 = k[e2 >> 2] | 0; f2 = b2; g2 = d2 - f2 | 0; if (g2 >>> 0 >= 4e3) { if (g2 >>> 0 > 4e3 ? (m2 = b2 + 4e3 | 0, (d2 | 0) != (m2 | 0)) : 0) { k[h2 >> 2] = m2; d2 = m2; } } else { fe(e2, 4e3 - g2 | 0); b2 = k[e2 >> 2] | 0; f2 = b2; d2 = k[h2 >> 2] | 0; } k[a2 + 108 >> 2] = f2; k[a2 + 104 >> 2] = d2 - b2; Ff(a2); m2 = a2 + 116 | 0; m2 = k[m2 >> 2] | 0; a2 = k[l2 >> 2] | 0; a2 = a2 + -32 | 0; a2 = (a2 | 0) / 8 | 0; a2 = m2 - a2 | 0; r = n2; return a2 | 0; } function Ef(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; u2 = r; r = r + 352 | 0; v2 = u2 + 328 | 0; y2 = u2 + 192 | 0; c2 = u2 + 343 | 0; d2 = u2 + 342 | 0; e2 = u2 + 341 | 0; f2 = u2 + 340 | 0; o2 = u2 + 176 | 0; h2 = u2 + 168 | 0; j2 = u2 + 160 | 0; l2 = u2 + 152 | 0; t2 = u2; q2 = u2 + 136 | 0; if ((k[a2 + 32 >> 2] | 0) != 0 ? (k[a2 + 24 >> 2] | 0) != 1 : 0) { p2 = a2 + 8 | 0; s2 = a2 + 36 | 0; g2 = k[s2 >> 2] | 0; if (!g2) { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[c2 >> 0] | 0; Ja(37, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } a2 = k[a2 + 16 >> 2] | 0; if ((a2 | 0) == 16) switch (g2 | 0) { case 1: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[d2 >> 0] | 0; Ja(38, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[e2 >> 0] | 0; Ja(39, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[f2 >> 0] | 0; Ja(40, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = y2 + 56 | 0; e2 = y2 + 4 | 0; k[y2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, y2 + 56 | 0, e2 | 0); u2 = x; x = 0; if (u2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[y2 + 128 >> 2] = 0; k[y2 + 132 >> 2] = -1; k[y2 >> 2] = 36200; k[y2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); u2 = x; x = 0; do if (u2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = y2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[y2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); u2 = x; x = 0; if (u2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, y2 | 0, 49007, 21) | 0; v2 = x; x = 0; do if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, o2 | 0, e2 | 0); v2 = x; x = 0; if (!(v2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, o2 | 0); v2 = x; x = 0; if (v2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(o2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 34; while (0); if ((z2 | 0) == 34) a2 = Wa() | 0; k[y2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } if ((a2 | 0) <= 8) { a2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, a2 | 0, 8, 35648); z2 = x; x = 0; if (!(z2 & 1)) ub(a2 | 0, 824, 96); z2 = Wa() | 0; Ua(a2 | 0); fb(z2 | 0); } c2 = 16 - a2 | 0; switch (g2 | 0) { case 1: { a2 = lj(60) | 0; k[h2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[h2 >> 2]; k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(60) | 0; k[j2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[j2 >> 2]; k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(60) | 0; k[l2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[l2 >> 2]; k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = t2 + 56 | 0; e2 = t2 + 4 | 0; k[t2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, t2 + 56 | 0, e2 | 0); y2 = x; x = 0; if (y2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[t2 + 128 >> 2] = 0; k[t2 + 132 >> 2] = -1; k[t2 >> 2] = 36200; k[t2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); y2 = x; x = 0; do if (y2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = t2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[t2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); y2 = x; x = 0; if (y2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, t2 | 0, 49007, 21) | 0; y2 = x; x = 0; do if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, q2 | 0, e2 | 0); y2 = x; x = 0; if (!(y2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, q2 | 0); y2 = x; x = 0; if (y2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(q2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 64; while (0); if ((z2 | 0) == 64) a2 = Wa() | 0; k[t2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } } c2 = k[b2 + 4 >> 2] | 0; d2 = lj(16) | 0; a2 = k[a2 + 20 >> 2] | 0; if (!c2) { z2 = k[b2 >> 2] | 0; k[d2 >> 2] = 36132; k[d2 + 4 >> 2] = z2; k[d2 + 8 >> 2] = 2; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } else { k[d2 >> 2] = 36108; k[d2 + 4 >> 2] = c2; k[d2 + 8 >> 2] = 2; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } return 0; } function Ff(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0; u2 = r; r = r + 32 | 0; w2 = u2 + 12 | 0; t2 = u2; p2 = a2 + 156 | 0; q2 = (k[p2 >> 2] | 0) + 4 | 0; if ((k[a2 + 32 >> 2] | 0) == 1) s2 = k[a2 + 24 >> 2] | 0; else s2 = 1; b2 = ia(s2 << 1, q2) | 0; k[w2 >> 2] = 0; y2 = w2 + 4 | 0; k[y2 >> 2] = 0; k[w2 + 8 >> 2] = 0; do if (b2) { if (!((b2 | 0) < 0 ? (x = 0, qa(178, w2 | 0), v2 = x, x = 0, v2 & 1) : 0)) g2 = 6; if ((g2 | 0) == 6 ? (c2 = b2 << 1, x = 0, d2 = ta(67, c2 | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { k[w2 >> 2] = d2; v2 = d2 + (b2 << 1) | 0; k[w2 + 8 >> 2] = v2; sw(d2 | 0, 0, c2 | 0) | 0; k[y2 >> 2] = v2; break; } d2 = Wa() | 0; b2 = k[w2 >> 2] | 0; if (!b2) fb(d2 | 0); c2 = k[y2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[y2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); mj(b2); fb(d2 | 0); } while (0); k[t2 >> 2] = 0; v2 = t2 + 4 | 0; k[v2 >> 2] = 0; k[t2 + 8 >> 2] = 0; do if (!s2) g2 = 18; else { if (!(s2 >>> 0 > 1073741823 ? (x = 0, qa(178, t2 | 0), o2 = x, x = 0, o2 & 1) : 0)) g2 = 16; if ((g2 | 0) == 16 ? (e2 = s2 << 2, x = 0, f2 = ta(67, e2 | 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { k[t2 >> 2] = f2; g2 = f2 + (s2 << 2) | 0; k[t2 + 8 >> 2] = g2; sw(f2 | 0, 0, e2 | 0) | 0; k[v2 >> 2] = g2; g2 = 18; break; } d2 = Wa() | 0; b2 = k[t2 >> 2] | 0; c2 = b2; if (b2) { e2 = k[v2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[v2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } } while (0); if ((g2 | 0) == 18) { f2 = a2 + 12 | 0; a: do if ((k[f2 >> 2] | 0) > 0) { g2 = a2 + 4580 | 0; h2 = (ia(s2, q2) | 0) + 1 | 0; i3 = a2 + 4584 | 0; l2 = a2 + 92 | 0; m2 = (s2 | 0) > 0; n2 = a2 + 4576 | 0; o2 = 0; b: while (1) { c2 = k[w2 >> 2] | 0; b2 = c2 + 2 | 0; k[g2 >> 2] = b2; c2 = c2 + (h2 << 1) | 0; k[i3 >> 2] = c2; if (!(o2 & 1)) b2 = c2; else { k[g2 >> 2] = c2; k[i3 >> 2] = b2; } e2 = k[l2 >> 2] | 0; x = 0; Ja(k[(k[e2 >> 2] | 0) + 12 >> 2] | 0, e2 | 0, b2 | 0, k[p2 >> 2] | 0, q2 | 0); e2 = x; x = 0; if (e2 & 1) { g2 = 28; break; } if (m2) { b2 = k[g2 >> 2] | 0; c2 = k[i3 >> 2] | 0; d2 = k[t2 >> 2] | 0; e2 = 0; do { k[n2 >> 2] = k[d2 + (e2 << 2) >> 2]; d2 = k[p2 >> 2] | 0; j[b2 + (d2 << 1) >> 1] = j[b2 + (d2 + -1 << 1) >> 1] | 0; j[c2 + -2 >> 1] = j[b2 >> 1] | 0; x = 0; ra(71, a2 | 0, 0); d2 = x; x = 0; if (d2 & 1) { g2 = 27; break b; } d2 = k[t2 >> 2] | 0; k[d2 + (e2 << 2) >> 2] = k[n2 >> 2]; b2 = (k[g2 >> 2] | 0) + (q2 << 1) | 0; k[g2 >> 2] = b2; c2 = (k[i3 >> 2] | 0) + (q2 << 1) | 0; k[i3 >> 2] = c2; e2 = e2 + 1 | 0; } while ((e2 | 0) < (s2 | 0)); } o2 = o2 + 1 | 0; if ((o2 | 0) >= (k[f2 >> 2] | 0)) { g2 = 40; break a; } } if ((g2 | 0) == 27) { d2 = Wa() | 0; break; } else if ((g2 | 0) == 28) { d2 = Wa() | 0; break; } } else g2 = 40; while (0); do if ((g2 | 0) == 40) { x = 0; qa(182, a2 | 0); a2 = x; x = 0; if (a2 & 1) { d2 = Wa() | 0; break; } b2 = k[t2 >> 2] | 0; c2 = b2; if (b2) { d2 = k[v2 >> 2] | 0; if ((d2 | 0) != (b2 | 0)) k[v2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } b2 = k[w2 >> 2] | 0; if (!b2) { r = u2; return; } c2 = k[y2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[y2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); mj(b2); r = u2; return; } while (0); b2 = k[t2 >> 2] | 0; c2 = b2; if (b2) { e2 = k[v2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[v2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } } b2 = k[w2 >> 2] | 0; if (!b2) fb(d2 | 0); c2 = k[y2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[y2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); mj(b2); fb(d2 | 0); } function Gf(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0; p2 = a2 + 4580 | 0; b2 = k[p2 >> 2] | 0; s2 = a2 + 156 | 0; if ((k[s2 >> 2] | 0) <= 0) return; q2 = a2 + 4584 | 0; r2 = a2 + 4588 | 0; e2 = b2; f2 = m[b2 + -2 >> 1] | 0; b2 = m[b2 >> 1] | 0; o2 = 0; while (1) { n2 = k[q2 >> 2] | 0; l2 = m[n2 + (o2 + -1 << 1) >> 1] | 0; d2 = o2 + 1 | 0; c2 = m[e2 + (d2 << 1) >> 1] | 0; h2 = k[r2 >> 2] | 0; g2 = b2 - f2 | 0; e2 = f2 - l2 | 0; h2 = ((((i2[h2 + (c2 - b2) >> 0] | 0) * 9 | 0) + (i2[h2 + g2 >> 0] | 0) | 0) * 9 | 0) + (i2[h2 + e2 >> 0] | 0) | 0; if (!h2) { d2 = (If(a2, o2, 0) | 0) + o2 | 0; c2 = k[p2 >> 2] | 0; b2 = m[c2 + (d2 + -1 << 1) >> 1] | 0; c2 = m[c2 + (d2 << 1) >> 1] | 0; } else { f2 = b2 - l2 >> 31; if ((f2 ^ e2 | 0) < 0) e2 = b2; else e2 = l2 + ((f2 ^ g2 | 0) < 0 ? 0 : g2) | 0; n2 = Hf(a2, h2, m[n2 + (o2 << 1) >> 1] | 0, e2, 0) | 0; j[(k[q2 >> 2] | 0) + (o2 << 1) >> 1] = n2; } if ((d2 | 0) >= (k[s2 >> 2] | 0)) break; e2 = k[p2 >> 2] | 0; f2 = b2; b2 = c2; o2 = d2; } return; } function Hf(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; q2 = b2 >> 31; i3 = (q2 ^ b2) - q2 | 0; p2 = a2 + 172 + (i3 * 12 | 0) + 10 | 0; g2 = j[p2 >> 1] | 0; o2 = a2 + 172 + (i3 * 12 | 0) | 0; e2 = k[o2 >> 2] | 0; if ((g2 | 0) < (e2 | 0)) if ((g2 << 1 | 0) < (e2 | 0)) if ((g2 << 2 | 0) < (e2 | 0)) if ((g2 << 3 | 0) < (e2 | 0)) if ((g2 << 4 | 0) < (e2 | 0)) { f2 = 5; while (1) if ((g2 << f2 | 0) < (e2 | 0)) f2 = f2 + 1 | 0; else break; } else f2 = 4; else f2 = 3; else f2 = 2; else f2 = 1; else f2 = 0; n2 = a2 + 172 + (i3 * 12 | 0) + 8 | 0; e2 = (j[n2 >> 1] ^ q2) - q2 + d2 | 0; if ((e2 & 65535 | 0) == (e2 | 0)) m2 = e2; else m2 = e2 >> 31 & 65535 ^ 65535; h2 = (c2 - m2 ^ q2) - q2 << 16; l2 = h2 >> 16; if (!f2) e2 = (k[a2 + 172 + (i3 * 12 | 0) + 4 >> 2] << 1) + -1 + g2 >> 31; else e2 = 0; d2 = e2 ^ l2; d2 = d2 >> 30 ^ d2 << 1; e2 = d2 >> f2; if ((e2 | 0) < 47) { if ((e2 | 0) > 30) { g2 = (e2 | 0) / 2 | 0; ke(a2, 0, g2); e2 = e2 - g2 | 0; } ke(a2, 1, e2 + 1 | 0); ke(a2, d2 & (1 << f2) + -1, f2); } else { ke(a2, 0, 31); ke(a2, 1, 17); ke(a2, d2 + 65535 & 65535, 16); } d2 = a2 + 172 + (i3 * 12 | 0) + 4 | 0; g2 = j[p2 >> 1] | 0; e2 = g2 << 16 >> 16 == 64; f2 = e2 & 1; c2 = (k[d2 >> 2] | 0) + l2 >> f2; g2 = e2 ? 32 : g2 << 16 >> 16; k[o2 >> 2] = (k[o2 >> 2] | 0) + ((h2 | 0) > -65536 ? l2 : 0 - l2 | 0) >> f2; f2 = g2 + 1 | 0; j[p2 >> 1] = f2; e2 = f2 + c2 | 0; if ((e2 | 0) < 1) { p2 = j[n2 >> 1] | 0; j[n2 >> 1] = (p2 & 65535) - (p2 << 16 >> 16 > -128 & 1); p2 = (e2 | 0) > (~g2 | 0) ? e2 : 0 - g2 | 0; k[d2 >> 2] = p2; q2 = l2 ^ q2; b2 = b2 >>> 31; b2 = m2 + b2 | 0; b2 = b2 + q2 | 0; b2 = b2 & 65535; return b2 | 0; } if ((c2 | 0) <= 0) { p2 = c2; k[d2 >> 2] = p2; q2 = l2 ^ q2; b2 = b2 >>> 31; b2 = m2 + b2 | 0; b2 = b2 + q2 | 0; b2 = b2 & 65535; return b2 | 0; } p2 = c2 - f2 | 0; o2 = j[n2 >> 1] | 0; j[n2 >> 1] = (o2 << 16 >> 16 < 127 & 1) + (o2 & 65535); p2 = (p2 | 0) > 0 ? 0 : p2; k[d2 >> 2] = p2; q2 = l2 ^ q2; b2 = b2 >>> 31; b2 = m2 + b2 | 0; b2 = b2 + q2 | 0; b2 = b2 & 65535; return b2 | 0; } function If(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, n2 = 0; g2 = (k[a2 + 156 >> 2] | 0) - b2 | 0; h2 = k[a2 + 4584 >> 2] | 0; l2 = k[a2 + 4580 >> 2] | 0; e2 = j[h2 + (b2 + -1 << 1) >> 1] | 0; d2 = 0; while (1) { c2 = h2 + (d2 + b2 << 1) | 0; if ((j[c2 >> 1] | 0) != e2 << 16 >> 16) { n2 = d2; break; } j[c2 >> 1] = e2; d2 = d2 + 1 | 0; if ((d2 | 0) == (g2 | 0)) { n2 = g2; break; } } f2 = e2 & 65535; e2 = (n2 | 0) == (g2 | 0); i3 = a2 + 4576 | 0; d2 = k[36476 + (k[i3 >> 2] << 2) >> 2] | 0; if ((1 << d2 | 0) > (n2 | 0)) c2 = n2; else { c2 = n2; do { ke(a2, 1, 1); d2 = k[i3 >> 2] | 0; c2 = c2 - (1 << k[36476 + (d2 << 2) >> 2]) | 0; d2 = (d2 | 0) > 30 ? 31 : d2 + 1 | 0; k[i3 >> 2] = d2; d2 = k[36476 + (d2 << 2) >> 2] | 0; } while ((c2 | 0) >= (1 << d2 | 0)); } if (e2) { if (!c2) { a2 = g2; return a2 | 0; } ke(a2, 1, 1); a2 = g2; return a2 | 0; } ke(a2, c2, d2 + 1 | 0); c2 = n2 + b2 | 0; e2 = h2 + (c2 << 1) | 0; d2 = m[e2 >> 1] | 0; c2 = m[l2 + (c2 << 1) >> 1] | 0; l2 = f2 - c2 | 0; if ((((l2 | 0) > -1 ? l2 : 0 - l2 | 0) | 0) < 1) { c2 = d2 - f2 << 16 >> 16; Jf(a2, a2 + 4564 | 0, c2); c2 = c2 + f2 | 0; } else { l2 = c2 - f2 >> 31 | 1; b2 = (ia(d2 - c2 << 16, l2) | 0) >> 16; Jf(a2, a2 + 4552 | 0, b2); c2 = (ia(b2, l2) | 0) + c2 | 0; } j[e2 >> 1] = c2; a2 = k[i3 >> 2] | 0; k[i3 >> 2] = (a2 | 0) < 1 ? 0 : a2 + -1 | 0; a2 = n2 + 1 | 0; return a2 | 0; } function Jf(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; n2 = b2 + 9 | 0; g2 = l[n2 >> 0] | 0; m2 = b2 + 4 | 0; j2 = k[m2 >> 2] | 0; e2 = (ia(g2 >>> 1, j2) | 0) + (k[b2 >> 2] | 0) | 0; if ((g2 | 0) < (e2 | 0)) { f2 = g2; d2 = 0; do { f2 = f2 << 1; d2 = d2 + 1 | 0; } while ((f2 | 0) < (e2 | 0)); e2 = d2; } else e2 = 0; if ((c2 | 0) > 0 & (e2 | 0) == 0 ? l[b2 + 10 >> 0] << 1 >>> 0 < g2 >>> 0 : 0) d2 = 1; else h2 = 5; do if ((h2 | 0) == 5) { d2 = (c2 | 0) < 0; if (d2 ? l[b2 + 10 >> 0] << 1 >>> 0 >= g2 >>> 0 : 0) { d2 = 1; break; } d2 = d2 & (e2 | 0) != 0; } while (0); d2 = (((c2 | 0) > -1 ? c2 : 0 - c2 | 0) << 1) - j2 + (d2 << 31 >> 31) | 0; Kf(a2, e2, d2, 63 - (k[36476 + (k[a2 + 4576 >> 2] << 2) >> 2] | 0) | 0); if ((c2 | 0) < 0) { a2 = b2 + 10 | 0; i2[a2 >> 0] = (l[a2 >> 0] | 0) + 1; } d2 = (d2 + 1 - (k[m2 >> 2] | 0) >> 1) + (k[b2 >> 2] | 0) | 0; k[b2 >> 2] = d2; e2 = i2[n2 >> 0] | 0; if (e2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { b2 = e2; b2 = b2 & 255; b2 = b2 + 1 | 0; b2 = b2 & 255; i2[n2 >> 0] = b2; return; } k[b2 >> 2] = d2 >> 1; a2 = (e2 & 255) >>> 1; i2[n2 >> 0] = a2; b2 = b2 + 10 | 0; i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; b2 = a2; b2 = b2 & 255; b2 = b2 + 1 | 0; b2 = b2 & 255; i2[n2 >> 0] = b2; return; } function Kf(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0; e2 = c2 >> b2; f2 = d2 + -16 | 0; if ((e2 | 0) < (d2 + -17 | 0)) { if ((e2 | 0) > 30) { d2 = (e2 | 0) / 2 | 0; ke(a2, 0, d2); e2 = e2 - d2 | 0; } ke(a2, 1, e2 + 1 | 0); ke(a2, (1 << b2) + -1 & c2, b2); return; } if ((f2 | 0) > 31) { ke(a2, 0, 31); ke(a2, 1, d2 + -47 | 0); } else ke(a2, 1, f2); ke(a2, c2 + 65535 & 65535, 16); return; } function Lf(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; l2 = r; r = r + 32 | 0; h2 = l2; Oi(h2, 65535, 0); j2 = a2 + 160 | 0; if (((k[h2 + 4 >> 2] | 0) == (k[j2 >> 2] | 0) ? (k[h2 + 8 >> 2] | 0) == (k[a2 + 164 >> 2] | 0) : 0) ? (k[h2 + 12 >> 2] | 0) == (k[a2 + 168 >> 2] | 0) : 0) { j2 = k[8909] | 0; k[a2 + 4588 >> 2] = j2 + (((k[8910] | 0) - j2 | 0) >>> 1); r = l2; return; } c2 = a2 + 4592 | 0; d2 = a2 + 4596 | 0; e2 = k[d2 >> 2] | 0; b2 = k[c2 >> 2] | 0; f2 = e2 - b2 | 0; if (f2 >>> 0 >= 131072) { if (f2 >>> 0 > 131072 ? (g2 = b2 + 131072 | 0, (e2 | 0) != (g2 | 0)) : 0) k[d2 >> 2] = g2; } else { se(c2, 131072 - f2 | 0); b2 = k[c2 >> 2] | 0; } h2 = a2 + 4588 | 0; k[h2 >> 2] = b2 + 65536; g2 = a2 + 168 | 0; e2 = a2 + 164 | 0; f2 = -65536; while (1) { b2 = k[g2 >> 2] | 0; if ((f2 | 0) > (0 - b2 | 0)) { c2 = k[e2 >> 2] | 0; if ((f2 | 0) > (0 - c2 | 0)) { d2 = k[j2 >> 2] | 0; if ((f2 | 0) > (0 - d2 | 0)) if ((f2 | 0) >= 0) { if ((f2 | 0) < 1) { i2[(k[h2 >> 2] | 0) + f2 >> 0] = 0; f2 = 1; continue; } if ((d2 | 0) <= (f2 | 0)) if ((c2 | 0) > (f2 | 0)) b2 = 2; else b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; else b2 = 1; } else b2 = -1; else b2 = -2; } else b2 = -3; } else b2 = -4; i2[(k[h2 >> 2] | 0) + f2 >> 0] = b2; f2 = f2 + 1 | 0; if ((f2 | 0) == 65536) break; } r = l2; return; } function Mf(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 35968; b2 = k[a2 + 4592 >> 2] | 0; if (b2) { c2 = a2 + 4596 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36612; b2 = k[a2 + 120 >> 2] | 0; if (b2) { c2 = a2 + 124 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = a2 + 92 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); a2 = a2 + 4 | 0; b2 = k[a2 >> 2] | 0; k[a2 >> 2] = 0; if (!b2) return; Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); return; } function Nf(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 35968; b2 = k[a2 + 4592 >> 2] | 0; if (b2) { c2 = a2 + 4596 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36612; b2 = k[a2 + 120 >> 2] | 0; if (b2) { c2 = a2 + 124 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = a2 + 92 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); c2 = a2 + 4 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (!b2) { mj(a2); return; } Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); mj(a2); return; } function Of(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; e2 = r; r = r + 32 | 0; h2 = e2; Oi(h2, 4095, 0); g2 = k[b2 + 4 >> 2] | 0; f2 = k[b2 + 8 >> 2] | 0; f2 = (f2 | 0) == 0 ? k[h2 + 8 >> 2] | 0 : f2; d2 = k[b2 + 12 >> 2] | 0; d2 = (d2 | 0) == 0 ? k[h2 + 12 >> 2] | 0 : d2; b2 = k[b2 + 16 >> 2] | 0; c2 = k[h2 + 16 >> 2] | 0; k[a2 + 160 >> 2] = (g2 | 0) == 0 ? k[h2 + 4 >> 2] | 0 : g2; k[a2 + 164 >> 2] = f2; k[a2 + 168 >> 2] = d2; Xf(a2); d2 = 0; do { k[a2 + 172 + (d2 * 12 | 0) >> 2] = 64; k[a2 + 172 + (d2 * 12 | 0) + 4 >> 2] = 0; j[a2 + 172 + (d2 * 12 | 0) + 8 >> 1] = 0; j[a2 + 172 + (d2 * 12 | 0) + 10 >> 1] = 1; d2 = d2 + 1 | 0; } while ((d2 | 0) != 365); h2 = ((b2 | 0) == 0 ? c2 : b2) & 255; k[a2 + 4552 >> 2] = 64; k[a2 + 4556 >> 2] = 0; i2[a2 + 4560 >> 0] = h2; i2[a2 + 4561 >> 0] = 1; i2[a2 + 4562 >> 0] = 0; k[a2 + 4564 >> 2] = 64; k[a2 + 4568 >> 2] = 1; i2[a2 + 4572 >> 0] = h2; i2[a2 + 4573 >> 0] = 1; i2[a2 + 4574 >> 0] = 0; k[a2 + 4576 >> 2] = 0; r = e2; return; } function Pf(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; n2 = r; r = r + 16 | 0; l2 = n2; h2 = a2 + 92 | 0; g2 = k[b2 >> 2] | 0; k[b2 >> 2] = 0; b2 = k[h2 >> 2] | 0; k[h2 >> 2] = g2; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); k[l2 >> 2] = 0; k[l2 + 4 >> 2] = d2; h2 = c2 + 8 | 0; k[l2 + 8 >> 2] = k[h2 >> 2]; if (d2) { b2 = lj(4600) | 0; d2 = a2 + 8 | 0; e2 = b2 + 4 | 0; f2 = d2; g2 = e2 + 84 | 0; do { k[e2 >> 2] = k[f2 >> 2]; e2 = e2 + 4 | 0; f2 = f2 + 4 | 0; } while ((e2 | 0) < (g2 | 0)); e2 = b2 + 88 | 0; g2 = e2 + 40 | 0; do { k[e2 >> 2] = 0; e2 = e2 + 4 | 0; } while ((e2 | 0) < (g2 | 0)); k[b2 >> 2] = 35744; e2 = b2 + 132 | 0; k[e2 >> 2] = 0; k[e2 + 4 >> 2] = 0; k[e2 + 8 >> 2] = 0; k[e2 + 12 >> 2] = 0; k[b2 + 148 >> 2] = k[d2 >> 2]; k[b2 + 152 >> 2] = 0; k[b2 + 156 >> 2] = 0; k[b2 + 160 >> 2] = 0; e2 = b2 + 4544 | 0; d2 = b2 + 164 | 0; do { k[d2 >> 2] = 0; k[d2 + 4 >> 2] = 0; j[d2 + 8 >> 1] = 0; j[d2 + 10 >> 1] = 1; d2 = d2 + 12 | 0; } while ((d2 | 0) != (e2 | 0)); f2 = a2 + 4 | 0; k[e2 >> 2] = 0; k[e2 + 4 >> 2] = 0; j[e2 + 8 >> 1] = 0; i2[e2 + 10 >> 0] = 0; g2 = b2 + 4556 | 0; k[g2 >> 2] = 0; k[g2 + 4 >> 2] = 0; j[g2 + 8 >> 1] = 0; i2[g2 + 10 >> 0] = 0; g2 = b2 + 4568 | 0; k[g2 >> 2] = 0; k[g2 + 4 >> 2] = 0; k[g2 + 8 >> 2] = 0; k[g2 + 12 >> 2] = 0; k[g2 + 16 >> 2] = 0; k[g2 + 20 >> 2] = 0; k[g2 + 24 >> 2] = 0; i2[g2 + 28 >> 0] = 0; if (!(k[b2 + 28 >> 2] | 0)) k[b2 + 20 >> 2] = 1; d2 = k[f2 >> 2] | 0; k[f2 >> 2] = b2; if (d2) { Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); b2 = k[f2 >> 2] | 0; } ee(b2, l2); } l2 = a2 + 100 | 0; k[l2 >> 2] = 32; k[a2 + 96 >> 2] = 0; b2 = k[c2 >> 2] | 0; if (!b2) { k[a2 + 108 >> 2] = k[c2 + 4 >> 2]; k[a2 + 104 >> 2] = k[h2 >> 2]; Rf(a2); m2 = a2 + 116 | 0; m2 = k[m2 >> 2] | 0; a2 = k[l2 >> 2] | 0; a2 = a2 + -32 | 0; a2 = (a2 | 0) / 8 | 0; a2 = m2 - a2 | 0; r = n2; return a2 | 0; } k[a2 + 132 >> 2] = b2; e2 = a2 + 120 | 0; h2 = a2 + 124 | 0; d2 = k[h2 >> 2] | 0; b2 = k[e2 >> 2] | 0; f2 = b2; g2 = d2 - f2 | 0; if (g2 >>> 0 >= 4e3) { if (g2 >>> 0 > 4e3 ? (m2 = b2 + 4e3 | 0, (d2 | 0) != (m2 | 0)) : 0) { k[h2 >> 2] = m2; d2 = m2; } } else { fe(e2, 4e3 - g2 | 0); b2 = k[e2 >> 2] | 0; f2 = b2; d2 = k[h2 >> 2] | 0; } k[a2 + 108 >> 2] = f2; k[a2 + 104 >> 2] = d2 - b2; Rf(a2); m2 = a2 + 116 | 0; m2 = k[m2 >> 2] | 0; a2 = k[l2 >> 2] | 0; a2 = a2 + -32 | 0; a2 = (a2 | 0) / 8 | 0; a2 = m2 - a2 | 0; r = n2; return a2 | 0; } function Qf(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; u2 = r; r = r + 352 | 0; v2 = u2 + 328 | 0; y2 = u2 + 192 | 0; c2 = u2 + 343 | 0; d2 = u2 + 342 | 0; e2 = u2 + 341 | 0; f2 = u2 + 340 | 0; o2 = u2 + 176 | 0; h2 = u2 + 168 | 0; j2 = u2 + 160 | 0; l2 = u2 + 152 | 0; t2 = u2; q2 = u2 + 136 | 0; if ((k[a2 + 32 >> 2] | 0) != 0 ? (k[a2 + 24 >> 2] | 0) != 1 : 0) { p2 = a2 + 8 | 0; s2 = a2 + 36 | 0; g2 = k[s2 >> 2] | 0; if (!g2) { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[c2 >> 0] | 0; Ja(37, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } a2 = k[a2 + 16 >> 2] | 0; if ((a2 | 0) == 16) switch (g2 | 0) { case 1: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[d2 >> 0] | 0; Ja(38, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[e2 >> 0] | 0; Ja(39, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[f2 >> 0] | 0; Ja(40, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = y2 + 56 | 0; e2 = y2 + 4 | 0; k[y2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, y2 + 56 | 0, e2 | 0); u2 = x; x = 0; if (u2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[y2 + 128 >> 2] = 0; k[y2 + 132 >> 2] = -1; k[y2 >> 2] = 36200; k[y2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); u2 = x; x = 0; do if (u2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = y2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[y2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); u2 = x; x = 0; if (u2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, y2 | 0, 49007, 21) | 0; v2 = x; x = 0; do if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, o2 | 0, e2 | 0); v2 = x; x = 0; if (!(v2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, o2 | 0); v2 = x; x = 0; if (v2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(o2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 34; while (0); if ((z2 | 0) == 34) a2 = Wa() | 0; k[y2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } if ((a2 | 0) <= 8) { a2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, a2 | 0, 8, 35648); z2 = x; x = 0; if (!(z2 & 1)) ub(a2 | 0, 824, 96); z2 = Wa() | 0; Ua(a2 | 0); fb(z2 | 0); } c2 = 16 - a2 | 0; switch (g2 | 0) { case 1: { a2 = lj(60) | 0; k[h2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[h2 >> 2]; k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(60) | 0; k[j2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[j2 >> 2]; k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(60) | 0; k[l2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[l2 >> 2]; k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = t2 + 56 | 0; e2 = t2 + 4 | 0; k[t2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, t2 + 56 | 0, e2 | 0); y2 = x; x = 0; if (y2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[t2 + 128 >> 2] = 0; k[t2 + 132 >> 2] = -1; k[t2 >> 2] = 36200; k[t2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); y2 = x; x = 0; do if (y2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = t2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[t2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); y2 = x; x = 0; if (y2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, t2 | 0, 49007, 21) | 0; y2 = x; x = 0; do if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, q2 | 0, e2 | 0); y2 = x; x = 0; if (!(y2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, q2 | 0); y2 = x; x = 0; if (y2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(q2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 64; while (0); if ((z2 | 0) == 64) a2 = Wa() | 0; k[t2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } } c2 = k[b2 + 4 >> 2] | 0; d2 = lj(16) | 0; a2 = k[a2 + 20 >> 2] | 0; if (!c2) { z2 = k[b2 >> 2] | 0; k[d2 >> 2] = 36132; k[d2 + 4 >> 2] = z2; k[d2 + 8 >> 2] = 2; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } else { k[d2 >> 2] = 36108; k[d2 + 4 >> 2] = c2; k[d2 + 8 >> 2] = 2; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } return 0; } function Rf(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0; u2 = r; r = r + 32 | 0; w2 = u2 + 12 | 0; t2 = u2; p2 = a2 + 156 | 0; q2 = (k[p2 >> 2] | 0) + 4 | 0; if ((k[a2 + 32 >> 2] | 0) == 1) s2 = k[a2 + 24 >> 2] | 0; else s2 = 1; b2 = ia(s2 << 1, q2) | 0; k[w2 >> 2] = 0; y2 = w2 + 4 | 0; k[y2 >> 2] = 0; k[w2 + 8 >> 2] = 0; do if (b2) { if (!((b2 | 0) < 0 ? (x = 0, qa(178, w2 | 0), v2 = x, x = 0, v2 & 1) : 0)) g2 = 6; if ((g2 | 0) == 6 ? (c2 = b2 << 1, x = 0, d2 = ta(67, c2 | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { k[w2 >> 2] = d2; v2 = d2 + (b2 << 1) | 0; k[w2 + 8 >> 2] = v2; sw(d2 | 0, 0, c2 | 0) | 0; k[y2 >> 2] = v2; break; } d2 = Wa() | 0; b2 = k[w2 >> 2] | 0; if (!b2) fb(d2 | 0); c2 = k[y2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[y2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); mj(b2); fb(d2 | 0); } while (0); k[t2 >> 2] = 0; v2 = t2 + 4 | 0; k[v2 >> 2] = 0; k[t2 + 8 >> 2] = 0; do if (!s2) g2 = 18; else { if (!(s2 >>> 0 > 1073741823 ? (x = 0, qa(178, t2 | 0), o2 = x, x = 0, o2 & 1) : 0)) g2 = 16; if ((g2 | 0) == 16 ? (e2 = s2 << 2, x = 0, f2 = ta(67, e2 | 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { k[t2 >> 2] = f2; g2 = f2 + (s2 << 2) | 0; k[t2 + 8 >> 2] = g2; sw(f2 | 0, 0, e2 | 0) | 0; k[v2 >> 2] = g2; g2 = 18; break; } d2 = Wa() | 0; b2 = k[t2 >> 2] | 0; c2 = b2; if (b2) { e2 = k[v2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[v2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } } while (0); if ((g2 | 0) == 18) { f2 = a2 + 12 | 0; a: do if ((k[f2 >> 2] | 0) > 0) { g2 = a2 + 4580 | 0; h2 = (ia(s2, q2) | 0) + 1 | 0; i3 = a2 + 4584 | 0; l2 = a2 + 92 | 0; m2 = (s2 | 0) > 0; n2 = a2 + 4576 | 0; o2 = 0; b: while (1) { c2 = k[w2 >> 2] | 0; b2 = c2 + 2 | 0; k[g2 >> 2] = b2; c2 = c2 + (h2 << 1) | 0; k[i3 >> 2] = c2; if (!(o2 & 1)) b2 = c2; else { k[g2 >> 2] = c2; k[i3 >> 2] = b2; } e2 = k[l2 >> 2] | 0; x = 0; Ja(k[(k[e2 >> 2] | 0) + 12 >> 2] | 0, e2 | 0, b2 | 0, k[p2 >> 2] | 0, q2 | 0); e2 = x; x = 0; if (e2 & 1) { g2 = 28; break; } if (m2) { b2 = k[g2 >> 2] | 0; c2 = k[i3 >> 2] | 0; d2 = k[t2 >> 2] | 0; e2 = 0; do { k[n2 >> 2] = k[d2 + (e2 << 2) >> 2]; d2 = k[p2 >> 2] | 0; j[b2 + (d2 << 1) >> 1] = j[b2 + (d2 + -1 << 1) >> 1] | 0; j[c2 + -2 >> 1] = j[b2 >> 1] | 0; x = 0; ra(72, a2 | 0, 0); d2 = x; x = 0; if (d2 & 1) { g2 = 27; break b; } d2 = k[t2 >> 2] | 0; k[d2 + (e2 << 2) >> 2] = k[n2 >> 2]; b2 = (k[g2 >> 2] | 0) + (q2 << 1) | 0; k[g2 >> 2] = b2; c2 = (k[i3 >> 2] | 0) + (q2 << 1) | 0; k[i3 >> 2] = c2; e2 = e2 + 1 | 0; } while ((e2 | 0) < (s2 | 0)); } o2 = o2 + 1 | 0; if ((o2 | 0) >= (k[f2 >> 2] | 0)) { g2 = 40; break a; } } if ((g2 | 0) == 27) { d2 = Wa() | 0; break; } else if ((g2 | 0) == 28) { d2 = Wa() | 0; break; } } else g2 = 40; while (0); do if ((g2 | 0) == 40) { x = 0; qa(182, a2 | 0); a2 = x; x = 0; if (a2 & 1) { d2 = Wa() | 0; break; } b2 = k[t2 >> 2] | 0; c2 = b2; if (b2) { d2 = k[v2 >> 2] | 0; if ((d2 | 0) != (b2 | 0)) k[v2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } b2 = k[w2 >> 2] | 0; if (!b2) { r = u2; return; } c2 = k[y2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[y2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); mj(b2); r = u2; return; } while (0); b2 = k[t2 >> 2] | 0; c2 = b2; if (b2) { e2 = k[v2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[v2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } } b2 = k[w2 >> 2] | 0; if (!b2) fb(d2 | 0); c2 = k[y2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[y2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); mj(b2); fb(d2 | 0); } function Sf(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0; p2 = a2 + 4580 | 0; b2 = k[p2 >> 2] | 0; s2 = a2 + 156 | 0; if ((k[s2 >> 2] | 0) <= 0) return; q2 = a2 + 4584 | 0; r2 = a2 + 4588 | 0; e2 = b2; f2 = m[b2 + -2 >> 1] | 0; b2 = m[b2 >> 1] | 0; o2 = 0; while (1) { n2 = k[q2 >> 2] | 0; l2 = m[n2 + (o2 + -1 << 1) >> 1] | 0; d2 = o2 + 1 | 0; c2 = m[e2 + (d2 << 1) >> 1] | 0; h2 = k[r2 >> 2] | 0; g2 = b2 - f2 | 0; e2 = f2 - l2 | 0; h2 = ((((i2[h2 + (c2 - b2) >> 0] | 0) * 9 | 0) + (i2[h2 + g2 >> 0] | 0) | 0) * 9 | 0) + (i2[h2 + e2 >> 0] | 0) | 0; if (!h2) { d2 = (Uf(a2, o2, 0) | 0) + o2 | 0; c2 = k[p2 >> 2] | 0; b2 = m[c2 + (d2 + -1 << 1) >> 1] | 0; c2 = m[c2 + (d2 << 1) >> 1] | 0; } else { f2 = b2 - l2 >> 31; if ((f2 ^ e2 | 0) < 0) e2 = b2; else e2 = l2 + ((f2 ^ g2 | 0) < 0 ? 0 : g2) | 0; n2 = Tf(a2, h2, m[n2 + (o2 << 1) >> 1] | 0, e2, 0) | 0; j[(k[q2 >> 2] | 0) + (o2 << 1) >> 1] = n2; } if ((d2 | 0) >= (k[s2 >> 2] | 0)) break; e2 = k[p2 >> 2] | 0; f2 = b2; b2 = c2; o2 = d2; } return; } function Tf(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; q2 = b2 >> 31; i3 = (q2 ^ b2) - q2 | 0; p2 = a2 + 172 + (i3 * 12 | 0) + 10 | 0; g2 = j[p2 >> 1] | 0; o2 = a2 + 172 + (i3 * 12 | 0) | 0; e2 = k[o2 >> 2] | 0; if ((g2 | 0) < (e2 | 0)) if ((g2 << 1 | 0) < (e2 | 0)) if ((g2 << 2 | 0) < (e2 | 0)) if ((g2 << 3 | 0) < (e2 | 0)) if ((g2 << 4 | 0) < (e2 | 0)) { f2 = 5; while (1) if ((g2 << f2 | 0) < (e2 | 0)) f2 = f2 + 1 | 0; else break; } else f2 = 4; else f2 = 3; else f2 = 2; else f2 = 1; else f2 = 0; n2 = a2 + 172 + (i3 * 12 | 0) + 8 | 0; e2 = (j[n2 >> 1] ^ q2) - q2 + d2 | 0; if ((e2 & 4095 | 0) == (e2 | 0)) m2 = e2; else m2 = e2 >> 31 & 4095 ^ 4095; h2 = (c2 - m2 ^ q2) - q2 << 20; l2 = h2 >> 20; if (!f2) e2 = (k[a2 + 172 + (i3 * 12 | 0) + 4 >> 2] << 1) + -1 + g2 >> 31; else e2 = 0; d2 = e2 ^ l2; d2 = d2 >> 30 ^ d2 << 1; e2 = d2 >> f2; if ((e2 | 0) < 35) { if ((e2 | 0) > 30) { g2 = (e2 | 0) / 2 | 0; ke(a2, 0, g2); e2 = e2 - g2 | 0; } ke(a2, 1, e2 + 1 | 0); ke(a2, d2 & (1 << f2) + -1, f2); } else { ke(a2, 0, 31); ke(a2, 1, 5); ke(a2, d2 + 4095 & 4095, 12); } d2 = a2 + 172 + (i3 * 12 | 0) + 4 | 0; g2 = j[p2 >> 1] | 0; e2 = g2 << 16 >> 16 == 64; f2 = e2 & 1; c2 = (k[d2 >> 2] | 0) + l2 >> f2; g2 = e2 ? 32 : g2 << 16 >> 16; k[o2 >> 2] = (k[o2 >> 2] | 0) + ((h2 | 0) > -1048576 ? l2 : 0 - l2 | 0) >> f2; f2 = g2 + 1 | 0; j[p2 >> 1] = f2; e2 = f2 + c2 | 0; if ((e2 | 0) < 1) { p2 = j[n2 >> 1] | 0; j[n2 >> 1] = (p2 & 65535) - (p2 << 16 >> 16 > -128 & 1); p2 = (e2 | 0) > (~g2 | 0) ? e2 : 0 - g2 | 0; k[d2 >> 2] = p2; q2 = l2 ^ q2; b2 = b2 >>> 31; b2 = m2 + b2 | 0; b2 = b2 + q2 | 0; b2 = b2 & 4095; b2 = b2 & 65535; return b2 | 0; } if ((c2 | 0) <= 0) { p2 = c2; k[d2 >> 2] = p2; q2 = l2 ^ q2; b2 = b2 >>> 31; b2 = m2 + b2 | 0; b2 = b2 + q2 | 0; b2 = b2 & 4095; b2 = b2 & 65535; return b2 | 0; } p2 = c2 - f2 | 0; o2 = j[n2 >> 1] | 0; j[n2 >> 1] = (o2 << 16 >> 16 < 127 & 1) + (o2 & 65535); p2 = (p2 | 0) > 0 ? 0 : p2; k[d2 >> 2] = p2; q2 = l2 ^ q2; b2 = b2 >>> 31; b2 = m2 + b2 | 0; b2 = b2 + q2 | 0; b2 = b2 & 4095; b2 = b2 & 65535; return b2 | 0; } function Uf(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, n2 = 0; g2 = (k[a2 + 156 >> 2] | 0) - b2 | 0; h2 = k[a2 + 4584 >> 2] | 0; l2 = k[a2 + 4580 >> 2] | 0; e2 = j[h2 + (b2 + -1 << 1) >> 1] | 0; d2 = 0; while (1) { c2 = h2 + (d2 + b2 << 1) | 0; if ((j[c2 >> 1] | 0) != e2 << 16 >> 16) { n2 = d2; break; } j[c2 >> 1] = e2; d2 = d2 + 1 | 0; if ((d2 | 0) == (g2 | 0)) { n2 = g2; break; } } f2 = e2 & 65535; e2 = (n2 | 0) == (g2 | 0); i3 = a2 + 4576 | 0; d2 = k[36476 + (k[i3 >> 2] << 2) >> 2] | 0; if ((1 << d2 | 0) > (n2 | 0)) c2 = n2; else { c2 = n2; do { ke(a2, 1, 1); d2 = k[i3 >> 2] | 0; c2 = c2 - (1 << k[36476 + (d2 << 2) >> 2]) | 0; d2 = (d2 | 0) > 30 ? 31 : d2 + 1 | 0; k[i3 >> 2] = d2; d2 = k[36476 + (d2 << 2) >> 2] | 0; } while ((c2 | 0) >= (1 << d2 | 0)); } if (e2) { if (!c2) { a2 = g2; return a2 | 0; } ke(a2, 1, 1); a2 = g2; return a2 | 0; } ke(a2, c2, d2 + 1 | 0); c2 = n2 + b2 | 0; e2 = h2 + (c2 << 1) | 0; d2 = m[e2 >> 1] | 0; c2 = m[l2 + (c2 << 1) >> 1] | 0; l2 = f2 - c2 | 0; if ((((l2 | 0) > -1 ? l2 : 0 - l2 | 0) | 0) < 1) { c2 = d2 - f2 << 20 >> 20; Vf(a2, a2 + 4564 | 0, c2); c2 = c2 + f2 | 0; } else { l2 = c2 - f2 >> 31 | 1; b2 = (ia(d2 - c2 << 20, l2) | 0) >> 20; Vf(a2, a2 + 4552 | 0, b2); c2 = (ia(b2, l2) | 0) + c2 | 0; } j[e2 >> 1] = c2 & 4095; a2 = k[i3 >> 2] | 0; k[i3 >> 2] = (a2 | 0) < 1 ? 0 : a2 + -1 | 0; a2 = n2 + 1 | 0; return a2 | 0; } function Vf(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; n2 = b2 + 9 | 0; g2 = l[n2 >> 0] | 0; m2 = b2 + 4 | 0; j2 = k[m2 >> 2] | 0; e2 = (ia(g2 >>> 1, j2) | 0) + (k[b2 >> 2] | 0) | 0; if ((g2 | 0) < (e2 | 0)) { f2 = g2; d2 = 0; do { f2 = f2 << 1; d2 = d2 + 1 | 0; } while ((f2 | 0) < (e2 | 0)); e2 = d2; } else e2 = 0; if ((c2 | 0) > 0 & (e2 | 0) == 0 ? l[b2 + 10 >> 0] << 1 >>> 0 < g2 >>> 0 : 0) d2 = 1; else h2 = 5; do if ((h2 | 0) == 5) { d2 = (c2 | 0) < 0; if (d2 ? l[b2 + 10 >> 0] << 1 >>> 0 >= g2 >>> 0 : 0) { d2 = 1; break; } d2 = d2 & (e2 | 0) != 0; } while (0); d2 = (((c2 | 0) > -1 ? c2 : 0 - c2 | 0) << 1) - j2 + (d2 << 31 >> 31) | 0; Wf(a2, e2, d2, 47 - (k[36476 + (k[a2 + 4576 >> 2] << 2) >> 2] | 0) | 0); if ((c2 | 0) < 0) { a2 = b2 + 10 | 0; i2[a2 >> 0] = (l[a2 >> 0] | 0) + 1; } d2 = (d2 + 1 - (k[m2 >> 2] | 0) >> 1) + (k[b2 >> 2] | 0) | 0; k[b2 >> 2] = d2; e2 = i2[n2 >> 0] | 0; if (e2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { b2 = e2; b2 = b2 & 255; b2 = b2 + 1 | 0; b2 = b2 & 255; i2[n2 >> 0] = b2; return; } k[b2 >> 2] = d2 >> 1; a2 = (e2 & 255) >>> 1; i2[n2 >> 0] = a2; b2 = b2 + 10 | 0; i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; b2 = a2; b2 = b2 & 255; b2 = b2 + 1 | 0; b2 = b2 & 255; i2[n2 >> 0] = b2; return; } function Wf(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0; e2 = c2 >> b2; f2 = d2 + -12 | 0; if ((e2 | 0) < (d2 + -13 | 0)) { if ((e2 | 0) > 30) { d2 = (e2 | 0) / 2 | 0; ke(a2, 0, d2); e2 = e2 - d2 | 0; } ke(a2, 1, e2 + 1 | 0); ke(a2, (1 << b2) + -1 & c2, b2); return; } if ((f2 | 0) > 31) { ke(a2, 0, 31); ke(a2, 1, d2 + -43 | 0); } else ke(a2, 1, f2); ke(a2, c2 + 4095 & 4095, 12); return; } function Xf(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; l2 = r; r = r + 32 | 0; h2 = l2; Oi(h2, 4095, 0); j2 = a2 + 160 | 0; if (((k[h2 + 4 >> 2] | 0) == (k[j2 >> 2] | 0) ? (k[h2 + 8 >> 2] | 0) == (k[a2 + 164 >> 2] | 0) : 0) ? (k[h2 + 12 >> 2] | 0) == (k[a2 + 168 >> 2] | 0) : 0) { j2 = k[8906] | 0; k[a2 + 4588 >> 2] = j2 + (((k[8907] | 0) - j2 | 0) >>> 1); r = l2; return; } c2 = a2 + 4592 | 0; d2 = a2 + 4596 | 0; e2 = k[d2 >> 2] | 0; b2 = k[c2 >> 2] | 0; f2 = e2 - b2 | 0; if (f2 >>> 0 >= 8192) { if (f2 >>> 0 > 8192 ? (g2 = b2 + 8192 | 0, (e2 | 0) != (g2 | 0)) : 0) k[d2 >> 2] = g2; } else { se(c2, 8192 - f2 | 0); b2 = k[c2 >> 2] | 0; } h2 = a2 + 4588 | 0; k[h2 >> 2] = b2 + 4096; g2 = a2 + 168 | 0; e2 = a2 + 164 | 0; f2 = -4096; while (1) { b2 = k[g2 >> 2] | 0; if ((f2 | 0) > (0 - b2 | 0)) { c2 = k[e2 >> 2] | 0; if ((f2 | 0) > (0 - c2 | 0)) { d2 = k[j2 >> 2] | 0; if ((f2 | 0) > (0 - d2 | 0)) if ((f2 | 0) >= 0) { if ((f2 | 0) < 1) { i2[(k[h2 >> 2] | 0) + f2 >> 0] = 0; f2 = 1; continue; } if ((d2 | 0) <= (f2 | 0)) if ((c2 | 0) > (f2 | 0)) b2 = 2; else b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; else b2 = 1; } else b2 = -1; else b2 = -2; } else b2 = -3; } else b2 = -4; i2[(k[h2 >> 2] | 0) + f2 >> 0] = b2; f2 = f2 + 1 | 0; if ((f2 | 0) == 4096) break; } r = l2; return; } function Yf(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 35940; b2 = k[a2 + 4592 >> 2] | 0; if (b2) { c2 = a2 + 4596 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36612; b2 = k[a2 + 120 >> 2] | 0; if (b2) { c2 = a2 + 124 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = a2 + 92 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); a2 = a2 + 4 | 0; b2 = k[a2 >> 2] | 0; k[a2 >> 2] = 0; if (!b2) return; Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); return; } function Zf(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 35940; b2 = k[a2 + 4592 >> 2] | 0; if (b2) { c2 = a2 + 4596 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36612; b2 = k[a2 + 120 >> 2] | 0; if (b2) { c2 = a2 + 124 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = a2 + 92 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); c2 = a2 + 4 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (!b2) { mj(a2); return; } Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); mj(a2); return; } function _f(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; e2 = r; r = r + 32 | 0; h2 = e2; Oi(h2, 255, 0); g2 = k[b2 + 4 >> 2] | 0; f2 = k[b2 + 8 >> 2] | 0; f2 = (f2 | 0) == 0 ? k[h2 + 8 >> 2] | 0 : f2; d2 = k[b2 + 12 >> 2] | 0; d2 = (d2 | 0) == 0 ? k[h2 + 12 >> 2] | 0 : d2; b2 = k[b2 + 16 >> 2] | 0; c2 = k[h2 + 16 >> 2] | 0; k[a2 + 160 >> 2] = (g2 | 0) == 0 ? k[h2 + 4 >> 2] | 0 : g2; k[a2 + 164 >> 2] = f2; k[a2 + 168 >> 2] = d2; hg(a2); d2 = 0; do { k[a2 + 172 + (d2 * 12 | 0) >> 2] = 4; k[a2 + 172 + (d2 * 12 | 0) + 4 >> 2] = 0; j[a2 + 172 + (d2 * 12 | 0) + 8 >> 1] = 0; j[a2 + 172 + (d2 * 12 | 0) + 10 >> 1] = 1; d2 = d2 + 1 | 0; } while ((d2 | 0) != 365); h2 = ((b2 | 0) == 0 ? c2 : b2) & 255; k[a2 + 4552 >> 2] = 4; k[a2 + 4556 >> 2] = 0; i2[a2 + 4560 >> 0] = h2; i2[a2 + 4561 >> 0] = 1; i2[a2 + 4562 >> 0] = 0; k[a2 + 4564 >> 2] = 4; k[a2 + 4568 >> 2] = 1; i2[a2 + 4572 >> 0] = h2; i2[a2 + 4573 >> 0] = 1; i2[a2 + 4574 >> 0] = 0; k[a2 + 4576 >> 2] = 0; r = e2; return; } function $f(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; n2 = r; r = r + 16 | 0; l2 = n2; h2 = a2 + 92 | 0; g2 = k[b2 >> 2] | 0; k[b2 >> 2] = 0; b2 = k[h2 >> 2] | 0; k[h2 >> 2] = g2; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); k[l2 >> 2] = 0; k[l2 + 4 >> 2] = d2; h2 = c2 + 8 | 0; k[l2 + 8 >> 2] = k[h2 >> 2]; if (d2) { b2 = lj(4600) | 0; d2 = a2 + 8 | 0; e2 = b2 + 4 | 0; f2 = d2; g2 = e2 + 84 | 0; do { k[e2 >> 2] = k[f2 >> 2]; e2 = e2 + 4 | 0; f2 = f2 + 4 | 0; } while ((e2 | 0) < (g2 | 0)); e2 = b2 + 88 | 0; g2 = e2 + 40 | 0; do { k[e2 >> 2] = 0; e2 = e2 + 4 | 0; } while ((e2 | 0) < (g2 | 0)); k[b2 >> 2] = 35716; e2 = b2 + 132 | 0; k[e2 >> 2] = 0; k[e2 + 4 >> 2] = 0; k[e2 + 8 >> 2] = 0; k[e2 + 12 >> 2] = 0; k[b2 + 148 >> 2] = k[d2 >> 2]; k[b2 + 152 >> 2] = 0; k[b2 + 156 >> 2] = 0; k[b2 + 160 >> 2] = 0; e2 = b2 + 4544 | 0; d2 = b2 + 164 | 0; do { k[d2 >> 2] = 0; k[d2 + 4 >> 2] = 0; j[d2 + 8 >> 1] = 0; j[d2 + 10 >> 1] = 1; d2 = d2 + 12 | 0; } while ((d2 | 0) != (e2 | 0)); f2 = a2 + 4 | 0; k[e2 >> 2] = 0; k[e2 + 4 >> 2] = 0; j[e2 + 8 >> 1] = 0; i2[e2 + 10 >> 0] = 0; g2 = b2 + 4556 | 0; k[g2 >> 2] = 0; k[g2 + 4 >> 2] = 0; j[g2 + 8 >> 1] = 0; i2[g2 + 10 >> 0] = 0; g2 = b2 + 4568 | 0; k[g2 >> 2] = 0; k[g2 + 4 >> 2] = 0; k[g2 + 8 >> 2] = 0; k[g2 + 12 >> 2] = 0; k[g2 + 16 >> 2] = 0; k[g2 + 20 >> 2] = 0; k[g2 + 24 >> 2] = 0; i2[g2 + 28 >> 0] = 0; if (!(k[b2 + 28 >> 2] | 0)) k[b2 + 20 >> 2] = 1; d2 = k[f2 >> 2] | 0; k[f2 >> 2] = b2; if (d2) { Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); b2 = k[f2 >> 2] | 0; } ee(b2, l2); } l2 = a2 + 100 | 0; k[l2 >> 2] = 32; k[a2 + 96 >> 2] = 0; b2 = k[c2 >> 2] | 0; if (!b2) { k[a2 + 108 >> 2] = k[c2 + 4 >> 2]; k[a2 + 104 >> 2] = k[h2 >> 2]; bg(a2); m2 = a2 + 116 | 0; m2 = k[m2 >> 2] | 0; a2 = k[l2 >> 2] | 0; a2 = a2 + -32 | 0; a2 = (a2 | 0) / 8 | 0; a2 = m2 - a2 | 0; r = n2; return a2 | 0; } k[a2 + 132 >> 2] = b2; e2 = a2 + 120 | 0; h2 = a2 + 124 | 0; d2 = k[h2 >> 2] | 0; b2 = k[e2 >> 2] | 0; f2 = b2; g2 = d2 - f2 | 0; if (g2 >>> 0 >= 4e3) { if (g2 >>> 0 > 4e3 ? (m2 = b2 + 4e3 | 0, (d2 | 0) != (m2 | 0)) : 0) { k[h2 >> 2] = m2; d2 = m2; } } else { fe(e2, 4e3 - g2 | 0); b2 = k[e2 >> 2] | 0; f2 = b2; d2 = k[h2 >> 2] | 0; } k[a2 + 108 >> 2] = f2; k[a2 + 104 >> 2] = d2 - b2; bg(a2); m2 = a2 + 116 | 0; m2 = k[m2 >> 2] | 0; a2 = k[l2 >> 2] | 0; a2 = a2 + -32 | 0; a2 = (a2 | 0) / 8 | 0; a2 = m2 - a2 | 0; r = n2; return a2 | 0; } function ag(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; u2 = r; r = r + 352 | 0; v2 = u2 + 328 | 0; y2 = u2 + 192 | 0; c2 = u2 + 343 | 0; d2 = u2 + 342 | 0; e2 = u2 + 341 | 0; f2 = u2 + 340 | 0; o2 = u2 + 176 | 0; h2 = u2 + 168 | 0; j2 = u2 + 160 | 0; l2 = u2 + 152 | 0; t2 = u2; q2 = u2 + 136 | 0; if ((k[a2 + 32 >> 2] | 0) != 0 ? (k[a2 + 24 >> 2] | 0) != 1 : 0) { p2 = a2 + 8 | 0; s2 = a2 + 36 | 0; g2 = k[s2 >> 2] | 0; if (!g2) { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[c2 >> 0] | 0; Ja(44, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } a2 = k[a2 + 16 >> 2] | 0; if ((a2 | 0) == 8) switch (g2 | 0) { case 1: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[d2 >> 0] | 0; Ja(45, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[e2 >> 0] | 0; Ja(46, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[f2 >> 0] | 0; Ja(47, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = y2 + 56 | 0; e2 = y2 + 4 | 0; k[y2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, y2 + 56 | 0, e2 | 0); u2 = x; x = 0; if (u2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[y2 + 128 >> 2] = 0; k[y2 + 132 >> 2] = -1; k[y2 >> 2] = 36200; k[y2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); u2 = x; x = 0; do if (u2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = y2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[y2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); u2 = x; x = 0; if (u2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, y2 | 0, 49007, 21) | 0; v2 = x; x = 0; do if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, o2 | 0, e2 | 0); v2 = x; x = 0; if (!(v2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, o2 | 0); v2 = x; x = 0; if (v2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(o2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 34; while (0); if ((z2 | 0) == 34) a2 = Wa() | 0; k[y2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } if ((a2 | 0) <= 8) { a2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, a2 | 0, 8, 35648); z2 = x; x = 0; if (!(z2 & 1)) ub(a2 | 0, 824, 96); z2 = Wa() | 0; Ua(a2 | 0); fb(z2 | 0); } c2 = 16 - a2 | 0; switch (g2 | 0) { case 1: { a2 = lj(60) | 0; k[h2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[h2 >> 2]; k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(60) | 0; k[j2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[j2 >> 2]; k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(60) | 0; k[l2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[l2 >> 2]; k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = t2 + 56 | 0; e2 = t2 + 4 | 0; k[t2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, t2 + 56 | 0, e2 | 0); y2 = x; x = 0; if (y2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[t2 + 128 >> 2] = 0; k[t2 + 132 >> 2] = -1; k[t2 >> 2] = 36200; k[t2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); y2 = x; x = 0; do if (y2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = t2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[t2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); y2 = x; x = 0; if (y2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, t2 | 0, 49007, 21) | 0; y2 = x; x = 0; do if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, q2 | 0, e2 | 0); y2 = x; x = 0; if (!(y2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, q2 | 0); y2 = x; x = 0; if (y2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(q2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 64; while (0); if ((z2 | 0) == 64) a2 = Wa() | 0; k[t2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } } c2 = k[b2 + 4 >> 2] | 0; d2 = lj(16) | 0; a2 = k[a2 + 20 >> 2] | 0; if (!c2) { z2 = k[b2 >> 2] | 0; k[d2 >> 2] = 36132; k[d2 + 4 >> 2] = z2; k[d2 + 8 >> 2] = 1; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } else { k[d2 >> 2] = 36108; k[d2 + 4 >> 2] = c2; k[d2 + 8 >> 2] = 1; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } return 0; } function bg(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; t2 = r; r = r + 32 | 0; v2 = t2 + 12 | 0; s2 = t2; o2 = a2 + 156 | 0; p2 = (k[o2 >> 2] | 0) + 4 | 0; if ((k[a2 + 32 >> 2] | 0) == 1) q2 = k[a2 + 24 >> 2] | 0; else q2 = 1; b2 = ia(q2 << 1, p2) | 0; k[v2 >> 2] = 0; w2 = v2 + 4 | 0; k[w2 >> 2] = 0; k[v2 + 8 >> 2] = 0; a: do if (b2) { if (!((b2 | 0) < 0 ? (x = 0, qa(178, v2 | 0), u2 = x, x = 0, u2 & 1) : 0)) f2 = 6; if ((f2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { k[w2 >> 2] = c2; k[v2 >> 2] = c2; k[v2 + 8 >> 2] = c2 + b2; while (1) { i2[c2 >> 0] = 0; c2 = (k[w2 >> 2] | 0) + 1 | 0; k[w2 >> 2] = c2; b2 = b2 + -1 | 0; if (!b2) break a; } } c2 = Wa() | 0; b2 = k[v2 >> 2] | 0; if (!b2) fb(c2 | 0); if ((k[w2 >> 2] | 0) != (b2 | 0)) k[w2 >> 2] = b2; mj(b2); fb(c2 | 0); } while (0); k[s2 >> 2] = 0; u2 = s2 + 4 | 0; k[u2 >> 2] = 0; k[s2 + 8 >> 2] = 0; do if (!q2) f2 = 19; else { if (!(q2 >>> 0 > 1073741823 ? (x = 0, qa(178, s2 | 0), n2 = x, x = 0, n2 & 1) : 0)) f2 = 17; if ((f2 | 0) == 17 ? (d2 = q2 << 2, x = 0, e2 = ta(67, d2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { k[s2 >> 2] = e2; f2 = e2 + (q2 << 2) | 0; k[s2 + 8 >> 2] = f2; sw(e2 | 0, 0, d2 | 0) | 0; k[u2 >> 2] = f2; f2 = 19; break; } c2 = Wa() | 0; b2 = k[s2 >> 2] | 0; d2 = b2; if (b2) { e2 = k[u2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[u2 >> 2] = e2 + (~((e2 + -4 - d2 | 0) >>> 2) << 2); mj(b2); } } while (0); if ((f2 | 0) == 19) { e2 = a2 + 12 | 0; b: do if ((k[e2 >> 2] | 0) > 0) { f2 = a2 + 4580 | 0; g2 = (ia(q2, p2) | 0) + 1 | 0; h2 = a2 + 4584 | 0; j2 = a2 + 92 | 0; l2 = (q2 | 0) > 0; m2 = a2 + 4576 | 0; n2 = 0; c: while (1) { c2 = k[v2 >> 2] | 0; b2 = c2 + 1 | 0; k[f2 >> 2] = b2; c2 = c2 + g2 | 0; k[h2 >> 2] = c2; if (!(n2 & 1)) b2 = c2; else { k[f2 >> 2] = c2; k[h2 >> 2] = b2; } d2 = k[j2 >> 2] | 0; x = 0; Ja(k[(k[d2 >> 2] | 0) + 12 >> 2] | 0, d2 | 0, b2 | 0, k[o2 >> 2] | 0, p2 | 0); d2 = x; x = 0; if (d2 & 1) { f2 = 29; break; } if (l2) { b2 = k[f2 >> 2] | 0; c2 = k[s2 >> 2] | 0; d2 = 0; do { k[m2 >> 2] = k[c2 + (d2 << 2) >> 2]; c2 = k[o2 >> 2] | 0; i2[b2 + c2 >> 0] = i2[b2 + (c2 + -1) >> 0] | 0; i2[(k[h2 >> 2] | 0) + -1 >> 0] = i2[k[f2 >> 2] >> 0] | 0; x = 0; ra(73, a2 | 0, 0); c2 = x; x = 0; if (c2 & 1) { f2 = 28; break c; } c2 = k[s2 >> 2] | 0; k[c2 + (d2 << 2) >> 2] = k[m2 >> 2]; b2 = (k[f2 >> 2] | 0) + p2 | 0; k[f2 >> 2] = b2; k[h2 >> 2] = (k[h2 >> 2] | 0) + p2; d2 = d2 + 1 | 0; } while ((d2 | 0) < (q2 | 0)); } n2 = n2 + 1 | 0; if ((n2 | 0) >= (k[e2 >> 2] | 0)) { f2 = 41; break b; } } if ((f2 | 0) == 28) { c2 = Wa() | 0; break; } else if ((f2 | 0) == 29) { c2 = Wa() | 0; break; } } else f2 = 41; while (0); do if ((f2 | 0) == 41) { x = 0; qa(182, a2 | 0); a2 = x; x = 0; if (a2 & 1) { c2 = Wa() | 0; break; } b2 = k[s2 >> 2] | 0; c2 = b2; if (b2) { d2 = k[u2 >> 2] | 0; if ((d2 | 0) != (b2 | 0)) k[u2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } b2 = k[v2 >> 2] | 0; if (!b2) { r = t2; return; } if ((k[w2 >> 2] | 0) != (b2 | 0)) k[w2 >> 2] = b2; mj(b2); r = t2; return; } while (0); b2 = k[s2 >> 2] | 0; d2 = b2; if (b2) { e2 = k[u2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[u2 >> 2] = e2 + (~((e2 + -4 - d2 | 0) >>> 2) << 2); mj(b2); } } b2 = k[v2 >> 2] | 0; if (!b2) fb(c2 | 0); if ((k[w2 >> 2] | 0) != (b2 | 0)) k[w2 >> 2] = b2; mj(b2); fb(c2 | 0); } function cg(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; o2 = a2 + 4580 | 0; b2 = k[o2 >> 2] | 0; r2 = a2 + 156 | 0; if ((k[r2 >> 2] | 0) <= 0) return; p2 = a2 + 4584 | 0; q2 = a2 + 4588 | 0; e2 = b2; f2 = l[b2 + -1 >> 0] | 0; b2 = l[b2 >> 0] | 0; n2 = 0; while (1) { m2 = k[p2 >> 2] | 0; j2 = l[m2 + (n2 + -1) >> 0] | 0; d2 = n2 + 1 | 0; c2 = l[e2 + d2 >> 0] | 0; h2 = k[q2 >> 2] | 0; g2 = b2 - f2 | 0; e2 = f2 - j2 | 0; h2 = ((((i2[h2 + (c2 - b2) >> 0] | 0) * 9 | 0) + (i2[h2 + g2 >> 0] | 0) | 0) * 9 | 0) + (i2[h2 + e2 >> 0] | 0) | 0; if (!h2) { d2 = (eg(a2, n2, 0) | 0) + n2 | 0; c2 = k[o2 >> 2] | 0; b2 = l[c2 + (d2 + -1) >> 0] | 0; c2 = l[c2 + d2 >> 0] | 0; } else { f2 = b2 - j2 >> 31; if ((f2 ^ e2 | 0) < 0) e2 = b2; else e2 = j2 + ((f2 ^ g2 | 0) < 0 ? 0 : g2) | 0; m2 = dg(a2, h2, l[m2 + n2 >> 0] | 0, e2, 0) | 0; i2[(k[p2 >> 2] | 0) + n2 >> 0] = m2; } if ((d2 | 0) >= (k[r2 >> 2] | 0)) break; e2 = k[o2 >> 2] | 0; f2 = b2; b2 = c2; n2 = d2; } return; } function dg(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; q2 = b2 >> 31; i3 = (q2 ^ b2) - q2 | 0; p2 = a2 + 172 + (i3 * 12 | 0) + 10 | 0; g2 = j[p2 >> 1] | 0; o2 = a2 + 172 + (i3 * 12 | 0) | 0; e2 = k[o2 >> 2] | 0; if ((g2 | 0) < (e2 | 0)) if ((g2 << 1 | 0) < (e2 | 0)) if ((g2 << 2 | 0) < (e2 | 0)) if ((g2 << 3 | 0) < (e2 | 0)) if ((g2 << 4 | 0) < (e2 | 0)) { f2 = 5; while (1) if ((g2 << f2 | 0) < (e2 | 0)) f2 = f2 + 1 | 0; else break; } else f2 = 4; else f2 = 3; else f2 = 2; else f2 = 1; else f2 = 0; n2 = a2 + 172 + (i3 * 12 | 0) + 8 | 0; e2 = (j[n2 >> 1] ^ q2) - q2 + d2 | 0; if ((e2 & 255 | 0) == (e2 | 0)) m2 = e2; else m2 = e2 >> 31 & 255 ^ 255; h2 = (c2 - m2 ^ q2) - q2 << 24; l2 = h2 >> 24; if (!f2) e2 = (k[a2 + 172 + (i3 * 12 | 0) + 4 >> 2] << 1) + -1 + g2 >> 31; else e2 = 0; e2 = e2 ^ l2; e2 = e2 >> 30 ^ e2 << 1; d2 = e2 >> f2; if ((d2 | 0) < 23) { ke(a2, 1, d2 + 1 | 0); ke(a2, e2 & (1 << f2) + -1, f2); } else { ke(a2, 1, 24); ke(a2, e2 + 255 & 255, 8); } d2 = a2 + 172 + (i3 * 12 | 0) + 4 | 0; g2 = j[p2 >> 1] | 0; e2 = g2 << 16 >> 16 == 64; f2 = e2 & 1; c2 = (k[d2 >> 2] | 0) + l2 >> f2; g2 = e2 ? 32 : g2 << 16 >> 16; k[o2 >> 2] = (k[o2 >> 2] | 0) + ((h2 | 0) > -16777216 ? l2 : 0 - l2 | 0) >> f2; f2 = g2 + 1 | 0; j[p2 >> 1] = f2; e2 = f2 + c2 | 0; if ((e2 | 0) < 1) { p2 = j[n2 >> 1] | 0; j[n2 >> 1] = (p2 & 65535) - (p2 << 16 >> 16 > -128 & 1); p2 = (e2 | 0) > (~g2 | 0) ? e2 : 0 - g2 | 0; k[d2 >> 2] = p2; q2 = l2 ^ q2; b2 = b2 >>> 31; b2 = m2 + b2 | 0; b2 = b2 + q2 | 0; b2 = b2 & 255; return b2 | 0; } if ((c2 | 0) <= 0) { p2 = c2; k[d2 >> 2] = p2; q2 = l2 ^ q2; b2 = b2 >>> 31; b2 = m2 + b2 | 0; b2 = b2 + q2 | 0; b2 = b2 & 255; return b2 | 0; } p2 = c2 - f2 | 0; o2 = j[n2 >> 1] | 0; j[n2 >> 1] = (o2 << 16 >> 16 < 127 & 1) + (o2 & 65535); p2 = (p2 | 0) > 0 ? 0 : p2; k[d2 >> 2] = p2; q2 = l2 ^ q2; b2 = b2 >>> 31; b2 = m2 + b2 | 0; b2 = b2 + q2 | 0; b2 = b2 & 255; return b2 | 0; } function eg(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; g2 = (k[a2 + 156 >> 2] | 0) - b2 | 0; h2 = k[a2 + 4584 >> 2] | 0; m2 = k[a2 + 4580 >> 2] | 0; e2 = i2[h2 + (b2 + -1) >> 0] | 0; d2 = 0; while (1) { c2 = h2 + (d2 + b2) | 0; if ((i2[c2 >> 0] | 0) != e2 << 24 >> 24) { n2 = d2; break; } i2[c2 >> 0] = e2; d2 = d2 + 1 | 0; if ((d2 | 0) == (g2 | 0)) { n2 = g2; break; } } f2 = e2 & 255; e2 = (n2 | 0) == (g2 | 0); j2 = a2 + 4576 | 0; d2 = k[36476 + (k[j2 >> 2] << 2) >> 2] | 0; if ((1 << d2 | 0) > (n2 | 0)) c2 = n2; else { c2 = n2; do { ke(a2, 1, 1); d2 = k[j2 >> 2] | 0; c2 = c2 - (1 << k[36476 + (d2 << 2) >> 2]) | 0; d2 = (d2 | 0) > 30 ? 31 : d2 + 1 | 0; k[j2 >> 2] = d2; d2 = k[36476 + (d2 << 2) >> 2] | 0; } while ((c2 | 0) >= (1 << d2 | 0)); } if (e2) { if (!c2) { a2 = g2; return a2 | 0; } ke(a2, 1, 1); a2 = g2; return a2 | 0; } ke(a2, c2, d2 + 1 | 0); c2 = n2 + b2 | 0; e2 = h2 + c2 | 0; d2 = l[e2 >> 0] | 0; c2 = l[m2 + c2 >> 0] | 0; m2 = f2 - c2 | 0; if ((((m2 | 0) > -1 ? m2 : 0 - m2 | 0) | 0) < 1) { c2 = d2 - f2 << 24 >> 24; fg(a2, a2 + 4564 | 0, c2); c2 = c2 + f2 | 0; } else { m2 = c2 - f2 >> 31 | 1; b2 = (ia(d2 - c2 << 24, m2) | 0) >> 24; fg(a2, a2 + 4552 | 0, b2); c2 = (ia(b2, m2) | 0) + c2 | 0; } i2[e2 >> 0] = c2; a2 = k[j2 >> 2] | 0; k[j2 >> 2] = (a2 | 0) < 1 ? 0 : a2 + -1 | 0; a2 = n2 + 1 | 0; return a2 | 0; } function fg(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; n2 = b2 + 9 | 0; g2 = l[n2 >> 0] | 0; m2 = b2 + 4 | 0; j2 = k[m2 >> 2] | 0; e2 = (ia(g2 >>> 1, j2) | 0) + (k[b2 >> 2] | 0) | 0; if ((g2 | 0) < (e2 | 0)) { f2 = g2; d2 = 0; do { f2 = f2 << 1; d2 = d2 + 1 | 0; } while ((f2 | 0) < (e2 | 0)); e2 = d2; } else e2 = 0; if ((c2 | 0) > 0 & (e2 | 0) == 0 ? l[b2 + 10 >> 0] << 1 >>> 0 < g2 >>> 0 : 0) d2 = 1; else h2 = 5; do if ((h2 | 0) == 5) { d2 = (c2 | 0) < 0; if (d2 ? l[b2 + 10 >> 0] << 1 >>> 0 >= g2 >>> 0 : 0) { d2 = 1; break; } d2 = d2 & (e2 | 0) != 0; } while (0); d2 = (((c2 | 0) > -1 ? c2 : 0 - c2 | 0) << 1) - j2 + (d2 << 31 >> 31) | 0; gg(a2, e2, d2, 31 - (k[36476 + (k[a2 + 4576 >> 2] << 2) >> 2] | 0) | 0); if ((c2 | 0) < 0) { a2 = b2 + 10 | 0; i2[a2 >> 0] = (l[a2 >> 0] | 0) + 1; } d2 = (d2 + 1 - (k[m2 >> 2] | 0) >> 1) + (k[b2 >> 2] | 0) | 0; k[b2 >> 2] = d2; e2 = i2[n2 >> 0] | 0; if (e2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { b2 = e2; b2 = b2 & 255; b2 = b2 + 1 | 0; b2 = b2 & 255; i2[n2 >> 0] = b2; return; } k[b2 >> 2] = d2 >> 1; a2 = (e2 & 255) >>> 1; i2[n2 >> 0] = a2; b2 = b2 + 10 | 0; i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; b2 = a2; b2 = b2 & 255; b2 = b2 + 1 | 0; b2 = b2 & 255; i2[n2 >> 0] = b2; return; } function gg(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0; e2 = c2 >> b2; f2 = d2 + -8 | 0; if ((e2 | 0) < (d2 + -9 | 0)) { if ((e2 | 0) > 30) { d2 = (e2 | 0) / 2 | 0; ke(a2, 0, d2); e2 = e2 - d2 | 0; } ke(a2, 1, e2 + 1 | 0); ke(a2, (1 << b2) + -1 & c2, b2); return; } if ((f2 | 0) > 31) { ke(a2, 0, 31); ke(a2, 1, d2 + -39 | 0); } else ke(a2, 1, f2); ke(a2, c2 + 255 & 255, 8); return; } function hg(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; l2 = r; r = r + 32 | 0; h2 = l2; Oi(h2, 255, 0); j2 = a2 + 160 | 0; if (((k[h2 + 4 >> 2] | 0) == (k[j2 >> 2] | 0) ? (k[h2 + 8 >> 2] | 0) == (k[a2 + 164 >> 2] | 0) : 0) ? (k[h2 + 12 >> 2] | 0) == (k[a2 + 168 >> 2] | 0) : 0) { j2 = k[8900] | 0; k[a2 + 4588 >> 2] = j2 + (((k[8901] | 0) - j2 | 0) >>> 1); r = l2; return; } c2 = a2 + 4592 | 0; d2 = a2 + 4596 | 0; e2 = k[d2 >> 2] | 0; b2 = k[c2 >> 2] | 0; f2 = e2 - b2 | 0; if (f2 >>> 0 >= 512) { if (f2 >>> 0 > 512 ? (g2 = b2 + 512 | 0, (e2 | 0) != (g2 | 0)) : 0) k[d2 >> 2] = g2; } else { se(c2, 512 - f2 | 0); b2 = k[c2 >> 2] | 0; } h2 = a2 + 4588 | 0; k[h2 >> 2] = b2 + 256; g2 = a2 + 168 | 0; e2 = a2 + 164 | 0; f2 = -256; while (1) { b2 = k[g2 >> 2] | 0; if ((f2 | 0) > (0 - b2 | 0)) { c2 = k[e2 >> 2] | 0; if ((f2 | 0) > (0 - c2 | 0)) { d2 = k[j2 >> 2] | 0; if ((f2 | 0) > (0 - d2 | 0)) if ((f2 | 0) >= 0) { if ((f2 | 0) < 1) { i2[(k[h2 >> 2] | 0) + f2 >> 0] = 0; f2 = 1; continue; } if ((d2 | 0) <= (f2 | 0)) if ((c2 | 0) > (f2 | 0)) b2 = 2; else b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; else b2 = 1; } else b2 = -1; else b2 = -2; } else b2 = -3; } else b2 = -4; i2[(k[h2 >> 2] | 0) + f2 >> 0] = b2; f2 = f2 + 1 | 0; if ((f2 | 0) == 256) break; } r = l2; return; } function ig(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 35912; b2 = k[a2 + 4592 >> 2] | 0; if (b2) { c2 = a2 + 4596 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36612; b2 = k[a2 + 120 >> 2] | 0; if (b2) { c2 = a2 + 124 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = a2 + 92 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); a2 = a2 + 4 | 0; b2 = k[a2 >> 2] | 0; k[a2 >> 2] = 0; if (!b2) return; Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); return; } function jg(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 35912; b2 = k[a2 + 4592 >> 2] | 0; if (b2) { c2 = a2 + 4596 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36612; b2 = k[a2 + 120 >> 2] | 0; if (b2) { c2 = a2 + 124 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = a2 + 92 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); c2 = a2 + 4 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (!b2) { mj(a2); return; } Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); mj(a2); return; } function kg(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; e2 = r; r = r + 32 | 0; h2 = e2; Oi(h2, 255, 0); g2 = k[b2 + 4 >> 2] | 0; f2 = k[b2 + 8 >> 2] | 0; f2 = (f2 | 0) == 0 ? k[h2 + 8 >> 2] | 0 : f2; d2 = k[b2 + 12 >> 2] | 0; d2 = (d2 | 0) == 0 ? k[h2 + 12 >> 2] | 0 : d2; b2 = k[b2 + 16 >> 2] | 0; c2 = k[h2 + 16 >> 2] | 0; k[a2 + 160 >> 2] = (g2 | 0) == 0 ? k[h2 + 4 >> 2] | 0 : g2; k[a2 + 164 >> 2] = f2; k[a2 + 168 >> 2] = d2; tg(a2); d2 = 0; do { k[a2 + 172 + (d2 * 12 | 0) >> 2] = 4; k[a2 + 172 + (d2 * 12 | 0) + 4 >> 2] = 0; j[a2 + 172 + (d2 * 12 | 0) + 8 >> 1] = 0; j[a2 + 172 + (d2 * 12 | 0) + 10 >> 1] = 1; d2 = d2 + 1 | 0; } while ((d2 | 0) != 365); h2 = ((b2 | 0) == 0 ? c2 : b2) & 255; k[a2 + 4552 >> 2] = 4; k[a2 + 4556 >> 2] = 0; i2[a2 + 4560 >> 0] = h2; i2[a2 + 4561 >> 0] = 1; i2[a2 + 4562 >> 0] = 0; k[a2 + 4564 >> 2] = 4; k[a2 + 4568 >> 2] = 1; i2[a2 + 4572 >> 0] = h2; i2[a2 + 4573 >> 0] = 1; i2[a2 + 4574 >> 0] = 0; k[a2 + 4576 >> 2] = 0; r = e2; return; } function lg(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; n2 = r; r = r + 16 | 0; l2 = n2; h2 = a2 + 92 | 0; g2 = k[b2 >> 2] | 0; k[b2 >> 2] = 0; b2 = k[h2 >> 2] | 0; k[h2 >> 2] = g2; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); k[l2 >> 2] = 0; k[l2 + 4 >> 2] = d2; h2 = c2 + 8 | 0; k[l2 + 8 >> 2] = k[h2 >> 2]; if (d2) { b2 = lj(4600) | 0; d2 = a2 + 8 | 0; e2 = b2 + 4 | 0; f2 = d2; g2 = e2 + 84 | 0; do { k[e2 >> 2] = k[f2 >> 2]; e2 = e2 + 4 | 0; f2 = f2 + 4 | 0; } while ((e2 | 0) < (g2 | 0)); e2 = b2 + 88 | 0; g2 = e2 + 40 | 0; do { k[e2 >> 2] = 0; e2 = e2 + 4 | 0; } while ((e2 | 0) < (g2 | 0)); k[b2 >> 2] = 35688; e2 = b2 + 132 | 0; k[e2 >> 2] = 0; k[e2 + 4 >> 2] = 0; k[e2 + 8 >> 2] = 0; k[e2 + 12 >> 2] = 0; k[b2 + 148 >> 2] = k[d2 >> 2]; k[b2 + 152 >> 2] = 0; k[b2 + 156 >> 2] = 0; k[b2 + 160 >> 2] = 0; e2 = b2 + 4544 | 0; d2 = b2 + 164 | 0; do { k[d2 >> 2] = 0; k[d2 + 4 >> 2] = 0; j[d2 + 8 >> 1] = 0; j[d2 + 10 >> 1] = 1; d2 = d2 + 12 | 0; } while ((d2 | 0) != (e2 | 0)); f2 = a2 + 4 | 0; k[e2 >> 2] = 0; k[e2 + 4 >> 2] = 0; j[e2 + 8 >> 1] = 0; i2[e2 + 10 >> 0] = 0; g2 = b2 + 4556 | 0; k[g2 >> 2] = 0; k[g2 + 4 >> 2] = 0; j[g2 + 8 >> 1] = 0; i2[g2 + 10 >> 0] = 0; g2 = b2 + 4568 | 0; k[g2 >> 2] = 0; k[g2 + 4 >> 2] = 0; k[g2 + 8 >> 2] = 0; k[g2 + 12 >> 2] = 0; k[g2 + 16 >> 2] = 0; k[g2 + 20 >> 2] = 0; k[g2 + 24 >> 2] = 0; i2[g2 + 28 >> 0] = 0; if (!(k[b2 + 28 >> 2] | 0)) k[b2 + 20 >> 2] = 1; d2 = k[f2 >> 2] | 0; k[f2 >> 2] = b2; if (d2) { Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); b2 = k[f2 >> 2] | 0; } ee(b2, l2); } l2 = a2 + 100 | 0; k[l2 >> 2] = 32; k[a2 + 96 >> 2] = 0; b2 = k[c2 >> 2] | 0; if (!b2) { k[a2 + 108 >> 2] = k[c2 + 4 >> 2]; k[a2 + 104 >> 2] = k[h2 >> 2]; ng(a2); m2 = a2 + 116 | 0; m2 = k[m2 >> 2] | 0; a2 = k[l2 >> 2] | 0; a2 = a2 + -32 | 0; a2 = (a2 | 0) / 8 | 0; a2 = m2 - a2 | 0; r = n2; return a2 | 0; } k[a2 + 132 >> 2] = b2; e2 = a2 + 120 | 0; h2 = a2 + 124 | 0; d2 = k[h2 >> 2] | 0; b2 = k[e2 >> 2] | 0; f2 = b2; g2 = d2 - f2 | 0; if (g2 >>> 0 >= 4e3) { if (g2 >>> 0 > 4e3 ? (m2 = b2 + 4e3 | 0, (d2 | 0) != (m2 | 0)) : 0) { k[h2 >> 2] = m2; d2 = m2; } } else { fe(e2, 4e3 - g2 | 0); b2 = k[e2 >> 2] | 0; f2 = b2; d2 = k[h2 >> 2] | 0; } k[a2 + 108 >> 2] = f2; k[a2 + 104 >> 2] = d2 - b2; ng(a2); m2 = a2 + 116 | 0; m2 = k[m2 >> 2] | 0; a2 = k[l2 >> 2] | 0; a2 = a2 + -32 | 0; a2 = (a2 | 0) / 8 | 0; a2 = m2 - a2 | 0; r = n2; return a2 | 0; } function mg(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; u2 = r; r = r + 352 | 0; v2 = u2 + 328 | 0; y2 = u2 + 192 | 0; c2 = u2 + 343 | 0; d2 = u2 + 342 | 0; e2 = u2 + 341 | 0; f2 = u2 + 340 | 0; o2 = u2 + 176 | 0; h2 = u2 + 168 | 0; j2 = u2 + 160 | 0; l2 = u2 + 152 | 0; t2 = u2; q2 = u2 + 136 | 0; if ((k[a2 + 32 >> 2] | 0) != 0 ? (k[a2 + 24 >> 2] | 0) != 1 : 0) { p2 = a2 + 8 | 0; s2 = a2 + 36 | 0; g2 = k[s2 >> 2] | 0; if (!g2) { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[c2 >> 0] | 0; Ja(44, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } a2 = k[a2 + 16 >> 2] | 0; if ((a2 | 0) == 8) switch (g2 | 0) { case 1: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[d2 >> 0] | 0; Ja(45, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[e2 >> 0] | 0; Ja(46, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[f2 >> 0] | 0; Ja(47, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = y2 + 56 | 0; e2 = y2 + 4 | 0; k[y2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, y2 + 56 | 0, e2 | 0); u2 = x; x = 0; if (u2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[y2 + 128 >> 2] = 0; k[y2 + 132 >> 2] = -1; k[y2 >> 2] = 36200; k[y2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); u2 = x; x = 0; do if (u2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = y2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[y2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); u2 = x; x = 0; if (u2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, y2 | 0, 49007, 21) | 0; v2 = x; x = 0; do if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, o2 | 0, e2 | 0); v2 = x; x = 0; if (!(v2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, o2 | 0); v2 = x; x = 0; if (v2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(o2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 34; while (0); if ((z2 | 0) == 34) a2 = Wa() | 0; k[y2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } if ((a2 | 0) <= 8) { a2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, a2 | 0, 8, 35648); z2 = x; x = 0; if (!(z2 & 1)) ub(a2 | 0, 824, 96); z2 = Wa() | 0; Ua(a2 | 0); fb(z2 | 0); } c2 = 16 - a2 | 0; switch (g2 | 0) { case 1: { a2 = lj(60) | 0; k[h2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[h2 >> 2]; k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(60) | 0; k[j2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[j2 >> 2]; k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(60) | 0; k[l2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[l2 >> 2]; k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = t2 + 56 | 0; e2 = t2 + 4 | 0; k[t2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, t2 + 56 | 0, e2 | 0); y2 = x; x = 0; if (y2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[t2 + 128 >> 2] = 0; k[t2 + 132 >> 2] = -1; k[t2 >> 2] = 36200; k[t2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); y2 = x; x = 0; do if (y2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = t2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[t2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); y2 = x; x = 0; if (y2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, t2 | 0, 49007, 21) | 0; y2 = x; x = 0; do if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, q2 | 0, e2 | 0); y2 = x; x = 0; if (!(y2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, q2 | 0); y2 = x; x = 0; if (y2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(q2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 64; while (0); if ((z2 | 0) == 64) a2 = Wa() | 0; k[t2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } } c2 = k[b2 + 4 >> 2] | 0; d2 = lj(16) | 0; a2 = k[a2 + 20 >> 2] | 0; if (!c2) { z2 = k[b2 >> 2] | 0; k[d2 >> 2] = 36132; k[d2 + 4 >> 2] = z2; k[d2 + 8 >> 2] = 3; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } else { k[d2 >> 2] = 36108; k[d2 + 4 >> 2] = c2; k[d2 + 8 >> 2] = 3; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } return 0; } function ng(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0; t2 = r; r = r + 32 | 0; v2 = t2 + 12 | 0; s2 = t2; o2 = a2 + 156 | 0; p2 = (k[o2 >> 2] | 0) + 4 | 0; if ((k[a2 + 32 >> 2] | 0) == 1) q2 = k[a2 + 24 >> 2] | 0; else q2 = 1; b2 = ia(q2 << 1, p2) | 0; k[v2 >> 2] = 0; w2 = v2 + 4 | 0; k[w2 >> 2] = 0; k[v2 + 8 >> 2] = 0; a: do if (b2) { if (!(b2 >>> 0 > 1431655765 ? (x = 0, qa(178, v2 | 0), u2 = x, x = 0, u2 & 1) : 0)) f2 = 6; if ((f2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 * 3 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { k[w2 >> 2] = c2; k[v2 >> 2] = c2; k[v2 + 8 >> 2] = c2 + (b2 * 3 | 0); while (1) { i2[c2 >> 0] = 0; i2[c2 + 1 >> 0] = 0; i2[c2 + 2 >> 0] = 0; c2 = (k[w2 >> 2] | 0) + 3 | 0; k[w2 >> 2] = c2; b2 = b2 + -1 | 0; if (!b2) break a; } } d2 = Wa() | 0; b2 = k[v2 >> 2] | 0; if (!b2) fb(d2 | 0); c2 = k[w2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[w2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); mj(b2); fb(d2 | 0); } while (0); k[s2 >> 2] = 0; u2 = s2 + 4 | 0; k[u2 >> 2] = 0; k[s2 + 8 >> 2] = 0; do if (!q2) f2 = 19; else { if (!(q2 >>> 0 > 1073741823 ? (x = 0, qa(178, s2 | 0), n2 = x, x = 0, n2 & 1) : 0)) f2 = 17; if ((f2 | 0) == 17 ? (d2 = q2 << 2, x = 0, e2 = ta(67, d2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { k[s2 >> 2] = e2; f2 = e2 + (q2 << 2) | 0; k[s2 + 8 >> 2] = f2; sw(e2 | 0, 0, d2 | 0) | 0; k[u2 >> 2] = f2; f2 = 19; break; } d2 = Wa() | 0; b2 = k[s2 >> 2] | 0; c2 = b2; if (b2) { e2 = k[u2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[u2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } } while (0); if ((f2 | 0) == 19) { e2 = a2 + 12 | 0; b: do if ((k[e2 >> 2] | 0) > 0) { f2 = a2 + 4580 | 0; g2 = (ia(q2, p2) | 0) + 1 | 0; h2 = a2 + 4584 | 0; j2 = a2 + 92 | 0; l2 = (q2 | 0) > 0; m2 = a2 + 4576 | 0; n2 = 0; c: while (1) { d2 = k[v2 >> 2] | 0; b2 = d2 + 3 | 0; k[f2 >> 2] = b2; c2 = d2 + (g2 * 3 | 0) | 0; k[h2 >> 2] = c2; if (!(n2 & 1)) b2 = g2; else { k[f2 >> 2] = c2; k[h2 >> 2] = b2; b2 = 1; } c2 = k[j2 >> 2] | 0; x = 0; Ja(k[(k[c2 >> 2] | 0) + 12 >> 2] | 0, c2 | 0, d2 + (b2 * 3 | 0) | 0, k[o2 >> 2] | 0, p2 | 0); d2 = x; x = 0; if (d2 & 1) { f2 = 29; break; } if (l2) { b2 = k[s2 >> 2] | 0; c2 = k[f2 >> 2] | 0; d2 = 0; do { k[m2 >> 2] = k[b2 + (d2 << 2) >> 2]; y2 = k[o2 >> 2] | 0; b2 = c2 + (y2 * 3 | 0) | 0; c2 = c2 + ((y2 + -1 | 0) * 3 | 0) | 0; i2[b2 >> 0] = i2[c2 >> 0] | 0; i2[b2 + 1 >> 0] = i2[c2 + 1 >> 0] | 0; i2[b2 + 2 >> 0] = i2[c2 + 2 >> 0] | 0; b2 = k[f2 >> 2] | 0; c2 = (k[h2 >> 2] | 0) + -3 | 0; i2[c2 >> 0] = i2[b2 >> 0] | 0; i2[c2 + 1 >> 0] = i2[b2 + 1 >> 0] | 0; i2[c2 + 2 >> 0] = i2[b2 + 2 >> 0] | 0; x = 0; ra(74, a2 | 0, 0); c2 = x; x = 0; if (c2 & 1) { f2 = 28; break c; } b2 = k[s2 >> 2] | 0; k[b2 + (d2 << 2) >> 2] = k[m2 >> 2]; c2 = (k[f2 >> 2] | 0) + (p2 * 3 | 0) | 0; k[f2 >> 2] = c2; k[h2 >> 2] = (k[h2 >> 2] | 0) + (p2 * 3 | 0); d2 = d2 + 1 | 0; } while ((d2 | 0) < (q2 | 0)); } n2 = n2 + 1 | 0; if ((n2 | 0) >= (k[e2 >> 2] | 0)) { f2 = 41; break b; } } if ((f2 | 0) == 28) { d2 = Wa() | 0; break; } else if ((f2 | 0) == 29) { d2 = Wa() | 0; break; } } else f2 = 41; while (0); do if ((f2 | 0) == 41) { x = 0; qa(182, a2 | 0); y2 = x; x = 0; if (y2 & 1) { d2 = Wa() | 0; break; } b2 = k[s2 >> 2] | 0; c2 = b2; if (b2) { d2 = k[u2 >> 2] | 0; if ((d2 | 0) != (b2 | 0)) k[u2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } b2 = k[v2 >> 2] | 0; if (!b2) { r = t2; return; } c2 = k[w2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[w2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); mj(b2); r = t2; return; } while (0); b2 = k[s2 >> 2] | 0; c2 = b2; if (b2) { e2 = k[u2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[u2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } } b2 = k[v2 >> 2] | 0; if (!b2) fb(d2 | 0); c2 = k[w2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[w2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); mj(b2); fb(d2 | 0); } function og(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; A2 = a2 + 156 | 0; if ((k[A2 >> 2] | 0) <= 0) return; B2 = a2 + 4584 | 0; C2 = a2 + 4580 | 0; D2 = a2 + 4588 | 0; z2 = 0; while (1) { w2 = z2 + -1 | 0; f2 = k[B2 >> 2] | 0; g2 = k[C2 >> 2] | 0; b2 = z2 + 1 | 0; e2 = l[g2 + (z2 * 3 | 0) >> 0] | 0; y2 = k[D2 >> 2] | 0; h2 = l[g2 + (w2 * 3 | 0) >> 0] | 0; j2 = e2 - h2 | 0; m2 = l[f2 + (w2 * 3 | 0) >> 0] | 0; n2 = h2 - m2 | 0; o2 = ((((i2[y2 + ((l[g2 + (b2 * 3 | 0) >> 0] | 0) - e2) >> 0] | 0) * 9 | 0) + (i2[y2 + j2 >> 0] | 0) | 0) * 9 | 0) + (i2[y2 + n2 >> 0] | 0) | 0; d2 = l[g2 + (z2 * 3 | 0) + 1 >> 0] | 0; p2 = l[g2 + (w2 * 3 | 0) + 1 >> 0] | 0; q2 = d2 - p2 | 0; r2 = l[f2 + (w2 * 3 | 0) + 1 >> 0] | 0; s2 = p2 - r2 | 0; t2 = ((((i2[y2 + ((l[g2 + (b2 * 3 | 0) + 1 >> 0] | 0) - d2) >> 0] | 0) * 9 | 0) + (i2[y2 + q2 >> 0] | 0) | 0) * 9 | 0) + (i2[y2 + s2 >> 0] | 0) | 0; c2 = l[g2 + (z2 * 3 | 0) + 2 >> 0] | 0; u2 = l[g2 + (w2 * 3 | 0) + 2 >> 0] | 0; v2 = c2 - u2 | 0; w2 = l[f2 + (w2 * 3 | 0) + 2 >> 0] | 0; x2 = u2 - w2 | 0; y2 = ((((i2[y2 + ((l[g2 + (b2 * 3 | 0) + 2 >> 0] | 0) - c2) >> 0] | 0) * 9 | 0) + (i2[y2 + v2 >> 0] | 0) | 0) * 9 | 0) + (i2[y2 + x2 >> 0] | 0) | 0; if (!(t2 | o2 | y2)) b2 = (pg(a2, z2, 0) | 0) + z2 | 0; else { g2 = l[f2 + (z2 * 3 | 0) >> 0] | 0; f2 = e2 - m2 >> 31; if ((f2 ^ n2 | 0) >= 0) if ((f2 ^ j2 | 0) < 0) e2 = m2; else e2 = m2 - h2 + e2 | 0; g2 = qg(a2, o2, g2, e2, 0) | 0; f2 = l[(k[B2 >> 2] | 0) + (z2 * 3 | 0) + 1 >> 0] | 0; e2 = d2 - r2 >> 31; if ((e2 ^ s2 | 0) >= 0) if ((e2 ^ q2 | 0) < 0) d2 = r2; else d2 = r2 - p2 + d2 | 0; e2 = qg(a2, t2, f2, d2, 0) | 0; f2 = l[(k[B2 >> 2] | 0) + (z2 * 3 | 0) + 2 >> 0] | 0; d2 = c2 - w2 >> 31; if ((d2 ^ x2 | 0) >= 0) if ((d2 ^ v2 | 0) < 0) c2 = w2; else c2 = w2 - u2 + c2 | 0; y2 = qg(a2, y2, f2, c2, 0) | 0; z2 = (k[B2 >> 2] | 0) + (z2 * 3 | 0) | 0; i2[z2 >> 0] = g2; i2[z2 + 1 >> 0] = e2; i2[z2 + 2 >> 0] = y2; } if ((b2 | 0) < (k[A2 >> 2] | 0)) z2 = b2; else break; } return; } function pg(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0; m2 = (k[a2 + 156 >> 2] | 0) - b2 | 0; n2 = k[a2 + 4584 >> 2] | 0; o2 = k[a2 + 4580 >> 2] | 0; j2 = n2 + ((b2 + -1 | 0) * 3 | 0) | 0; p2 = i2[j2 >> 0] | 0; h2 = i2[j2 + 1 >> 0] | 0; j2 = i2[j2 + 2 >> 0] | 0; f2 = 0; while (1) { c2 = n2 + ((f2 + b2 | 0) * 3 | 0) | 0; d2 = c2 + 1 | 0; e2 = c2 + 2 | 0; if (!(((i2[c2 >> 0] | 0) == p2 << 24 >> 24 ? (i2[d2 >> 0] | 0) == h2 << 24 >> 24 : 0) & (i2[e2 >> 0] | 0) == j2 << 24 >> 24)) break; i2[c2 >> 0] = p2; i2[d2 >> 0] = h2; i2[e2 >> 0] = j2; f2 = f2 + 1 | 0; if ((f2 | 0) == (m2 | 0)) { f2 = m2; break; } } e2 = (f2 | 0) == (m2 | 0); g2 = a2 + 4576 | 0; d2 = k[36476 + (k[g2 >> 2] << 2) >> 2] | 0; if ((1 << d2 | 0) > (f2 | 0)) c2 = f2; else { c2 = f2; do { ke(a2, 1, 1); d2 = k[g2 >> 2] | 0; c2 = c2 - (1 << k[36476 + (d2 << 2) >> 2]) | 0; d2 = (d2 | 0) > 30 ? 31 : d2 + 1 | 0; k[g2 >> 2] = d2; d2 = k[36476 + (d2 << 2) >> 2] | 0; } while ((c2 | 0) >= (1 << d2 | 0)); } if (!e2) { ke(a2, c2, d2 + 1 | 0); d2 = f2 + b2 | 0; m2 = n2 + (d2 * 3 | 0) | 0; n2 = m2 + 1 | 0; c2 = i2[n2 >> 0] | 0; b2 = m2 + 2 | 0; e2 = i2[b2 >> 0] | 0; o2 = o2 + (d2 * 3 | 0) | 0; d2 = i2[o2 + 1 >> 0] | 0; t2 = i2[o2 + 2 >> 0] | 0; o2 = l[o2 >> 0] | 0; q2 = o2 - (p2 & 255) >> 31 | 1; r2 = (ia((l[m2 >> 0] | 0) - o2 << 24, q2) | 0) >> 24; s2 = a2 + 4552 | 0; rg(a2, s2, r2); p2 = d2 & 255; d2 = p2 - (h2 & 255) >> 31 | 1; c2 = (ia((c2 & 255) - p2 << 24, d2) | 0) >> 24; rg(a2, s2, c2); h2 = t2 & 255; j2 = h2 - (j2 & 255) >> 31 | 1; e2 = (ia((e2 & 255) - h2 << 24, j2) | 0) >> 24; rg(a2, s2, e2); o2 = (ia(r2, q2) | 0) + o2 & 255; p2 = (ia(c2, d2) | 0) + p2 & 255; a2 = (ia(e2, j2) | 0) + h2 & 255; i2[m2 >> 0] = o2; i2[n2 >> 0] = p2; i2[b2 >> 0] = a2; a2 = k[g2 >> 2] | 0; k[g2 >> 2] = (a2 | 0) < 1 ? 0 : a2 + -1 | 0; a2 = f2 + 1 | 0; return a2 | 0; } if (!c2) { t2 = m2; return t2 | 0; } ke(a2, 1, 1); t2 = m2; return t2 | 0; } function qg(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; q2 = b2 >> 31; i3 = (q2 ^ b2) - q2 | 0; p2 = a2 + 172 + (i3 * 12 | 0) + 10 | 0; g2 = j[p2 >> 1] | 0; o2 = a2 + 172 + (i3 * 12 | 0) | 0; e2 = k[o2 >> 2] | 0; if ((g2 | 0) < (e2 | 0)) if ((g2 << 1 | 0) < (e2 | 0)) if ((g2 << 2 | 0) < (e2 | 0)) if ((g2 << 3 | 0) < (e2 | 0)) if ((g2 << 4 | 0) < (e2 | 0)) { f2 = 5; while (1) if ((g2 << f2 | 0) < (e2 | 0)) f2 = f2 + 1 | 0; else break; } else f2 = 4; else f2 = 3; else f2 = 2; else f2 = 1; else f2 = 0; n2 = a2 + 172 + (i3 * 12 | 0) + 8 | 0; e2 = (j[n2 >> 1] ^ q2) - q2 + d2 | 0; if ((e2 & 255 | 0) == (e2 | 0)) m2 = e2; else m2 = e2 >> 31 & 255 ^ 255; h2 = (c2 - m2 ^ q2) - q2 << 24; l2 = h2 >> 24; if (!f2) e2 = (k[a2 + 172 + (i3 * 12 | 0) + 4 >> 2] << 1) + -1 + g2 >> 31; else e2 = 0; e2 = e2 ^ l2; e2 = e2 >> 30 ^ e2 << 1; d2 = e2 >> f2; if ((d2 | 0) < 23) { ke(a2, 1, d2 + 1 | 0); ke(a2, e2 & (1 << f2) + -1, f2); } else { ke(a2, 1, 24); ke(a2, e2 + 255 & 255, 8); } d2 = a2 + 172 + (i3 * 12 | 0) + 4 | 0; g2 = j[p2 >> 1] | 0; e2 = g2 << 16 >> 16 == 64; f2 = e2 & 1; c2 = (k[d2 >> 2] | 0) + l2 >> f2; g2 = e2 ? 32 : g2 << 16 >> 16; k[o2 >> 2] = (k[o2 >> 2] | 0) + ((h2 | 0) > -16777216 ? l2 : 0 - l2 | 0) >> f2; f2 = g2 + 1 | 0; j[p2 >> 1] = f2; e2 = f2 + c2 | 0; if ((e2 | 0) < 1) { p2 = j[n2 >> 1] | 0; j[n2 >> 1] = (p2 & 65535) - (p2 << 16 >> 16 > -128 & 1); p2 = (e2 | 0) > (~g2 | 0) ? e2 : 0 - g2 | 0; k[d2 >> 2] = p2; q2 = l2 ^ q2; b2 = b2 >>> 31; b2 = m2 + b2 | 0; b2 = b2 + q2 | 0; b2 = b2 & 255; return b2 | 0; } if ((c2 | 0) <= 0) { p2 = c2; k[d2 >> 2] = p2; q2 = l2 ^ q2; b2 = b2 >>> 31; b2 = m2 + b2 | 0; b2 = b2 + q2 | 0; b2 = b2 & 255; return b2 | 0; } p2 = c2 - f2 | 0; o2 = j[n2 >> 1] | 0; j[n2 >> 1] = (o2 << 16 >> 16 < 127 & 1) + (o2 & 65535); p2 = (p2 | 0) > 0 ? 0 : p2; k[d2 >> 2] = p2; q2 = l2 ^ q2; b2 = b2 >>> 31; b2 = m2 + b2 | 0; b2 = b2 + q2 | 0; b2 = b2 & 255; return b2 | 0; } function rg(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; n2 = b2 + 9 | 0; g2 = l[n2 >> 0] | 0; m2 = b2 + 4 | 0; j2 = k[m2 >> 2] | 0; e2 = (ia(g2 >>> 1, j2) | 0) + (k[b2 >> 2] | 0) | 0; if ((g2 | 0) < (e2 | 0)) { f2 = g2; d2 = 0; do { f2 = f2 << 1; d2 = d2 + 1 | 0; } while ((f2 | 0) < (e2 | 0)); e2 = d2; } else e2 = 0; if ((c2 | 0) > 0 & (e2 | 0) == 0 ? l[b2 + 10 >> 0] << 1 >>> 0 < g2 >>> 0 : 0) d2 = 1; else h2 = 5; do if ((h2 | 0) == 5) { d2 = (c2 | 0) < 0; if (d2 ? l[b2 + 10 >> 0] << 1 >>> 0 >= g2 >>> 0 : 0) { d2 = 1; break; } d2 = d2 & (e2 | 0) != 0; } while (0); d2 = (((c2 | 0) > -1 ? c2 : 0 - c2 | 0) << 1) - j2 + (d2 << 31 >> 31) | 0; sg(a2, e2, d2, 31 - (k[36476 + (k[a2 + 4576 >> 2] << 2) >> 2] | 0) | 0); if ((c2 | 0) < 0) { a2 = b2 + 10 | 0; i2[a2 >> 0] = (l[a2 >> 0] | 0) + 1; } d2 = (d2 + 1 - (k[m2 >> 2] | 0) >> 1) + (k[b2 >> 2] | 0) | 0; k[b2 >> 2] = d2; e2 = i2[n2 >> 0] | 0; if (e2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { b2 = e2; b2 = b2 & 255; b2 = b2 + 1 | 0; b2 = b2 & 255; i2[n2 >> 0] = b2; return; } k[b2 >> 2] = d2 >> 1; a2 = (e2 & 255) >>> 1; i2[n2 >> 0] = a2; b2 = b2 + 10 | 0; i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; b2 = a2; b2 = b2 & 255; b2 = b2 + 1 | 0; b2 = b2 & 255; i2[n2 >> 0] = b2; return; } function sg(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0; e2 = c2 >> b2; f2 = d2 + -8 | 0; if ((e2 | 0) < (d2 + -9 | 0)) { if ((e2 | 0) > 30) { d2 = (e2 | 0) / 2 | 0; ke(a2, 0, d2); e2 = e2 - d2 | 0; } ke(a2, 1, e2 + 1 | 0); ke(a2, (1 << b2) + -1 & c2, b2); return; } if ((f2 | 0) > 31) { ke(a2, 0, 31); ke(a2, 1, d2 + -39 | 0); } else ke(a2, 1, f2); ke(a2, c2 + 255 & 255, 8); return; } function tg(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; l2 = r; r = r + 32 | 0; h2 = l2; Oi(h2, 255, 0); j2 = a2 + 160 | 0; if (((k[h2 + 4 >> 2] | 0) == (k[j2 >> 2] | 0) ? (k[h2 + 8 >> 2] | 0) == (k[a2 + 164 >> 2] | 0) : 0) ? (k[h2 + 12 >> 2] | 0) == (k[a2 + 168 >> 2] | 0) : 0) { j2 = k[8900] | 0; k[a2 + 4588 >> 2] = j2 + (((k[8901] | 0) - j2 | 0) >>> 1); r = l2; return; } c2 = a2 + 4592 | 0; d2 = a2 + 4596 | 0; e2 = k[d2 >> 2] | 0; b2 = k[c2 >> 2] | 0; f2 = e2 - b2 | 0; if (f2 >>> 0 >= 512) { if (f2 >>> 0 > 512 ? (g2 = b2 + 512 | 0, (e2 | 0) != (g2 | 0)) : 0) k[d2 >> 2] = g2; } else { se(c2, 512 - f2 | 0); b2 = k[c2 >> 2] | 0; } h2 = a2 + 4588 | 0; k[h2 >> 2] = b2 + 256; g2 = a2 + 168 | 0; e2 = a2 + 164 | 0; f2 = -256; while (1) { b2 = k[g2 >> 2] | 0; if ((f2 | 0) > (0 - b2 | 0)) { c2 = k[e2 >> 2] | 0; if ((f2 | 0) > (0 - c2 | 0)) { d2 = k[j2 >> 2] | 0; if ((f2 | 0) > (0 - d2 | 0)) if ((f2 | 0) >= 0) { if ((f2 | 0) < 1) { i2[(k[h2 >> 2] | 0) + f2 >> 0] = 0; f2 = 1; continue; } if ((d2 | 0) <= (f2 | 0)) if ((c2 | 0) > (f2 | 0)) b2 = 2; else b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; else b2 = 1; } else b2 = -1; else b2 = -2; } else b2 = -3; } else b2 = -4; i2[(k[h2 >> 2] | 0) + f2 >> 0] = b2; f2 = f2 + 1 | 0; if ((f2 | 0) == 256) break; } r = l2; return; } function ug(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 35884; b2 = k[a2 + 4616 >> 2] | 0; if (b2) { c2 = a2 + 4620 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36612; b2 = k[a2 + 120 >> 2] | 0; if (b2) { c2 = a2 + 124 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = a2 + 92 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); a2 = a2 + 4 | 0; b2 = k[a2 >> 2] | 0; k[a2 >> 2] = 0; if (!b2) return; Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); return; } function vg(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 35884; b2 = k[a2 + 4616 >> 2] | 0; if (b2) { c2 = a2 + 4620 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36612; b2 = k[a2 + 120 >> 2] | 0; if (b2) { c2 = a2 + 124 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = a2 + 92 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); c2 = a2 + 4 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (!b2) { mj(a2); return; } Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); mj(a2); return; } function wg(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0; g2 = r; r = r + 32 | 0; l2 = g2; Oi(l2, k[a2 + 136 >> 2] | 0, k[a2 + 144 >> 2] | 0); h2 = k[b2 + 4 >> 2] | 0; f2 = k[b2 + 8 >> 2] | 0; f2 = (f2 | 0) == 0 ? k[l2 + 8 >> 2] | 0 : f2; e2 = k[b2 + 12 >> 2] | 0; e2 = (e2 | 0) == 0 ? k[l2 + 12 >> 2] | 0 : e2; c2 = k[b2 + 16 >> 2] | 0; d2 = k[l2 + 16 >> 2] | 0; k[a2 + 184 >> 2] = (h2 | 0) == 0 ? k[l2 + 4 >> 2] | 0 : h2; k[a2 + 188 >> 2] = f2; k[a2 + 192 >> 2] = e2; Gg(a2); e2 = a2 + 140 | 0; b2 = (k[e2 >> 2] | 0) + 32 | 0; b2 = (b2 | 0) < 128 ? 2 : (b2 | 0) / 64 | 0; f2 = 0; do { k[a2 + 196 + (f2 * 12 | 0) >> 2] = b2; k[a2 + 196 + (f2 * 12 | 0) + 4 >> 2] = 0; j[a2 + 196 + (f2 * 12 | 0) + 8 >> 1] = 0; j[a2 + 196 + (f2 * 12 | 0) + 10 >> 1] = 1; f2 = f2 + 1 | 0; } while ((f2 | 0) != 365); h2 = (k[e2 >> 2] | 0) + 32 | 0; h2 = (h2 | 0) < 128 ? 2 : (h2 | 0) / 64 | 0; l2 = ((c2 | 0) == 0 ? d2 : c2) & 255; k[a2 + 4576 >> 2] = h2; k[a2 + 4580 >> 2] = 0; i2[a2 + 4584 >> 0] = l2; i2[a2 + 4585 >> 0] = 1; i2[a2 + 4586 >> 0] = 0; k[a2 + 4588 >> 2] = h2; k[a2 + 4592 >> 2] = 1; i2[a2 + 4596 >> 0] = l2; i2[a2 + 4597 >> 0] = 1; i2[a2 + 4598 >> 0] = 0; k[a2 + 4600 >> 2] = 0; r = g2; return; } function xg(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0; n2 = r; r = r + 16 | 0; l2 = n2; h2 = a2 + 92 | 0; g2 = k[b2 >> 2] | 0; k[b2 >> 2] = 0; b2 = k[h2 >> 2] | 0; k[h2 >> 2] = g2; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); k[l2 >> 2] = 0; k[l2 + 4 >> 2] = d2; h2 = c2 + 8 | 0; k[l2 + 8 >> 2] = k[h2 >> 2]; if (d2) { b2 = lj(4624) | 0; d2 = a2 + 8 | 0; e2 = b2 + 4 | 0; f2 = d2; g2 = e2 + 84 | 0; do { k[e2 >> 2] = k[f2 >> 2]; e2 = e2 + 4 | 0; f2 = f2 + 4 | 0; } while ((e2 | 0) < (g2 | 0)); e2 = b2 + 88 | 0; g2 = e2 + 40 | 0; do { k[e2 >> 2] = 0; e2 = e2 + 4 | 0; } while ((e2 | 0) < (g2 | 0)); k[b2 >> 2] = 35660; k[b2 + 128 >> 2] = k[a2 + 136 >> 2]; k[b2 + 132 >> 2] = k[a2 + 140 >> 2]; k[b2 + 136 >> 2] = k[a2 + 144 >> 2]; k[b2 + 140 >> 2] = k[a2 + 148 >> 2]; k[b2 + 144 >> 2] = k[a2 + 152 >> 2]; k[b2 + 148 >> 2] = k[a2 + 156 >> 2]; k[b2 + 152 >> 2] = k[a2 + 160 >> 2]; e2 = b2 + 156 | 0; k[e2 >> 2] = 0; k[e2 + 4 >> 2] = 0; k[e2 + 8 >> 2] = 0; k[e2 + 12 >> 2] = 0; k[b2 + 172 >> 2] = k[d2 >> 2]; k[b2 + 176 >> 2] = 0; k[b2 + 180 >> 2] = 0; k[b2 + 184 >> 2] = 0; e2 = b2 + 4568 | 0; d2 = b2 + 188 | 0; do { k[d2 >> 2] = 0; k[d2 + 4 >> 2] = 0; j[d2 + 8 >> 1] = 0; j[d2 + 10 >> 1] = 1; d2 = d2 + 12 | 0; } while ((d2 | 0) != (e2 | 0)); f2 = a2 + 4 | 0; k[e2 >> 2] = 0; k[e2 + 4 >> 2] = 0; j[e2 + 8 >> 1] = 0; i2[e2 + 10 >> 0] = 0; g2 = b2 + 4580 | 0; k[g2 >> 2] = 0; k[g2 + 4 >> 2] = 0; j[g2 + 8 >> 1] = 0; i2[g2 + 10 >> 0] = 0; g2 = b2 + 4592 | 0; k[g2 >> 2] = 0; k[g2 + 4 >> 2] = 0; k[g2 + 8 >> 2] = 0; k[g2 + 12 >> 2] = 0; k[g2 + 16 >> 2] = 0; k[g2 + 20 >> 2] = 0; k[g2 + 24 >> 2] = 0; i2[g2 + 28 >> 0] = 0; if (!(k[b2 + 28 >> 2] | 0)) k[b2 + 20 >> 2] = 1; d2 = k[f2 >> 2] | 0; k[f2 >> 2] = b2; if (d2) { Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); b2 = k[f2 >> 2] | 0; } ee(b2, l2); } l2 = a2 + 100 | 0; k[l2 >> 2] = 32; k[a2 + 96 >> 2] = 0; b2 = k[c2 >> 2] | 0; if (!b2) { k[a2 + 108 >> 2] = k[c2 + 4 >> 2]; k[a2 + 104 >> 2] = k[h2 >> 2]; zg(a2); m2 = a2 + 116 | 0; m2 = k[m2 >> 2] | 0; a2 = k[l2 >> 2] | 0; a2 = a2 + -32 | 0; a2 = (a2 | 0) / 8 | 0; a2 = m2 - a2 | 0; r = n2; return a2 | 0; } k[a2 + 132 >> 2] = b2; e2 = a2 + 120 | 0; h2 = a2 + 124 | 0; d2 = k[h2 >> 2] | 0; b2 = k[e2 >> 2] | 0; f2 = b2; g2 = d2 - f2 | 0; if (g2 >>> 0 >= 4e3) { if (g2 >>> 0 > 4e3 ? (m2 = b2 + 4e3 | 0, (d2 | 0) != (m2 | 0)) : 0) { k[h2 >> 2] = m2; d2 = m2; } } else { fe(e2, 4e3 - g2 | 0); b2 = k[e2 >> 2] | 0; f2 = b2; d2 = k[h2 >> 2] | 0; } k[a2 + 108 >> 2] = f2; k[a2 + 104 >> 2] = d2 - b2; zg(a2); m2 = a2 + 116 | 0; m2 = k[m2 >> 2] | 0; a2 = k[l2 >> 2] | 0; a2 = a2 + -32 | 0; a2 = (a2 | 0) / 8 | 0; a2 = m2 - a2 | 0; r = n2; return a2 | 0; } function yg(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; u2 = r; r = r + 352 | 0; v2 = u2 + 328 | 0; y2 = u2 + 192 | 0; c2 = u2 + 343 | 0; d2 = u2 + 342 | 0; e2 = u2 + 341 | 0; f2 = u2 + 340 | 0; o2 = u2 + 176 | 0; h2 = u2 + 168 | 0; j2 = u2 + 160 | 0; l2 = u2 + 152 | 0; t2 = u2; q2 = u2 + 136 | 0; if ((k[a2 + 32 >> 2] | 0) != 0 ? (k[a2 + 24 >> 2] | 0) != 1 : 0) { p2 = a2 + 8 | 0; s2 = a2 + 36 | 0; g2 = k[s2 >> 2] | 0; if (!g2) { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[c2 >> 0] | 0; Ja(44, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } a2 = k[a2 + 16 >> 2] | 0; if ((a2 | 0) == 8) switch (g2 | 0) { case 1: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[d2 >> 0] | 0; Ja(45, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[e2 >> 0] | 0; Ja(46, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[f2 >> 0] | 0; Ja(47, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = y2 + 56 | 0; e2 = y2 + 4 | 0; k[y2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, y2 + 56 | 0, e2 | 0); u2 = x; x = 0; if (u2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[y2 + 128 >> 2] = 0; k[y2 + 132 >> 2] = -1; k[y2 >> 2] = 36200; k[y2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); u2 = x; x = 0; do if (u2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = y2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[y2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); u2 = x; x = 0; if (u2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, y2 | 0, 49007, 21) | 0; v2 = x; x = 0; do if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, o2 | 0, e2 | 0); v2 = x; x = 0; if (!(v2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, o2 | 0); v2 = x; x = 0; if (v2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(o2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 34; while (0); if ((z2 | 0) == 34) a2 = Wa() | 0; k[y2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } if ((a2 | 0) <= 8) { a2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, a2 | 0, 8, 35648); z2 = x; x = 0; if (!(z2 & 1)) ub(a2 | 0, 824, 96); z2 = Wa() | 0; Ua(a2 | 0); fb(z2 | 0); } c2 = 16 - a2 | 0; switch (g2 | 0) { case 1: { a2 = lj(60) | 0; k[h2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[h2 >> 2]; k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(60) | 0; k[j2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[j2 >> 2]; k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(60) | 0; k[l2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[l2 >> 2]; k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = t2 + 56 | 0; e2 = t2 + 4 | 0; k[t2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, t2 + 56 | 0, e2 | 0); y2 = x; x = 0; if (y2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[t2 + 128 >> 2] = 0; k[t2 + 132 >> 2] = -1; k[t2 >> 2] = 36200; k[t2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); y2 = x; x = 0; do if (y2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = t2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[t2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); y2 = x; x = 0; if (y2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, t2 | 0, 49007, 21) | 0; y2 = x; x = 0; do if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, q2 | 0, e2 | 0); y2 = x; x = 0; if (!(y2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, q2 | 0); y2 = x; x = 0; if (y2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(q2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 64; while (0); if ((z2 | 0) == 64) a2 = Wa() | 0; k[t2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } } c2 = k[b2 + 4 >> 2] | 0; d2 = lj(16) | 0; a2 = k[a2 + 20 >> 2] | 0; if (!c2) { z2 = k[b2 >> 2] | 0; k[d2 >> 2] = 36132; k[d2 + 4 >> 2] = z2; k[d2 + 8 >> 2] = 1; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } else { k[d2 >> 2] = 36108; k[d2 + 4 >> 2] = c2; k[d2 + 8 >> 2] = 1; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } return 0; } function zg(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; t2 = r; r = r + 32 | 0; v2 = t2 + 12 | 0; s2 = t2; p2 = a2 + 180 | 0; q2 = (k[p2 >> 2] | 0) + 4 | 0; if ((k[a2 + 32 >> 2] | 0) == 1) n2 = k[a2 + 24 >> 2] | 0; else n2 = 1; b2 = ia(n2 << 1, q2) | 0; k[v2 >> 2] = 0; w2 = v2 + 4 | 0; k[w2 >> 2] = 0; k[v2 + 8 >> 2] = 0; a: do if (b2) { if (!((b2 | 0) < 0 ? (x = 0, qa(178, v2 | 0), u2 = x, x = 0, u2 & 1) : 0)) o2 = 6; if ((o2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { k[w2 >> 2] = c2; k[v2 >> 2] = c2; k[v2 + 8 >> 2] = c2 + b2; while (1) { i2[c2 >> 0] = 0; c2 = (k[w2 >> 2] | 0) + 1 | 0; k[w2 >> 2] = c2; b2 = b2 + -1 | 0; if (!b2) break a; } } c2 = Wa() | 0; b2 = k[v2 >> 2] | 0; if (!b2) fb(c2 | 0); if ((k[w2 >> 2] | 0) != (b2 | 0)) k[w2 >> 2] = b2; mj(b2); fb(c2 | 0); } while (0); k[s2 >> 2] = 0; u2 = s2 + 4 | 0; k[u2 >> 2] = 0; k[s2 + 8 >> 2] = 0; do if (!n2) o2 = 19; else { if (!(n2 >>> 0 > 1073741823 ? (x = 0, qa(178, s2 | 0), m2 = x, x = 0, m2 & 1) : 0)) o2 = 17; if ((o2 | 0) == 17 ? (d2 = n2 << 2, x = 0, e2 = ta(67, d2 | 0) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) { k[s2 >> 2] = e2; o2 = e2 + (n2 << 2) | 0; k[s2 + 8 >> 2] = o2; sw(e2 | 0, 0, d2 | 0) | 0; k[u2 >> 2] = o2; o2 = 19; break; } c2 = Wa() | 0; b2 = k[s2 >> 2] | 0; d2 = b2; if (b2) { e2 = k[u2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[u2 >> 2] = e2 + (~((e2 + -4 - d2 | 0) >>> 2) << 2); mj(b2); } } while (0); if ((o2 | 0) == 19) { g2 = a2 + 12 | 0; b: do if ((k[g2 >> 2] | 0) > 0) { h2 = a2 + 4604 | 0; j2 = (ia(n2, q2) | 0) + 1 | 0; l2 = a2 + 4608 | 0; m2 = a2 + 92 | 0; f2 = a2 + 4600 | 0; if ((n2 | 0) > 0) e2 = 0; else { d2 = 0; while (1) { c2 = k[v2 >> 2] | 0; b2 = c2 + 1 | 0; k[h2 >> 2] = b2; c2 = c2 + j2 | 0; k[l2 >> 2] = c2; if (!(d2 & 1)) b2 = c2; else { k[h2 >> 2] = c2; k[l2 >> 2] = b2; } n2 = k[m2 >> 2] | 0; x = 0; Ja(k[(k[n2 >> 2] | 0) + 12 >> 2] | 0, n2 | 0, b2 | 0, k[p2 >> 2] | 0, q2 | 0); n2 = x; x = 0; if (n2 & 1) break; d2 = d2 + 1 | 0; if ((d2 | 0) >= (k[g2 >> 2] | 0)) { o2 = 45; break b; } } c2 = Wa() | 0; break; } c: while (1) { c2 = k[v2 >> 2] | 0; b2 = c2 + 1 | 0; k[h2 >> 2] = b2; c2 = c2 + j2 | 0; k[l2 >> 2] = c2; if (!(e2 & 1)) b2 = c2; else { k[h2 >> 2] = c2; k[l2 >> 2] = b2; } o2 = k[m2 >> 2] | 0; x = 0; Ja(k[(k[o2 >> 2] | 0) + 12 >> 2] | 0, o2 | 0, b2 | 0, k[p2 >> 2] | 0, q2 | 0); o2 = x; x = 0; if (o2 & 1) { o2 = 28; break; } b2 = k[s2 >> 2] | 0; c2 = k[h2 >> 2] | 0; d2 = 0; do { k[f2 >> 2] = k[b2 + (d2 << 2) >> 2]; o2 = k[p2 >> 2] | 0; i2[c2 + o2 >> 0] = i2[c2 + (o2 + -1) >> 0] | 0; i2[(k[l2 >> 2] | 0) + -1 >> 0] = i2[k[h2 >> 2] >> 0] | 0; x = 0; ra(75, a2 | 0, 0); o2 = x; x = 0; if (o2 & 1) { o2 = 36; break c; } b2 = k[s2 >> 2] | 0; k[b2 + (d2 << 2) >> 2] = k[f2 >> 2]; c2 = (k[h2 >> 2] | 0) + q2 | 0; k[h2 >> 2] = c2; k[l2 >> 2] = (k[l2 >> 2] | 0) + q2; d2 = d2 + 1 | 0; } while ((d2 | 0) < (n2 | 0)); e2 = e2 + 1 | 0; if ((e2 | 0) >= (k[g2 >> 2] | 0)) { o2 = 45; break b; } } if ((o2 | 0) == 28) { c2 = Wa() | 0; break; } else if ((o2 | 0) == 36) { c2 = Wa() | 0; break; } } else o2 = 45; while (0); do if ((o2 | 0) == 45) { x = 0; qa(182, a2 | 0); a2 = x; x = 0; if (a2 & 1) { c2 = Wa() | 0; break; } b2 = k[s2 >> 2] | 0; c2 = b2; if (b2) { d2 = k[u2 >> 2] | 0; if ((d2 | 0) != (b2 | 0)) k[u2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } b2 = k[v2 >> 2] | 0; if (!b2) { r = t2; return; } if ((k[w2 >> 2] | 0) != (b2 | 0)) k[w2 >> 2] = b2; mj(b2); r = t2; return; } while (0); b2 = k[s2 >> 2] | 0; d2 = b2; if (b2) { e2 = k[u2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[u2 >> 2] = e2 + (~((e2 + -4 - d2 | 0) >>> 2) << 2); mj(b2); } } b2 = k[v2 >> 2] | 0; if (!b2) fb(c2 | 0); if ((k[w2 >> 2] | 0) != (b2 | 0)) k[w2 >> 2] = b2; mj(b2); fb(c2 | 0); } function Ag(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; o2 = a2 + 4604 | 0; b2 = k[o2 >> 2] | 0; r2 = a2 + 180 | 0; if ((k[r2 >> 2] | 0) <= 0) return; p2 = a2 + 4608 | 0; q2 = a2 + 4612 | 0; e2 = b2; f2 = l[b2 + -1 >> 0] | 0; b2 = l[b2 >> 0] | 0; n2 = 0; while (1) { m2 = k[p2 >> 2] | 0; j2 = l[m2 + (n2 + -1) >> 0] | 0; d2 = n2 + 1 | 0; c2 = l[e2 + d2 >> 0] | 0; h2 = k[q2 >> 2] | 0; g2 = b2 - f2 | 0; e2 = f2 - j2 | 0; h2 = ((((i2[h2 + (c2 - b2) >> 0] | 0) * 9 | 0) + (i2[h2 + g2 >> 0] | 0) | 0) * 9 | 0) + (i2[h2 + e2 >> 0] | 0) | 0; if (!h2) { d2 = (Cg(a2, n2, 0) | 0) + n2 | 0; c2 = k[o2 >> 2] | 0; b2 = l[c2 + (d2 + -1) >> 0] | 0; c2 = l[c2 + d2 >> 0] | 0; } else { f2 = b2 - j2 >> 31; if ((f2 ^ e2 | 0) < 0) e2 = b2; else e2 = j2 + ((f2 ^ g2 | 0) < 0 ? 0 : g2) | 0; m2 = Bg(a2, h2, l[m2 + n2 >> 0] | 0, e2, 0) | 0; i2[(k[p2 >> 2] | 0) + n2 >> 0] = m2; } if ((d2 | 0) >= (k[r2 >> 2] | 0)) break; e2 = k[o2 >> 2] | 0; f2 = b2; b2 = c2; n2 = d2; } return; } function Bg(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; r2 = b2 >> 31; f2 = (r2 ^ b2) - r2 | 0; p2 = a2 + 196 + (f2 * 12 | 0) + 10 | 0; g2 = j[p2 >> 1] | 0; o2 = a2 + 196 + (f2 * 12 | 0) | 0; e2 = k[o2 >> 2] | 0; if ((g2 | 0) < (e2 | 0)) if ((g2 << 1 | 0) < (e2 | 0)) if ((g2 << 2 | 0) < (e2 | 0)) if ((g2 << 3 | 0) < (e2 | 0)) if ((g2 << 4 | 0) < (e2 | 0)) { b2 = 5; while (1) if ((g2 << b2 | 0) < (e2 | 0)) b2 = b2 + 1 | 0; else break; } else b2 = 4; else b2 = 3; else b2 = 2; else b2 = 1; else b2 = 0; m2 = a2 + 196 + (f2 * 12 | 0) + 8 | 0; e2 = (j[m2 >> 1] ^ r2) - r2 + d2 | 0; q2 = a2 + 136 | 0; d2 = k[q2 >> 2] | 0; if ((e2 & d2 | 0) == (e2 | 0)) l2 = e2; else l2 = d2 & ~(e2 >> 31); e2 = (c2 - l2 ^ r2) - r2 | 0; i3 = a2 + 144 | 0; d2 = k[i3 >> 2] | 0; if ((e2 | 0) > 0) e2 = (e2 + d2 | 0) / (d2 << 1 | 1 | 0) | 0; else e2 = (e2 - d2 | 0) / (d2 << 1 | 1 | 0) | 0; n2 = a2 + 140 | 0; h2 = k[n2 >> 2] | 0; c2 = ((e2 | 0) < 0 ? h2 : 0) + e2 | 0; h2 = c2 - ((c2 | 0) < ((h2 + 1 | 0) / 2 | 0 | 0) ? 0 : h2) | 0; f2 = a2 + 196 + (f2 * 12 | 0) + 4 | 0; if (!(d2 | b2)) e2 = (k[f2 >> 2] << 1) + -1 + g2 >> 31; else e2 = 0; d2 = e2 ^ h2; Fg(a2, b2, d2 >> 30 ^ d2 << 1, k[a2 + 156 >> 2] | 0); d2 = k[a2 + 160 >> 2] | 0; b2 = (k[o2 >> 2] | 0) + ((h2 | 0) > -1 ? h2 : 0 - h2 | 0) | 0; e2 = (k[f2 >> 2] | 0) + (ia(k[i3 >> 2] << 1 | 1, h2) | 0) | 0; c2 = j[p2 >> 1] | 0; if ((c2 | 0) == (d2 | 0)) { b2 = b2 >> 1; e2 = e2 >> 1; c2 = d2 >> 1; } k[o2 >> 2] = b2; d2 = c2 + 1 | 0; j[p2 >> 1] = d2; b2 = d2 + e2 | 0; if ((b2 | 0) >= 1) { if ((e2 | 0) > 0) { e2 = e2 - d2 | 0; p2 = j[m2 >> 1] | 0; j[m2 >> 1] = (p2 << 16 >> 16 < 127 & 1) + (p2 & 65535); e2 = (e2 | 0) > 0 ? 0 : e2; } } else { e2 = j[m2 >> 1] | 0; j[m2 >> 1] = (e2 & 65535) - (e2 << 16 >> 16 > -128 & 1); e2 = (b2 | 0) > (~c2 | 0) ? b2 : 0 - c2 | 0; } k[f2 >> 2] = e2; d2 = k[i3 >> 2] | 0; c2 = d2 << 1 | 1; b2 = (ia(c2, (h2 ^ r2) - r2 | 0) | 0) + l2 | 0; if ((b2 | 0) >= (0 - d2 | 0)) { e2 = k[q2 >> 2] | 0; if ((e2 + d2 | 0) < (b2 | 0)) b2 = b2 - (ia(k[n2 >> 2] | 0, c2) | 0) | 0; } else { b2 = (ia(k[n2 >> 2] | 0, c2) | 0) + b2 | 0; e2 = k[q2 >> 2] | 0; } if ((b2 & e2 | 0) == (b2 | 0)) { r2 = b2; r2 = r2 & 255; return r2 | 0; } r2 = e2 & ~(b2 >> 31); r2 = r2 & 255; return r2 | 0; } function Cg(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; j2 = (k[a2 + 180 >> 2] | 0) - b2 | 0; m2 = k[a2 + 4608 >> 2] | 0; n2 = k[a2 + 4604 >> 2] | 0; e2 = i2[m2 + (b2 + -1) >> 0] | 0; h2 = e2 & 255; c2 = a2 + 144 | 0; f2 = 0; while (1) { d2 = m2 + (f2 + b2) | 0; g2 = (l[d2 >> 0] | 0) - h2 | 0; if ((((g2 | 0) > -1 ? g2 : 0 - g2 | 0) | 0) > (k[c2 >> 2] | 0)) break; i2[d2 >> 0] = e2; f2 = f2 + 1 | 0; if ((f2 | 0) == (j2 | 0)) { f2 = j2; break; } } e2 = (f2 | 0) == (j2 | 0); g2 = a2 + 4600 | 0; d2 = k[36476 + (k[g2 >> 2] << 2) >> 2] | 0; if ((1 << d2 | 0) > (f2 | 0)) c2 = f2; else { c2 = f2; do { ke(a2, 1, 1); d2 = k[g2 >> 2] | 0; c2 = c2 - (1 << k[36476 + (d2 << 2) >> 2]) | 0; d2 = (d2 | 0) > 30 ? 31 : d2 + 1 | 0; k[g2 >> 2] = d2; d2 = k[36476 + (d2 << 2) >> 2] | 0; } while ((c2 | 0) >= (1 << d2 | 0)); } if (!e2) { ke(a2, c2, d2 + 1 | 0); j2 = f2 + b2 | 0; b2 = m2 + j2 | 0; a2 = Dg(a2, l[b2 >> 0] | 0, h2, l[n2 + j2 >> 0] | 0) | 0; i2[b2 >> 0] = a2; a2 = k[g2 >> 2] | 0; k[g2 >> 2] = (a2 | 0) < 1 ? 0 : a2 + -1 | 0; a2 = f2 + 1 | 0; return a2 | 0; } if (!c2) { a2 = j2; return a2 | 0; } ke(a2, 1, 1); a2 = j2; return a2 | 0; } function Dg(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0; h2 = c2 - d2 | 0; i3 = a2 + 136 | 0; g2 = a2 + 144 | 0; e2 = k[g2 >> 2] | 0; if ((((h2 | 0) > -1 ? h2 : 0 - h2 | 0) | 0) > (e2 | 0)) { f2 = d2 - c2 >> 31 | 1; b2 = ia(f2, b2 - d2 | 0) | 0; if ((b2 | 0) > 0) b2 = (e2 + b2 | 0) / (e2 << 1 | 1 | 0) | 0; else b2 = (b2 - e2 | 0) / (e2 << 1 | 1 | 0) | 0; h2 = a2 + 140 | 0; e2 = k[h2 >> 2] | 0; c2 = ((b2 | 0) < 0 ? e2 : 0) + b2 | 0; e2 = c2 - ((c2 | 0) < ((e2 + 1 | 0) / 2 | 0 | 0) ? 0 : e2) | 0; Eg(a2, a2 + 4576 | 0, e2); e2 = ia(e2, f2) | 0; f2 = k[g2 >> 2] | 0; g2 = f2 << 1 | 1; e2 = (ia(e2, g2) | 0) + d2 | 0; if ((e2 | 0) >= (0 - f2 | 0)) { b2 = k[i3 >> 2] | 0; if ((b2 + f2 | 0) < (e2 | 0)) e2 = e2 - (ia(k[h2 >> 2] | 0, g2) | 0) | 0; } else { e2 = (ia(k[h2 >> 2] | 0, g2) | 0) + e2 | 0; b2 = k[i3 >> 2] | 0; } if ((e2 & b2 | 0) == (e2 | 0)) { i3 = e2; i3 = i3 & 255; return i3 | 0; } i3 = b2 & ~(e2 >> 31); i3 = i3 & 255; return i3 | 0; } else { b2 = b2 - c2 | 0; if ((b2 | 0) > 0) b2 = (e2 + b2 | 0) / (e2 << 1 | 1 | 0) | 0; else b2 = (b2 - e2 | 0) / (e2 << 1 | 1 | 0) | 0; h2 = a2 + 140 | 0; e2 = k[h2 >> 2] | 0; f2 = ((b2 | 0) < 0 ? e2 : 0) + b2 | 0; e2 = f2 - ((f2 | 0) < ((e2 + 1 | 0) / 2 | 0 | 0) ? 0 : e2) | 0; Eg(a2, a2 + 4588 | 0, e2); f2 = k[g2 >> 2] | 0; g2 = f2 << 1 | 1; e2 = (ia(g2, e2) | 0) + c2 | 0; if ((e2 | 0) >= (0 - f2 | 0)) { b2 = k[i3 >> 2] | 0; if ((b2 + f2 | 0) < (e2 | 0)) e2 = e2 - (ia(k[h2 >> 2] | 0, g2) | 0) | 0; } else { e2 = (ia(k[h2 >> 2] | 0, g2) | 0) + e2 | 0; b2 = k[i3 >> 2] | 0; } if ((e2 & b2 | 0) == (e2 | 0)) { i3 = e2; i3 = i3 & 255; return i3 | 0; } i3 = b2 & ~(e2 >> 31); i3 = i3 & 255; return i3 | 0; } return 0; } function Eg(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0; n2 = b2 + 9 | 0; g2 = l[n2 >> 0] | 0; m2 = b2 + 4 | 0; j2 = k[m2 >> 2] | 0; e2 = (ia(g2 >>> 1, j2) | 0) + (k[b2 >> 2] | 0) | 0; if ((g2 | 0) < (e2 | 0)) { f2 = g2; d2 = 0; do { f2 = f2 << 1; d2 = d2 + 1 | 0; } while ((f2 | 0) < (e2 | 0)); e2 = d2; } else e2 = 0; if ((c2 | 0) > 0 & (e2 | 0) == 0 ? l[b2 + 10 >> 0] << 1 >>> 0 < g2 >>> 0 : 0) d2 = 1; else h2 = 5; do if ((h2 | 0) == 5) { d2 = (c2 | 0) < 0; if (d2 ? l[b2 + 10 >> 0] << 1 >>> 0 >= g2 >>> 0 : 0) { d2 = 1; break; } d2 = d2 & (e2 | 0) != 0; } while (0); d2 = (((c2 | 0) > -1 ? c2 : 0 - c2 | 0) << 1) - j2 + (d2 << 31 >> 31) | 0; Fg(a2, e2, d2, (k[a2 + 156 >> 2] | 0) + -1 - (k[36476 + (k[a2 + 4600 >> 2] << 2) >> 2] | 0) | 0); if ((c2 | 0) < 0) { a2 = b2 + 10 | 0; i2[a2 >> 0] = (l[a2 >> 0] | 0) + 1; } d2 = (d2 + 1 - (k[m2 >> 2] | 0) >> 1) + (k[b2 >> 2] | 0) | 0; k[b2 >> 2] = d2; e2 = i2[n2 >> 0] | 0; if (e2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { b2 = e2; b2 = b2 & 255; b2 = b2 + 1 | 0; b2 = b2 & 255; i2[n2 >> 0] = b2; return; } k[b2 >> 2] = d2 >> 1; a2 = (e2 & 255) >>> 1; i2[n2 >> 0] = a2; b2 = b2 + 10 | 0; i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; b2 = a2; b2 = b2 & 255; b2 = b2 + 1 | 0; b2 = b2 & 255; i2[n2 >> 0] = b2; return; } function Fg(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0; e2 = c2 >> b2; f2 = a2 + 148 | 0; g2 = d2 - (k[f2 >> 2] | 0) | 0; if ((e2 | 0) < (g2 + -1 | 0)) { if ((e2 | 0) > 30) { d2 = (e2 | 0) / 2 | 0; ke(a2, 0, d2); e2 = e2 - d2 | 0; } ke(a2, 1, e2 + 1 | 0); ke(a2, (1 << b2) + -1 & c2, b2); return; } if ((g2 | 0) > 31) { ke(a2, 0, 31); ke(a2, 1, d2 + -31 - (k[f2 >> 2] | 0) | 0); } else ke(a2, 1, g2); b2 = k[f2 >> 2] | 0; ke(a2, (1 << b2) + -1 & c2 + -1, b2); return; } function Gg(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; o2 = r; r = r + 32 | 0; d2 = o2; n2 = a2 + 144 | 0; a: do if (!(k[n2 >> 2] | 0)) { c2 = k[a2 + 136 >> 2] | 0; b2 = a2 + 152 | 0; if ((((c2 | 0) == ((1 << k[b2 >> 2]) + -1 | 0) ? (Oi(d2, c2, 0), (k[d2 + 4 >> 2] | 0) == (k[a2 + 184 >> 2] | 0)) : 0) ? (k[d2 + 8 >> 2] | 0) == (k[a2 + 188 >> 2] | 0) : 0) ? (k[d2 + 12 >> 2] | 0) == (k[a2 + 192 >> 2] | 0) : 0) switch (k[b2 >> 2] | 0) { case 8: { n2 = k[8900] | 0; k[a2 + 4612 >> 2] = n2 + (((k[8901] | 0) - n2 | 0) >>> 1); r = o2; return; } case 10: { n2 = k[8903] | 0; k[a2 + 4612 >> 2] = n2 + (((k[8904] | 0) - n2 | 0) >>> 1); r = o2; return; } case 12: { n2 = k[8906] | 0; k[a2 + 4612 >> 2] = n2 + (((k[8907] | 0) - n2 | 0) >>> 1); r = o2; return; } case 16: { n2 = k[8909] | 0; k[a2 + 4612 >> 2] = n2 + (((k[8910] | 0) - n2 | 0) >>> 1); r = o2; return; } default: break a; } } else b2 = a2 + 152 | 0; while (0); m2 = 1 << k[b2 >> 2]; c2 = a2 + 4616 | 0; d2 = m2 << 1; e2 = a2 + 4620 | 0; f2 = k[e2 >> 2] | 0; b2 = k[c2 >> 2] | 0; g2 = f2 - b2 | 0; if (d2 >>> 0 <= g2 >>> 0) { if (d2 >>> 0 < g2 >>> 0 ? (h2 = b2 + d2 | 0, (f2 | 0) != (h2 | 0)) : 0) k[e2 >> 2] = h2; } else { se(c2, d2 - g2 | 0); b2 = k[c2 >> 2] | 0; } l2 = a2 + 4612 | 0; k[l2 >> 2] = b2 + m2; b2 = 0 - m2 | 0; if ((m2 | 0) <= (b2 | 0)) { r = o2; return; } h2 = a2 + 192 | 0; j2 = a2 + 188 | 0; g2 = a2 + 184 | 0; f2 = b2; do { b2 = k[h2 >> 2] | 0; if ((f2 | 0) > (0 - b2 | 0)) { c2 = k[j2 >> 2] | 0; if ((f2 | 0) > (0 - c2 | 0)) { d2 = k[g2 >> 2] | 0; if ((f2 | 0) > (0 - d2 | 0)) { e2 = k[n2 >> 2] | 0; if ((f2 | 0) >= (0 - e2 | 0)) if ((e2 | 0) < (f2 | 0)) if ((d2 | 0) <= (f2 | 0)) if ((c2 | 0) > (f2 | 0)) b2 = 2; else b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; else b2 = 1; else b2 = 0; else b2 = -1; } else b2 = -2; } else b2 = -3; } else b2 = -4; i2[(k[l2 >> 2] | 0) + f2 >> 0] = b2; f2 = f2 + 1 | 0; } while ((f2 | 0) != (m2 | 0)); r = o2; return; } function Hg(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 35856; b2 = k[a2 + 4608 >> 2] | 0; if (b2) { c2 = a2 + 4612 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36736; b2 = k[a2 + 92 >> 2] | 0; if (b2) { c2 = a2 + 96 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } a2 = a2 + 88 | 0; b2 = k[a2 >> 2] | 0; k[a2 >> 2] = 0; if (!b2) return; Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); return; } function Ig(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 35856; b2 = k[a2 + 4608 >> 2] | 0; if (b2) { c2 = a2 + 4612 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36736; b2 = k[a2 + 92 >> 2] | 0; if (b2) { c2 = a2 + 96 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = a2 + 88 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (!b2) { mj(a2); return; } Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); mj(a2); return; } function Jg(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; u2 = r; r = r + 352 | 0; v2 = u2 + 328 | 0; y2 = u2 + 192 | 0; c2 = u2 + 343 | 0; d2 = u2 + 342 | 0; e2 = u2 + 341 | 0; f2 = u2 + 340 | 0; o2 = u2 + 176 | 0; h2 = u2 + 168 | 0; j2 = u2 + 160 | 0; l2 = u2 + 152 | 0; t2 = u2; q2 = u2 + 136 | 0; if ((k[a2 + 28 >> 2] | 0) != 0 ? (k[a2 + 20 >> 2] | 0) != 1 : 0) { p2 = a2 + 4 | 0; s2 = a2 + 32 | 0; g2 = k[s2 >> 2] | 0; if (!g2) { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[c2 >> 0] | 0; Ja(37, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } a2 = k[a2 + 12 >> 2] | 0; if ((a2 | 0) == 16) switch (g2 | 0) { case 1: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[d2 >> 0] | 0; Ja(38, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[e2 >> 0] | 0; Ja(39, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[f2 >> 0] | 0; Ja(40, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = y2 + 56 | 0; e2 = y2 + 4 | 0; k[y2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, y2 + 56 | 0, e2 | 0); u2 = x; x = 0; if (u2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[y2 + 128 >> 2] = 0; k[y2 + 132 >> 2] = -1; k[y2 >> 2] = 36200; k[y2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); u2 = x; x = 0; do if (u2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = y2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[y2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); u2 = x; x = 0; if (u2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, y2 | 0, 49007, 21) | 0; v2 = x; x = 0; do if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, o2 | 0, e2 | 0); v2 = x; x = 0; if (!(v2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, o2 | 0); v2 = x; x = 0; if (v2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(o2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 34; while (0); if ((z2 | 0) == 34) a2 = Wa() | 0; k[y2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } if ((a2 | 0) <= 8) { a2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, a2 | 0, 8, 35648); z2 = x; x = 0; if (!(z2 & 1)) ub(a2 | 0, 824, 96); z2 = Wa() | 0; Ua(a2 | 0); fb(z2 | 0); } c2 = 16 - a2 | 0; switch (g2 | 0) { case 1: { a2 = lj(60) | 0; k[h2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[h2 >> 2]; k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(60) | 0; k[j2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[j2 >> 2]; k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(60) | 0; k[l2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[l2 >> 2]; k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = t2 + 56 | 0; e2 = t2 + 4 | 0; k[t2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, t2 + 56 | 0, e2 | 0); y2 = x; x = 0; if (y2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[t2 + 128 >> 2] = 0; k[t2 + 132 >> 2] = -1; k[t2 >> 2] = 36200; k[t2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); y2 = x; x = 0; do if (y2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = t2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[t2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); y2 = x; x = 0; if (y2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, t2 | 0, 49007, 21) | 0; y2 = x; x = 0; do if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, q2 | 0, e2 | 0); y2 = x; x = 0; if (!(y2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, q2 | 0); y2 = x; x = 0; if (y2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(q2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 64; while (0); if ((z2 | 0) == 64) a2 = Wa() | 0; k[t2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } } c2 = k[b2 + 4 >> 2] | 0; d2 = lj(16) | 0; a2 = k[a2 + 16 >> 2] | 0; if (!c2) { z2 = k[b2 >> 2] | 0; k[d2 >> 2] = 36132; k[d2 + 4 >> 2] = z2; k[d2 + 8 >> 2] = 2; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } else { k[d2 >> 2] = 36108; k[d2 + 4 >> 2] = c2; k[d2 + 8 >> 2] = 2; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } return 0; } function Kg(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0; g2 = r; r = r + 32 | 0; l2 = g2; Oi(l2, k[a2 + 128 >> 2] | 0, k[a2 + 136 >> 2] | 0); h2 = k[b2 + 4 >> 2] | 0; f2 = k[b2 + 8 >> 2] | 0; f2 = (f2 | 0) == 0 ? k[l2 + 8 >> 2] | 0 : f2; e2 = k[b2 + 12 >> 2] | 0; e2 = (e2 | 0) == 0 ? k[l2 + 12 >> 2] | 0 : e2; c2 = k[b2 + 16 >> 2] | 0; d2 = k[l2 + 16 >> 2] | 0; k[a2 + 176 >> 2] = (h2 | 0) == 0 ? k[l2 + 4 >> 2] | 0 : h2; k[a2 + 180 >> 2] = f2; k[a2 + 184 >> 2] = e2; Vg(a2); e2 = a2 + 132 | 0; b2 = (k[e2 >> 2] | 0) + 32 | 0; b2 = (b2 | 0) < 128 ? 2 : (b2 | 0) / 64 | 0; f2 = 0; do { k[a2 + 188 + (f2 * 12 | 0) >> 2] = b2; k[a2 + 188 + (f2 * 12 | 0) + 4 >> 2] = 0; j[a2 + 188 + (f2 * 12 | 0) + 8 >> 1] = 0; j[a2 + 188 + (f2 * 12 | 0) + 10 >> 1] = 1; f2 = f2 + 1 | 0; } while ((f2 | 0) != 365); h2 = (k[e2 >> 2] | 0) + 32 | 0; h2 = (h2 | 0) < 128 ? 2 : (h2 | 0) / 64 | 0; l2 = ((c2 | 0) == 0 ? d2 : c2) & 255; k[a2 + 4568 >> 2] = h2; k[a2 + 4572 >> 2] = 0; i2[a2 + 4576 >> 0] = l2; i2[a2 + 4577 >> 0] = 1; i2[a2 + 4578 >> 0] = 0; k[a2 + 4580 >> 2] = h2; k[a2 + 4584 >> 2] = 1; i2[a2 + 4588 >> 0] = l2; i2[a2 + 4589 >> 0] = 1; i2[a2 + 4590 >> 0] = 0; k[a2 + 4592 >> 2] = 0; r = g2; return; } function Lg(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0; g2 = a2 + 88 | 0; f2 = k[b2 >> 2] | 0; k[b2 >> 2] = 0; b2 = k[g2 >> 2] | 0; k[g2 >> 2] = f2; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); g2 = d2 + 4 | 0; f2 = k[g2 >> 2] | 0; i2[a2 + 4620 >> 0] = e2 & 1; b2 = a2 + 156 | 0; k[b2 >> 2] = k[c2 >> 2]; k[b2 + 4 >> 2] = k[c2 + 4 >> 2]; k[b2 + 8 >> 2] = k[c2 + 8 >> 2]; k[b2 + 12 >> 2] = k[c2 + 12 >> 2]; ee(a2, d2); Mg(a2); b2 = k[a2 + 116 >> 2] | 0; a2 = k[a2 + 112 >> 2] | 0; while (1) { e2 = b2 + -1 | 0; c2 = (i2[e2 >> 0] | 0) == -1 ? 7 : 8; if ((a2 | 0) < (c2 | 0)) break; else { b2 = e2; a2 = a2 - c2 | 0; } } b2 = b2 - f2 | 0; e2 = k[g2 >> 2] | 0; if (!e2) return; k[g2 >> 2] = e2 + b2; d2 = d2 + 8 | 0; k[d2 >> 2] = (k[d2 >> 2] | 0) - b2; return; } function Mg(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; A2 = r; r = r + 32 | 0; C2 = A2 + 12 | 0; z2 = A2; v2 = a2 + 172 | 0; w2 = (k[v2 >> 2] | 0) + 4 | 0; if ((k[a2 + 28 >> 2] | 0) == 1) y2 = k[a2 + 20 >> 2] | 0; else y2 = 1; b2 = ia(y2 << 1, w2) | 0; k[C2 >> 2] = 0; D2 = C2 + 4 | 0; k[D2 >> 2] = 0; k[C2 + 8 >> 2] = 0; do if (b2) { if (!((b2 | 0) < 0 ? (x = 0, qa(178, C2 | 0), B2 = x, x = 0, B2 & 1) : 0)) g2 = 6; if ((g2 | 0) == 6 ? (c2 = b2 << 1, x = 0, d2 = ta(67, c2 | 0) | 0, B2 = x, x = 0, !(B2 & 1)) : 0) { k[C2 >> 2] = d2; B2 = d2 + (b2 << 1) | 0; k[C2 + 8 >> 2] = B2; sw(d2 | 0, 0, c2 | 0) | 0; k[D2 >> 2] = B2; break; } d2 = Wa() | 0; b2 = k[C2 >> 2] | 0; if (!b2) fb(d2 | 0); c2 = k[D2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[D2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); mj(b2); fb(d2 | 0); } while (0); k[z2 >> 2] = 0; B2 = z2 + 4 | 0; k[B2 >> 2] = 0; k[z2 + 8 >> 2] = 0; do if (!y2) g2 = 18; else { if (!(y2 >>> 0 > 1073741823 ? (x = 0, qa(178, z2 | 0), u2 = x, x = 0, u2 & 1) : 0)) g2 = 16; if ((g2 | 0) == 16 ? (e2 = y2 << 2, x = 0, f2 = ta(67, e2 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { k[z2 >> 2] = f2; g2 = f2 + (y2 << 2) | 0; k[z2 + 8 >> 2] = g2; sw(f2 | 0, 0, e2 | 0) | 0; k[B2 >> 2] = g2; g2 = 18; break; } d2 = Wa() | 0; b2 = k[z2 >> 2] | 0; c2 = b2; if (b2) { e2 = k[B2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } } while (0); if ((g2 | 0) == 18) { f2 = a2 + 8 | 0; a: do if ((k[f2 >> 2] | 0) > 0) { g2 = a2 + 4596 | 0; h2 = ia(y2, w2) | 0; i3 = h2 + 1 | 0; l2 = a2 + 4600 | 0; m2 = (y2 | 0) > 0; n2 = a2 + 160 | 0; o2 = a2 + 168 | 0; p2 = a2 + 164 | 0; q2 = a2 + 156 | 0; s2 = a2 + 88 | 0; t2 = a2 + 4592 | 0; u2 = 0; b: while (1) { d2 = k[C2 >> 2] | 0; c2 = d2 + 2 | 0; k[g2 >> 2] = c2; d2 = d2 + (i3 << 1) | 0; k[l2 >> 2] = d2; if (!(u2 & 1)) b2 = d2; else { k[g2 >> 2] = d2; k[l2 >> 2] = c2; b2 = c2; c2 = d2; } if (m2) { e2 = k[z2 >> 2] | 0; d2 = 0; do { k[t2 >> 2] = k[e2 + (d2 << 2) >> 2]; e2 = k[v2 >> 2] | 0; j[c2 + (e2 << 1) >> 1] = j[c2 + (e2 + -1 << 1) >> 1] | 0; j[b2 + -2 >> 1] = j[c2 >> 1] | 0; x = 0; ra(76, a2 | 0, 0); e2 = x; x = 0; if (e2 & 1) { g2 = 29; break b; } e2 = k[z2 >> 2] | 0; k[e2 + (d2 << 2) >> 2] = k[t2 >> 2]; c2 = (k[g2 >> 2] | 0) + (w2 << 1) | 0; k[g2 >> 2] = c2; b2 = (k[l2 >> 2] | 0) + (w2 << 1) | 0; k[l2 >> 2] = b2; d2 = d2 + 1 | 0; } while ((d2 | 0) < (y2 | 0)); } e2 = k[n2 >> 2] | 0; if (((e2 | 0) <= (u2 | 0) ? (u2 | 0) < ((k[o2 >> 2] | 0) + e2 | 0) : 0) ? (e2 = k[s2 >> 2] | 0, x = 0, Ja(k[(k[e2 >> 2] | 0) + 8 >> 2] | 0, e2 | 0, b2 + ((k[q2 >> 2] | 0) - h2 << 1) | 0, k[p2 >> 2] | 0, w2 | 0), e2 = x, x = 0, e2 & 1) : 0) { g2 = 30; break; } u2 = u2 + 1 | 0; if ((u2 | 0) >= (k[f2 >> 2] | 0)) { g2 = 42; break a; } } if ((g2 | 0) == 29) { d2 = Wa() | 0; break; } else if ((g2 | 0) == 30) { d2 = Wa() | 0; break; } } else g2 = 42; while (0); do if ((g2 | 0) == 42) { x = 0; qa(183, a2 | 0); a2 = x; x = 0; if (a2 & 1) { d2 = Wa() | 0; break; } b2 = k[z2 >> 2] | 0; c2 = b2; if (b2) { d2 = k[B2 >> 2] | 0; if ((d2 | 0) != (b2 | 0)) k[B2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } b2 = k[C2 >> 2] | 0; if (!b2) { r = A2; return; } c2 = k[D2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[D2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); mj(b2); r = A2; return; } while (0); b2 = k[z2 >> 2] | 0; c2 = b2; if (b2) { e2 = k[B2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } } b2 = k[C2 >> 2] | 0; if (!b2) fb(d2 | 0); c2 = k[D2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[D2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); mj(b2); fb(d2 | 0); } function Ng(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0; q2 = a2 + 4596 | 0; c2 = k[q2 >> 2] | 0; u2 = a2 + 172 | 0; b2 = k[u2 >> 2] | 0; if ((b2 | 0) <= 0) return; r2 = a2 + 4600 | 0; s2 = a2 + 4604 | 0; t2 = a2 + 4592 | 0; h2 = c2; f2 = m[c2 + -2 >> 1] | 0; c2 = m[c2 >> 1] | 0; p2 = 0; while (1) { n2 = k[r2 >> 2] | 0; g2 = j[n2 + (p2 + -1 << 1) >> 1] | 0; o2 = g2 & 65535; e2 = p2 + 1 | 0; d2 = m[h2 + (e2 << 1) >> 1] | 0; l2 = k[s2 >> 2] | 0; h2 = c2 - f2 | 0; f2 = f2 - o2 | 0; l2 = ((((i2[l2 + (d2 - c2) >> 0] | 0) * 9 | 0) + (i2[l2 + h2 >> 0] | 0) | 0) * 9 | 0) + (i2[l2 + f2 >> 0] | 0) | 0; n2 = n2 + (p2 << 1) | 0; if (!l2) { b2 = Qg(a2, g2, n2, b2 - p2 | 0) | 0; c2 = b2 + p2 | 0; if ((c2 | 0) != (k[u2 >> 2] | 0)) { o2 = Rg(a2, o2, m[(k[q2 >> 2] | 0) + (c2 << 1) >> 1] | 0) | 0; j[(k[r2 >> 2] | 0) + (c2 << 1) >> 1] = o2; o2 = k[t2 >> 2] | 0; k[t2 >> 2] = (o2 | 0) < 1 ? 0 : o2 + -1 | 0; b2 = b2 + 1 | 0; } e2 = b2 + p2 | 0; d2 = k[q2 >> 2] | 0; c2 = m[d2 + (e2 + -1 << 1) >> 1] | 0; d2 = m[d2 + (e2 << 1) >> 1] | 0; } else { b2 = c2 - o2 >> 31; if ((b2 ^ f2 | 0) < 0) b2 = c2; else b2 = o2 + ((b2 ^ h2 | 0) < 0 ? 0 : h2) | 0; o2 = Pg(a2, l2, m[n2 >> 1] | 0, b2, 0) | 0; j[(k[r2 >> 2] | 0) + (p2 << 1) >> 1] = o2; } b2 = k[u2 >> 2] | 0; if ((b2 | 0) <= (e2 | 0)) break; h2 = k[q2 >> 2] | 0; f2 = c2; c2 = d2; p2 = e2; } return; } function Og(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0; d2 = a2 + 116 | 0; c2 = k[d2 >> 2] | 0; if ((i2[c2 >> 0] | 0) != -1) { e2 = a2 + 112 | 0; b2 = k[e2 >> 2] | 0; if ((b2 | 0) < 1) { qe(a2); b2 = k[e2 >> 2] | 0; c2 = k[d2 >> 2] | 0; } a2 = a2 + 108 | 0; d2 = k[a2 >> 2] | 0; k[e2 >> 2] = b2 + -1; b2 = d2 << 1; k[a2 >> 2] = b2; if ((i2[c2 >> 0] | 0) != -1) { b2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, b2 | 0, 6, 35648); a2 = x; x = 0; if (!(a2 & 1)) ub(b2 | 0, 824, 96); a2 = Wa() | 0; Ua(b2 | 0); fb(a2 | 0); } } else b2 = k[a2 + 108 >> 2] | 0; if (!b2) return; b2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, b2 | 0, 6, 35648); a2 = x; x = 0; if (!(a2 & 1)) ub(b2 | 0, 824, 96); a2 = Wa() | 0; Ua(b2 | 0); fb(a2 | 0); } function Pg(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; r2 = b2 >> 31; l2 = (r2 ^ b2) - r2 | 0; p2 = a2 + 188 + (l2 * 12 | 0) + 10 | 0; c2 = j[p2 >> 1] | 0; o2 = a2 + 188 + (l2 * 12 | 0) | 0; e2 = k[o2 >> 2] | 0; if ((c2 | 0) < (e2 | 0)) if ((c2 << 1 | 0) < (e2 | 0)) if ((c2 << 2 | 0) < (e2 | 0)) if ((c2 << 3 | 0) < (e2 | 0)) if ((c2 << 4 | 0) < (e2 | 0)) { b2 = 5; while (1) if ((c2 << b2 | 0) < (e2 | 0)) b2 = b2 + 1 | 0; else break; } else b2 = 4; else b2 = 3; else b2 = 2; else b2 = 1; else b2 = 0; n2 = a2 + 188 + (l2 * 12 | 0) + 8 | 0; c2 = (j[n2 >> 1] ^ r2) - r2 + d2 | 0; q2 = a2 + 128 | 0; e2 = k[q2 >> 2] | 0; if ((c2 & e2 | 0) == (c2 | 0)) m2 = c2; else m2 = e2 & ~(c2 >> 31); c2 = a2 + 112 | 0; if ((k[c2 >> 2] | 0) < 8) qe(a2); e2 = a2 + 108 | 0; d2 = k[e2 >> 2] | 0; f2 = d2 >>> 24; g2 = k[2832 + (b2 << 11) + (f2 << 3) + 4 >> 2] | 0; if (!g2) { h2 = k[a2 + 148 >> 2] | 0; e2 = k[a2 + 140 >> 2] | 0; c2 = Tg(a2) | 0; if ((c2 | 0) < (h2 + -1 - e2 | 0)) { if (b2) c2 = (Ug(a2, b2) | 0) + (c2 << b2) | 0; } else c2 = (Ug(a2, e2) | 0) + 1 | 0; c2 = c2 << 31 >> 31 ^ c2 >> 1; if ((((c2 | 0) > -1 ? c2 : 0 - c2 | 0) | 0) > 65535) { c2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, c2 | 0, 5, 35648); a2 = x; x = 0; if (a2 & 1) { a2 = Wa() | 0; Ua(c2 | 0); fb(a2 | 0); } else ub(c2 | 0, 824, 96); } } else { k[c2 >> 2] = (k[c2 >> 2] | 0) - g2; k[e2 >> 2] = d2 << g2; c2 = k[2832 + (b2 << 11) + (f2 << 3) >> 2] | 0; } h2 = a2 + 136 | 0; d2 = k[h2 >> 2] | 0; if (!b2) { if (!d2) e2 = (k[a2 + 188 + (l2 * 12 | 0) + 4 >> 2] << 1) + -1 + (j[p2 >> 1] | 0) >> 31; else e2 = 0; g2 = e2 ^ c2; } else g2 = c2; b2 = k[a2 + 152 >> 2] | 0; e2 = (k[o2 >> 2] | 0) + ((g2 | 0) > -1 ? g2 : 0 - g2 | 0) | 0; f2 = a2 + 188 + (l2 * 12 | 0) + 4 | 0; c2 = (k[f2 >> 2] | 0) + (ia(d2 << 1 | 1, g2) | 0) | 0; d2 = j[p2 >> 1] | 0; if ((d2 | 0) == (b2 | 0)) { e2 = e2 >> 1; c2 = c2 >> 1; d2 = b2 >> 1; } k[o2 >> 2] = e2; b2 = d2 + 1 | 0; j[p2 >> 1] = b2; e2 = b2 + c2 | 0; if ((e2 | 0) >= 1) { if ((c2 | 0) > 0) { c2 = c2 - b2 | 0; p2 = j[n2 >> 1] | 0; j[n2 >> 1] = (p2 << 16 >> 16 < 127 & 1) + (p2 & 65535); c2 = (c2 | 0) > 0 ? 0 : c2; } } else { c2 = j[n2 >> 1] | 0; j[n2 >> 1] = (c2 & 65535) - (c2 << 16 >> 16 > -128 & 1); c2 = (e2 | 0) > (~d2 | 0) ? e2 : 0 - d2 | 0; } k[f2 >> 2] = c2; b2 = k[h2 >> 2] | 0; d2 = b2 << 1 | 1; e2 = (ia(d2, (g2 ^ r2) - r2 | 0) | 0) + m2 | 0; if ((e2 | 0) >= (0 - b2 | 0)) { c2 = k[q2 >> 2] | 0; if ((c2 + b2 | 0) < (e2 | 0)) e2 = e2 - (ia(k[a2 + 132 >> 2] | 0, d2) | 0) | 0; } else { e2 = (ia(k[a2 + 132 >> 2] | 0, d2) | 0) + e2 | 0; c2 = k[q2 >> 2] | 0; } if ((e2 & c2 | 0) == (e2 | 0)) { a2 = e2; a2 = a2 & 65535; return a2 | 0; } a2 = c2 & ~(e2 >> 31); a2 = a2 & 65535; return a2 | 0; } function Qg(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; h2 = a2 + 112 | 0; l2 = a2 + 108 | 0; m2 = a2 + 4592 | 0; e2 = k[h2 >> 2] | 0; f2 = 0; while (1) { if ((e2 | 0) < 1) { qe(a2); e2 = k[h2 >> 2] | 0; } g2 = k[l2 >> 2] | 0; e2 = e2 + -1 | 0; k[h2 >> 2] = e2; k[l2 >> 2] = g2 << 1; if ((g2 | 0) >= 0) { n2 = 8; break; } g2 = k[m2 >> 2] | 0; o2 = 1 << k[36476 + (g2 << 2) >> 2]; p2 = d2 - f2 | 0; p2 = (o2 | 0) < (p2 | 0) ? o2 : p2; f2 = p2 + f2 | 0; if ((p2 | 0) == (o2 | 0)) k[m2 >> 2] = (g2 | 0) > 30 ? 31 : g2 + 1 | 0; if ((f2 | 0) == (d2 | 0)) { e2 = d2; break; } } if ((n2 | 0) == 8) if ((f2 | 0) != (d2 | 0)) { e2 = k[m2 >> 2] | 0; if ((e2 + -4 | 0) >>> 0 < 28) e2 = Ug(a2, k[36476 + (e2 << 2) >> 2] | 0) | 0; else e2 = 0; e2 = e2 + f2 | 0; if ((e2 | 0) > (d2 | 0)) { e2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, e2 | 0, 5, 35648); p2 = x; x = 0; if (p2 & 1) { p2 = Wa() | 0; Ua(e2 | 0); fb(p2 | 0); } else ub(e2 | 0, 824, 96); } } else e2 = d2; if ((e2 | 0) > 0) f2 = 0; else return e2 | 0; do { j[c2 + (f2 << 1) >> 1] = b2; f2 = f2 + 1 | 0; } while ((f2 | 0) != (e2 | 0)); return e2 | 0; } function Rg(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0; f2 = b2 - c2 | 0; g2 = a2 + 128 | 0; d2 = a2 + 136 | 0; if ((((f2 | 0) > -1 ? f2 : 0 - f2 | 0) | 0) > (k[d2 >> 2] | 0)) { b2 = ia(Sg(a2, a2 + 4568 | 0) | 0, c2 - b2 >> 31 | 1) | 0; e2 = k[d2 >> 2] | 0; f2 = e2 << 1 | 1; b2 = (ia(b2, f2) | 0) + c2 | 0; if ((b2 | 0) >= (0 - e2 | 0)) { d2 = k[g2 >> 2] | 0; if ((d2 + e2 | 0) < (b2 | 0)) b2 = b2 - (ia(k[a2 + 132 >> 2] | 0, f2) | 0) | 0; } else { b2 = (ia(k[a2 + 132 >> 2] | 0, f2) | 0) + b2 | 0; d2 = k[g2 >> 2] | 0; } if ((b2 & d2 | 0) == (b2 | 0)) { a2 = b2; a2 = a2 & 65535; return a2 | 0; } a2 = d2 & ~(b2 >> 31); a2 = a2 & 65535; return a2 | 0; } else { c2 = Sg(a2, a2 + 4580 | 0) | 0; f2 = k[d2 >> 2] | 0; e2 = f2 << 1 | 1; b2 = (ia(e2, c2) | 0) + b2 | 0; if ((b2 | 0) >= (0 - f2 | 0)) { d2 = k[g2 >> 2] | 0; if ((d2 + f2 | 0) < (b2 | 0)) b2 = b2 - (ia(k[a2 + 132 >> 2] | 0, e2) | 0) | 0; } else { b2 = (ia(k[a2 + 132 >> 2] | 0, e2) | 0) + b2 | 0; d2 = k[g2 >> 2] | 0; } if ((b2 & d2 | 0) == (b2 | 0)) { a2 = b2; a2 = a2 & 65535; return a2 | 0; } a2 = d2 & ~(b2 >> 31); a2 = a2 & 65535; return a2 | 0; } return 0; } function Sg(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0; m2 = b2 + 9 | 0; c2 = l[m2 >> 0] | 0; f2 = b2 + 4 | 0; e2 = (ia(c2 >>> 1, k[f2 >> 2] | 0) | 0) + (k[b2 >> 2] | 0) | 0; if ((c2 | 0) < (e2 | 0)) { d2 = 0; do { c2 = c2 << 1; d2 = d2 + 1 | 0; } while ((c2 | 0) < (e2 | 0)); } else d2 = 0; g2 = k[a2 + 148 >> 2] | 0; h2 = k[36476 + (k[a2 + 4592 >> 2] << 2) >> 2] | 0; c2 = k[a2 + 140 >> 2] | 0; e2 = Tg(a2) | 0; do if ((e2 | 0) < (g2 + -2 - h2 - c2 | 0)) if (!d2) { d2 = k[f2 >> 2] | 0; a2 = d2 + e2 | 0; c2 = a2 & 1; a2 = (c2 + a2 | 0) / 2 | 0; j2 = 8; break; } else { h2 = (Ug(a2, d2) | 0) + (e2 << d2) | 0; d2 = k[f2 >> 2] | 0; e2 = h2 + d2 | 0; g2 = e2 & 1; c2 = g2; f2 = 1; e2 = (g2 + e2 | 0) / 2 | 0; break; } else { e2 = (Ug(a2, c2) | 0) + 1 | 0; g2 = k[f2 >> 2] | 0; a2 = e2 + g2 | 0; c2 = a2 & 1; a2 = (c2 + a2 | 0) / 2 | 0; if (!d2) { d2 = g2; j2 = 8; } else { h2 = e2; f2 = 1; e2 = a2; d2 = g2; } } while (0); if ((j2 | 0) == 8) { h2 = e2; f2 = l[b2 + 10 >> 0] << 1 >>> 0 >= (l[m2 >> 0] | 0) >>> 0; e2 = a2; } e2 = (c2 | 0) != 0 ^ f2 ? e2 : 0 - e2 | 0; if ((e2 | 0) < 0) { j2 = b2 + 10 | 0; i2[j2 >> 0] = (l[j2 >> 0] | 0) + 1; } c2 = (h2 + 1 - d2 >> 1) + (k[b2 >> 2] | 0) | 0; k[b2 >> 2] = c2; d2 = i2[m2 >> 0] | 0; if (d2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { b2 = d2; b2 = b2 & 255; b2 = b2 + 1 | 0; b2 = b2 & 255; i2[m2 >> 0] = b2; return e2 | 0; } k[b2 >> 2] = c2 >> 1; j2 = (d2 & 255) >>> 1; i2[m2 >> 0] = j2; b2 = b2 + 10 | 0; i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; b2 = j2; b2 = b2 & 255; b2 = b2 + 1 | 0; b2 = b2 & 255; i2[m2 >> 0] = b2; return e2 | 0; } function Tg(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; f2 = a2 + 112 | 0; if ((k[f2 >> 2] | 0) < 16) qe(a2); g2 = a2 + 108 | 0; c2 = k[g2 >> 2] | 0; if ((c2 | 0) >= 0) if (!(c2 & 1073741824)) if (!(c2 & 536870912)) if (!(c2 & 268435456)) if (!(c2 & 134217728)) if (!(c2 & 67108864)) if (!(c2 & 33554432)) if (!(c2 & 16777216)) if (!(c2 & 8388608)) if (!(c2 & 4194304)) if (!(c2 & 2097152)) if (!(c2 & 1048576)) if (!(c2 & 524288)) if (!(c2 & 262144)) if (!(c2 & 131072)) { e2 = c2 >>> 12 & 16; b2 = e2 + -1 | 0; if (!e2) { b2 = (k[f2 >> 2] | 0) + -15 | 0; k[f2 >> 2] = b2; d2 = c2 << 15; k[g2 >> 2] = d2; c2 = b2; b2 = 15; while (1) { if ((c2 | 0) < 1) { qe(a2); e2 = k[g2 >> 2] | 0; c2 = k[f2 >> 2] | 0; } else e2 = d2; c2 = c2 + -1 | 0; k[f2 >> 2] = c2; d2 = e2 << 1; k[g2 >> 2] = d2; if ((e2 | 0) < 0) break; else b2 = b2 + 1 | 0; } return b2 | 0; } } else b2 = 14; else b2 = 13; else b2 = 12; else b2 = 11; else b2 = 10; else b2 = 9; else b2 = 8; else b2 = 7; else b2 = 6; else b2 = 5; else b2 = 4; else b2 = 3; else b2 = 2; else b2 = 1; else b2 = 0; a2 = b2 + 1 | 0; k[f2 >> 2] = (k[f2 >> 2] | 0) - a2; k[g2 >> 2] = c2 << a2; g2 = b2; return g2 | 0; } function Ug(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0; d2 = a2 + 112 | 0; c2 = k[d2 >> 2] | 0; if ((c2 | 0) < (b2 | 0)) { qe(a2); c2 = k[d2 >> 2] | 0; if ((c2 | 0) < (b2 | 0)) { c2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, c2 | 0, 5, 35648); a2 = x; x = 0; if (a2 & 1) { a2 = Wa() | 0; Ua(c2 | 0); fb(a2 | 0); } else ub(c2 | 0, 824, 96); } } e2 = a2 + 108 | 0; a2 = k[e2 >> 2] | 0; k[d2 >> 2] = c2 - b2; k[e2 >> 2] = a2 << b2; return a2 >>> (32 - b2 | 0) | 0; } function Vg(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; o2 = r; r = r + 32 | 0; d2 = o2; n2 = a2 + 136 | 0; a: do if (!(k[n2 >> 2] | 0)) { c2 = k[a2 + 128 >> 2] | 0; b2 = a2 + 144 | 0; if ((((c2 | 0) == ((1 << k[b2 >> 2]) + -1 | 0) ? (Oi(d2, c2, 0), (k[d2 + 4 >> 2] | 0) == (k[a2 + 176 >> 2] | 0)) : 0) ? (k[d2 + 8 >> 2] | 0) == (k[a2 + 180 >> 2] | 0) : 0) ? (k[d2 + 12 >> 2] | 0) == (k[a2 + 184 >> 2] | 0) : 0) switch (k[b2 >> 2] | 0) { case 8: { n2 = k[8900] | 0; k[a2 + 4604 >> 2] = n2 + (((k[8901] | 0) - n2 | 0) >>> 1); r = o2; return; } case 10: { n2 = k[8903] | 0; k[a2 + 4604 >> 2] = n2 + (((k[8904] | 0) - n2 | 0) >>> 1); r = o2; return; } case 12: { n2 = k[8906] | 0; k[a2 + 4604 >> 2] = n2 + (((k[8907] | 0) - n2 | 0) >>> 1); r = o2; return; } case 16: { n2 = k[8909] | 0; k[a2 + 4604 >> 2] = n2 + (((k[8910] | 0) - n2 | 0) >>> 1); r = o2; return; } default: break a; } } else b2 = a2 + 144 | 0; while (0); m2 = 1 << k[b2 >> 2]; c2 = a2 + 4608 | 0; d2 = m2 << 1; e2 = a2 + 4612 | 0; f2 = k[e2 >> 2] | 0; b2 = k[c2 >> 2] | 0; g2 = f2 - b2 | 0; if (d2 >>> 0 <= g2 >>> 0) { if (d2 >>> 0 < g2 >>> 0 ? (h2 = b2 + d2 | 0, (f2 | 0) != (h2 | 0)) : 0) k[e2 >> 2] = h2; } else { se(c2, d2 - g2 | 0); b2 = k[c2 >> 2] | 0; } l2 = a2 + 4604 | 0; k[l2 >> 2] = b2 + m2; b2 = 0 - m2 | 0; if ((m2 | 0) <= (b2 | 0)) { r = o2; return; } h2 = a2 + 184 | 0; j2 = a2 + 180 | 0; g2 = a2 + 176 | 0; f2 = b2; do { b2 = k[h2 >> 2] | 0; if ((f2 | 0) > (0 - b2 | 0)) { c2 = k[j2 >> 2] | 0; if ((f2 | 0) > (0 - c2 | 0)) { d2 = k[g2 >> 2] | 0; if ((f2 | 0) > (0 - d2 | 0)) { e2 = k[n2 >> 2] | 0; if ((f2 | 0) >= (0 - e2 | 0)) if ((e2 | 0) < (f2 | 0)) if ((d2 | 0) <= (f2 | 0)) if ((c2 | 0) > (f2 | 0)) b2 = 2; else b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; else b2 = 1; else b2 = 0; else b2 = -1; } else b2 = -2; } else b2 = -3; } else b2 = -4; i2[(k[l2 >> 2] | 0) + f2 >> 0] = b2; f2 = f2 + 1 | 0; } while ((f2 | 0) != (m2 | 0)); r = o2; return; } function Wg(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 36736; b2 = k[a2 + 92 >> 2] | 0; if (b2) { c2 = a2 + 96 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } a2 = a2 + 88 | 0; b2 = k[a2 >> 2] | 0; k[a2 >> 2] = 0; if (!b2) return; Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); return; } function Xg(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 36736; b2 = k[a2 + 92 >> 2] | 0; if (b2) { c2 = a2 + 96 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = a2 + 88 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (!b2) { mj(a2); return; } Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); mj(a2); return; } function Yg(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 35828; b2 = k[a2 + 4608 >> 2] | 0; if (b2) { c2 = a2 + 4612 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36736; b2 = k[a2 + 92 >> 2] | 0; if (b2) { c2 = a2 + 96 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } a2 = a2 + 88 | 0; b2 = k[a2 >> 2] | 0; k[a2 >> 2] = 0; if (!b2) return; Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); return; } function Zg(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 35828; b2 = k[a2 + 4608 >> 2] | 0; if (b2) { c2 = a2 + 4612 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36736; b2 = k[a2 + 92 >> 2] | 0; if (b2) { c2 = a2 + 96 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = a2 + 88 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (!b2) { mj(a2); return; } Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); mj(a2); return; } function _g(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; u2 = r; r = r + 352 | 0; v2 = u2 + 328 | 0; y2 = u2 + 192 | 0; c2 = u2 + 343 | 0; d2 = u2 + 342 | 0; e2 = u2 + 341 | 0; f2 = u2 + 340 | 0; o2 = u2 + 176 | 0; h2 = u2 + 168 | 0; j2 = u2 + 160 | 0; l2 = u2 + 152 | 0; t2 = u2; q2 = u2 + 136 | 0; if ((k[a2 + 28 >> 2] | 0) != 0 ? (k[a2 + 20 >> 2] | 0) != 1 : 0) { p2 = a2 + 4 | 0; s2 = a2 + 32 | 0; g2 = k[s2 >> 2] | 0; if (!g2) { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[c2 >> 0] | 0; Ja(37, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } a2 = k[a2 + 12 >> 2] | 0; if ((a2 | 0) == 16) switch (g2 | 0) { case 1: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[d2 >> 0] | 0; Ja(38, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[e2 >> 0] | 0; Ja(39, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[f2 >> 0] | 0; Ja(40, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = y2 + 56 | 0; e2 = y2 + 4 | 0; k[y2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, y2 + 56 | 0, e2 | 0); u2 = x; x = 0; if (u2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[y2 + 128 >> 2] = 0; k[y2 + 132 >> 2] = -1; k[y2 >> 2] = 36200; k[y2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); u2 = x; x = 0; do if (u2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = y2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[y2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); u2 = x; x = 0; if (u2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, y2 | 0, 49007, 21) | 0; v2 = x; x = 0; do if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, o2 | 0, e2 | 0); v2 = x; x = 0; if (!(v2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, o2 | 0); v2 = x; x = 0; if (v2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(o2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 34; while (0); if ((z2 | 0) == 34) a2 = Wa() | 0; k[y2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } if ((a2 | 0) <= 8) { a2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, a2 | 0, 8, 35648); z2 = x; x = 0; if (!(z2 & 1)) ub(a2 | 0, 824, 96); z2 = Wa() | 0; Ua(a2 | 0); fb(z2 | 0); } c2 = 16 - a2 | 0; switch (g2 | 0) { case 1: { a2 = lj(60) | 0; k[h2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[h2 >> 2]; k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(60) | 0; k[j2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[j2 >> 2]; k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(60) | 0; k[l2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[l2 >> 2]; k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = t2 + 56 | 0; e2 = t2 + 4 | 0; k[t2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, t2 + 56 | 0, e2 | 0); y2 = x; x = 0; if (y2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[t2 + 128 >> 2] = 0; k[t2 + 132 >> 2] = -1; k[t2 >> 2] = 36200; k[t2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); y2 = x; x = 0; do if (y2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = t2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[t2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); y2 = x; x = 0; if (y2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, t2 | 0, 49007, 21) | 0; y2 = x; x = 0; do if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, q2 | 0, e2 | 0); y2 = x; x = 0; if (!(y2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, q2 | 0); y2 = x; x = 0; if (y2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(q2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 64; while (0); if ((z2 | 0) == 64) a2 = Wa() | 0; k[t2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } } c2 = k[b2 + 4 >> 2] | 0; d2 = lj(16) | 0; a2 = k[a2 + 16 >> 2] | 0; if (!c2) { z2 = k[b2 >> 2] | 0; k[d2 >> 2] = 36132; k[d2 + 4 >> 2] = z2; k[d2 + 8 >> 2] = 6; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } else { k[d2 >> 2] = 36108; k[d2 + 4 >> 2] = c2; k[d2 + 8 >> 2] = 6; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } return 0; } function $g(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0; g2 = r; r = r + 32 | 0; l2 = g2; Oi(l2, k[a2 + 128 >> 2] | 0, k[a2 + 136 >> 2] | 0); h2 = k[b2 + 4 >> 2] | 0; f2 = k[b2 + 8 >> 2] | 0; f2 = (f2 | 0) == 0 ? k[l2 + 8 >> 2] | 0 : f2; e2 = k[b2 + 12 >> 2] | 0; e2 = (e2 | 0) == 0 ? k[l2 + 12 >> 2] | 0 : e2; c2 = k[b2 + 16 >> 2] | 0; d2 = k[l2 + 16 >> 2] | 0; k[a2 + 176 >> 2] = (h2 | 0) == 0 ? k[l2 + 4 >> 2] | 0 : h2; k[a2 + 180 >> 2] = f2; k[a2 + 184 >> 2] = e2; hh(a2); e2 = a2 + 132 | 0; b2 = (k[e2 >> 2] | 0) + 32 | 0; b2 = (b2 | 0) < 128 ? 2 : (b2 | 0) / 64 | 0; f2 = 0; do { k[a2 + 188 + (f2 * 12 | 0) >> 2] = b2; k[a2 + 188 + (f2 * 12 | 0) + 4 >> 2] = 0; j[a2 + 188 + (f2 * 12 | 0) + 8 >> 1] = 0; j[a2 + 188 + (f2 * 12 | 0) + 10 >> 1] = 1; f2 = f2 + 1 | 0; } while ((f2 | 0) != 365); h2 = (k[e2 >> 2] | 0) + 32 | 0; h2 = (h2 | 0) < 128 ? 2 : (h2 | 0) / 64 | 0; l2 = ((c2 | 0) == 0 ? d2 : c2) & 255; k[a2 + 4568 >> 2] = h2; k[a2 + 4572 >> 2] = 0; i2[a2 + 4576 >> 0] = l2; i2[a2 + 4577 >> 0] = 1; i2[a2 + 4578 >> 0] = 0; k[a2 + 4580 >> 2] = h2; k[a2 + 4584 >> 2] = 1; i2[a2 + 4588 >> 0] = l2; i2[a2 + 4589 >> 0] = 1; i2[a2 + 4590 >> 0] = 0; k[a2 + 4592 >> 2] = 0; r = g2; return; } function ah(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0; g2 = a2 + 88 | 0; f2 = k[b2 >> 2] | 0; k[b2 >> 2] = 0; b2 = k[g2 >> 2] | 0; k[g2 >> 2] = f2; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); g2 = d2 + 4 | 0; f2 = k[g2 >> 2] | 0; i2[a2 + 4620 >> 0] = e2 & 1; b2 = a2 + 156 | 0; k[b2 >> 2] = k[c2 >> 2]; k[b2 + 4 >> 2] = k[c2 + 4 >> 2]; k[b2 + 8 >> 2] = k[c2 + 8 >> 2]; k[b2 + 12 >> 2] = k[c2 + 12 >> 2]; ee(a2, d2); bh(a2); b2 = k[a2 + 116 >> 2] | 0; a2 = k[a2 + 112 >> 2] | 0; while (1) { e2 = b2 + -1 | 0; c2 = (i2[e2 >> 0] | 0) == -1 ? 7 : 8; if ((a2 | 0) < (c2 | 0)) break; else { b2 = e2; a2 = a2 - c2 | 0; } } b2 = b2 - f2 | 0; e2 = k[g2 >> 2] | 0; if (!e2) return; k[g2 >> 2] = e2 + b2; d2 = d2 + 8 | 0; k[d2 >> 2] = (k[d2 >> 2] | 0) - b2; return; } function bh(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; A2 = r; r = r + 32 | 0; C2 = A2 + 12 | 0; z2 = A2; v2 = a2 + 172 | 0; w2 = (k[v2 >> 2] | 0) + 4 | 0; if ((k[a2 + 28 >> 2] | 0) == 1) y2 = k[a2 + 20 >> 2] | 0; else y2 = 1; b2 = ia(y2 << 1, w2) | 0; k[C2 >> 2] = 0; D2 = C2 + 4 | 0; k[D2 >> 2] = 0; k[C2 + 8 >> 2] = 0; do if (b2) { if (!(b2 >>> 0 > 715827882 ? (x = 0, qa(178, C2 | 0), B2 = x, x = 0, B2 & 1) : 0)) g2 = 6; if ((g2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 * 6 | 0) | 0, B2 = x, x = 0, !(B2 & 1)) : 0) { k[D2 >> 2] = c2; k[C2 >> 2] = c2; d2 = c2 + (b2 * 6 | 0) | 0; k[C2 + 8 >> 2] = d2; while (1) { j[c2 >> 1] = 0; j[c2 + 2 >> 1] = 0; j[c2 + 4 >> 1] = 0; b2 = b2 + -1 | 0; if (!b2) break; else c2 = c2 + 6 | 0; } k[D2 >> 2] = d2; break; } d2 = Wa() | 0; b2 = k[C2 >> 2] | 0; if (!b2) fb(d2 | 0); c2 = k[D2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[D2 >> 2] = c2 + (~(((c2 + -6 - b2 | 0) >>> 0) / 6 | 0) * 6 | 0); mj(b2); fb(d2 | 0); } while (0); k[z2 >> 2] = 0; B2 = z2 + 4 | 0; k[B2 >> 2] = 0; k[z2 + 8 >> 2] = 0; do if (!y2) g2 = 20; else { if (!(y2 >>> 0 > 1073741823 ? (x = 0, qa(178, z2 | 0), u2 = x, x = 0, u2 & 1) : 0)) g2 = 18; if ((g2 | 0) == 18 ? (e2 = y2 << 2, x = 0, f2 = ta(67, e2 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { k[z2 >> 2] = f2; g2 = f2 + (y2 << 2) | 0; k[z2 + 8 >> 2] = g2; sw(f2 | 0, 0, e2 | 0) | 0; k[B2 >> 2] = g2; g2 = 20; break; } d2 = Wa() | 0; b2 = k[z2 >> 2] | 0; c2 = b2; if (b2) { e2 = k[B2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } } while (0); if ((g2 | 0) == 20) { f2 = a2 + 8 | 0; a: do if ((k[f2 >> 2] | 0) > 0) { g2 = a2 + 4596 | 0; h2 = ia(y2, w2) | 0; i3 = h2 + 1 | 0; l2 = a2 + 4600 | 0; m2 = (y2 | 0) > 0; n2 = a2 + 160 | 0; o2 = a2 + 168 | 0; p2 = a2 + 164 | 0; q2 = a2 + 156 | 0; s2 = a2 + 88 | 0; t2 = a2 + 4592 | 0; u2 = 0; b: while (1) { d2 = k[C2 >> 2] | 0; c2 = d2 + 6 | 0; k[g2 >> 2] = c2; d2 = d2 + (i3 * 6 | 0) | 0; k[l2 >> 2] = d2; if (!(u2 & 1)) b2 = d2; else { k[g2 >> 2] = d2; k[l2 >> 2] = c2; b2 = c2; c2 = d2; } if (m2) { e2 = k[z2 >> 2] | 0; d2 = 0; do { k[t2 >> 2] = k[e2 + (d2 << 2) >> 2]; b2 = k[v2 >> 2] | 0; e2 = c2 + (b2 * 6 | 0) | 0; c2 = c2 + ((b2 + -1 | 0) * 6 | 0) | 0; j[e2 >> 1] = j[c2 >> 1] | 0; j[e2 + 2 >> 1] = j[c2 + 2 >> 1] | 0; j[e2 + 4 >> 1] = j[c2 + 4 >> 1] | 0; e2 = (k[l2 >> 2] | 0) + -6 | 0; c2 = k[g2 >> 2] | 0; j[e2 >> 1] = j[c2 >> 1] | 0; j[e2 + 2 >> 1] = j[c2 + 2 >> 1] | 0; j[e2 + 4 >> 1] = j[c2 + 4 >> 1] | 0; x = 0; ra(77, a2 | 0, 0); e2 = x; x = 0; if (e2 & 1) { g2 = 31; break b; } e2 = k[z2 >> 2] | 0; k[e2 + (d2 << 2) >> 2] = k[t2 >> 2]; c2 = (k[g2 >> 2] | 0) + (w2 * 6 | 0) | 0; k[g2 >> 2] = c2; b2 = (k[l2 >> 2] | 0) + (w2 * 6 | 0) | 0; k[l2 >> 2] = b2; d2 = d2 + 1 | 0; } while ((d2 | 0) < (y2 | 0)); } e2 = k[n2 >> 2] | 0; if (((e2 | 0) <= (u2 | 0) ? (u2 | 0) < ((k[o2 >> 2] | 0) + e2 | 0) : 0) ? (e2 = k[s2 >> 2] | 0, x = 0, Ja(k[(k[e2 >> 2] | 0) + 8 >> 2] | 0, e2 | 0, b2 + (((k[q2 >> 2] | 0) - h2 | 0) * 6 | 0) | 0, k[p2 >> 2] | 0, w2 | 0), e2 = x, x = 0, e2 & 1) : 0) { g2 = 32; break; } u2 = u2 + 1 | 0; if ((u2 | 0) >= (k[f2 >> 2] | 0)) { g2 = 44; break a; } } if ((g2 | 0) == 31) { d2 = Wa() | 0; break; } else if ((g2 | 0) == 32) { d2 = Wa() | 0; break; } } else g2 = 44; while (0); do if ((g2 | 0) == 44) { x = 0; qa(183, a2 | 0); a2 = x; x = 0; if (a2 & 1) { d2 = Wa() | 0; break; } b2 = k[z2 >> 2] | 0; c2 = b2; if (b2) { d2 = k[B2 >> 2] | 0; if ((d2 | 0) != (b2 | 0)) k[B2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } b2 = k[C2 >> 2] | 0; if (!b2) { r = A2; return; } c2 = k[D2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[D2 >> 2] = c2 + (~(((c2 + -6 - b2 | 0) >>> 0) / 6 | 0) * 6 | 0); mj(b2); r = A2; return; } while (0); b2 = k[z2 >> 2] | 0; c2 = b2; if (b2) { e2 = k[B2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } } b2 = k[C2 >> 2] | 0; if (!b2) fb(d2 | 0); c2 = k[D2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[D2 >> 2] = c2 + (~(((c2 + -6 - b2 | 0) >>> 0) / 6 | 0) * 6 | 0); mj(b2); fb(d2 | 0); } function ch(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, M2 = 0, N2 = 0, O2 = 0; N2 = r; r = r + 32 | 0; D2 = N2 + 24 | 0; M2 = N2 + 18 | 0; L2 = N2 + 12 | 0; E2 = N2 + 6 | 0; F2 = N2; G2 = a2 + 172 | 0; b2 = k[G2 >> 2] | 0; if ((b2 | 0) <= 0) { r = N2; return; } H2 = a2 + 4600 | 0; I2 = a2 + 4596 | 0; J2 = a2 + 4604 | 0; K2 = a2 + 4592 | 0; C2 = 0; while (1) { d2 = C2 + -1 | 0; e2 = k[H2 >> 2] | 0; O2 = k[I2 >> 2] | 0; c2 = C2 + 1 | 0; f2 = m[O2 + (C2 * 6 | 0) >> 1] | 0; B2 = k[J2 >> 2] | 0; g2 = m[O2 + (d2 * 6 | 0) >> 1] | 0; h2 = f2 - g2 | 0; l2 = m[e2 + (d2 * 6 | 0) >> 1] | 0; n2 = g2 - l2 | 0; o2 = ((((i2[B2 + ((m[O2 + (c2 * 6 | 0) >> 1] | 0) - f2) >> 0] | 0) * 9 | 0) + (i2[B2 + h2 >> 0] | 0) | 0) * 9 | 0) + (i2[B2 + n2 >> 0] | 0) | 0; p2 = m[O2 + (C2 * 6 | 0) + 2 >> 1] | 0; q2 = m[O2 + (d2 * 6 | 0) + 2 >> 1] | 0; s2 = p2 - q2 | 0; t2 = m[e2 + (d2 * 6 | 0) + 2 >> 1] | 0; u2 = q2 - t2 | 0; v2 = ((((i2[B2 + ((m[O2 + (c2 * 6 | 0) + 2 >> 1] | 0) - p2) >> 0] | 0) * 9 | 0) + (i2[B2 + s2 >> 0] | 0) | 0) * 9 | 0) + (i2[B2 + u2 >> 0] | 0) | 0; w2 = m[O2 + (C2 * 6 | 0) + 4 >> 1] | 0; x2 = m[O2 + (d2 * 6 | 0) + 4 >> 1] | 0; y2 = w2 - x2 | 0; z2 = m[e2 + (d2 * 6 | 0) + 4 >> 1] | 0; A2 = x2 - z2 | 0; B2 = ((((i2[B2 + ((m[O2 + (c2 * 6 | 0) + 4 >> 1] | 0) - w2) >> 0] | 0) * 9 | 0) + (i2[B2 + y2 >> 0] | 0) | 0) * 9 | 0) + (i2[B2 + A2 >> 0] | 0) | 0; if (!(v2 | o2 | B2)) { c2 = e2 + (d2 * 6 | 0) | 0; j[L2 >> 1] = j[c2 >> 1] | 0; j[L2 + 2 >> 1] = j[c2 + 2 >> 1] | 0; j[L2 + 4 >> 1] = j[c2 + 4 >> 1] | 0; j[D2 >> 1] = j[c2 >> 1] | 0; j[D2 + 2 >> 1] = j[c2 + 2 >> 1] | 0; j[D2 + 4 >> 1] = j[c2 + 4 >> 1] | 0; b2 = dh(a2, D2, e2 + (C2 * 6 | 0) | 0, b2 - C2 | 0) | 0; c2 = b2 + C2 | 0; if ((c2 | 0) != (k[G2 >> 2] | 0)) { O2 = (k[I2 >> 2] | 0) + (c2 * 6 | 0) | 0; j[F2 >> 1] = j[O2 >> 1] | 0; j[F2 + 2 >> 1] = j[O2 + 2 >> 1] | 0; j[F2 + 4 >> 1] = j[O2 + 4 >> 1] | 0; O2 = (k[H2 >> 2] | 0) + (c2 * 6 | 0) | 0; j[M2 >> 1] = j[L2 >> 1] | 0; j[M2 + 2 >> 1] = j[L2 + 2 >> 1] | 0; j[M2 + 4 >> 1] = j[L2 + 4 >> 1] | 0; j[D2 >> 1] = j[F2 >> 1] | 0; j[D2 + 2 >> 1] = j[F2 + 2 >> 1] | 0; j[D2 + 4 >> 1] = j[F2 + 4 >> 1] | 0; eh(E2, a2, M2, D2); j[O2 >> 1] = j[E2 >> 1] | 0; j[O2 + 2 >> 1] = j[E2 + 2 >> 1] | 0; j[O2 + 4 >> 1] = j[E2 + 4 >> 1] | 0; O2 = k[K2 >> 2] | 0; k[K2 >> 2] = (O2 | 0) < 1 ? 0 : O2 + -1 | 0; b2 = b2 + 1 | 0; } c2 = b2 + C2 | 0; } else { d2 = m[e2 + (C2 * 6 | 0) >> 1] | 0; b2 = f2 - l2 >> 31; if ((b2 ^ n2 | 0) >= 0) if ((b2 ^ h2 | 0) < 0) b2 = l2; else b2 = l2 - g2 + f2 | 0; else b2 = f2; f2 = fh(a2, o2, d2, b2, 0) | 0; d2 = m[(k[H2 >> 2] | 0) + (C2 * 6 | 0) + 2 >> 1] | 0; b2 = p2 - t2 >> 31; if ((b2 ^ u2 | 0) >= 0) if ((b2 ^ s2 | 0) < 0) b2 = t2; else b2 = t2 - q2 + p2 | 0; else b2 = p2; d2 = fh(a2, v2, d2, b2, 0) | 0; e2 = m[(k[H2 >> 2] | 0) + (C2 * 6 | 0) + 4 >> 1] | 0; b2 = w2 - z2 >> 31; if ((b2 ^ A2 | 0) >= 0) if ((b2 ^ y2 | 0) < 0) b2 = z2; else b2 = z2 - x2 + w2 | 0; else b2 = w2; B2 = fh(a2, B2, e2, b2, 0) | 0; O2 = k[H2 >> 2] | 0; j[O2 + (C2 * 6 | 0) >> 1] = f2; j[O2 + (C2 * 6 | 0) + 2 >> 1] = d2; j[O2 + (C2 * 6 | 0) + 4 >> 1] = B2; } b2 = k[G2 >> 2] | 0; if ((c2 | 0) >= (b2 | 0)) break; else C2 = c2; } r = N2; return; } function dh(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; h2 = a2 + 112 | 0; l2 = a2 + 108 | 0; m2 = a2 + 4592 | 0; e2 = k[h2 >> 2] | 0; f2 = 0; while (1) { if ((e2 | 0) < 1) { qe(a2); e2 = k[h2 >> 2] | 0; } g2 = k[l2 >> 2] | 0; e2 = e2 + -1 | 0; k[h2 >> 2] = e2; k[l2 >> 2] = g2 << 1; if ((g2 | 0) >= 0) { n2 = 8; break; } g2 = k[m2 >> 2] | 0; o2 = 1 << k[36476 + (g2 << 2) >> 2]; p2 = d2 - f2 | 0; p2 = (o2 | 0) < (p2 | 0) ? o2 : p2; f2 = p2 + f2 | 0; if ((p2 | 0) == (o2 | 0)) k[m2 >> 2] = (g2 | 0) > 30 ? 31 : g2 + 1 | 0; if ((f2 | 0) == (d2 | 0)) { e2 = d2; break; } } if ((n2 | 0) == 8) if ((f2 | 0) != (d2 | 0)) { e2 = k[m2 >> 2] | 0; if ((e2 + -4 | 0) >>> 0 < 28) e2 = Ug(a2, k[36476 + (e2 << 2) >> 2] | 0) | 0; else e2 = 0; e2 = e2 + f2 | 0; if ((e2 | 0) > (d2 | 0)) { e2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, e2 | 0, 5, 35648); p2 = x; x = 0; if (p2 & 1) { p2 = Wa() | 0; Ua(e2 | 0); fb(p2 | 0); } else ub(e2 | 0, 824, 96); } } else e2 = d2; if ((e2 | 0) <= 0) return e2 | 0; f2 = 0; do { p2 = c2 + (f2 * 6 | 0) | 0; j[p2 >> 1] = j[b2 >> 1] | 0; j[p2 + 2 >> 1] = j[b2 + 2 >> 1] | 0; j[p2 + 4 >> 1] = j[b2 + 4 >> 1] | 0; f2 = f2 + 1 | 0; } while ((f2 | 0) != (e2 | 0)); return e2 | 0; } function eh(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, n2 = 0, o2 = 0; i3 = b2 + 4568 | 0; o2 = gh(b2, i3) | 0; g2 = gh(b2, i3) | 0; i3 = gh(b2, i3) | 0; f2 = b2 + 128 | 0; e2 = m[d2 >> 1] | 0; l2 = k[b2 + 136 >> 2] | 0; n2 = l2 << 1 | 1; e2 = (ia(ia(n2, o2) | 0, e2 - (m[c2 >> 1] | 0) >> 31 | 1) | 0) + e2 | 0; o2 = 0 - l2 | 0; if ((e2 | 0) >= (o2 | 0)) { f2 = k[f2 >> 2] | 0; if ((f2 + l2 | 0) < (e2 | 0)) e2 = e2 - (ia(k[b2 + 132 >> 2] | 0, n2) | 0) | 0; } else { e2 = (ia(k[b2 + 132 >> 2] | 0, n2) | 0) + e2 | 0; f2 = k[f2 >> 2] | 0; } if ((e2 & f2 | 0) != (e2 | 0)) e2 = f2 & ~(e2 >> 31); h2 = e2 & 65535; e2 = m[d2 + 2 >> 1] | 0; e2 = (ia(ia(n2, g2) | 0, e2 - (m[c2 + 2 >> 1] | 0) >> 31 | 1) | 0) + e2 | 0; if ((e2 | 0) >= (o2 | 0)) { if ((f2 + l2 | 0) < (e2 | 0)) e2 = e2 - (ia(k[b2 + 132 >> 2] | 0, n2) | 0) | 0; } else e2 = (ia(k[b2 + 132 >> 2] | 0, n2) | 0) + e2 | 0; if ((e2 & f2 | 0) != (e2 | 0)) e2 = f2 & ~(e2 >> 31); g2 = e2 & 65535; e2 = m[d2 + 4 >> 1] | 0; e2 = (ia(ia(n2, i3) | 0, e2 - (m[c2 + 4 >> 1] | 0) >> 31 | 1) | 0) + e2 | 0; if ((e2 | 0) >= (o2 | 0)) { if ((f2 + l2 | 0) < (e2 | 0)) e2 = e2 - (ia(k[b2 + 132 >> 2] | 0, n2) | 0) | 0; } else e2 = (ia(k[b2 + 132 >> 2] | 0, n2) | 0) + e2 | 0; if ((e2 & f2 | 0) == (e2 | 0)) { b2 = e2; b2 = b2 & 65535; j[a2 >> 1] = h2; o2 = a2 + 2 | 0; j[o2 >> 1] = g2; a2 = a2 + 4 | 0; j[a2 >> 1] = b2; return; } b2 = f2 & ~(e2 >> 31); b2 = b2 & 65535; j[a2 >> 1] = h2; o2 = a2 + 2 | 0; j[o2 >> 1] = g2; a2 = a2 + 4 | 0; j[a2 >> 1] = b2; return; } function fh(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; r2 = b2 >> 31; l2 = (r2 ^ b2) - r2 | 0; p2 = a2 + 188 + (l2 * 12 | 0) + 10 | 0; c2 = j[p2 >> 1] | 0; o2 = a2 + 188 + (l2 * 12 | 0) | 0; e2 = k[o2 >> 2] | 0; if ((c2 | 0) < (e2 | 0)) if ((c2 << 1 | 0) < (e2 | 0)) if ((c2 << 2 | 0) < (e2 | 0)) if ((c2 << 3 | 0) < (e2 | 0)) if ((c2 << 4 | 0) < (e2 | 0)) { b2 = 5; while (1) if ((c2 << b2 | 0) < (e2 | 0)) b2 = b2 + 1 | 0; else break; } else b2 = 4; else b2 = 3; else b2 = 2; else b2 = 1; else b2 = 0; n2 = a2 + 188 + (l2 * 12 | 0) + 8 | 0; c2 = (j[n2 >> 1] ^ r2) - r2 + d2 | 0; q2 = a2 + 128 | 0; e2 = k[q2 >> 2] | 0; if ((c2 & e2 | 0) == (c2 | 0)) m2 = c2; else m2 = e2 & ~(c2 >> 31); c2 = a2 + 112 | 0; if ((k[c2 >> 2] | 0) < 8) qe(a2); e2 = a2 + 108 | 0; d2 = k[e2 >> 2] | 0; f2 = d2 >>> 24; g2 = k[2832 + (b2 << 11) + (f2 << 3) + 4 >> 2] | 0; if (!g2) { h2 = k[a2 + 148 >> 2] | 0; e2 = k[a2 + 140 >> 2] | 0; c2 = Tg(a2) | 0; if ((c2 | 0) < (h2 + -1 - e2 | 0)) { if (b2) c2 = (Ug(a2, b2) | 0) + (c2 << b2) | 0; } else c2 = (Ug(a2, e2) | 0) + 1 | 0; c2 = c2 << 31 >> 31 ^ c2 >> 1; if ((((c2 | 0) > -1 ? c2 : 0 - c2 | 0) | 0) > 65535) { c2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, c2 | 0, 5, 35648); a2 = x; x = 0; if (a2 & 1) { a2 = Wa() | 0; Ua(c2 | 0); fb(a2 | 0); } else ub(c2 | 0, 824, 96); } } else { k[c2 >> 2] = (k[c2 >> 2] | 0) - g2; k[e2 >> 2] = d2 << g2; c2 = k[2832 + (b2 << 11) + (f2 << 3) >> 2] | 0; } h2 = a2 + 136 | 0; d2 = k[h2 >> 2] | 0; if (!b2) { if (!d2) e2 = (k[a2 + 188 + (l2 * 12 | 0) + 4 >> 2] << 1) + -1 + (j[p2 >> 1] | 0) >> 31; else e2 = 0; g2 = e2 ^ c2; } else g2 = c2; b2 = k[a2 + 152 >> 2] | 0; e2 = (k[o2 >> 2] | 0) + ((g2 | 0) > -1 ? g2 : 0 - g2 | 0) | 0; f2 = a2 + 188 + (l2 * 12 | 0) + 4 | 0; c2 = (k[f2 >> 2] | 0) + (ia(d2 << 1 | 1, g2) | 0) | 0; d2 = j[p2 >> 1] | 0; if ((d2 | 0) == (b2 | 0)) { e2 = e2 >> 1; c2 = c2 >> 1; d2 = b2 >> 1; } k[o2 >> 2] = e2; b2 = d2 + 1 | 0; j[p2 >> 1] = b2; e2 = b2 + c2 | 0; if ((e2 | 0) >= 1) { if ((c2 | 0) > 0) { c2 = c2 - b2 | 0; p2 = j[n2 >> 1] | 0; j[n2 >> 1] = (p2 << 16 >> 16 < 127 & 1) + (p2 & 65535); c2 = (c2 | 0) > 0 ? 0 : c2; } } else { c2 = j[n2 >> 1] | 0; j[n2 >> 1] = (c2 & 65535) - (c2 << 16 >> 16 > -128 & 1); c2 = (e2 | 0) > (~d2 | 0) ? e2 : 0 - d2 | 0; } k[f2 >> 2] = c2; b2 = k[h2 >> 2] | 0; d2 = b2 << 1 | 1; e2 = (ia(d2, (g2 ^ r2) - r2 | 0) | 0) + m2 | 0; if ((e2 | 0) >= (0 - b2 | 0)) { c2 = k[q2 >> 2] | 0; if ((c2 + b2 | 0) < (e2 | 0)) e2 = e2 - (ia(k[a2 + 132 >> 2] | 0, d2) | 0) | 0; } else { e2 = (ia(k[a2 + 132 >> 2] | 0, d2) | 0) + e2 | 0; c2 = k[q2 >> 2] | 0; } if ((e2 & c2 | 0) == (e2 | 0)) { a2 = e2; a2 = a2 & 65535; return a2 | 0; } a2 = c2 & ~(e2 >> 31); a2 = a2 & 65535; return a2 | 0; } function gh(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0; m2 = b2 + 9 | 0; c2 = l[m2 >> 0] | 0; f2 = b2 + 4 | 0; e2 = (ia(c2 >>> 1, k[f2 >> 2] | 0) | 0) + (k[b2 >> 2] | 0) | 0; if ((c2 | 0) < (e2 | 0)) { d2 = 0; do { c2 = c2 << 1; d2 = d2 + 1 | 0; } while ((c2 | 0) < (e2 | 0)); } else d2 = 0; g2 = k[a2 + 148 >> 2] | 0; h2 = k[36476 + (k[a2 + 4592 >> 2] << 2) >> 2] | 0; c2 = k[a2 + 140 >> 2] | 0; e2 = Tg(a2) | 0; do if ((e2 | 0) < (g2 + -2 - h2 - c2 | 0)) if (!d2) { d2 = k[f2 >> 2] | 0; a2 = d2 + e2 | 0; c2 = a2 & 1; a2 = (c2 + a2 | 0) / 2 | 0; j2 = 8; break; } else { h2 = (Ug(a2, d2) | 0) + (e2 << d2) | 0; d2 = k[f2 >> 2] | 0; e2 = h2 + d2 | 0; g2 = e2 & 1; c2 = g2; f2 = 1; e2 = (g2 + e2 | 0) / 2 | 0; break; } else { e2 = (Ug(a2, c2) | 0) + 1 | 0; g2 = k[f2 >> 2] | 0; a2 = e2 + g2 | 0; c2 = a2 & 1; a2 = (c2 + a2 | 0) / 2 | 0; if (!d2) { d2 = g2; j2 = 8; } else { h2 = e2; f2 = 1; e2 = a2; d2 = g2; } } while (0); if ((j2 | 0) == 8) { h2 = e2; f2 = l[b2 + 10 >> 0] << 1 >>> 0 >= (l[m2 >> 0] | 0) >>> 0; e2 = a2; } e2 = (c2 | 0) != 0 ^ f2 ? e2 : 0 - e2 | 0; if ((e2 | 0) < 0) { j2 = b2 + 10 | 0; i2[j2 >> 0] = (l[j2 >> 0] | 0) + 1; } c2 = (h2 + 1 - d2 >> 1) + (k[b2 >> 2] | 0) | 0; k[b2 >> 2] = c2; d2 = i2[m2 >> 0] | 0; if (d2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { b2 = d2; b2 = b2 & 255; b2 = b2 + 1 | 0; b2 = b2 & 255; i2[m2 >> 0] = b2; return e2 | 0; } k[b2 >> 2] = c2 >> 1; j2 = (d2 & 255) >>> 1; i2[m2 >> 0] = j2; b2 = b2 + 10 | 0; i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; b2 = j2; b2 = b2 & 255; b2 = b2 + 1 | 0; b2 = b2 & 255; i2[m2 >> 0] = b2; return e2 | 0; } function hh(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; o2 = r; r = r + 32 | 0; d2 = o2; n2 = a2 + 136 | 0; a: do if (!(k[n2 >> 2] | 0)) { c2 = k[a2 + 128 >> 2] | 0; b2 = a2 + 144 | 0; if ((((c2 | 0) == ((1 << k[b2 >> 2]) + -1 | 0) ? (Oi(d2, c2, 0), (k[d2 + 4 >> 2] | 0) == (k[a2 + 176 >> 2] | 0)) : 0) ? (k[d2 + 8 >> 2] | 0) == (k[a2 + 180 >> 2] | 0) : 0) ? (k[d2 + 12 >> 2] | 0) == (k[a2 + 184 >> 2] | 0) : 0) switch (k[b2 >> 2] | 0) { case 8: { n2 = k[8900] | 0; k[a2 + 4604 >> 2] = n2 + (((k[8901] | 0) - n2 | 0) >>> 1); r = o2; return; } case 10: { n2 = k[8903] | 0; k[a2 + 4604 >> 2] = n2 + (((k[8904] | 0) - n2 | 0) >>> 1); r = o2; return; } case 12: { n2 = k[8906] | 0; k[a2 + 4604 >> 2] = n2 + (((k[8907] | 0) - n2 | 0) >>> 1); r = o2; return; } case 16: { n2 = k[8909] | 0; k[a2 + 4604 >> 2] = n2 + (((k[8910] | 0) - n2 | 0) >>> 1); r = o2; return; } default: break a; } } else b2 = a2 + 144 | 0; while (0); m2 = 1 << k[b2 >> 2]; c2 = a2 + 4608 | 0; d2 = m2 << 1; e2 = a2 + 4612 | 0; f2 = k[e2 >> 2] | 0; b2 = k[c2 >> 2] | 0; g2 = f2 - b2 | 0; if (d2 >>> 0 <= g2 >>> 0) { if (d2 >>> 0 < g2 >>> 0 ? (h2 = b2 + d2 | 0, (f2 | 0) != (h2 | 0)) : 0) k[e2 >> 2] = h2; } else { se(c2, d2 - g2 | 0); b2 = k[c2 >> 2] | 0; } l2 = a2 + 4604 | 0; k[l2 >> 2] = b2 + m2; b2 = 0 - m2 | 0; if ((m2 | 0) <= (b2 | 0)) { r = o2; return; } h2 = a2 + 184 | 0; j2 = a2 + 180 | 0; g2 = a2 + 176 | 0; f2 = b2; do { b2 = k[h2 >> 2] | 0; if ((f2 | 0) > (0 - b2 | 0)) { c2 = k[j2 >> 2] | 0; if ((f2 | 0) > (0 - c2 | 0)) { d2 = k[g2 >> 2] | 0; if ((f2 | 0) > (0 - d2 | 0)) { e2 = k[n2 >> 2] | 0; if ((f2 | 0) >= (0 - e2 | 0)) if ((e2 | 0) < (f2 | 0)) if ((d2 | 0) <= (f2 | 0)) if ((c2 | 0) > (f2 | 0)) b2 = 2; else b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; else b2 = 1; else b2 = 0; else b2 = -1; } else b2 = -2; } else b2 = -3; } else b2 = -4; i2[(k[l2 >> 2] | 0) + f2 >> 0] = b2; f2 = f2 + 1 | 0; } while ((f2 | 0) != (m2 | 0)); r = o2; return; } function ih(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 35800; b2 = k[a2 + 4608 >> 2] | 0; if (b2) { c2 = a2 + 4612 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36736; b2 = k[a2 + 92 >> 2] | 0; if (b2) { c2 = a2 + 96 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } a2 = a2 + 88 | 0; b2 = k[a2 >> 2] | 0; k[a2 >> 2] = 0; if (!b2) return; Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); return; } function jh(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 35800; b2 = k[a2 + 4608 >> 2] | 0; if (b2) { c2 = a2 + 4612 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36736; b2 = k[a2 + 92 >> 2] | 0; if (b2) { c2 = a2 + 96 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = a2 + 88 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (!b2) { mj(a2); return; } Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); mj(a2); return; } function kh(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; u2 = r; r = r + 352 | 0; v2 = u2 + 328 | 0; y2 = u2 + 192 | 0; c2 = u2 + 343 | 0; d2 = u2 + 342 | 0; e2 = u2 + 341 | 0; f2 = u2 + 340 | 0; o2 = u2 + 176 | 0; h2 = u2 + 168 | 0; j2 = u2 + 160 | 0; l2 = u2 + 152 | 0; t2 = u2; q2 = u2 + 136 | 0; if ((k[a2 + 28 >> 2] | 0) != 0 ? (k[a2 + 20 >> 2] | 0) != 1 : 0) { p2 = a2 + 4 | 0; s2 = a2 + 32 | 0; g2 = k[s2 >> 2] | 0; if (!g2) { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[c2 >> 0] | 0; Ja(44, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } a2 = k[a2 + 12 >> 2] | 0; if ((a2 | 0) == 8) switch (g2 | 0) { case 1: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[d2 >> 0] | 0; Ja(45, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[e2 >> 0] | 0; Ja(46, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[f2 >> 0] | 0; Ja(47, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = y2 + 56 | 0; e2 = y2 + 4 | 0; k[y2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, y2 + 56 | 0, e2 | 0); u2 = x; x = 0; if (u2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[y2 + 128 >> 2] = 0; k[y2 + 132 >> 2] = -1; k[y2 >> 2] = 36200; k[y2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); u2 = x; x = 0; do if (u2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = y2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[y2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); u2 = x; x = 0; if (u2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, y2 | 0, 49007, 21) | 0; v2 = x; x = 0; do if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, o2 | 0, e2 | 0); v2 = x; x = 0; if (!(v2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, o2 | 0); v2 = x; x = 0; if (v2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(o2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 34; while (0); if ((z2 | 0) == 34) a2 = Wa() | 0; k[y2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } if ((a2 | 0) <= 8) { a2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, a2 | 0, 8, 35648); z2 = x; x = 0; if (!(z2 & 1)) ub(a2 | 0, 824, 96); z2 = Wa() | 0; Ua(a2 | 0); fb(z2 | 0); } c2 = 16 - a2 | 0; switch (g2 | 0) { case 1: { a2 = lj(60) | 0; k[h2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[h2 >> 2]; k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(60) | 0; k[j2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[j2 >> 2]; k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(60) | 0; k[l2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[l2 >> 2]; k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = t2 + 56 | 0; e2 = t2 + 4 | 0; k[t2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, t2 + 56 | 0, e2 | 0); y2 = x; x = 0; if (y2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[t2 + 128 >> 2] = 0; k[t2 + 132 >> 2] = -1; k[t2 >> 2] = 36200; k[t2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); y2 = x; x = 0; do if (y2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = t2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[t2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); y2 = x; x = 0; if (y2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, t2 | 0, 49007, 21) | 0; y2 = x; x = 0; do if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, q2 | 0, e2 | 0); y2 = x; x = 0; if (!(y2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, q2 | 0); y2 = x; x = 0; if (y2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(q2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 64; while (0); if ((z2 | 0) == 64) a2 = Wa() | 0; k[t2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } } c2 = k[b2 + 4 >> 2] | 0; d2 = lj(16) | 0; a2 = k[a2 + 16 >> 2] | 0; if (!c2) { z2 = k[b2 >> 2] | 0; k[d2 >> 2] = 36132; k[d2 + 4 >> 2] = z2; k[d2 + 8 >> 2] = 3; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } else { k[d2 >> 2] = 36108; k[d2 + 4 >> 2] = c2; k[d2 + 8 >> 2] = 3; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } return 0; } function lh(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0; g2 = r; r = r + 32 | 0; l2 = g2; Oi(l2, k[a2 + 128 >> 2] | 0, k[a2 + 136 >> 2] | 0); h2 = k[b2 + 4 >> 2] | 0; f2 = k[b2 + 8 >> 2] | 0; f2 = (f2 | 0) == 0 ? k[l2 + 8 >> 2] | 0 : f2; e2 = k[b2 + 12 >> 2] | 0; e2 = (e2 | 0) == 0 ? k[l2 + 12 >> 2] | 0 : e2; c2 = k[b2 + 16 >> 2] | 0; d2 = k[l2 + 16 >> 2] | 0; k[a2 + 176 >> 2] = (h2 | 0) == 0 ? k[l2 + 4 >> 2] | 0 : h2; k[a2 + 180 >> 2] = f2; k[a2 + 184 >> 2] = e2; th(a2); e2 = a2 + 132 | 0; b2 = (k[e2 >> 2] | 0) + 32 | 0; b2 = (b2 | 0) < 128 ? 2 : (b2 | 0) / 64 | 0; f2 = 0; do { k[a2 + 188 + (f2 * 12 | 0) >> 2] = b2; k[a2 + 188 + (f2 * 12 | 0) + 4 >> 2] = 0; j[a2 + 188 + (f2 * 12 | 0) + 8 >> 1] = 0; j[a2 + 188 + (f2 * 12 | 0) + 10 >> 1] = 1; f2 = f2 + 1 | 0; } while ((f2 | 0) != 365); h2 = (k[e2 >> 2] | 0) + 32 | 0; h2 = (h2 | 0) < 128 ? 2 : (h2 | 0) / 64 | 0; l2 = ((c2 | 0) == 0 ? d2 : c2) & 255; k[a2 + 4568 >> 2] = h2; k[a2 + 4572 >> 2] = 0; i2[a2 + 4576 >> 0] = l2; i2[a2 + 4577 >> 0] = 1; i2[a2 + 4578 >> 0] = 0; k[a2 + 4580 >> 2] = h2; k[a2 + 4584 >> 2] = 1; i2[a2 + 4588 >> 0] = l2; i2[a2 + 4589 >> 0] = 1; i2[a2 + 4590 >> 0] = 0; k[a2 + 4592 >> 2] = 0; r = g2; return; } function mh(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0; g2 = a2 + 88 | 0; f2 = k[b2 >> 2] | 0; k[b2 >> 2] = 0; b2 = k[g2 >> 2] | 0; k[g2 >> 2] = f2; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); g2 = d2 + 4 | 0; f2 = k[g2 >> 2] | 0; i2[a2 + 4620 >> 0] = e2 & 1; b2 = a2 + 156 | 0; k[b2 >> 2] = k[c2 >> 2]; k[b2 + 4 >> 2] = k[c2 + 4 >> 2]; k[b2 + 8 >> 2] = k[c2 + 8 >> 2]; k[b2 + 12 >> 2] = k[c2 + 12 >> 2]; ee(a2, d2); nh(a2); b2 = k[a2 + 116 >> 2] | 0; a2 = k[a2 + 112 >> 2] | 0; while (1) { e2 = b2 + -1 | 0; c2 = (i2[e2 >> 0] | 0) == -1 ? 7 : 8; if ((a2 | 0) < (c2 | 0)) break; else { b2 = e2; a2 = a2 - c2 | 0; } } b2 = b2 - f2 | 0; e2 = k[g2 >> 2] | 0; if (!e2) return; k[g2 >> 2] = e2 + b2; d2 = d2 + 8 | 0; k[d2 >> 2] = (k[d2 >> 2] | 0) - b2; return; } function nh(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; A2 = r; r = r + 32 | 0; C2 = A2 + 12 | 0; z2 = A2; v2 = a2 + 172 | 0; w2 = (k[v2 >> 2] | 0) + 4 | 0; if ((k[a2 + 28 >> 2] | 0) == 1) y2 = k[a2 + 20 >> 2] | 0; else y2 = 1; b2 = ia(y2 << 1, w2) | 0; k[C2 >> 2] = 0; D2 = C2 + 4 | 0; k[D2 >> 2] = 0; k[C2 + 8 >> 2] = 0; a: do if (b2) { if (!(b2 >>> 0 > 1431655765 ? (x = 0, qa(178, C2 | 0), B2 = x, x = 0, B2 & 1) : 0)) f2 = 6; if ((f2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 * 3 | 0) | 0, B2 = x, x = 0, !(B2 & 1)) : 0) { k[D2 >> 2] = c2; k[C2 >> 2] = c2; k[C2 + 8 >> 2] = c2 + (b2 * 3 | 0); while (1) { i2[c2 >> 0] = 0; i2[c2 + 1 >> 0] = 0; i2[c2 + 2 >> 0] = 0; c2 = (k[D2 >> 2] | 0) + 3 | 0; k[D2 >> 2] = c2; b2 = b2 + -1 | 0; if (!b2) break a; } } d2 = Wa() | 0; b2 = k[C2 >> 2] | 0; if (!b2) fb(d2 | 0); c2 = k[D2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[D2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); mj(b2); fb(d2 | 0); } while (0); k[z2 >> 2] = 0; B2 = z2 + 4 | 0; k[B2 >> 2] = 0; k[z2 + 8 >> 2] = 0; do if (!y2) f2 = 19; else { if (!(y2 >>> 0 > 1073741823 ? (x = 0, qa(178, z2 | 0), u2 = x, x = 0, u2 & 1) : 0)) f2 = 17; if ((f2 | 0) == 17 ? (d2 = y2 << 2, x = 0, e2 = ta(67, d2 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { k[z2 >> 2] = e2; f2 = e2 + (y2 << 2) | 0; k[z2 + 8 >> 2] = f2; sw(e2 | 0, 0, d2 | 0) | 0; k[B2 >> 2] = f2; f2 = 19; break; } d2 = Wa() | 0; b2 = k[z2 >> 2] | 0; c2 = b2; if (b2) { e2 = k[B2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } } while (0); if ((f2 | 0) == 19) { f2 = a2 + 8 | 0; b: do if ((k[f2 >> 2] | 0) > 0) { g2 = a2 + 4596 | 0; h2 = ia(y2, w2) | 0; j2 = h2 + 1 | 0; l2 = a2 + 4600 | 0; m2 = (y2 | 0) > 0; n2 = a2 + 160 | 0; o2 = a2 + 168 | 0; p2 = a2 + 164 | 0; q2 = a2 + 156 | 0; s2 = a2 + 88 | 0; t2 = a2 + 4592 | 0; u2 = 0; c: while (1) { d2 = k[C2 >> 2] | 0; c2 = d2 + 3 | 0; k[g2 >> 2] = c2; d2 = d2 + (j2 * 3 | 0) | 0; k[l2 >> 2] = d2; if (!(u2 & 1)) b2 = d2; else { k[g2 >> 2] = d2; k[l2 >> 2] = c2; b2 = c2; c2 = d2; } if (m2) { e2 = k[z2 >> 2] | 0; d2 = 0; do { k[t2 >> 2] = k[e2 + (d2 << 2) >> 2]; b2 = k[v2 >> 2] | 0; e2 = c2 + (b2 * 3 | 0) | 0; c2 = c2 + ((b2 + -1 | 0) * 3 | 0) | 0; i2[e2 >> 0] = i2[c2 >> 0] | 0; i2[e2 + 1 >> 0] = i2[c2 + 1 >> 0] | 0; i2[e2 + 2 >> 0] = i2[c2 + 2 >> 0] | 0; c2 = k[g2 >> 2] | 0; e2 = (k[l2 >> 2] | 0) + -3 | 0; i2[e2 >> 0] = i2[c2 >> 0] | 0; i2[e2 + 1 >> 0] = i2[c2 + 1 >> 0] | 0; i2[e2 + 2 >> 0] = i2[c2 + 2 >> 0] | 0; x = 0; ra(78, a2 | 0, 0); e2 = x; x = 0; if (e2 & 1) { f2 = 30; break c; } e2 = k[z2 >> 2] | 0; k[e2 + (d2 << 2) >> 2] = k[t2 >> 2]; c2 = (k[g2 >> 2] | 0) + (w2 * 3 | 0) | 0; k[g2 >> 2] = c2; b2 = (k[l2 >> 2] | 0) + (w2 * 3 | 0) | 0; k[l2 >> 2] = b2; d2 = d2 + 1 | 0; } while ((d2 | 0) < (y2 | 0)); } e2 = k[n2 >> 2] | 0; if (((e2 | 0) <= (u2 | 0) ? (u2 | 0) < ((k[o2 >> 2] | 0) + e2 | 0) : 0) ? (e2 = k[s2 >> 2] | 0, x = 0, Ja(k[(k[e2 >> 2] | 0) + 8 >> 2] | 0, e2 | 0, b2 + (((k[q2 >> 2] | 0) - h2 | 0) * 3 | 0) | 0, k[p2 >> 2] | 0, w2 | 0), e2 = x, x = 0, e2 & 1) : 0) { f2 = 31; break; } u2 = u2 + 1 | 0; if ((u2 | 0) >= (k[f2 >> 2] | 0)) { f2 = 43; break b; } } if ((f2 | 0) == 30) { d2 = Wa() | 0; break; } else if ((f2 | 0) == 31) { d2 = Wa() | 0; break; } } else f2 = 43; while (0); do if ((f2 | 0) == 43) { x = 0; qa(183, a2 | 0); a2 = x; x = 0; if (a2 & 1) { d2 = Wa() | 0; break; } b2 = k[z2 >> 2] | 0; c2 = b2; if (b2) { d2 = k[B2 >> 2] | 0; if ((d2 | 0) != (b2 | 0)) k[B2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } b2 = k[C2 >> 2] | 0; if (!b2) { r = A2; return; } c2 = k[D2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[D2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); mj(b2); r = A2; return; } while (0); b2 = k[z2 >> 2] | 0; c2 = b2; if (b2) { e2 = k[B2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } } b2 = k[C2 >> 2] | 0; if (!b2) fb(d2 | 0); c2 = k[D2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[D2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); mj(b2); fb(d2 | 0); } function oh(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, M2 = 0, N2 = 0; M2 = r; r = r + 16 | 0; C2 = M2 + 12 | 0; L2 = M2 + 9 | 0; K2 = M2 + 6 | 0; D2 = M2 + 3 | 0; E2 = M2; F2 = a2 + 172 | 0; b2 = k[F2 >> 2] | 0; if ((b2 | 0) <= 0) { r = M2; return; } G2 = a2 + 4600 | 0; H2 = a2 + 4596 | 0; I2 = a2 + 4604 | 0; J2 = a2 + 4592 | 0; B2 = 0; while (1) { y2 = B2 + -1 | 0; d2 = k[G2 >> 2] | 0; e2 = d2 + (y2 * 3 | 0) | 0; N2 = k[H2 >> 2] | 0; c2 = B2 + 1 | 0; f2 = l[N2 + (B2 * 3 | 0) >> 0] | 0; A2 = k[I2 >> 2] | 0; g2 = l[N2 + (y2 * 3 | 0) >> 0] | 0; h2 = f2 - g2 | 0; j2 = l[e2 >> 0] | 0; m2 = g2 - j2 | 0; n2 = ((((i2[A2 + ((l[N2 + (c2 * 3 | 0) >> 0] | 0) - f2) >> 0] | 0) * 9 | 0) + (i2[A2 + h2 >> 0] | 0) | 0) * 9 | 0) + (i2[A2 + m2 >> 0] | 0) | 0; o2 = l[N2 + (B2 * 3 | 0) + 1 >> 0] | 0; p2 = l[N2 + (y2 * 3 | 0) + 1 >> 0] | 0; q2 = o2 - p2 | 0; s2 = l[d2 + (y2 * 3 | 0) + 1 >> 0] | 0; t2 = p2 - s2 | 0; u2 = ((((i2[A2 + ((l[N2 + (c2 * 3 | 0) + 1 >> 0] | 0) - o2) >> 0] | 0) * 9 | 0) + (i2[A2 + q2 >> 0] | 0) | 0) * 9 | 0) + (i2[A2 + t2 >> 0] | 0) | 0; v2 = l[N2 + (B2 * 3 | 0) + 2 >> 0] | 0; w2 = l[N2 + (y2 * 3 | 0) + 2 >> 0] | 0; x2 = v2 - w2 | 0; y2 = l[d2 + (y2 * 3 | 0) + 2 >> 0] | 0; z2 = w2 - y2 | 0; A2 = ((((i2[A2 + ((l[N2 + (c2 * 3 | 0) + 2 >> 0] | 0) - v2) >> 0] | 0) * 9 | 0) + (i2[A2 + x2 >> 0] | 0) | 0) * 9 | 0) + (i2[A2 + z2 >> 0] | 0) | 0; if (!(u2 | n2 | A2)) { i2[K2 >> 0] = i2[e2 >> 0] | 0; i2[K2 + 1 >> 0] = i2[e2 + 1 >> 0] | 0; i2[K2 + 2 >> 0] = i2[e2 + 2 >> 0] | 0; i2[C2 >> 0] = i2[e2 >> 0] | 0; i2[C2 + 1 >> 0] = i2[e2 + 1 >> 0] | 0; i2[C2 + 2 >> 0] = i2[e2 + 2 >> 0] | 0; b2 = ph(a2, C2, d2 + (B2 * 3 | 0) | 0, b2 - B2 | 0) | 0; c2 = b2 + B2 | 0; if ((c2 | 0) != (k[F2 >> 2] | 0)) { N2 = (k[H2 >> 2] | 0) + (c2 * 3 | 0) | 0; i2[E2 >> 0] = i2[N2 >> 0] | 0; i2[E2 + 1 >> 0] = i2[N2 + 1 >> 0] | 0; i2[E2 + 2 >> 0] = i2[N2 + 2 >> 0] | 0; N2 = k[G2 >> 2] | 0; i2[L2 >> 0] = i2[K2 >> 0] | 0; i2[L2 + 1 >> 0] = i2[K2 + 1 >> 0] | 0; i2[L2 + 2 >> 0] = i2[K2 + 2 >> 0] | 0; i2[C2 >> 0] = i2[E2 >> 0] | 0; i2[C2 + 1 >> 0] = i2[E2 + 1 >> 0] | 0; i2[C2 + 2 >> 0] = i2[E2 + 2 >> 0] | 0; qh(D2, a2, L2, C2); N2 = N2 + (c2 * 3 | 0) | 0; i2[N2 >> 0] = i2[D2 >> 0] | 0; i2[N2 + 1 >> 0] = i2[D2 + 1 >> 0] | 0; i2[N2 + 2 >> 0] = i2[D2 + 2 >> 0] | 0; N2 = k[J2 >> 2] | 0; k[J2 >> 2] = (N2 | 0) < 1 ? 0 : N2 + -1 | 0; b2 = b2 + 1 | 0; } c2 = b2 + B2 | 0; } else { d2 = l[d2 + (B2 * 3 | 0) >> 0] | 0; b2 = f2 - j2 >> 31; if ((b2 ^ m2 | 0) >= 0) if ((b2 ^ h2 | 0) < 0) b2 = j2; else b2 = j2 - g2 + f2 | 0; else b2 = f2; f2 = rh(a2, n2, d2, b2, 0) | 0; d2 = l[(k[G2 >> 2] | 0) + (B2 * 3 | 0) + 1 >> 0] | 0; b2 = o2 - s2 >> 31; if ((b2 ^ t2 | 0) >= 0) if ((b2 ^ q2 | 0) < 0) b2 = s2; else b2 = s2 - p2 + o2 | 0; else b2 = o2; d2 = rh(a2, u2, d2, b2, 0) | 0; e2 = l[(k[G2 >> 2] | 0) + (B2 * 3 | 0) + 2 >> 0] | 0; b2 = v2 - y2 >> 31; if ((b2 ^ z2 | 0) >= 0) if ((b2 ^ x2 | 0) < 0) b2 = y2; else b2 = y2 - w2 + v2 | 0; else b2 = v2; A2 = rh(a2, A2, e2, b2, 0) | 0; N2 = (k[G2 >> 2] | 0) + (B2 * 3 | 0) | 0; i2[N2 >> 0] = f2; i2[N2 + 1 >> 0] = d2; i2[N2 + 2 >> 0] = A2; } b2 = k[F2 >> 2] | 0; if ((c2 | 0) >= (b2 | 0)) break; else B2 = c2; } r = M2; return; } function ph(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; h2 = a2 + 112 | 0; j2 = a2 + 108 | 0; l2 = a2 + 4592 | 0; e2 = k[h2 >> 2] | 0; f2 = 0; while (1) { if ((e2 | 0) < 1) { qe(a2); e2 = k[h2 >> 2] | 0; } g2 = k[j2 >> 2] | 0; e2 = e2 + -1 | 0; k[h2 >> 2] = e2; k[j2 >> 2] = g2 << 1; if ((g2 | 0) >= 0) { m2 = 8; break; } g2 = k[l2 >> 2] | 0; n2 = 1 << k[36476 + (g2 << 2) >> 2]; o2 = d2 - f2 | 0; o2 = (n2 | 0) < (o2 | 0) ? n2 : o2; f2 = o2 + f2 | 0; if ((o2 | 0) == (n2 | 0)) k[l2 >> 2] = (g2 | 0) > 30 ? 31 : g2 + 1 | 0; if ((f2 | 0) == (d2 | 0)) { e2 = d2; break; } } if ((m2 | 0) == 8) if ((f2 | 0) != (d2 | 0)) { e2 = k[l2 >> 2] | 0; if ((e2 + -4 | 0) >>> 0 < 28) e2 = Ug(a2, k[36476 + (e2 << 2) >> 2] | 0) | 0; else e2 = 0; e2 = e2 + f2 | 0; if ((e2 | 0) > (d2 | 0)) { e2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, e2 | 0, 5, 35648); o2 = x; x = 0; if (o2 & 1) { o2 = Wa() | 0; Ua(e2 | 0); fb(o2 | 0); } else ub(e2 | 0, 824, 96); } } else e2 = d2; if ((e2 | 0) <= 0) return e2 | 0; f2 = 0; do { o2 = c2 + (f2 * 3 | 0) | 0; i2[o2 >> 0] = i2[b2 >> 0] | 0; i2[o2 + 1 >> 0] = i2[b2 + 1 >> 0] | 0; i2[o2 + 2 >> 0] = i2[b2 + 2 >> 0] | 0; f2 = f2 + 1 | 0; } while ((f2 | 0) != (e2 | 0)); return e2 | 0; } function qh(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0; j2 = b2 + 4568 | 0; o2 = sh(b2, j2) | 0; g2 = sh(b2, j2) | 0; j2 = sh(b2, j2) | 0; f2 = b2 + 128 | 0; e2 = l[d2 >> 0] | 0; m2 = k[b2 + 136 >> 2] | 0; n2 = m2 << 1 | 1; e2 = (ia(ia(n2, o2) | 0, e2 - (l[c2 >> 0] | 0) >> 31 | 1) | 0) + e2 | 0; o2 = 0 - m2 | 0; if ((e2 | 0) >= (o2 | 0)) { f2 = k[f2 >> 2] | 0; if ((f2 + m2 | 0) < (e2 | 0)) e2 = e2 - (ia(k[b2 + 132 >> 2] | 0, n2) | 0) | 0; } else { e2 = (ia(k[b2 + 132 >> 2] | 0, n2) | 0) + e2 | 0; f2 = k[f2 >> 2] | 0; } if ((e2 & f2 | 0) != (e2 | 0)) e2 = f2 & ~(e2 >> 31); h2 = e2 & 255; e2 = l[d2 + 1 >> 0] | 0; e2 = (ia(ia(n2, g2) | 0, e2 - (l[c2 + 1 >> 0] | 0) >> 31 | 1) | 0) + e2 | 0; if ((e2 | 0) >= (o2 | 0)) { if ((f2 + m2 | 0) < (e2 | 0)) e2 = e2 - (ia(k[b2 + 132 >> 2] | 0, n2) | 0) | 0; } else e2 = (ia(k[b2 + 132 >> 2] | 0, n2) | 0) + e2 | 0; if ((e2 & f2 | 0) != (e2 | 0)) e2 = f2 & ~(e2 >> 31); g2 = e2 & 255; e2 = l[d2 + 2 >> 0] | 0; e2 = (ia(ia(n2, j2) | 0, e2 - (l[c2 + 2 >> 0] | 0) >> 31 | 1) | 0) + e2 | 0; if ((e2 | 0) >= (o2 | 0)) { if ((f2 + m2 | 0) < (e2 | 0)) e2 = e2 - (ia(k[b2 + 132 >> 2] | 0, n2) | 0) | 0; } else e2 = (ia(k[b2 + 132 >> 2] | 0, n2) | 0) + e2 | 0; if ((e2 & f2 | 0) == (e2 | 0)) { b2 = e2; b2 = b2 & 255; i2[a2 >> 0] = h2; o2 = a2 + 1 | 0; i2[o2 >> 0] = g2; a2 = a2 + 2 | 0; i2[a2 >> 0] = b2; return; } b2 = f2 & ~(e2 >> 31); b2 = b2 & 255; i2[a2 >> 0] = h2; o2 = a2 + 1 | 0; i2[o2 >> 0] = g2; a2 = a2 + 2 | 0; i2[a2 >> 0] = b2; return; } function rh(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; r2 = b2 >> 31; l2 = (r2 ^ b2) - r2 | 0; p2 = a2 + 188 + (l2 * 12 | 0) + 10 | 0; c2 = j[p2 >> 1] | 0; o2 = a2 + 188 + (l2 * 12 | 0) | 0; e2 = k[o2 >> 2] | 0; if ((c2 | 0) < (e2 | 0)) if ((c2 << 1 | 0) < (e2 | 0)) if ((c2 << 2 | 0) < (e2 | 0)) if ((c2 << 3 | 0) < (e2 | 0)) if ((c2 << 4 | 0) < (e2 | 0)) { b2 = 5; while (1) if ((c2 << b2 | 0) < (e2 | 0)) b2 = b2 + 1 | 0; else break; } else b2 = 4; else b2 = 3; else b2 = 2; else b2 = 1; else b2 = 0; n2 = a2 + 188 + (l2 * 12 | 0) + 8 | 0; c2 = (j[n2 >> 1] ^ r2) - r2 + d2 | 0; q2 = a2 + 128 | 0; e2 = k[q2 >> 2] | 0; if ((c2 & e2 | 0) == (c2 | 0)) m2 = c2; else m2 = e2 & ~(c2 >> 31); c2 = a2 + 112 | 0; if ((k[c2 >> 2] | 0) < 8) qe(a2); e2 = a2 + 108 | 0; d2 = k[e2 >> 2] | 0; f2 = d2 >>> 24; g2 = k[2832 + (b2 << 11) + (f2 << 3) + 4 >> 2] | 0; if (!g2) { h2 = k[a2 + 148 >> 2] | 0; e2 = k[a2 + 140 >> 2] | 0; c2 = Tg(a2) | 0; if ((c2 | 0) < (h2 + -1 - e2 | 0)) { if (b2) c2 = (Ug(a2, b2) | 0) + (c2 << b2) | 0; } else c2 = (Ug(a2, e2) | 0) + 1 | 0; c2 = c2 << 31 >> 31 ^ c2 >> 1; if ((((c2 | 0) > -1 ? c2 : 0 - c2 | 0) | 0) > 65535) { c2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, c2 | 0, 5, 35648); a2 = x; x = 0; if (a2 & 1) { a2 = Wa() | 0; Ua(c2 | 0); fb(a2 | 0); } else ub(c2 | 0, 824, 96); } } else { k[c2 >> 2] = (k[c2 >> 2] | 0) - g2; k[e2 >> 2] = d2 << g2; c2 = k[2832 + (b2 << 11) + (f2 << 3) >> 2] | 0; } h2 = a2 + 136 | 0; d2 = k[h2 >> 2] | 0; if (!b2) { if (!d2) e2 = (k[a2 + 188 + (l2 * 12 | 0) + 4 >> 2] << 1) + -1 + (j[p2 >> 1] | 0) >> 31; else e2 = 0; g2 = e2 ^ c2; } else g2 = c2; b2 = k[a2 + 152 >> 2] | 0; e2 = (k[o2 >> 2] | 0) + ((g2 | 0) > -1 ? g2 : 0 - g2 | 0) | 0; f2 = a2 + 188 + (l2 * 12 | 0) + 4 | 0; c2 = (k[f2 >> 2] | 0) + (ia(d2 << 1 | 1, g2) | 0) | 0; d2 = j[p2 >> 1] | 0; if ((d2 | 0) == (b2 | 0)) { e2 = e2 >> 1; c2 = c2 >> 1; d2 = b2 >> 1; } k[o2 >> 2] = e2; b2 = d2 + 1 | 0; j[p2 >> 1] = b2; e2 = b2 + c2 | 0; if ((e2 | 0) >= 1) { if ((c2 | 0) > 0) { c2 = c2 - b2 | 0; p2 = j[n2 >> 1] | 0; j[n2 >> 1] = (p2 << 16 >> 16 < 127 & 1) + (p2 & 65535); c2 = (c2 | 0) > 0 ? 0 : c2; } } else { c2 = j[n2 >> 1] | 0; j[n2 >> 1] = (c2 & 65535) - (c2 << 16 >> 16 > -128 & 1); c2 = (e2 | 0) > (~d2 | 0) ? e2 : 0 - d2 | 0; } k[f2 >> 2] = c2; b2 = k[h2 >> 2] | 0; d2 = b2 << 1 | 1; e2 = (ia(d2, (g2 ^ r2) - r2 | 0) | 0) + m2 | 0; if ((e2 | 0) >= (0 - b2 | 0)) { c2 = k[q2 >> 2] | 0; if ((c2 + b2 | 0) < (e2 | 0)) e2 = e2 - (ia(k[a2 + 132 >> 2] | 0, d2) | 0) | 0; } else { e2 = (ia(k[a2 + 132 >> 2] | 0, d2) | 0) + e2 | 0; c2 = k[q2 >> 2] | 0; } if ((e2 & c2 | 0) == (e2 | 0)) { a2 = e2; a2 = a2 & 255; return a2 | 0; } a2 = c2 & ~(e2 >> 31); a2 = a2 & 255; return a2 | 0; } function sh(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0; m2 = b2 + 9 | 0; c2 = l[m2 >> 0] | 0; f2 = b2 + 4 | 0; e2 = (ia(c2 >>> 1, k[f2 >> 2] | 0) | 0) + (k[b2 >> 2] | 0) | 0; if ((c2 | 0) < (e2 | 0)) { d2 = 0; do { c2 = c2 << 1; d2 = d2 + 1 | 0; } while ((c2 | 0) < (e2 | 0)); } else d2 = 0; g2 = k[a2 + 148 >> 2] | 0; h2 = k[36476 + (k[a2 + 4592 >> 2] << 2) >> 2] | 0; c2 = k[a2 + 140 >> 2] | 0; e2 = Tg(a2) | 0; do if ((e2 | 0) < (g2 + -2 - h2 - c2 | 0)) if (!d2) { d2 = k[f2 >> 2] | 0; a2 = d2 + e2 | 0; c2 = a2 & 1; a2 = (c2 + a2 | 0) / 2 | 0; j2 = 8; break; } else { h2 = (Ug(a2, d2) | 0) + (e2 << d2) | 0; d2 = k[f2 >> 2] | 0; e2 = h2 + d2 | 0; g2 = e2 & 1; c2 = g2; f2 = 1; e2 = (g2 + e2 | 0) / 2 | 0; break; } else { e2 = (Ug(a2, c2) | 0) + 1 | 0; g2 = k[f2 >> 2] | 0; a2 = e2 + g2 | 0; c2 = a2 & 1; a2 = (c2 + a2 | 0) / 2 | 0; if (!d2) { d2 = g2; j2 = 8; } else { h2 = e2; f2 = 1; e2 = a2; d2 = g2; } } while (0); if ((j2 | 0) == 8) { h2 = e2; f2 = l[b2 + 10 >> 0] << 1 >>> 0 >= (l[m2 >> 0] | 0) >>> 0; e2 = a2; } e2 = (c2 | 0) != 0 ^ f2 ? e2 : 0 - e2 | 0; if ((e2 | 0) < 0) { j2 = b2 + 10 | 0; i2[j2 >> 0] = (l[j2 >> 0] | 0) + 1; } c2 = (h2 + 1 - d2 >> 1) + (k[b2 >> 2] | 0) | 0; k[b2 >> 2] = c2; d2 = i2[m2 >> 0] | 0; if (d2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { b2 = d2; b2 = b2 & 255; b2 = b2 + 1 | 0; b2 = b2 & 255; i2[m2 >> 0] = b2; return e2 | 0; } k[b2 >> 2] = c2 >> 1; j2 = (d2 & 255) >>> 1; i2[m2 >> 0] = j2; b2 = b2 + 10 | 0; i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; b2 = j2; b2 = b2 & 255; b2 = b2 + 1 | 0; b2 = b2 & 255; i2[m2 >> 0] = b2; return e2 | 0; } function th(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; o2 = r; r = r + 32 | 0; d2 = o2; n2 = a2 + 136 | 0; a: do if (!(k[n2 >> 2] | 0)) { c2 = k[a2 + 128 >> 2] | 0; b2 = a2 + 144 | 0; if ((((c2 | 0) == ((1 << k[b2 >> 2]) + -1 | 0) ? (Oi(d2, c2, 0), (k[d2 + 4 >> 2] | 0) == (k[a2 + 176 >> 2] | 0)) : 0) ? (k[d2 + 8 >> 2] | 0) == (k[a2 + 180 >> 2] | 0) : 0) ? (k[d2 + 12 >> 2] | 0) == (k[a2 + 184 >> 2] | 0) : 0) switch (k[b2 >> 2] | 0) { case 8: { n2 = k[8900] | 0; k[a2 + 4604 >> 2] = n2 + (((k[8901] | 0) - n2 | 0) >>> 1); r = o2; return; } case 10: { n2 = k[8903] | 0; k[a2 + 4604 >> 2] = n2 + (((k[8904] | 0) - n2 | 0) >>> 1); r = o2; return; } case 12: { n2 = k[8906] | 0; k[a2 + 4604 >> 2] = n2 + (((k[8907] | 0) - n2 | 0) >>> 1); r = o2; return; } case 16: { n2 = k[8909] | 0; k[a2 + 4604 >> 2] = n2 + (((k[8910] | 0) - n2 | 0) >>> 1); r = o2; return; } default: break a; } } else b2 = a2 + 144 | 0; while (0); m2 = 1 << k[b2 >> 2]; c2 = a2 + 4608 | 0; d2 = m2 << 1; e2 = a2 + 4612 | 0; f2 = k[e2 >> 2] | 0; b2 = k[c2 >> 2] | 0; g2 = f2 - b2 | 0; if (d2 >>> 0 <= g2 >>> 0) { if (d2 >>> 0 < g2 >>> 0 ? (h2 = b2 + d2 | 0, (f2 | 0) != (h2 | 0)) : 0) k[e2 >> 2] = h2; } else { se(c2, d2 - g2 | 0); b2 = k[c2 >> 2] | 0; } l2 = a2 + 4604 | 0; k[l2 >> 2] = b2 + m2; b2 = 0 - m2 | 0; if ((m2 | 0) <= (b2 | 0)) { r = o2; return; } h2 = a2 + 184 | 0; j2 = a2 + 180 | 0; g2 = a2 + 176 | 0; f2 = b2; do { b2 = k[h2 >> 2] | 0; if ((f2 | 0) > (0 - b2 | 0)) { c2 = k[j2 >> 2] | 0; if ((f2 | 0) > (0 - c2 | 0)) { d2 = k[g2 >> 2] | 0; if ((f2 | 0) > (0 - d2 | 0)) { e2 = k[n2 >> 2] | 0; if ((f2 | 0) >= (0 - e2 | 0)) if ((e2 | 0) < (f2 | 0)) if ((d2 | 0) <= (f2 | 0)) if ((c2 | 0) > (f2 | 0)) b2 = 2; else b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; else b2 = 1; else b2 = 0; else b2 = -1; } else b2 = -2; } else b2 = -3; } else b2 = -4; i2[(k[l2 >> 2] | 0) + f2 >> 0] = b2; f2 = f2 + 1 | 0; } while ((f2 | 0) != (m2 | 0)); r = o2; return; } function uh(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 35772; b2 = k[a2 + 4584 >> 2] | 0; if (b2) { c2 = a2 + 4588 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36736; b2 = k[a2 + 92 >> 2] | 0; if (b2) { c2 = a2 + 96 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } a2 = a2 + 88 | 0; b2 = k[a2 >> 2] | 0; k[a2 >> 2] = 0; if (!b2) return; Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); return; } function vh(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 35772; b2 = k[a2 + 4584 >> 2] | 0; if (b2) { c2 = a2 + 4588 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36736; b2 = k[a2 + 92 >> 2] | 0; if (b2) { c2 = a2 + 96 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = a2 + 88 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (!b2) { mj(a2); return; } Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); mj(a2); return; } function wh(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; u2 = r; r = r + 352 | 0; v2 = u2 + 328 | 0; y2 = u2 + 192 | 0; c2 = u2 + 343 | 0; d2 = u2 + 342 | 0; e2 = u2 + 341 | 0; f2 = u2 + 340 | 0; o2 = u2 + 176 | 0; h2 = u2 + 168 | 0; j2 = u2 + 160 | 0; l2 = u2 + 152 | 0; t2 = u2; q2 = u2 + 136 | 0; if ((k[a2 + 28 >> 2] | 0) != 0 ? (k[a2 + 20 >> 2] | 0) != 1 : 0) { p2 = a2 + 4 | 0; s2 = a2 + 32 | 0; g2 = k[s2 >> 2] | 0; if (!g2) { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[c2 >> 0] | 0; Ja(37, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } a2 = k[a2 + 12 >> 2] | 0; if ((a2 | 0) == 16) switch (g2 | 0) { case 1: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[d2 >> 0] | 0; Ja(38, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[e2 >> 0] | 0; Ja(39, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[f2 >> 0] | 0; Ja(40, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = y2 + 56 | 0; e2 = y2 + 4 | 0; k[y2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, y2 + 56 | 0, e2 | 0); u2 = x; x = 0; if (u2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[y2 + 128 >> 2] = 0; k[y2 + 132 >> 2] = -1; k[y2 >> 2] = 36200; k[y2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); u2 = x; x = 0; do if (u2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = y2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[y2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); u2 = x; x = 0; if (u2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, y2 | 0, 49007, 21) | 0; v2 = x; x = 0; do if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, o2 | 0, e2 | 0); v2 = x; x = 0; if (!(v2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, o2 | 0); v2 = x; x = 0; if (v2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(o2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 34; while (0); if ((z2 | 0) == 34) a2 = Wa() | 0; k[y2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } if ((a2 | 0) <= 8) { a2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, a2 | 0, 8, 35648); z2 = x; x = 0; if (!(z2 & 1)) ub(a2 | 0, 824, 96); z2 = Wa() | 0; Ua(a2 | 0); fb(z2 | 0); } c2 = 16 - a2 | 0; switch (g2 | 0) { case 1: { a2 = lj(60) | 0; k[h2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[h2 >> 2]; k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(60) | 0; k[j2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[j2 >> 2]; k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(60) | 0; k[l2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[l2 >> 2]; k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = t2 + 56 | 0; e2 = t2 + 4 | 0; k[t2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, t2 + 56 | 0, e2 | 0); y2 = x; x = 0; if (y2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[t2 + 128 >> 2] = 0; k[t2 + 132 >> 2] = -1; k[t2 >> 2] = 36200; k[t2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); y2 = x; x = 0; do if (y2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = t2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[t2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); y2 = x; x = 0; if (y2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, t2 | 0, 49007, 21) | 0; y2 = x; x = 0; do if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, q2 | 0, e2 | 0); y2 = x; x = 0; if (!(y2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, q2 | 0); y2 = x; x = 0; if (y2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(q2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 64; while (0); if ((z2 | 0) == 64) a2 = Wa() | 0; k[t2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } } c2 = k[b2 + 4 >> 2] | 0; d2 = lj(16) | 0; a2 = k[a2 + 16 >> 2] | 0; if (!c2) { z2 = k[b2 >> 2] | 0; k[d2 >> 2] = 36132; k[d2 + 4 >> 2] = z2; k[d2 + 8 >> 2] = 2; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } else { k[d2 >> 2] = 36108; k[d2 + 4 >> 2] = c2; k[d2 + 8 >> 2] = 2; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } return 0; } function xh(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; e2 = r; r = r + 32 | 0; h2 = e2; Oi(h2, 65535, 0); g2 = k[b2 + 4 >> 2] | 0; f2 = k[b2 + 8 >> 2] | 0; f2 = (f2 | 0) == 0 ? k[h2 + 8 >> 2] | 0 : f2; d2 = k[b2 + 12 >> 2] | 0; d2 = (d2 | 0) == 0 ? k[h2 + 12 >> 2] | 0 : d2; b2 = k[b2 + 16 >> 2] | 0; c2 = k[h2 + 16 >> 2] | 0; k[a2 + 152 >> 2] = (g2 | 0) == 0 ? k[h2 + 4 >> 2] | 0 : g2; k[a2 + 156 >> 2] = f2; k[a2 + 160 >> 2] = d2; Fh(a2); d2 = 0; do { k[a2 + 164 + (d2 * 12 | 0) >> 2] = 1024; k[a2 + 164 + (d2 * 12 | 0) + 4 >> 2] = 0; j[a2 + 164 + (d2 * 12 | 0) + 8 >> 1] = 0; j[a2 + 164 + (d2 * 12 | 0) + 10 >> 1] = 1; d2 = d2 + 1 | 0; } while ((d2 | 0) != 365); h2 = ((b2 | 0) == 0 ? c2 : b2) & 255; k[a2 + 4544 >> 2] = 1024; k[a2 + 4548 >> 2] = 0; i2[a2 + 4552 >> 0] = h2; i2[a2 + 4553 >> 0] = 1; i2[a2 + 4554 >> 0] = 0; k[a2 + 4556 >> 2] = 1024; k[a2 + 4560 >> 2] = 1; i2[a2 + 4564 >> 0] = h2; i2[a2 + 4565 >> 0] = 1; i2[a2 + 4566 >> 0] = 0; k[a2 + 4568 >> 2] = 0; r = e2; return; } function yh(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0; g2 = a2 + 88 | 0; f2 = k[b2 >> 2] | 0; k[b2 >> 2] = 0; b2 = k[g2 >> 2] | 0; k[g2 >> 2] = f2; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); g2 = d2 + 4 | 0; f2 = k[g2 >> 2] | 0; i2[a2 + 4596 >> 0] = e2 & 1; b2 = a2 + 132 | 0; k[b2 >> 2] = k[c2 >> 2]; k[b2 + 4 >> 2] = k[c2 + 4 >> 2]; k[b2 + 8 >> 2] = k[c2 + 8 >> 2]; k[b2 + 12 >> 2] = k[c2 + 12 >> 2]; ee(a2, d2); zh(a2); b2 = k[a2 + 116 >> 2] | 0; a2 = k[a2 + 112 >> 2] | 0; while (1) { e2 = b2 + -1 | 0; c2 = (i2[e2 >> 0] | 0) == -1 ? 7 : 8; if ((a2 | 0) < (c2 | 0)) break; else { b2 = e2; a2 = a2 - c2 | 0; } } b2 = b2 - f2 | 0; e2 = k[g2 >> 2] | 0; if (!e2) return; k[g2 >> 2] = e2 + b2; d2 = d2 + 8 | 0; k[d2 >> 2] = (k[d2 >> 2] | 0) - b2; return; } function zh(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; A2 = r; r = r + 32 | 0; C2 = A2 + 12 | 0; z2 = A2; v2 = a2 + 148 | 0; w2 = (k[v2 >> 2] | 0) + 4 | 0; if ((k[a2 + 28 >> 2] | 0) == 1) y2 = k[a2 + 20 >> 2] | 0; else y2 = 1; b2 = ia(y2 << 1, w2) | 0; k[C2 >> 2] = 0; D2 = C2 + 4 | 0; k[D2 >> 2] = 0; k[C2 + 8 >> 2] = 0; do if (b2) { if (!((b2 | 0) < 0 ? (x = 0, qa(178, C2 | 0), B2 = x, x = 0, B2 & 1) : 0)) g2 = 6; if ((g2 | 0) == 6 ? (c2 = b2 << 1, x = 0, d2 = ta(67, c2 | 0) | 0, B2 = x, x = 0, !(B2 & 1)) : 0) { k[C2 >> 2] = d2; B2 = d2 + (b2 << 1) | 0; k[C2 + 8 >> 2] = B2; sw(d2 | 0, 0, c2 | 0) | 0; k[D2 >> 2] = B2; break; } d2 = Wa() | 0; b2 = k[C2 >> 2] | 0; if (!b2) fb(d2 | 0); c2 = k[D2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[D2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); mj(b2); fb(d2 | 0); } while (0); k[z2 >> 2] = 0; B2 = z2 + 4 | 0; k[B2 >> 2] = 0; k[z2 + 8 >> 2] = 0; do if (!y2) g2 = 18; else { if (!(y2 >>> 0 > 1073741823 ? (x = 0, qa(178, z2 | 0), u2 = x, x = 0, u2 & 1) : 0)) g2 = 16; if ((g2 | 0) == 16 ? (e2 = y2 << 2, x = 0, f2 = ta(67, e2 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { k[z2 >> 2] = f2; g2 = f2 + (y2 << 2) | 0; k[z2 + 8 >> 2] = g2; sw(f2 | 0, 0, e2 | 0) | 0; k[B2 >> 2] = g2; g2 = 18; break; } d2 = Wa() | 0; b2 = k[z2 >> 2] | 0; c2 = b2; if (b2) { e2 = k[B2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } } while (0); if ((g2 | 0) == 18) { f2 = a2 + 8 | 0; a: do if ((k[f2 >> 2] | 0) > 0) { g2 = a2 + 4572 | 0; h2 = ia(y2, w2) | 0; i3 = h2 + 1 | 0; l2 = a2 + 4576 | 0; m2 = (y2 | 0) > 0; n2 = a2 + 136 | 0; o2 = a2 + 144 | 0; p2 = a2 + 140 | 0; q2 = a2 + 132 | 0; s2 = a2 + 88 | 0; t2 = a2 + 4568 | 0; u2 = 0; b: while (1) { d2 = k[C2 >> 2] | 0; c2 = d2 + 2 | 0; k[g2 >> 2] = c2; d2 = d2 + (i3 << 1) | 0; k[l2 >> 2] = d2; if (!(u2 & 1)) b2 = d2; else { k[g2 >> 2] = d2; k[l2 >> 2] = c2; b2 = c2; c2 = d2; } if (m2) { e2 = k[z2 >> 2] | 0; d2 = 0; do { k[t2 >> 2] = k[e2 + (d2 << 2) >> 2]; e2 = k[v2 >> 2] | 0; j[c2 + (e2 << 1) >> 1] = j[c2 + (e2 + -1 << 1) >> 1] | 0; j[b2 + -2 >> 1] = j[c2 >> 1] | 0; x = 0; ra(79, a2 | 0, 0); e2 = x; x = 0; if (e2 & 1) { g2 = 29; break b; } e2 = k[z2 >> 2] | 0; k[e2 + (d2 << 2) >> 2] = k[t2 >> 2]; c2 = (k[g2 >> 2] | 0) + (w2 << 1) | 0; k[g2 >> 2] = c2; b2 = (k[l2 >> 2] | 0) + (w2 << 1) | 0; k[l2 >> 2] = b2; d2 = d2 + 1 | 0; } while ((d2 | 0) < (y2 | 0)); } e2 = k[n2 >> 2] | 0; if (((e2 | 0) <= (u2 | 0) ? (u2 | 0) < ((k[o2 >> 2] | 0) + e2 | 0) : 0) ? (e2 = k[s2 >> 2] | 0, x = 0, Ja(k[(k[e2 >> 2] | 0) + 8 >> 2] | 0, e2 | 0, b2 + ((k[q2 >> 2] | 0) - h2 << 1) | 0, k[p2 >> 2] | 0, w2 | 0), e2 = x, x = 0, e2 & 1) : 0) { g2 = 30; break; } u2 = u2 + 1 | 0; if ((u2 | 0) >= (k[f2 >> 2] | 0)) { g2 = 42; break a; } } if ((g2 | 0) == 29) { d2 = Wa() | 0; break; } else if ((g2 | 0) == 30) { d2 = Wa() | 0; break; } } else g2 = 42; while (0); do if ((g2 | 0) == 42) { x = 0; qa(183, a2 | 0); a2 = x; x = 0; if (a2 & 1) { d2 = Wa() | 0; break; } b2 = k[z2 >> 2] | 0; c2 = b2; if (b2) { d2 = k[B2 >> 2] | 0; if ((d2 | 0) != (b2 | 0)) k[B2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } b2 = k[C2 >> 2] | 0; if (!b2) { r = A2; return; } c2 = k[D2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[D2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); mj(b2); r = A2; return; } while (0); b2 = k[z2 >> 2] | 0; c2 = b2; if (b2) { e2 = k[B2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } } b2 = k[C2 >> 2] | 0; if (!b2) fb(d2 | 0); c2 = k[D2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[D2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); mj(b2); fb(d2 | 0); } function Ah(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0; p2 = a2 + 4572 | 0; b2 = k[p2 >> 2] | 0; s2 = a2 + 148 | 0; if ((k[s2 >> 2] | 0) <= 0) return; q2 = a2 + 4576 | 0; r2 = a2 + 4580 | 0; e2 = b2; f2 = m[b2 + -2 >> 1] | 0; b2 = m[b2 >> 1] | 0; o2 = 0; while (1) { n2 = k[q2 >> 2] | 0; l2 = m[n2 + (o2 + -1 << 1) >> 1] | 0; d2 = o2 + 1 | 0; c2 = m[e2 + (d2 << 1) >> 1] | 0; h2 = k[r2 >> 2] | 0; g2 = b2 - f2 | 0; e2 = f2 - l2 | 0; h2 = ((((i2[h2 + (c2 - b2) >> 0] | 0) * 9 | 0) + (i2[h2 + g2 >> 0] | 0) | 0) * 9 | 0) + (i2[h2 + e2 >> 0] | 0) | 0; if (!h2) { d2 = (Ch(a2, o2, 0) | 0) + o2 | 0; c2 = k[p2 >> 2] | 0; b2 = m[c2 + (d2 + -1 << 1) >> 1] | 0; c2 = m[c2 + (d2 << 1) >> 1] | 0; } else { f2 = b2 - l2 >> 31; if ((f2 ^ e2 | 0) < 0) e2 = b2; else e2 = l2 + ((f2 ^ g2 | 0) < 0 ? 0 : g2) | 0; n2 = Bh(a2, h2, m[n2 + (o2 << 1) >> 1] | 0, e2, 0) | 0; j[(k[q2 >> 2] | 0) + (o2 << 1) >> 1] = n2; } if ((d2 | 0) >= (k[s2 >> 2] | 0)) break; e2 = k[p2 >> 2] | 0; f2 = b2; b2 = c2; o2 = d2; } return; } function Bh(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; q2 = b2 >> 31; m2 = (q2 ^ b2) - q2 | 0; p2 = a2 + 164 + (m2 * 12 | 0) + 10 | 0; c2 = j[p2 >> 1] | 0; o2 = a2 + 164 + (m2 * 12 | 0) | 0; e2 = k[o2 >> 2] | 0; if ((c2 | 0) < (e2 | 0)) if ((c2 << 1 | 0) < (e2 | 0)) if ((c2 << 2 | 0) < (e2 | 0)) if ((c2 << 3 | 0) < (e2 | 0)) if ((c2 << 4 | 0) < (e2 | 0)) { f2 = 5; while (1) if ((c2 << f2 | 0) < (e2 | 0)) f2 = f2 + 1 | 0; else break; } else f2 = 4; else f2 = 3; else f2 = 2; else f2 = 1; else f2 = 0; n2 = a2 + 164 + (m2 * 12 | 0) + 8 | 0; c2 = (j[n2 >> 1] ^ q2) - q2 + d2 | 0; if ((c2 & 65535 | 0) != (c2 | 0)) c2 = c2 >> 31 & 65535 ^ 65535; e2 = a2 + 112 | 0; if ((k[e2 >> 2] | 0) < 8) qe(a2); d2 = a2 + 108 | 0; g2 = k[d2 >> 2] | 0; h2 = g2 >>> 24; l2 = k[2832 + (f2 << 11) + (h2 << 3) + 4 >> 2] | 0; if (!l2) { e2 = Tg(a2) | 0; if ((e2 | 0) < 47) { if (f2) e2 = (Ug(a2, f2) | 0) + (e2 << f2) | 0; } else e2 = (Ug(a2, 16) | 0) + 1 | 0; e2 = e2 << 31 >> 31 ^ e2 >> 1; if ((((e2 | 0) > -1 ? e2 : 0 - e2 | 0) | 0) > 65535) { c2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, c2 | 0, 5, 35648); b2 = x; x = 0; if (b2 & 1) { b2 = Wa() | 0; Ua(c2 | 0); fb(b2 | 0); } else ub(c2 | 0, 824, 96); } } else { k[e2 >> 2] = (k[e2 >> 2] | 0) - l2; k[d2 >> 2] = g2 << l2; e2 = k[2832 + (f2 << 11) + (h2 << 3) >> 2] | 0; } l2 = a2 + 164 + (m2 * 12 | 0) + 4 | 0; d2 = k[l2 >> 2] | 0; if (!f2) { a2 = j[p2 >> 1] | 0; f2 = a2; e2 = (d2 << 1) + -1 + (a2 << 16 >> 16) >> 31 ^ e2; } else f2 = j[p2 >> 1] | 0; g2 = f2 << 16 >> 16 == 64; a2 = g2 & 1; h2 = d2 + e2 >> a2; g2 = g2 ? 32 : f2 << 16 >> 16; k[o2 >> 2] = ((e2 | 0) > -1 ? e2 : 0 - e2 | 0) + (k[o2 >> 2] | 0) >> a2; d2 = g2 + 1 | 0; j[p2 >> 1] = d2; f2 = d2 + h2 | 0; if ((f2 | 0) < 1) { p2 = j[n2 >> 1] | 0; j[n2 >> 1] = (p2 & 65535) - (p2 << 16 >> 16 > -128 & 1); p2 = (f2 | 0) > (~g2 | 0) ? f2 : 0 - g2 | 0; k[l2 >> 2] = p2; q2 = e2 ^ q2; b2 = b2 >>> 31; b2 = c2 + b2 | 0; b2 = b2 + q2 | 0; b2 = b2 & 65535; return b2 | 0; } if ((h2 | 0) <= 0) { p2 = h2; k[l2 >> 2] = p2; q2 = e2 ^ q2; b2 = b2 >>> 31; b2 = c2 + b2 | 0; b2 = b2 + q2 | 0; b2 = b2 & 65535; return b2 | 0; } p2 = h2 - d2 | 0; o2 = j[n2 >> 1] | 0; j[n2 >> 1] = (o2 << 16 >> 16 < 127 & 1) + (o2 & 65535); p2 = (p2 | 0) > 0 ? 0 : p2; k[l2 >> 2] = p2; q2 = e2 ^ q2; b2 = b2 >>> 31; b2 = c2 + b2 | 0; b2 = b2 + q2 | 0; b2 = b2 & 65535; return b2 | 0; } function Ch(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0; f2 = a2 + 4576 | 0; e2 = k[f2 >> 2] | 0; c2 = j[e2 + (b2 + -1 << 1) >> 1] | 0; g2 = a2 + 148 | 0; e2 = Dh(a2, c2, e2 + (b2 << 1) | 0, (k[g2 >> 2] | 0) - b2 | 0) | 0; d2 = e2 + b2 | 0; if ((d2 | 0) == (k[g2 >> 2] | 0)) { g2 = e2; return g2 | 0; } c2 = c2 & 65535; b2 = m[(k[a2 + 4572 >> 2] | 0) + (d2 << 1) >> 1] | 0; g2 = c2 - b2 | 0; if ((((g2 | 0) > -1 ? g2 : 0 - g2 | 0) | 0) < 1) c2 = (Eh(a2, a2 + 4556 | 0) | 0) + c2 | 0; else c2 = (ia(Eh(a2, a2 + 4544 | 0) | 0, b2 - c2 >> 31 | 1) | 0) + b2 | 0; j[(k[f2 >> 2] | 0) + (d2 << 1) >> 1] = c2; g2 = a2 + 4568 | 0; a2 = k[g2 >> 2] | 0; k[g2 >> 2] = (a2 | 0) < 1 ? 0 : a2 + -1 | 0; g2 = e2 + 1 | 0; return g2 | 0; } function Dh(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; h2 = a2 + 112 | 0; l2 = a2 + 108 | 0; m2 = a2 + 4568 | 0; e2 = k[h2 >> 2] | 0; f2 = 0; while (1) { if ((e2 | 0) < 1) { qe(a2); e2 = k[h2 >> 2] | 0; } g2 = k[l2 >> 2] | 0; e2 = e2 + -1 | 0; k[h2 >> 2] = e2; k[l2 >> 2] = g2 << 1; if ((g2 | 0) >= 0) { n2 = 8; break; } g2 = k[m2 >> 2] | 0; o2 = 1 << k[36476 + (g2 << 2) >> 2]; p2 = d2 - f2 | 0; p2 = (o2 | 0) < (p2 | 0) ? o2 : p2; f2 = p2 + f2 | 0; if ((p2 | 0) == (o2 | 0)) k[m2 >> 2] = (g2 | 0) > 30 ? 31 : g2 + 1 | 0; if ((f2 | 0) == (d2 | 0)) { e2 = d2; break; } } if ((n2 | 0) == 8) if ((f2 | 0) != (d2 | 0)) { e2 = k[m2 >> 2] | 0; if ((e2 + -4 | 0) >>> 0 < 28) e2 = Ug(a2, k[36476 + (e2 << 2) >> 2] | 0) | 0; else e2 = 0; e2 = e2 + f2 | 0; if ((e2 | 0) > (d2 | 0)) { e2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, e2 | 0, 5, 35648); p2 = x; x = 0; if (p2 & 1) { p2 = Wa() | 0; Ua(e2 | 0); fb(p2 | 0); } else ub(e2 | 0, 824, 96); } } else e2 = d2; if ((e2 | 0) > 0) f2 = 0; else return e2 | 0; do { j[c2 + (f2 << 1) >> 1] = b2; f2 = f2 + 1 | 0; } while ((f2 | 0) != (e2 | 0)); return e2 | 0; } function Eh(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; h2 = b2 + 9 | 0; c2 = l[h2 >> 0] | 0; f2 = b2 + 4 | 0; e2 = (ia(c2 >>> 1, k[f2 >> 2] | 0) | 0) + (k[b2 >> 2] | 0) | 0; if ((c2 | 0) < (e2 | 0)) { d2 = 0; do { c2 = c2 << 1; d2 = d2 + 1 | 0; } while ((c2 | 0) < (e2 | 0)); } else d2 = 0; e2 = k[36476 + (k[a2 + 4568 >> 2] << 2) >> 2] | 0; c2 = Tg(a2) | 0; do if ((c2 | 0) < (46 - e2 | 0)) if (!d2) { a2 = k[f2 >> 2] | 0; e2 = a2 + c2 | 0; d2 = e2 & 1; e2 = (d2 + e2 | 0) / 2 | 0; g2 = 8; break; } else { c2 = (Ug(a2, d2) | 0) + (c2 << d2) | 0; a2 = k[f2 >> 2] | 0; e2 = c2 + a2 | 0; j2 = e2 & 1; d2 = j2; f2 = 1; e2 = (j2 + e2 | 0) / 2 | 0; break; } else { c2 = (Ug(a2, 16) | 0) + 1 | 0; a2 = k[f2 >> 2] | 0; e2 = c2 + a2 | 0; f2 = e2 & 1; e2 = (f2 + e2 | 0) / 2 | 0; if (!d2) { d2 = f2; g2 = 8; } else { d2 = f2; f2 = 1; } } while (0); if ((g2 | 0) == 8) f2 = l[b2 + 10 >> 0] << 1 >>> 0 >= (l[h2 >> 0] | 0) >>> 0; e2 = (d2 | 0) != 0 ^ f2 ? e2 : 0 - e2 | 0; if ((e2 | 0) < 0) { j2 = b2 + 10 | 0; i2[j2 >> 0] = (l[j2 >> 0] | 0) + 1; } c2 = (c2 + 1 - a2 >> 1) + (k[b2 >> 2] | 0) | 0; k[b2 >> 2] = c2; d2 = i2[h2 >> 0] | 0; if (d2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { j2 = d2; j2 = j2 & 255; j2 = j2 + 1 | 0; j2 = j2 & 255; i2[h2 >> 0] = j2; return e2 | 0; } k[b2 >> 2] = c2 >> 1; j2 = (d2 & 255) >>> 1; i2[h2 >> 0] = j2; b2 = b2 + 10 | 0; i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; j2 = j2 & 255; j2 = j2 + 1 | 0; j2 = j2 & 255; i2[h2 >> 0] = j2; return e2 | 0; } function Fh(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; l2 = r; r = r + 32 | 0; h2 = l2; Oi(h2, 65535, 0); j2 = a2 + 152 | 0; if (((k[h2 + 4 >> 2] | 0) == (k[j2 >> 2] | 0) ? (k[h2 + 8 >> 2] | 0) == (k[a2 + 156 >> 2] | 0) : 0) ? (k[h2 + 12 >> 2] | 0) == (k[a2 + 160 >> 2] | 0) : 0) { j2 = k[8909] | 0; k[a2 + 4580 >> 2] = j2 + (((k[8910] | 0) - j2 | 0) >>> 1); r = l2; return; } c2 = a2 + 4584 | 0; d2 = a2 + 4588 | 0; e2 = k[d2 >> 2] | 0; b2 = k[c2 >> 2] | 0; f2 = e2 - b2 | 0; if (f2 >>> 0 >= 131072) { if (f2 >>> 0 > 131072 ? (g2 = b2 + 131072 | 0, (e2 | 0) != (g2 | 0)) : 0) k[d2 >> 2] = g2; } else { se(c2, 131072 - f2 | 0); b2 = k[c2 >> 2] | 0; } h2 = a2 + 4580 | 0; k[h2 >> 2] = b2 + 65536; g2 = a2 + 160 | 0; e2 = a2 + 156 | 0; f2 = -65536; while (1) { b2 = k[g2 >> 2] | 0; if ((f2 | 0) > (0 - b2 | 0)) { c2 = k[e2 >> 2] | 0; if ((f2 | 0) > (0 - c2 | 0)) { d2 = k[j2 >> 2] | 0; if ((f2 | 0) > (0 - d2 | 0)) if ((f2 | 0) >= 0) { if ((f2 | 0) < 1) { i2[(k[h2 >> 2] | 0) + f2 >> 0] = 0; f2 = 1; continue; } if ((d2 | 0) <= (f2 | 0)) if ((c2 | 0) > (f2 | 0)) b2 = 2; else b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; else b2 = 1; } else b2 = -1; else b2 = -2; } else b2 = -3; } else b2 = -4; i2[(k[h2 >> 2] | 0) + f2 >> 0] = b2; f2 = f2 + 1 | 0; if ((f2 | 0) == 65536) break; } r = l2; return; } function Gh(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 35744; b2 = k[a2 + 4584 >> 2] | 0; if (b2) { c2 = a2 + 4588 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36736; b2 = k[a2 + 92 >> 2] | 0; if (b2) { c2 = a2 + 96 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } a2 = a2 + 88 | 0; b2 = k[a2 >> 2] | 0; k[a2 >> 2] = 0; if (!b2) return; Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); return; } function Hh(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 35744; b2 = k[a2 + 4584 >> 2] | 0; if (b2) { c2 = a2 + 4588 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36736; b2 = k[a2 + 92 >> 2] | 0; if (b2) { c2 = a2 + 96 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = a2 + 88 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (!b2) { mj(a2); return; } Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); mj(a2); return; } function Ih(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; u2 = r; r = r + 352 | 0; v2 = u2 + 328 | 0; y2 = u2 + 192 | 0; c2 = u2 + 343 | 0; d2 = u2 + 342 | 0; e2 = u2 + 341 | 0; f2 = u2 + 340 | 0; o2 = u2 + 176 | 0; h2 = u2 + 168 | 0; j2 = u2 + 160 | 0; l2 = u2 + 152 | 0; t2 = u2; q2 = u2 + 136 | 0; if ((k[a2 + 28 >> 2] | 0) != 0 ? (k[a2 + 20 >> 2] | 0) != 1 : 0) { p2 = a2 + 4 | 0; s2 = a2 + 32 | 0; g2 = k[s2 >> 2] | 0; if (!g2) { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[c2 >> 0] | 0; Ja(37, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } a2 = k[a2 + 12 >> 2] | 0; if ((a2 | 0) == 16) switch (g2 | 0) { case 1: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[d2 >> 0] | 0; Ja(38, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[e2 >> 0] | 0; Ja(39, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[f2 >> 0] | 0; Ja(40, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = y2 + 56 | 0; e2 = y2 + 4 | 0; k[y2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, y2 + 56 | 0, e2 | 0); u2 = x; x = 0; if (u2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[y2 + 128 >> 2] = 0; k[y2 + 132 >> 2] = -1; k[y2 >> 2] = 36200; k[y2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); u2 = x; x = 0; do if (u2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = y2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[y2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); u2 = x; x = 0; if (u2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, y2 | 0, 49007, 21) | 0; v2 = x; x = 0; do if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, o2 | 0, e2 | 0); v2 = x; x = 0; if (!(v2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, o2 | 0); v2 = x; x = 0; if (v2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(o2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 34; while (0); if ((z2 | 0) == 34) a2 = Wa() | 0; k[y2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } if ((a2 | 0) <= 8) { a2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, a2 | 0, 8, 35648); z2 = x; x = 0; if (!(z2 & 1)) ub(a2 | 0, 824, 96); z2 = Wa() | 0; Ua(a2 | 0); fb(z2 | 0); } c2 = 16 - a2 | 0; switch (g2 | 0) { case 1: { a2 = lj(60) | 0; k[h2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[h2 >> 2]; k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(60) | 0; k[j2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[j2 >> 2]; k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(60) | 0; k[l2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[l2 >> 2]; k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = t2 + 56 | 0; e2 = t2 + 4 | 0; k[t2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, t2 + 56 | 0, e2 | 0); y2 = x; x = 0; if (y2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[t2 + 128 >> 2] = 0; k[t2 + 132 >> 2] = -1; k[t2 >> 2] = 36200; k[t2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); y2 = x; x = 0; do if (y2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = t2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[t2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); y2 = x; x = 0; if (y2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, t2 | 0, 49007, 21) | 0; y2 = x; x = 0; do if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, q2 | 0, e2 | 0); y2 = x; x = 0; if (!(y2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, q2 | 0); y2 = x; x = 0; if (y2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(q2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 64; while (0); if ((z2 | 0) == 64) a2 = Wa() | 0; k[t2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } } c2 = k[b2 + 4 >> 2] | 0; d2 = lj(16) | 0; a2 = k[a2 + 16 >> 2] | 0; if (!c2) { z2 = k[b2 >> 2] | 0; k[d2 >> 2] = 36132; k[d2 + 4 >> 2] = z2; k[d2 + 8 >> 2] = 2; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } else { k[d2 >> 2] = 36108; k[d2 + 4 >> 2] = c2; k[d2 + 8 >> 2] = 2; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } return 0; } function Jh(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; e2 = r; r = r + 32 | 0; h2 = e2; Oi(h2, 4095, 0); g2 = k[b2 + 4 >> 2] | 0; f2 = k[b2 + 8 >> 2] | 0; f2 = (f2 | 0) == 0 ? k[h2 + 8 >> 2] | 0 : f2; d2 = k[b2 + 12 >> 2] | 0; d2 = (d2 | 0) == 0 ? k[h2 + 12 >> 2] | 0 : d2; b2 = k[b2 + 16 >> 2] | 0; c2 = k[h2 + 16 >> 2] | 0; k[a2 + 152 >> 2] = (g2 | 0) == 0 ? k[h2 + 4 >> 2] | 0 : g2; k[a2 + 156 >> 2] = f2; k[a2 + 160 >> 2] = d2; Rh(a2); d2 = 0; do { k[a2 + 164 + (d2 * 12 | 0) >> 2] = 64; k[a2 + 164 + (d2 * 12 | 0) + 4 >> 2] = 0; j[a2 + 164 + (d2 * 12 | 0) + 8 >> 1] = 0; j[a2 + 164 + (d2 * 12 | 0) + 10 >> 1] = 1; d2 = d2 + 1 | 0; } while ((d2 | 0) != 365); h2 = ((b2 | 0) == 0 ? c2 : b2) & 255; k[a2 + 4544 >> 2] = 64; k[a2 + 4548 >> 2] = 0; i2[a2 + 4552 >> 0] = h2; i2[a2 + 4553 >> 0] = 1; i2[a2 + 4554 >> 0] = 0; k[a2 + 4556 >> 2] = 64; k[a2 + 4560 >> 2] = 1; i2[a2 + 4564 >> 0] = h2; i2[a2 + 4565 >> 0] = 1; i2[a2 + 4566 >> 0] = 0; k[a2 + 4568 >> 2] = 0; r = e2; return; } function Kh(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0; g2 = a2 + 88 | 0; f2 = k[b2 >> 2] | 0; k[b2 >> 2] = 0; b2 = k[g2 >> 2] | 0; k[g2 >> 2] = f2; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); g2 = d2 + 4 | 0; f2 = k[g2 >> 2] | 0; i2[a2 + 4596 >> 0] = e2 & 1; b2 = a2 + 132 | 0; k[b2 >> 2] = k[c2 >> 2]; k[b2 + 4 >> 2] = k[c2 + 4 >> 2]; k[b2 + 8 >> 2] = k[c2 + 8 >> 2]; k[b2 + 12 >> 2] = k[c2 + 12 >> 2]; ee(a2, d2); Lh(a2); b2 = k[a2 + 116 >> 2] | 0; a2 = k[a2 + 112 >> 2] | 0; while (1) { e2 = b2 + -1 | 0; c2 = (i2[e2 >> 0] | 0) == -1 ? 7 : 8; if ((a2 | 0) < (c2 | 0)) break; else { b2 = e2; a2 = a2 - c2 | 0; } } b2 = b2 - f2 | 0; e2 = k[g2 >> 2] | 0; if (!e2) return; k[g2 >> 2] = e2 + b2; d2 = d2 + 8 | 0; k[d2 >> 2] = (k[d2 >> 2] | 0) - b2; return; } function Lh(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; A2 = r; r = r + 32 | 0; C2 = A2 + 12 | 0; z2 = A2; v2 = a2 + 148 | 0; w2 = (k[v2 >> 2] | 0) + 4 | 0; if ((k[a2 + 28 >> 2] | 0) == 1) y2 = k[a2 + 20 >> 2] | 0; else y2 = 1; b2 = ia(y2 << 1, w2) | 0; k[C2 >> 2] = 0; D2 = C2 + 4 | 0; k[D2 >> 2] = 0; k[C2 + 8 >> 2] = 0; do if (b2) { if (!((b2 | 0) < 0 ? (x = 0, qa(178, C2 | 0), B2 = x, x = 0, B2 & 1) : 0)) g2 = 6; if ((g2 | 0) == 6 ? (c2 = b2 << 1, x = 0, d2 = ta(67, c2 | 0) | 0, B2 = x, x = 0, !(B2 & 1)) : 0) { k[C2 >> 2] = d2; B2 = d2 + (b2 << 1) | 0; k[C2 + 8 >> 2] = B2; sw(d2 | 0, 0, c2 | 0) | 0; k[D2 >> 2] = B2; break; } d2 = Wa() | 0; b2 = k[C2 >> 2] | 0; if (!b2) fb(d2 | 0); c2 = k[D2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[D2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); mj(b2); fb(d2 | 0); } while (0); k[z2 >> 2] = 0; B2 = z2 + 4 | 0; k[B2 >> 2] = 0; k[z2 + 8 >> 2] = 0; do if (!y2) g2 = 18; else { if (!(y2 >>> 0 > 1073741823 ? (x = 0, qa(178, z2 | 0), u2 = x, x = 0, u2 & 1) : 0)) g2 = 16; if ((g2 | 0) == 16 ? (e2 = y2 << 2, x = 0, f2 = ta(67, e2 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { k[z2 >> 2] = f2; g2 = f2 + (y2 << 2) | 0; k[z2 + 8 >> 2] = g2; sw(f2 | 0, 0, e2 | 0) | 0; k[B2 >> 2] = g2; g2 = 18; break; } d2 = Wa() | 0; b2 = k[z2 >> 2] | 0; c2 = b2; if (b2) { e2 = k[B2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } } while (0); if ((g2 | 0) == 18) { f2 = a2 + 8 | 0; a: do if ((k[f2 >> 2] | 0) > 0) { g2 = a2 + 4572 | 0; h2 = ia(y2, w2) | 0; i3 = h2 + 1 | 0; l2 = a2 + 4576 | 0; m2 = (y2 | 0) > 0; n2 = a2 + 136 | 0; o2 = a2 + 144 | 0; p2 = a2 + 140 | 0; q2 = a2 + 132 | 0; s2 = a2 + 88 | 0; t2 = a2 + 4568 | 0; u2 = 0; b: while (1) { d2 = k[C2 >> 2] | 0; c2 = d2 + 2 | 0; k[g2 >> 2] = c2; d2 = d2 + (i3 << 1) | 0; k[l2 >> 2] = d2; if (!(u2 & 1)) b2 = d2; else { k[g2 >> 2] = d2; k[l2 >> 2] = c2; b2 = c2; c2 = d2; } if (m2) { e2 = k[z2 >> 2] | 0; d2 = 0; do { k[t2 >> 2] = k[e2 + (d2 << 2) >> 2]; e2 = k[v2 >> 2] | 0; j[c2 + (e2 << 1) >> 1] = j[c2 + (e2 + -1 << 1) >> 1] | 0; j[b2 + -2 >> 1] = j[c2 >> 1] | 0; x = 0; ra(80, a2 | 0, 0); e2 = x; x = 0; if (e2 & 1) { g2 = 29; break b; } e2 = k[z2 >> 2] | 0; k[e2 + (d2 << 2) >> 2] = k[t2 >> 2]; c2 = (k[g2 >> 2] | 0) + (w2 << 1) | 0; k[g2 >> 2] = c2; b2 = (k[l2 >> 2] | 0) + (w2 << 1) | 0; k[l2 >> 2] = b2; d2 = d2 + 1 | 0; } while ((d2 | 0) < (y2 | 0)); } e2 = k[n2 >> 2] | 0; if (((e2 | 0) <= (u2 | 0) ? (u2 | 0) < ((k[o2 >> 2] | 0) + e2 | 0) : 0) ? (e2 = k[s2 >> 2] | 0, x = 0, Ja(k[(k[e2 >> 2] | 0) + 8 >> 2] | 0, e2 | 0, b2 + ((k[q2 >> 2] | 0) - h2 << 1) | 0, k[p2 >> 2] | 0, w2 | 0), e2 = x, x = 0, e2 & 1) : 0) { g2 = 30; break; } u2 = u2 + 1 | 0; if ((u2 | 0) >= (k[f2 >> 2] | 0)) { g2 = 42; break a; } } if ((g2 | 0) == 29) { d2 = Wa() | 0; break; } else if ((g2 | 0) == 30) { d2 = Wa() | 0; break; } } else g2 = 42; while (0); do if ((g2 | 0) == 42) { x = 0; qa(183, a2 | 0); a2 = x; x = 0; if (a2 & 1) { d2 = Wa() | 0; break; } b2 = k[z2 >> 2] | 0; c2 = b2; if (b2) { d2 = k[B2 >> 2] | 0; if ((d2 | 0) != (b2 | 0)) k[B2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } b2 = k[C2 >> 2] | 0; if (!b2) { r = A2; return; } c2 = k[D2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[D2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); mj(b2); r = A2; return; } while (0); b2 = k[z2 >> 2] | 0; c2 = b2; if (b2) { e2 = k[B2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } } b2 = k[C2 >> 2] | 0; if (!b2) fb(d2 | 0); c2 = k[D2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[D2 >> 2] = c2 + (~((c2 + -2 - b2 | 0) >>> 1) << 1); mj(b2); fb(d2 | 0); } function Mh(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0; p2 = a2 + 4572 | 0; b2 = k[p2 >> 2] | 0; s2 = a2 + 148 | 0; if ((k[s2 >> 2] | 0) <= 0) return; q2 = a2 + 4576 | 0; r2 = a2 + 4580 | 0; e2 = b2; f2 = m[b2 + -2 >> 1] | 0; b2 = m[b2 >> 1] | 0; o2 = 0; while (1) { n2 = k[q2 >> 2] | 0; l2 = m[n2 + (o2 + -1 << 1) >> 1] | 0; d2 = o2 + 1 | 0; c2 = m[e2 + (d2 << 1) >> 1] | 0; h2 = k[r2 >> 2] | 0; g2 = b2 - f2 | 0; e2 = f2 - l2 | 0; h2 = ((((i2[h2 + (c2 - b2) >> 0] | 0) * 9 | 0) + (i2[h2 + g2 >> 0] | 0) | 0) * 9 | 0) + (i2[h2 + e2 >> 0] | 0) | 0; if (!h2) { d2 = (Oh(a2, o2, 0) | 0) + o2 | 0; c2 = k[p2 >> 2] | 0; b2 = m[c2 + (d2 + -1 << 1) >> 1] | 0; c2 = m[c2 + (d2 << 1) >> 1] | 0; } else { f2 = b2 - l2 >> 31; if ((f2 ^ e2 | 0) < 0) e2 = b2; else e2 = l2 + ((f2 ^ g2 | 0) < 0 ? 0 : g2) | 0; n2 = Nh(a2, h2, m[n2 + (o2 << 1) >> 1] | 0, e2, 0) | 0; j[(k[q2 >> 2] | 0) + (o2 << 1) >> 1] = n2; } if ((d2 | 0) >= (k[s2 >> 2] | 0)) break; e2 = k[p2 >> 2] | 0; f2 = b2; b2 = c2; o2 = d2; } return; } function Nh(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; q2 = b2 >> 31; m2 = (q2 ^ b2) - q2 | 0; p2 = a2 + 164 + (m2 * 12 | 0) + 10 | 0; c2 = j[p2 >> 1] | 0; o2 = a2 + 164 + (m2 * 12 | 0) | 0; e2 = k[o2 >> 2] | 0; if ((c2 | 0) < (e2 | 0)) if ((c2 << 1 | 0) < (e2 | 0)) if ((c2 << 2 | 0) < (e2 | 0)) if ((c2 << 3 | 0) < (e2 | 0)) if ((c2 << 4 | 0) < (e2 | 0)) { f2 = 5; while (1) if ((c2 << f2 | 0) < (e2 | 0)) f2 = f2 + 1 | 0; else break; } else f2 = 4; else f2 = 3; else f2 = 2; else f2 = 1; else f2 = 0; n2 = a2 + 164 + (m2 * 12 | 0) + 8 | 0; c2 = (j[n2 >> 1] ^ q2) - q2 + d2 | 0; if ((c2 & 4095 | 0) != (c2 | 0)) c2 = c2 >> 31 & 4095 ^ 4095; e2 = a2 + 112 | 0; if ((k[e2 >> 2] | 0) < 8) qe(a2); d2 = a2 + 108 | 0; g2 = k[d2 >> 2] | 0; h2 = g2 >>> 24; l2 = k[2832 + (f2 << 11) + (h2 << 3) + 4 >> 2] | 0; if (!l2) { e2 = Tg(a2) | 0; if ((e2 | 0) < 35) { if (f2) e2 = (Ug(a2, f2) | 0) + (e2 << f2) | 0; } else e2 = (Ug(a2, 12) | 0) + 1 | 0; e2 = e2 << 31 >> 31 ^ e2 >> 1; if ((((e2 | 0) > -1 ? e2 : 0 - e2 | 0) | 0) > 65535) { c2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, c2 | 0, 5, 35648); b2 = x; x = 0; if (b2 & 1) { b2 = Wa() | 0; Ua(c2 | 0); fb(b2 | 0); } else ub(c2 | 0, 824, 96); } } else { k[e2 >> 2] = (k[e2 >> 2] | 0) - l2; k[d2 >> 2] = g2 << l2; e2 = k[2832 + (f2 << 11) + (h2 << 3) >> 2] | 0; } l2 = a2 + 164 + (m2 * 12 | 0) + 4 | 0; d2 = k[l2 >> 2] | 0; if (!f2) { a2 = j[p2 >> 1] | 0; f2 = a2; e2 = (d2 << 1) + -1 + (a2 << 16 >> 16) >> 31 ^ e2; } else f2 = j[p2 >> 1] | 0; g2 = f2 << 16 >> 16 == 64; a2 = g2 & 1; h2 = d2 + e2 >> a2; g2 = g2 ? 32 : f2 << 16 >> 16; k[o2 >> 2] = ((e2 | 0) > -1 ? e2 : 0 - e2 | 0) + (k[o2 >> 2] | 0) >> a2; d2 = g2 + 1 | 0; j[p2 >> 1] = d2; f2 = d2 + h2 | 0; if ((f2 | 0) < 1) { p2 = j[n2 >> 1] | 0; j[n2 >> 1] = (p2 & 65535) - (p2 << 16 >> 16 > -128 & 1); p2 = (f2 | 0) > (~g2 | 0) ? f2 : 0 - g2 | 0; k[l2 >> 2] = p2; q2 = e2 ^ q2; b2 = b2 >>> 31; b2 = c2 + b2 | 0; b2 = b2 + q2 | 0; b2 = b2 & 4095; b2 = b2 & 65535; return b2 | 0; } if ((h2 | 0) <= 0) { p2 = h2; k[l2 >> 2] = p2; q2 = e2 ^ q2; b2 = b2 >>> 31; b2 = c2 + b2 | 0; b2 = b2 + q2 | 0; b2 = b2 & 4095; b2 = b2 & 65535; return b2 | 0; } p2 = h2 - d2 | 0; o2 = j[n2 >> 1] | 0; j[n2 >> 1] = (o2 << 16 >> 16 < 127 & 1) + (o2 & 65535); p2 = (p2 | 0) > 0 ? 0 : p2; k[l2 >> 2] = p2; q2 = e2 ^ q2; b2 = b2 >>> 31; b2 = c2 + b2 | 0; b2 = b2 + q2 | 0; b2 = b2 & 4095; b2 = b2 & 65535; return b2 | 0; } function Oh(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0; f2 = a2 + 4576 | 0; e2 = k[f2 >> 2] | 0; c2 = j[e2 + (b2 + -1 << 1) >> 1] | 0; g2 = a2 + 148 | 0; e2 = Ph(a2, c2, e2 + (b2 << 1) | 0, (k[g2 >> 2] | 0) - b2 | 0) | 0; d2 = e2 + b2 | 0; if ((d2 | 0) == (k[g2 >> 2] | 0)) { g2 = e2; return g2 | 0; } c2 = c2 & 65535; b2 = m[(k[a2 + 4572 >> 2] | 0) + (d2 << 1) >> 1] | 0; g2 = c2 - b2 | 0; if ((((g2 | 0) > -1 ? g2 : 0 - g2 | 0) | 0) < 1) c2 = (Qh(a2, a2 + 4556 | 0) | 0) + c2 | 0; else c2 = (ia(Qh(a2, a2 + 4544 | 0) | 0, b2 - c2 >> 31 | 1) | 0) + b2 | 0; j[(k[f2 >> 2] | 0) + (d2 << 1) >> 1] = c2 & 4095; g2 = a2 + 4568 | 0; a2 = k[g2 >> 2] | 0; k[g2 >> 2] = (a2 | 0) < 1 ? 0 : a2 + -1 | 0; g2 = e2 + 1 | 0; return g2 | 0; } function Ph(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; h2 = a2 + 112 | 0; l2 = a2 + 108 | 0; m2 = a2 + 4568 | 0; e2 = k[h2 >> 2] | 0; f2 = 0; while (1) { if ((e2 | 0) < 1) { qe(a2); e2 = k[h2 >> 2] | 0; } g2 = k[l2 >> 2] | 0; e2 = e2 + -1 | 0; k[h2 >> 2] = e2; k[l2 >> 2] = g2 << 1; if ((g2 | 0) >= 0) { n2 = 8; break; } g2 = k[m2 >> 2] | 0; o2 = 1 << k[36476 + (g2 << 2) >> 2]; p2 = d2 - f2 | 0; p2 = (o2 | 0) < (p2 | 0) ? o2 : p2; f2 = p2 + f2 | 0; if ((p2 | 0) == (o2 | 0)) k[m2 >> 2] = (g2 | 0) > 30 ? 31 : g2 + 1 | 0; if ((f2 | 0) == (d2 | 0)) { e2 = d2; break; } } if ((n2 | 0) == 8) if ((f2 | 0) != (d2 | 0)) { e2 = k[m2 >> 2] | 0; if ((e2 + -4 | 0) >>> 0 < 28) e2 = Ug(a2, k[36476 + (e2 << 2) >> 2] | 0) | 0; else e2 = 0; e2 = e2 + f2 | 0; if ((e2 | 0) > (d2 | 0)) { e2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, e2 | 0, 5, 35648); p2 = x; x = 0; if (p2 & 1) { p2 = Wa() | 0; Ua(e2 | 0); fb(p2 | 0); } else ub(e2 | 0, 824, 96); } } else e2 = d2; if ((e2 | 0) > 0) f2 = 0; else return e2 | 0; do { j[c2 + (f2 << 1) >> 1] = b2; f2 = f2 + 1 | 0; } while ((f2 | 0) != (e2 | 0)); return e2 | 0; } function Qh(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; h2 = b2 + 9 | 0; c2 = l[h2 >> 0] | 0; f2 = b2 + 4 | 0; e2 = (ia(c2 >>> 1, k[f2 >> 2] | 0) | 0) + (k[b2 >> 2] | 0) | 0; if ((c2 | 0) < (e2 | 0)) { d2 = 0; do { c2 = c2 << 1; d2 = d2 + 1 | 0; } while ((c2 | 0) < (e2 | 0)); } else d2 = 0; e2 = k[36476 + (k[a2 + 4568 >> 2] << 2) >> 2] | 0; c2 = Tg(a2) | 0; do if ((c2 | 0) < (34 - e2 | 0)) if (!d2) { a2 = k[f2 >> 2] | 0; e2 = a2 + c2 | 0; d2 = e2 & 1; e2 = (d2 + e2 | 0) / 2 | 0; g2 = 8; break; } else { c2 = (Ug(a2, d2) | 0) + (c2 << d2) | 0; a2 = k[f2 >> 2] | 0; e2 = c2 + a2 | 0; j2 = e2 & 1; d2 = j2; f2 = 1; e2 = (j2 + e2 | 0) / 2 | 0; break; } else { c2 = (Ug(a2, 12) | 0) + 1 | 0; a2 = k[f2 >> 2] | 0; e2 = c2 + a2 | 0; f2 = e2 & 1; e2 = (f2 + e2 | 0) / 2 | 0; if (!d2) { d2 = f2; g2 = 8; } else { d2 = f2; f2 = 1; } } while (0); if ((g2 | 0) == 8) f2 = l[b2 + 10 >> 0] << 1 >>> 0 >= (l[h2 >> 0] | 0) >>> 0; e2 = (d2 | 0) != 0 ^ f2 ? e2 : 0 - e2 | 0; if ((e2 | 0) < 0) { j2 = b2 + 10 | 0; i2[j2 >> 0] = (l[j2 >> 0] | 0) + 1; } c2 = (c2 + 1 - a2 >> 1) + (k[b2 >> 2] | 0) | 0; k[b2 >> 2] = c2; d2 = i2[h2 >> 0] | 0; if (d2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { j2 = d2; j2 = j2 & 255; j2 = j2 + 1 | 0; j2 = j2 & 255; i2[h2 >> 0] = j2; return e2 | 0; } k[b2 >> 2] = c2 >> 1; j2 = (d2 & 255) >>> 1; i2[h2 >> 0] = j2; b2 = b2 + 10 | 0; i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; j2 = j2 & 255; j2 = j2 + 1 | 0; j2 = j2 & 255; i2[h2 >> 0] = j2; return e2 | 0; } function Rh(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; l2 = r; r = r + 32 | 0; h2 = l2; Oi(h2, 4095, 0); j2 = a2 + 152 | 0; if (((k[h2 + 4 >> 2] | 0) == (k[j2 >> 2] | 0) ? (k[h2 + 8 >> 2] | 0) == (k[a2 + 156 >> 2] | 0) : 0) ? (k[h2 + 12 >> 2] | 0) == (k[a2 + 160 >> 2] | 0) : 0) { j2 = k[8906] | 0; k[a2 + 4580 >> 2] = j2 + (((k[8907] | 0) - j2 | 0) >>> 1); r = l2; return; } c2 = a2 + 4584 | 0; d2 = a2 + 4588 | 0; e2 = k[d2 >> 2] | 0; b2 = k[c2 >> 2] | 0; f2 = e2 - b2 | 0; if (f2 >>> 0 >= 8192) { if (f2 >>> 0 > 8192 ? (g2 = b2 + 8192 | 0, (e2 | 0) != (g2 | 0)) : 0) k[d2 >> 2] = g2; } else { se(c2, 8192 - f2 | 0); b2 = k[c2 >> 2] | 0; } h2 = a2 + 4580 | 0; k[h2 >> 2] = b2 + 4096; g2 = a2 + 160 | 0; e2 = a2 + 156 | 0; f2 = -4096; while (1) { b2 = k[g2 >> 2] | 0; if ((f2 | 0) > (0 - b2 | 0)) { c2 = k[e2 >> 2] | 0; if ((f2 | 0) > (0 - c2 | 0)) { d2 = k[j2 >> 2] | 0; if ((f2 | 0) > (0 - d2 | 0)) if ((f2 | 0) >= 0) { if ((f2 | 0) < 1) { i2[(k[h2 >> 2] | 0) + f2 >> 0] = 0; f2 = 1; continue; } if ((d2 | 0) <= (f2 | 0)) if ((c2 | 0) > (f2 | 0)) b2 = 2; else b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; else b2 = 1; } else b2 = -1; else b2 = -2; } else b2 = -3; } else b2 = -4; i2[(k[h2 >> 2] | 0) + f2 >> 0] = b2; f2 = f2 + 1 | 0; if ((f2 | 0) == 4096) break; } r = l2; return; } function Sh(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 35716; b2 = k[a2 + 4584 >> 2] | 0; if (b2) { c2 = a2 + 4588 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36736; b2 = k[a2 + 92 >> 2] | 0; if (b2) { c2 = a2 + 96 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } a2 = a2 + 88 | 0; b2 = k[a2 >> 2] | 0; k[a2 >> 2] = 0; if (!b2) return; Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); return; } function Th(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 35716; b2 = k[a2 + 4584 >> 2] | 0; if (b2) { c2 = a2 + 4588 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36736; b2 = k[a2 + 92 >> 2] | 0; if (b2) { c2 = a2 + 96 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = a2 + 88 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (!b2) { mj(a2); return; } Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); mj(a2); return; } function Uh(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; u2 = r; r = r + 352 | 0; v2 = u2 + 328 | 0; y2 = u2 + 192 | 0; c2 = u2 + 343 | 0; d2 = u2 + 342 | 0; e2 = u2 + 341 | 0; f2 = u2 + 340 | 0; o2 = u2 + 176 | 0; h2 = u2 + 168 | 0; j2 = u2 + 160 | 0; l2 = u2 + 152 | 0; t2 = u2; q2 = u2 + 136 | 0; if ((k[a2 + 28 >> 2] | 0) != 0 ? (k[a2 + 20 >> 2] | 0) != 1 : 0) { p2 = a2 + 4 | 0; s2 = a2 + 32 | 0; g2 = k[s2 >> 2] | 0; if (!g2) { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[c2 >> 0] | 0; Ja(44, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } a2 = k[a2 + 12 >> 2] | 0; if ((a2 | 0) == 8) switch (g2 | 0) { case 1: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[d2 >> 0] | 0; Ja(45, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[e2 >> 0] | 0; Ja(46, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[f2 >> 0] | 0; Ja(47, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = y2 + 56 | 0; e2 = y2 + 4 | 0; k[y2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, y2 + 56 | 0, e2 | 0); u2 = x; x = 0; if (u2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[y2 + 128 >> 2] = 0; k[y2 + 132 >> 2] = -1; k[y2 >> 2] = 36200; k[y2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); u2 = x; x = 0; do if (u2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = y2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[y2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); u2 = x; x = 0; if (u2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, y2 | 0, 49007, 21) | 0; v2 = x; x = 0; do if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, o2 | 0, e2 | 0); v2 = x; x = 0; if (!(v2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, o2 | 0); v2 = x; x = 0; if (v2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(o2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 34; while (0); if ((z2 | 0) == 34) a2 = Wa() | 0; k[y2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } if ((a2 | 0) <= 8) { a2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, a2 | 0, 8, 35648); z2 = x; x = 0; if (!(z2 & 1)) ub(a2 | 0, 824, 96); z2 = Wa() | 0; Ua(a2 | 0); fb(z2 | 0); } c2 = 16 - a2 | 0; switch (g2 | 0) { case 1: { a2 = lj(60) | 0; k[h2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[h2 >> 2]; k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(60) | 0; k[j2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[j2 >> 2]; k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(60) | 0; k[l2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[l2 >> 2]; k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = t2 + 56 | 0; e2 = t2 + 4 | 0; k[t2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, t2 + 56 | 0, e2 | 0); y2 = x; x = 0; if (y2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[t2 + 128 >> 2] = 0; k[t2 + 132 >> 2] = -1; k[t2 >> 2] = 36200; k[t2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); y2 = x; x = 0; do if (y2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = t2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[t2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); y2 = x; x = 0; if (y2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, t2 | 0, 49007, 21) | 0; y2 = x; x = 0; do if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, q2 | 0, e2 | 0); y2 = x; x = 0; if (!(y2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, q2 | 0); y2 = x; x = 0; if (y2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(q2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 64; while (0); if ((z2 | 0) == 64) a2 = Wa() | 0; k[t2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } } c2 = k[b2 + 4 >> 2] | 0; d2 = lj(16) | 0; a2 = k[a2 + 16 >> 2] | 0; if (!c2) { z2 = k[b2 >> 2] | 0; k[d2 >> 2] = 36132; k[d2 + 4 >> 2] = z2; k[d2 + 8 >> 2] = 1; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } else { k[d2 >> 2] = 36108; k[d2 + 4 >> 2] = c2; k[d2 + 8 >> 2] = 1; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } return 0; } function Vh(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; e2 = r; r = r + 32 | 0; h2 = e2; Oi(h2, 255, 0); g2 = k[b2 + 4 >> 2] | 0; f2 = k[b2 + 8 >> 2] | 0; f2 = (f2 | 0) == 0 ? k[h2 + 8 >> 2] | 0 : f2; d2 = k[b2 + 12 >> 2] | 0; d2 = (d2 | 0) == 0 ? k[h2 + 12 >> 2] | 0 : d2; b2 = k[b2 + 16 >> 2] | 0; c2 = k[h2 + 16 >> 2] | 0; k[a2 + 152 >> 2] = (g2 | 0) == 0 ? k[h2 + 4 >> 2] | 0 : g2; k[a2 + 156 >> 2] = f2; k[a2 + 160 >> 2] = d2; bi(a2); d2 = 0; do { k[a2 + 164 + (d2 * 12 | 0) >> 2] = 4; k[a2 + 164 + (d2 * 12 | 0) + 4 >> 2] = 0; j[a2 + 164 + (d2 * 12 | 0) + 8 >> 1] = 0; j[a2 + 164 + (d2 * 12 | 0) + 10 >> 1] = 1; d2 = d2 + 1 | 0; } while ((d2 | 0) != 365); h2 = ((b2 | 0) == 0 ? c2 : b2) & 255; k[a2 + 4544 >> 2] = 4; k[a2 + 4548 >> 2] = 0; i2[a2 + 4552 >> 0] = h2; i2[a2 + 4553 >> 0] = 1; i2[a2 + 4554 >> 0] = 0; k[a2 + 4556 >> 2] = 4; k[a2 + 4560 >> 2] = 1; i2[a2 + 4564 >> 0] = h2; i2[a2 + 4565 >> 0] = 1; i2[a2 + 4566 >> 0] = 0; k[a2 + 4568 >> 2] = 0; r = e2; return; } function Wh(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0; g2 = a2 + 88 | 0; f2 = k[b2 >> 2] | 0; k[b2 >> 2] = 0; b2 = k[g2 >> 2] | 0; k[g2 >> 2] = f2; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); g2 = d2 + 4 | 0; f2 = k[g2 >> 2] | 0; i2[a2 + 4596 >> 0] = e2 & 1; b2 = a2 + 132 | 0; k[b2 >> 2] = k[c2 >> 2]; k[b2 + 4 >> 2] = k[c2 + 4 >> 2]; k[b2 + 8 >> 2] = k[c2 + 8 >> 2]; k[b2 + 12 >> 2] = k[c2 + 12 >> 2]; ee(a2, d2); Xh(a2); b2 = k[a2 + 116 >> 2] | 0; a2 = k[a2 + 112 >> 2] | 0; while (1) { e2 = b2 + -1 | 0; c2 = (i2[e2 >> 0] | 0) == -1 ? 7 : 8; if ((a2 | 0) < (c2 | 0)) break; else { b2 = e2; a2 = a2 - c2 | 0; } } b2 = b2 - f2 | 0; e2 = k[g2 >> 2] | 0; if (!e2) return; k[g2 >> 2] = e2 + b2; d2 = d2 + 8 | 0; k[d2 >> 2] = (k[d2 >> 2] | 0) - b2; return; } function Xh(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; A2 = r; r = r + 32 | 0; C2 = A2 + 12 | 0; z2 = A2; v2 = a2 + 148 | 0; w2 = (k[v2 >> 2] | 0) + 4 | 0; if ((k[a2 + 28 >> 2] | 0) == 1) y2 = k[a2 + 20 >> 2] | 0; else y2 = 1; b2 = ia(y2 << 1, w2) | 0; k[C2 >> 2] = 0; D2 = C2 + 4 | 0; k[D2 >> 2] = 0; k[C2 + 8 >> 2] = 0; a: do if (b2) { if (!((b2 | 0) < 0 ? (x = 0, qa(178, C2 | 0), B2 = x, x = 0, B2 & 1) : 0)) f2 = 6; if ((f2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 | 0) | 0, B2 = x, x = 0, !(B2 & 1)) : 0) { k[D2 >> 2] = c2; k[C2 >> 2] = c2; k[C2 + 8 >> 2] = c2 + b2; while (1) { i2[c2 >> 0] = 0; c2 = (k[D2 >> 2] | 0) + 1 | 0; k[D2 >> 2] = c2; b2 = b2 + -1 | 0; if (!b2) break a; } } c2 = Wa() | 0; b2 = k[C2 >> 2] | 0; if (!b2) fb(c2 | 0); if ((k[D2 >> 2] | 0) != (b2 | 0)) k[D2 >> 2] = b2; mj(b2); fb(c2 | 0); } while (0); k[z2 >> 2] = 0; B2 = z2 + 4 | 0; k[B2 >> 2] = 0; k[z2 + 8 >> 2] = 0; do if (!y2) f2 = 19; else { if (!(y2 >>> 0 > 1073741823 ? (x = 0, qa(178, z2 | 0), u2 = x, x = 0, u2 & 1) : 0)) f2 = 17; if ((f2 | 0) == 17 ? (d2 = y2 << 2, x = 0, e2 = ta(67, d2 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { k[z2 >> 2] = e2; f2 = e2 + (y2 << 2) | 0; k[z2 + 8 >> 2] = f2; sw(e2 | 0, 0, d2 | 0) | 0; k[B2 >> 2] = f2; f2 = 19; break; } c2 = Wa() | 0; b2 = k[z2 >> 2] | 0; d2 = b2; if (b2) { e2 = k[B2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[B2 >> 2] = e2 + (~((e2 + -4 - d2 | 0) >>> 2) << 2); mj(b2); } } while (0); if ((f2 | 0) == 19) { f2 = a2 + 8 | 0; b: do if ((k[f2 >> 2] | 0) > 0) { g2 = a2 + 4572 | 0; h2 = ia(y2, w2) | 0; j2 = h2 + 1 | 0; l2 = a2 + 4576 | 0; m2 = (y2 | 0) > 0; n2 = a2 + 136 | 0; o2 = a2 + 144 | 0; p2 = a2 + 140 | 0; q2 = a2 + 132 | 0; s2 = a2 + 88 | 0; t2 = a2 + 4568 | 0; u2 = 0; c: while (1) { d2 = k[C2 >> 2] | 0; c2 = d2 + 1 | 0; k[g2 >> 2] = c2; d2 = d2 + j2 | 0; k[l2 >> 2] = d2; if (!(u2 & 1)) b2 = d2; else { k[g2 >> 2] = d2; k[l2 >> 2] = c2; b2 = c2; c2 = d2; } if (m2) { e2 = k[z2 >> 2] | 0; d2 = 0; do { k[t2 >> 2] = k[e2 + (d2 << 2) >> 2]; e2 = k[v2 >> 2] | 0; i2[c2 + e2 >> 0] = i2[c2 + (e2 + -1) >> 0] | 0; i2[(k[l2 >> 2] | 0) + -1 >> 0] = i2[k[g2 >> 2] >> 0] | 0; x = 0; ra(81, a2 | 0, 0); e2 = x; x = 0; if (e2 & 1) { f2 = 30; break c; } e2 = k[z2 >> 2] | 0; k[e2 + (d2 << 2) >> 2] = k[t2 >> 2]; c2 = (k[g2 >> 2] | 0) + w2 | 0; k[g2 >> 2] = c2; b2 = (k[l2 >> 2] | 0) + w2 | 0; k[l2 >> 2] = b2; d2 = d2 + 1 | 0; } while ((d2 | 0) < (y2 | 0)); } e2 = k[n2 >> 2] | 0; if (((e2 | 0) <= (u2 | 0) ? (u2 | 0) < ((k[o2 >> 2] | 0) + e2 | 0) : 0) ? (e2 = k[s2 >> 2] | 0, x = 0, Ja(k[(k[e2 >> 2] | 0) + 8 >> 2] | 0, e2 | 0, b2 + ((k[q2 >> 2] | 0) - h2) | 0, k[p2 >> 2] | 0, w2 | 0), e2 = x, x = 0, e2 & 1) : 0) { f2 = 31; break; } u2 = u2 + 1 | 0; if ((u2 | 0) >= (k[f2 >> 2] | 0)) { f2 = 43; break b; } } if ((f2 | 0) == 30) { c2 = Wa() | 0; break; } else if ((f2 | 0) == 31) { c2 = Wa() | 0; break; } } else f2 = 43; while (0); do if ((f2 | 0) == 43) { x = 0; qa(183, a2 | 0); a2 = x; x = 0; if (a2 & 1) { c2 = Wa() | 0; break; } b2 = k[z2 >> 2] | 0; c2 = b2; if (b2) { d2 = k[B2 >> 2] | 0; if ((d2 | 0) != (b2 | 0)) k[B2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } b2 = k[C2 >> 2] | 0; if (!b2) { r = A2; return; } if ((k[D2 >> 2] | 0) != (b2 | 0)) k[D2 >> 2] = b2; mj(b2); r = A2; return; } while (0); b2 = k[z2 >> 2] | 0; d2 = b2; if (b2) { e2 = k[B2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[B2 >> 2] = e2 + (~((e2 + -4 - d2 | 0) >>> 2) << 2); mj(b2); } } b2 = k[C2 >> 2] | 0; if (!b2) fb(c2 | 0); if ((k[D2 >> 2] | 0) != (b2 | 0)) k[D2 >> 2] = b2; mj(b2); fb(c2 | 0); } function Yh(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; o2 = a2 + 4572 | 0; b2 = k[o2 >> 2] | 0; r2 = a2 + 148 | 0; if ((k[r2 >> 2] | 0) <= 0) return; p2 = a2 + 4576 | 0; q2 = a2 + 4580 | 0; e2 = b2; f2 = l[b2 + -1 >> 0] | 0; b2 = l[b2 >> 0] | 0; n2 = 0; while (1) { m2 = k[p2 >> 2] | 0; j2 = l[m2 + (n2 + -1) >> 0] | 0; d2 = n2 + 1 | 0; c2 = l[e2 + d2 >> 0] | 0; h2 = k[q2 >> 2] | 0; g2 = b2 - f2 | 0; e2 = f2 - j2 | 0; h2 = ((((i2[h2 + (c2 - b2) >> 0] | 0) * 9 | 0) + (i2[h2 + g2 >> 0] | 0) | 0) * 9 | 0) + (i2[h2 + e2 >> 0] | 0) | 0; if (!h2) { d2 = (_h(a2, n2, 0) | 0) + n2 | 0; c2 = k[o2 >> 2] | 0; b2 = l[c2 + (d2 + -1) >> 0] | 0; c2 = l[c2 + d2 >> 0] | 0; } else { f2 = b2 - j2 >> 31; if ((f2 ^ e2 | 0) < 0) e2 = b2; else e2 = j2 + ((f2 ^ g2 | 0) < 0 ? 0 : g2) | 0; m2 = Zh(a2, h2, l[m2 + n2 >> 0] | 0, e2, 0) | 0; i2[(k[p2 >> 2] | 0) + n2 >> 0] = m2; } if ((d2 | 0) >= (k[r2 >> 2] | 0)) break; e2 = k[o2 >> 2] | 0; f2 = b2; b2 = c2; n2 = d2; } return; } function Zh(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; q2 = b2 >> 31; m2 = (q2 ^ b2) - q2 | 0; p2 = a2 + 164 + (m2 * 12 | 0) + 10 | 0; c2 = j[p2 >> 1] | 0; o2 = a2 + 164 + (m2 * 12 | 0) | 0; e2 = k[o2 >> 2] | 0; if ((c2 | 0) < (e2 | 0)) if ((c2 << 1 | 0) < (e2 | 0)) if ((c2 << 2 | 0) < (e2 | 0)) if ((c2 << 3 | 0) < (e2 | 0)) if ((c2 << 4 | 0) < (e2 | 0)) { f2 = 5; while (1) if ((c2 << f2 | 0) < (e2 | 0)) f2 = f2 + 1 | 0; else break; } else f2 = 4; else f2 = 3; else f2 = 2; else f2 = 1; else f2 = 0; n2 = a2 + 164 + (m2 * 12 | 0) + 8 | 0; c2 = (j[n2 >> 1] ^ q2) - q2 + d2 | 0; if ((c2 & 255 | 0) != (c2 | 0)) c2 = c2 >> 31 & 255 ^ 255; e2 = a2 + 112 | 0; if ((k[e2 >> 2] | 0) < 8) qe(a2); d2 = a2 + 108 | 0; g2 = k[d2 >> 2] | 0; h2 = g2 >>> 24; l2 = k[2832 + (f2 << 11) + (h2 << 3) + 4 >> 2] | 0; if (!l2) { e2 = Tg(a2) | 0; if ((e2 | 0) < 23) { if (f2) e2 = (Ug(a2, f2) | 0) + (e2 << f2) | 0; } else e2 = (Ug(a2, 8) | 0) + 1 | 0; e2 = e2 << 31 >> 31 ^ e2 >> 1; if ((((e2 | 0) > -1 ? e2 : 0 - e2 | 0) | 0) > 65535) { c2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, c2 | 0, 5, 35648); b2 = x; x = 0; if (b2 & 1) { b2 = Wa() | 0; Ua(c2 | 0); fb(b2 | 0); } else ub(c2 | 0, 824, 96); } } else { k[e2 >> 2] = (k[e2 >> 2] | 0) - l2; k[d2 >> 2] = g2 << l2; e2 = k[2832 + (f2 << 11) + (h2 << 3) >> 2] | 0; } l2 = a2 + 164 + (m2 * 12 | 0) + 4 | 0; d2 = k[l2 >> 2] | 0; if (!f2) { a2 = j[p2 >> 1] | 0; f2 = a2; e2 = (d2 << 1) + -1 + (a2 << 16 >> 16) >> 31 ^ e2; } else f2 = j[p2 >> 1] | 0; g2 = f2 << 16 >> 16 == 64; a2 = g2 & 1; h2 = d2 + e2 >> a2; g2 = g2 ? 32 : f2 << 16 >> 16; k[o2 >> 2] = ((e2 | 0) > -1 ? e2 : 0 - e2 | 0) + (k[o2 >> 2] | 0) >> a2; d2 = g2 + 1 | 0; j[p2 >> 1] = d2; f2 = d2 + h2 | 0; if ((f2 | 0) < 1) { p2 = j[n2 >> 1] | 0; j[n2 >> 1] = (p2 & 65535) - (p2 << 16 >> 16 > -128 & 1); p2 = (f2 | 0) > (~g2 | 0) ? f2 : 0 - g2 | 0; k[l2 >> 2] = p2; q2 = e2 ^ q2; b2 = b2 >>> 31; b2 = c2 + b2 | 0; b2 = b2 + q2 | 0; b2 = b2 & 255; return b2 | 0; } if ((h2 | 0) <= 0) { p2 = h2; k[l2 >> 2] = p2; q2 = e2 ^ q2; b2 = b2 >>> 31; b2 = c2 + b2 | 0; b2 = b2 + q2 | 0; b2 = b2 & 255; return b2 | 0; } p2 = h2 - d2 | 0; o2 = j[n2 >> 1] | 0; j[n2 >> 1] = (o2 << 16 >> 16 < 127 & 1) + (o2 & 65535); p2 = (p2 | 0) > 0 ? 0 : p2; k[l2 >> 2] = p2; q2 = e2 ^ q2; b2 = b2 >>> 31; b2 = c2 + b2 | 0; b2 = b2 + q2 | 0; b2 = b2 & 255; return b2 | 0; } function _h(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0; f2 = a2 + 4576 | 0; e2 = k[f2 >> 2] | 0; c2 = i2[e2 + (b2 + -1) >> 0] | 0; g2 = a2 + 148 | 0; e2 = $h(a2, c2, e2 + b2 | 0, (k[g2 >> 2] | 0) - b2 | 0) | 0; d2 = e2 + b2 | 0; if ((d2 | 0) == (k[g2 >> 2] | 0)) { g2 = e2; return g2 | 0; } c2 = c2 & 255; b2 = l[(k[a2 + 4572 >> 2] | 0) + d2 >> 0] | 0; g2 = c2 - b2 | 0; if ((((g2 | 0) > -1 ? g2 : 0 - g2 | 0) | 0) < 1) c2 = (ai(a2, a2 + 4556 | 0) | 0) + c2 | 0; else c2 = (ia(ai(a2, a2 + 4544 | 0) | 0, b2 - c2 >> 31 | 1) | 0) + b2 | 0; i2[(k[f2 >> 2] | 0) + d2 >> 0] = c2; g2 = a2 + 4568 | 0; a2 = k[g2 >> 2] | 0; k[g2 >> 2] = (a2 | 0) < 1 ? 0 : a2 + -1 | 0; g2 = e2 + 1 | 0; return g2 | 0; } function $h(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; h2 = a2 + 112 | 0; j2 = a2 + 108 | 0; l2 = a2 + 4568 | 0; e2 = k[h2 >> 2] | 0; f2 = 0; while (1) { if ((e2 | 0) < 1) { qe(a2); e2 = k[h2 >> 2] | 0; } g2 = k[j2 >> 2] | 0; e2 = e2 + -1 | 0; k[h2 >> 2] = e2; k[j2 >> 2] = g2 << 1; if ((g2 | 0) >= 0) { m2 = 8; break; } g2 = k[l2 >> 2] | 0; n2 = 1 << k[36476 + (g2 << 2) >> 2]; o2 = d2 - f2 | 0; o2 = (n2 | 0) < (o2 | 0) ? n2 : o2; f2 = o2 + f2 | 0; if ((o2 | 0) == (n2 | 0)) k[l2 >> 2] = (g2 | 0) > 30 ? 31 : g2 + 1 | 0; if ((f2 | 0) == (d2 | 0)) { e2 = d2; break; } } if ((m2 | 0) == 8) if ((f2 | 0) != (d2 | 0)) { e2 = k[l2 >> 2] | 0; if ((e2 + -4 | 0) >>> 0 < 28) e2 = Ug(a2, k[36476 + (e2 << 2) >> 2] | 0) | 0; else e2 = 0; e2 = e2 + f2 | 0; if ((e2 | 0) > (d2 | 0)) { e2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, e2 | 0, 5, 35648); o2 = x; x = 0; if (o2 & 1) { o2 = Wa() | 0; Ua(e2 | 0); fb(o2 | 0); } else ub(e2 | 0, 824, 96); } } else e2 = d2; if ((e2 | 0) <= 0) return e2 | 0; sw(c2 | 0, b2 | 0, e2 | 0) | 0; return e2 | 0; } function ai(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; h2 = b2 + 9 | 0; c2 = l[h2 >> 0] | 0; f2 = b2 + 4 | 0; e2 = (ia(c2 >>> 1, k[f2 >> 2] | 0) | 0) + (k[b2 >> 2] | 0) | 0; if ((c2 | 0) < (e2 | 0)) { d2 = 0; do { c2 = c2 << 1; d2 = d2 + 1 | 0; } while ((c2 | 0) < (e2 | 0)); } else d2 = 0; e2 = k[36476 + (k[a2 + 4568 >> 2] << 2) >> 2] | 0; c2 = Tg(a2) | 0; do if ((c2 | 0) < (22 - e2 | 0)) if (!d2) { a2 = k[f2 >> 2] | 0; e2 = a2 + c2 | 0; d2 = e2 & 1; e2 = (d2 + e2 | 0) / 2 | 0; g2 = 8; break; } else { c2 = (Ug(a2, d2) | 0) + (c2 << d2) | 0; a2 = k[f2 >> 2] | 0; e2 = c2 + a2 | 0; j2 = e2 & 1; d2 = j2; f2 = 1; e2 = (j2 + e2 | 0) / 2 | 0; break; } else { c2 = (Ug(a2, 8) | 0) + 1 | 0; a2 = k[f2 >> 2] | 0; e2 = c2 + a2 | 0; f2 = e2 & 1; e2 = (f2 + e2 | 0) / 2 | 0; if (!d2) { d2 = f2; g2 = 8; } else { d2 = f2; f2 = 1; } } while (0); if ((g2 | 0) == 8) f2 = l[b2 + 10 >> 0] << 1 >>> 0 >= (l[h2 >> 0] | 0) >>> 0; e2 = (d2 | 0) != 0 ^ f2 ? e2 : 0 - e2 | 0; if ((e2 | 0) < 0) { j2 = b2 + 10 | 0; i2[j2 >> 0] = (l[j2 >> 0] | 0) + 1; } c2 = (c2 + 1 - a2 >> 1) + (k[b2 >> 2] | 0) | 0; k[b2 >> 2] = c2; d2 = i2[h2 >> 0] | 0; if (d2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { j2 = d2; j2 = j2 & 255; j2 = j2 + 1 | 0; j2 = j2 & 255; i2[h2 >> 0] = j2; return e2 | 0; } k[b2 >> 2] = c2 >> 1; j2 = (d2 & 255) >>> 1; i2[h2 >> 0] = j2; b2 = b2 + 10 | 0; i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; j2 = j2 & 255; j2 = j2 + 1 | 0; j2 = j2 & 255; i2[h2 >> 0] = j2; return e2 | 0; } function bi(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; l2 = r; r = r + 32 | 0; h2 = l2; Oi(h2, 255, 0); j2 = a2 + 152 | 0; if (((k[h2 + 4 >> 2] | 0) == (k[j2 >> 2] | 0) ? (k[h2 + 8 >> 2] | 0) == (k[a2 + 156 >> 2] | 0) : 0) ? (k[h2 + 12 >> 2] | 0) == (k[a2 + 160 >> 2] | 0) : 0) { j2 = k[8900] | 0; k[a2 + 4580 >> 2] = j2 + (((k[8901] | 0) - j2 | 0) >>> 1); r = l2; return; } c2 = a2 + 4584 | 0; d2 = a2 + 4588 | 0; e2 = k[d2 >> 2] | 0; b2 = k[c2 >> 2] | 0; f2 = e2 - b2 | 0; if (f2 >>> 0 >= 512) { if (f2 >>> 0 > 512 ? (g2 = b2 + 512 | 0, (e2 | 0) != (g2 | 0)) : 0) k[d2 >> 2] = g2; } else { se(c2, 512 - f2 | 0); b2 = k[c2 >> 2] | 0; } h2 = a2 + 4580 | 0; k[h2 >> 2] = b2 + 256; g2 = a2 + 160 | 0; e2 = a2 + 156 | 0; f2 = -256; while (1) { b2 = k[g2 >> 2] | 0; if ((f2 | 0) > (0 - b2 | 0)) { c2 = k[e2 >> 2] | 0; if ((f2 | 0) > (0 - c2 | 0)) { d2 = k[j2 >> 2] | 0; if ((f2 | 0) > (0 - d2 | 0)) if ((f2 | 0) >= 0) { if ((f2 | 0) < 1) { i2[(k[h2 >> 2] | 0) + f2 >> 0] = 0; f2 = 1; continue; } if ((d2 | 0) <= (f2 | 0)) if ((c2 | 0) > (f2 | 0)) b2 = 2; else b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; else b2 = 1; } else b2 = -1; else b2 = -2; } else b2 = -3; } else b2 = -4; i2[(k[h2 >> 2] | 0) + f2 >> 0] = b2; f2 = f2 + 1 | 0; if ((f2 | 0) == 256) break; } r = l2; return; } function ci(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 35688; b2 = k[a2 + 4584 >> 2] | 0; if (b2) { c2 = a2 + 4588 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36736; b2 = k[a2 + 92 >> 2] | 0; if (b2) { c2 = a2 + 96 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } a2 = a2 + 88 | 0; b2 = k[a2 >> 2] | 0; k[a2 >> 2] = 0; if (!b2) return; Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); return; } function di(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 35688; b2 = k[a2 + 4584 >> 2] | 0; if (b2) { c2 = a2 + 4588 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36736; b2 = k[a2 + 92 >> 2] | 0; if (b2) { c2 = a2 + 96 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = a2 + 88 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (!b2) { mj(a2); return; } Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); mj(a2); return; } function ei(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; u2 = r; r = r + 352 | 0; v2 = u2 + 328 | 0; y2 = u2 + 192 | 0; c2 = u2 + 343 | 0; d2 = u2 + 342 | 0; e2 = u2 + 341 | 0; f2 = u2 + 340 | 0; o2 = u2 + 176 | 0; h2 = u2 + 168 | 0; j2 = u2 + 160 | 0; l2 = u2 + 152 | 0; t2 = u2; q2 = u2 + 136 | 0; if ((k[a2 + 28 >> 2] | 0) != 0 ? (k[a2 + 20 >> 2] | 0) != 1 : 0) { p2 = a2 + 4 | 0; s2 = a2 + 32 | 0; g2 = k[s2 >> 2] | 0; if (!g2) { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[c2 >> 0] | 0; Ja(44, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } a2 = k[a2 + 12 >> 2] | 0; if ((a2 | 0) == 8) switch (g2 | 0) { case 1: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[d2 >> 0] | 0; Ja(45, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[e2 >> 0] | 0; Ja(46, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[f2 >> 0] | 0; Ja(47, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = y2 + 56 | 0; e2 = y2 + 4 | 0; k[y2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, y2 + 56 | 0, e2 | 0); u2 = x; x = 0; if (u2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[y2 + 128 >> 2] = 0; k[y2 + 132 >> 2] = -1; k[y2 >> 2] = 36200; k[y2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); u2 = x; x = 0; do if (u2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = y2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[y2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); u2 = x; x = 0; if (u2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, y2 | 0, 49007, 21) | 0; v2 = x; x = 0; do if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, o2 | 0, e2 | 0); v2 = x; x = 0; if (!(v2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, o2 | 0); v2 = x; x = 0; if (v2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(o2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 34; while (0); if ((z2 | 0) == 34) a2 = Wa() | 0; k[y2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } if ((a2 | 0) <= 8) { a2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, a2 | 0, 8, 35648); z2 = x; x = 0; if (!(z2 & 1)) ub(a2 | 0, 824, 96); z2 = Wa() | 0; Ua(a2 | 0); fb(z2 | 0); } c2 = 16 - a2 | 0; switch (g2 | 0) { case 1: { a2 = lj(60) | 0; k[h2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[h2 >> 2]; k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(60) | 0; k[j2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[j2 >> 2]; k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(60) | 0; k[l2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[l2 >> 2]; k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = t2 + 56 | 0; e2 = t2 + 4 | 0; k[t2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, t2 + 56 | 0, e2 | 0); y2 = x; x = 0; if (y2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[t2 + 128 >> 2] = 0; k[t2 + 132 >> 2] = -1; k[t2 >> 2] = 36200; k[t2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); y2 = x; x = 0; do if (y2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = t2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[t2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); y2 = x; x = 0; if (y2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, t2 | 0, 49007, 21) | 0; y2 = x; x = 0; do if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, q2 | 0, e2 | 0); y2 = x; x = 0; if (!(y2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, q2 | 0); y2 = x; x = 0; if (y2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(q2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 64; while (0); if ((z2 | 0) == 64) a2 = Wa() | 0; k[t2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } } c2 = k[b2 + 4 >> 2] | 0; d2 = lj(16) | 0; a2 = k[a2 + 16 >> 2] | 0; if (!c2) { z2 = k[b2 >> 2] | 0; k[d2 >> 2] = 36132; k[d2 + 4 >> 2] = z2; k[d2 + 8 >> 2] = 3; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } else { k[d2 >> 2] = 36108; k[d2 + 4 >> 2] = c2; k[d2 + 8 >> 2] = 3; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } return 0; } function fi(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; e2 = r; r = r + 32 | 0; h2 = e2; Oi(h2, 255, 0); g2 = k[b2 + 4 >> 2] | 0; f2 = k[b2 + 8 >> 2] | 0; f2 = (f2 | 0) == 0 ? k[h2 + 8 >> 2] | 0 : f2; d2 = k[b2 + 12 >> 2] | 0; d2 = (d2 | 0) == 0 ? k[h2 + 12 >> 2] | 0 : d2; b2 = k[b2 + 16 >> 2] | 0; c2 = k[h2 + 16 >> 2] | 0; k[a2 + 152 >> 2] = (g2 | 0) == 0 ? k[h2 + 4 >> 2] | 0 : g2; k[a2 + 156 >> 2] = f2; k[a2 + 160 >> 2] = d2; ni(a2); d2 = 0; do { k[a2 + 164 + (d2 * 12 | 0) >> 2] = 4; k[a2 + 164 + (d2 * 12 | 0) + 4 >> 2] = 0; j[a2 + 164 + (d2 * 12 | 0) + 8 >> 1] = 0; j[a2 + 164 + (d2 * 12 | 0) + 10 >> 1] = 1; d2 = d2 + 1 | 0; } while ((d2 | 0) != 365); h2 = ((b2 | 0) == 0 ? c2 : b2) & 255; k[a2 + 4544 >> 2] = 4; k[a2 + 4548 >> 2] = 0; i2[a2 + 4552 >> 0] = h2; i2[a2 + 4553 >> 0] = 1; i2[a2 + 4554 >> 0] = 0; k[a2 + 4556 >> 2] = 4; k[a2 + 4560 >> 2] = 1; i2[a2 + 4564 >> 0] = h2; i2[a2 + 4565 >> 0] = 1; i2[a2 + 4566 >> 0] = 0; k[a2 + 4568 >> 2] = 0; r = e2; return; } function gi(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0; g2 = a2 + 88 | 0; f2 = k[b2 >> 2] | 0; k[b2 >> 2] = 0; b2 = k[g2 >> 2] | 0; k[g2 >> 2] = f2; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); g2 = d2 + 4 | 0; f2 = k[g2 >> 2] | 0; i2[a2 + 4596 >> 0] = e2 & 1; b2 = a2 + 132 | 0; k[b2 >> 2] = k[c2 >> 2]; k[b2 + 4 >> 2] = k[c2 + 4 >> 2]; k[b2 + 8 >> 2] = k[c2 + 8 >> 2]; k[b2 + 12 >> 2] = k[c2 + 12 >> 2]; ee(a2, d2); hi(a2); b2 = k[a2 + 116 >> 2] | 0; a2 = k[a2 + 112 >> 2] | 0; while (1) { e2 = b2 + -1 | 0; c2 = (i2[e2 >> 0] | 0) == -1 ? 7 : 8; if ((a2 | 0) < (c2 | 0)) break; else { b2 = e2; a2 = a2 - c2 | 0; } } b2 = b2 - f2 | 0; e2 = k[g2 >> 2] | 0; if (!e2) return; k[g2 >> 2] = e2 + b2; d2 = d2 + 8 | 0; k[d2 >> 2] = (k[d2 >> 2] | 0) - b2; return; } function hi(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; A2 = r; r = r + 32 | 0; C2 = A2 + 12 | 0; z2 = A2; v2 = a2 + 148 | 0; w2 = (k[v2 >> 2] | 0) + 4 | 0; if ((k[a2 + 28 >> 2] | 0) == 1) y2 = k[a2 + 20 >> 2] | 0; else y2 = 1; b2 = ia(y2 << 1, w2) | 0; k[C2 >> 2] = 0; D2 = C2 + 4 | 0; k[D2 >> 2] = 0; k[C2 + 8 >> 2] = 0; a: do if (b2) { if (!(b2 >>> 0 > 1431655765 ? (x = 0, qa(178, C2 | 0), B2 = x, x = 0, B2 & 1) : 0)) f2 = 6; if ((f2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 * 3 | 0) | 0, B2 = x, x = 0, !(B2 & 1)) : 0) { k[D2 >> 2] = c2; k[C2 >> 2] = c2; k[C2 + 8 >> 2] = c2 + (b2 * 3 | 0); while (1) { i2[c2 >> 0] = 0; i2[c2 + 1 >> 0] = 0; i2[c2 + 2 >> 0] = 0; c2 = (k[D2 >> 2] | 0) + 3 | 0; k[D2 >> 2] = c2; b2 = b2 + -1 | 0; if (!b2) break a; } } d2 = Wa() | 0; b2 = k[C2 >> 2] | 0; if (!b2) fb(d2 | 0); c2 = k[D2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[D2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); mj(b2); fb(d2 | 0); } while (0); k[z2 >> 2] = 0; B2 = z2 + 4 | 0; k[B2 >> 2] = 0; k[z2 + 8 >> 2] = 0; do if (!y2) f2 = 19; else { if (!(y2 >>> 0 > 1073741823 ? (x = 0, qa(178, z2 | 0), u2 = x, x = 0, u2 & 1) : 0)) f2 = 17; if ((f2 | 0) == 17 ? (d2 = y2 << 2, x = 0, e2 = ta(67, d2 | 0) | 0, u2 = x, x = 0, !(u2 & 1)) : 0) { k[z2 >> 2] = e2; f2 = e2 + (y2 << 2) | 0; k[z2 + 8 >> 2] = f2; sw(e2 | 0, 0, d2 | 0) | 0; k[B2 >> 2] = f2; f2 = 19; break; } d2 = Wa() | 0; b2 = k[z2 >> 2] | 0; c2 = b2; if (b2) { e2 = k[B2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } } while (0); if ((f2 | 0) == 19) { f2 = a2 + 8 | 0; b: do if ((k[f2 >> 2] | 0) > 0) { g2 = a2 + 4572 | 0; h2 = ia(y2, w2) | 0; j2 = h2 + 1 | 0; l2 = a2 + 4576 | 0; m2 = (y2 | 0) > 0; n2 = a2 + 136 | 0; o2 = a2 + 144 | 0; p2 = a2 + 140 | 0; q2 = a2 + 132 | 0; s2 = a2 + 88 | 0; t2 = a2 + 4568 | 0; u2 = 0; c: while (1) { d2 = k[C2 >> 2] | 0; c2 = d2 + 3 | 0; k[g2 >> 2] = c2; d2 = d2 + (j2 * 3 | 0) | 0; k[l2 >> 2] = d2; if (!(u2 & 1)) b2 = d2; else { k[g2 >> 2] = d2; k[l2 >> 2] = c2; b2 = c2; c2 = d2; } if (m2) { e2 = k[z2 >> 2] | 0; d2 = 0; do { k[t2 >> 2] = k[e2 + (d2 << 2) >> 2]; b2 = k[v2 >> 2] | 0; e2 = c2 + (b2 * 3 | 0) | 0; c2 = c2 + ((b2 + -1 | 0) * 3 | 0) | 0; i2[e2 >> 0] = i2[c2 >> 0] | 0; i2[e2 + 1 >> 0] = i2[c2 + 1 >> 0] | 0; i2[e2 + 2 >> 0] = i2[c2 + 2 >> 0] | 0; c2 = k[g2 >> 2] | 0; e2 = (k[l2 >> 2] | 0) + -3 | 0; i2[e2 >> 0] = i2[c2 >> 0] | 0; i2[e2 + 1 >> 0] = i2[c2 + 1 >> 0] | 0; i2[e2 + 2 >> 0] = i2[c2 + 2 >> 0] | 0; x = 0; ra(82, a2 | 0, 0); e2 = x; x = 0; if (e2 & 1) { f2 = 30; break c; } e2 = k[z2 >> 2] | 0; k[e2 + (d2 << 2) >> 2] = k[t2 >> 2]; c2 = (k[g2 >> 2] | 0) + (w2 * 3 | 0) | 0; k[g2 >> 2] = c2; b2 = (k[l2 >> 2] | 0) + (w2 * 3 | 0) | 0; k[l2 >> 2] = b2; d2 = d2 + 1 | 0; } while ((d2 | 0) < (y2 | 0)); } e2 = k[n2 >> 2] | 0; if (((e2 | 0) <= (u2 | 0) ? (u2 | 0) < ((k[o2 >> 2] | 0) + e2 | 0) : 0) ? (e2 = k[s2 >> 2] | 0, x = 0, Ja(k[(k[e2 >> 2] | 0) + 8 >> 2] | 0, e2 | 0, b2 + (((k[q2 >> 2] | 0) - h2 | 0) * 3 | 0) | 0, k[p2 >> 2] | 0, w2 | 0), e2 = x, x = 0, e2 & 1) : 0) { f2 = 31; break; } u2 = u2 + 1 | 0; if ((u2 | 0) >= (k[f2 >> 2] | 0)) { f2 = 43; break b; } } if ((f2 | 0) == 30) { d2 = Wa() | 0; break; } else if ((f2 | 0) == 31) { d2 = Wa() | 0; break; } } else f2 = 43; while (0); do if ((f2 | 0) == 43) { x = 0; qa(183, a2 | 0); a2 = x; x = 0; if (a2 & 1) { d2 = Wa() | 0; break; } b2 = k[z2 >> 2] | 0; c2 = b2; if (b2) { d2 = k[B2 >> 2] | 0; if ((d2 | 0) != (b2 | 0)) k[B2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } b2 = k[C2 >> 2] | 0; if (!b2) { r = A2; return; } c2 = k[D2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[D2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); mj(b2); r = A2; return; } while (0); b2 = k[z2 >> 2] | 0; c2 = b2; if (b2) { e2 = k[B2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[B2 >> 2] = e2 + (~((e2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } } b2 = k[C2 >> 2] | 0; if (!b2) fb(d2 | 0); c2 = k[D2 >> 2] | 0; if ((c2 | 0) != (b2 | 0)) k[D2 >> 2] = c2 + (~(((c2 + -3 - b2 | 0) >>> 0) / 3 | 0) * 3 | 0); mj(b2); fb(d2 | 0); } function ii(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; A2 = a2 + 148 | 0; if ((k[A2 >> 2] | 0) <= 0) return; B2 = a2 + 4576 | 0; C2 = a2 + 4572 | 0; D2 = a2 + 4580 | 0; z2 = 0; while (1) { w2 = z2 + -1 | 0; f2 = k[B2 >> 2] | 0; g2 = k[C2 >> 2] | 0; b2 = z2 + 1 | 0; e2 = l[g2 + (z2 * 3 | 0) >> 0] | 0; y2 = k[D2 >> 2] | 0; h2 = l[g2 + (w2 * 3 | 0) >> 0] | 0; j2 = e2 - h2 | 0; m2 = l[f2 + (w2 * 3 | 0) >> 0] | 0; n2 = h2 - m2 | 0; o2 = ((((i2[y2 + ((l[g2 + (b2 * 3 | 0) >> 0] | 0) - e2) >> 0] | 0) * 9 | 0) + (i2[y2 + j2 >> 0] | 0) | 0) * 9 | 0) + (i2[y2 + n2 >> 0] | 0) | 0; d2 = l[g2 + (z2 * 3 | 0) + 1 >> 0] | 0; p2 = l[g2 + (w2 * 3 | 0) + 1 >> 0] | 0; q2 = d2 - p2 | 0; r2 = l[f2 + (w2 * 3 | 0) + 1 >> 0] | 0; s2 = p2 - r2 | 0; t2 = ((((i2[y2 + ((l[g2 + (b2 * 3 | 0) + 1 >> 0] | 0) - d2) >> 0] | 0) * 9 | 0) + (i2[y2 + q2 >> 0] | 0) | 0) * 9 | 0) + (i2[y2 + s2 >> 0] | 0) | 0; c2 = l[g2 + (z2 * 3 | 0) + 2 >> 0] | 0; u2 = l[g2 + (w2 * 3 | 0) + 2 >> 0] | 0; v2 = c2 - u2 | 0; w2 = l[f2 + (w2 * 3 | 0) + 2 >> 0] | 0; x2 = u2 - w2 | 0; y2 = ((((i2[y2 + ((l[g2 + (b2 * 3 | 0) + 2 >> 0] | 0) - c2) >> 0] | 0) * 9 | 0) + (i2[y2 + v2 >> 0] | 0) | 0) * 9 | 0) + (i2[y2 + x2 >> 0] | 0) | 0; if (!(t2 | o2 | y2)) b2 = (ji(a2, z2, 0) | 0) + z2 | 0; else { g2 = l[f2 + (z2 * 3 | 0) >> 0] | 0; f2 = e2 - m2 >> 31; if ((f2 ^ n2 | 0) >= 0) if ((f2 ^ j2 | 0) < 0) e2 = m2; else e2 = m2 - h2 + e2 | 0; g2 = ki(a2, o2, g2, e2, 0) | 0; f2 = l[(k[B2 >> 2] | 0) + (z2 * 3 | 0) + 1 >> 0] | 0; e2 = d2 - r2 >> 31; if ((e2 ^ s2 | 0) >= 0) if ((e2 ^ q2 | 0) < 0) d2 = r2; else d2 = r2 - p2 + d2 | 0; e2 = ki(a2, t2, f2, d2, 0) | 0; f2 = l[(k[B2 >> 2] | 0) + (z2 * 3 | 0) + 2 >> 0] | 0; d2 = c2 - w2 >> 31; if ((d2 ^ x2 | 0) >= 0) if ((d2 ^ v2 | 0) < 0) c2 = w2; else c2 = w2 - u2 + c2 | 0; y2 = ki(a2, y2, f2, c2, 0) | 0; z2 = (k[B2 >> 2] | 0) + (z2 * 3 | 0) | 0; i2[z2 >> 0] = g2; i2[z2 + 1 >> 0] = e2; i2[z2 + 2 >> 0] = y2; } if ((b2 | 0) < (k[A2 >> 2] | 0)) z2 = b2; else break; } return; } function ji(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; j2 = r; r = r + 16 | 0; m2 = j2 + 3 | 0; n2 = j2; f2 = a2 + 4576 | 0; c2 = k[f2 >> 2] | 0; d2 = c2 + ((b2 + -1 | 0) * 3 | 0) | 0; g2 = i2[d2 >> 0] | 0; h2 = i2[d2 + 1 >> 0] | 0; d2 = i2[d2 + 2 >> 0] | 0; i2[n2 >> 0] = g2; i2[n2 + 1 >> 0] = h2; i2[n2 + 2 >> 0] = d2; l2 = a2 + 148 | 0; e2 = (k[l2 >> 2] | 0) - b2 | 0; i2[m2 >> 0] = i2[n2 >> 0] | 0; i2[m2 + 1 >> 0] = i2[n2 + 1 >> 0] | 0; i2[m2 + 2 >> 0] = i2[n2 + 2 >> 0] | 0; e2 = li(a2, m2, c2 + (b2 * 3 | 0) | 0, e2) | 0; c2 = e2 + b2 | 0; if ((c2 | 0) == (k[l2 >> 2] | 0)) { n2 = e2; r = j2; return n2 | 0; } m2 = (k[a2 + 4572 >> 2] | 0) + (c2 * 3 | 0) | 0; b2 = i2[m2 >> 0] | 0; l2 = i2[m2 + 1 >> 0] | 0; m2 = i2[m2 + 2 >> 0] | 0; n2 = k[f2 >> 2] | 0; f2 = a2 + 4544 | 0; p2 = mi(a2, f2) | 0; o2 = mi(a2, f2) | 0; b2 = b2 & 255; b2 = (ia(b2 - (g2 & 255) >> 31 | 1, p2) | 0) + b2 & 255; l2 = l2 & 255; l2 = (ia(l2 - (h2 & 255) >> 31 | 1, o2) | 0) + l2 & 255; m2 = m2 & 255; m2 = (ia(m2 - (d2 & 255) >> 31 | 1, mi(a2, f2) | 0) | 0) + m2 & 255; n2 = n2 + (c2 * 3 | 0) | 0; i2[n2 >> 0] = b2; i2[n2 + 1 >> 0] = l2; i2[n2 + 2 >> 0] = m2; n2 = a2 + 4568 | 0; m2 = k[n2 >> 2] | 0; k[n2 >> 2] = (m2 | 0) < 1 ? 0 : m2 + -1 | 0; n2 = e2 + 1 | 0; r = j2; return n2 | 0; } function ki(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; q2 = b2 >> 31; m2 = (q2 ^ b2) - q2 | 0; p2 = a2 + 164 + (m2 * 12 | 0) + 10 | 0; c2 = j[p2 >> 1] | 0; o2 = a2 + 164 + (m2 * 12 | 0) | 0; e2 = k[o2 >> 2] | 0; if ((c2 | 0) < (e2 | 0)) if ((c2 << 1 | 0) < (e2 | 0)) if ((c2 << 2 | 0) < (e2 | 0)) if ((c2 << 3 | 0) < (e2 | 0)) if ((c2 << 4 | 0) < (e2 | 0)) { f2 = 5; while (1) if ((c2 << f2 | 0) < (e2 | 0)) f2 = f2 + 1 | 0; else break; } else f2 = 4; else f2 = 3; else f2 = 2; else f2 = 1; else f2 = 0; n2 = a2 + 164 + (m2 * 12 | 0) + 8 | 0; c2 = (j[n2 >> 1] ^ q2) - q2 + d2 | 0; if ((c2 & 255 | 0) != (c2 | 0)) c2 = c2 >> 31 & 255 ^ 255; e2 = a2 + 112 | 0; if ((k[e2 >> 2] | 0) < 8) qe(a2); d2 = a2 + 108 | 0; g2 = k[d2 >> 2] | 0; h2 = g2 >>> 24; l2 = k[2832 + (f2 << 11) + (h2 << 3) + 4 >> 2] | 0; if (!l2) { e2 = Tg(a2) | 0; if ((e2 | 0) < 23) { if (f2) e2 = (Ug(a2, f2) | 0) + (e2 << f2) | 0; } else e2 = (Ug(a2, 8) | 0) + 1 | 0; e2 = e2 << 31 >> 31 ^ e2 >> 1; if ((((e2 | 0) > -1 ? e2 : 0 - e2 | 0) | 0) > 65535) { c2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, c2 | 0, 5, 35648); b2 = x; x = 0; if (b2 & 1) { b2 = Wa() | 0; Ua(c2 | 0); fb(b2 | 0); } else ub(c2 | 0, 824, 96); } } else { k[e2 >> 2] = (k[e2 >> 2] | 0) - l2; k[d2 >> 2] = g2 << l2; e2 = k[2832 + (f2 << 11) + (h2 << 3) >> 2] | 0; } l2 = a2 + 164 + (m2 * 12 | 0) + 4 | 0; d2 = k[l2 >> 2] | 0; if (!f2) { a2 = j[p2 >> 1] | 0; f2 = a2; e2 = (d2 << 1) + -1 + (a2 << 16 >> 16) >> 31 ^ e2; } else f2 = j[p2 >> 1] | 0; g2 = f2 << 16 >> 16 == 64; a2 = g2 & 1; h2 = d2 + e2 >> a2; g2 = g2 ? 32 : f2 << 16 >> 16; k[o2 >> 2] = ((e2 | 0) > -1 ? e2 : 0 - e2 | 0) + (k[o2 >> 2] | 0) >> a2; d2 = g2 + 1 | 0; j[p2 >> 1] = d2; f2 = d2 + h2 | 0; if ((f2 | 0) < 1) { p2 = j[n2 >> 1] | 0; j[n2 >> 1] = (p2 & 65535) - (p2 << 16 >> 16 > -128 & 1); p2 = (f2 | 0) > (~g2 | 0) ? f2 : 0 - g2 | 0; k[l2 >> 2] = p2; q2 = e2 ^ q2; b2 = b2 >>> 31; b2 = c2 + b2 | 0; b2 = b2 + q2 | 0; b2 = b2 & 255; return b2 | 0; } if ((h2 | 0) <= 0) { p2 = h2; k[l2 >> 2] = p2; q2 = e2 ^ q2; b2 = b2 >>> 31; b2 = c2 + b2 | 0; b2 = b2 + q2 | 0; b2 = b2 & 255; return b2 | 0; } p2 = h2 - d2 | 0; o2 = j[n2 >> 1] | 0; j[n2 >> 1] = (o2 << 16 >> 16 < 127 & 1) + (o2 & 65535); p2 = (p2 | 0) > 0 ? 0 : p2; k[l2 >> 2] = p2; q2 = e2 ^ q2; b2 = b2 >>> 31; b2 = c2 + b2 | 0; b2 = b2 + q2 | 0; b2 = b2 & 255; return b2 | 0; } function li(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; h2 = a2 + 112 | 0; j2 = a2 + 108 | 0; l2 = a2 + 4568 | 0; e2 = k[h2 >> 2] | 0; f2 = 0; while (1) { if ((e2 | 0) < 1) { qe(a2); e2 = k[h2 >> 2] | 0; } g2 = k[j2 >> 2] | 0; e2 = e2 + -1 | 0; k[h2 >> 2] = e2; k[j2 >> 2] = g2 << 1; if ((g2 | 0) >= 0) { m2 = 8; break; } g2 = k[l2 >> 2] | 0; n2 = 1 << k[36476 + (g2 << 2) >> 2]; o2 = d2 - f2 | 0; o2 = (n2 | 0) < (o2 | 0) ? n2 : o2; f2 = o2 + f2 | 0; if ((o2 | 0) == (n2 | 0)) k[l2 >> 2] = (g2 | 0) > 30 ? 31 : g2 + 1 | 0; if ((f2 | 0) == (d2 | 0)) { e2 = d2; break; } } if ((m2 | 0) == 8) if ((f2 | 0) != (d2 | 0)) { e2 = k[l2 >> 2] | 0; if ((e2 + -4 | 0) >>> 0 < 28) e2 = Ug(a2, k[36476 + (e2 << 2) >> 2] | 0) | 0; else e2 = 0; e2 = e2 + f2 | 0; if ((e2 | 0) > (d2 | 0)) { e2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, e2 | 0, 5, 35648); o2 = x; x = 0; if (o2 & 1) { o2 = Wa() | 0; Ua(e2 | 0); fb(o2 | 0); } else ub(e2 | 0, 824, 96); } } else e2 = d2; if ((e2 | 0) <= 0) return e2 | 0; f2 = 0; do { o2 = c2 + (f2 * 3 | 0) | 0; i2[o2 >> 0] = i2[b2 >> 0] | 0; i2[o2 + 1 >> 0] = i2[b2 + 1 >> 0] | 0; i2[o2 + 2 >> 0] = i2[b2 + 2 >> 0] | 0; f2 = f2 + 1 | 0; } while ((f2 | 0) != (e2 | 0)); return e2 | 0; } function mi(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; h2 = b2 + 9 | 0; c2 = l[h2 >> 0] | 0; f2 = b2 + 4 | 0; e2 = (ia(c2 >>> 1, k[f2 >> 2] | 0) | 0) + (k[b2 >> 2] | 0) | 0; if ((c2 | 0) < (e2 | 0)) { d2 = 0; do { c2 = c2 << 1; d2 = d2 + 1 | 0; } while ((c2 | 0) < (e2 | 0)); } else d2 = 0; e2 = k[36476 + (k[a2 + 4568 >> 2] << 2) >> 2] | 0; c2 = Tg(a2) | 0; do if ((c2 | 0) < (22 - e2 | 0)) if (!d2) { a2 = k[f2 >> 2] | 0; e2 = a2 + c2 | 0; d2 = e2 & 1; e2 = (d2 + e2 | 0) / 2 | 0; g2 = 8; break; } else { c2 = (Ug(a2, d2) | 0) + (c2 << d2) | 0; a2 = k[f2 >> 2] | 0; e2 = c2 + a2 | 0; j2 = e2 & 1; d2 = j2; f2 = 1; e2 = (j2 + e2 | 0) / 2 | 0; break; } else { c2 = (Ug(a2, 8) | 0) + 1 | 0; a2 = k[f2 >> 2] | 0; e2 = c2 + a2 | 0; f2 = e2 & 1; e2 = (f2 + e2 | 0) / 2 | 0; if (!d2) { d2 = f2; g2 = 8; } else { d2 = f2; f2 = 1; } } while (0); if ((g2 | 0) == 8) f2 = l[b2 + 10 >> 0] << 1 >>> 0 >= (l[h2 >> 0] | 0) >>> 0; e2 = (d2 | 0) != 0 ^ f2 ? e2 : 0 - e2 | 0; if ((e2 | 0) < 0) { j2 = b2 + 10 | 0; i2[j2 >> 0] = (l[j2 >> 0] | 0) + 1; } c2 = (c2 + 1 - a2 >> 1) + (k[b2 >> 2] | 0) | 0; k[b2 >> 2] = c2; d2 = i2[h2 >> 0] | 0; if (d2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { j2 = d2; j2 = j2 & 255; j2 = j2 + 1 | 0; j2 = j2 & 255; i2[h2 >> 0] = j2; return e2 | 0; } k[b2 >> 2] = c2 >> 1; j2 = (d2 & 255) >>> 1; i2[h2 >> 0] = j2; b2 = b2 + 10 | 0; i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; j2 = j2 & 255; j2 = j2 + 1 | 0; j2 = j2 & 255; i2[h2 >> 0] = j2; return e2 | 0; } function Vp(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; m2 = r; r = r + 128 | 0; f2 = m2; o2 = m2 + 116 | 0; p2 = m2 + 104 | 0; h2 = m2 + 20 | 0; l2 = m2 + 16 | 0; j2 = m2 + 12 | 0; n2 = m2 + 8 | 0; g2 = m2 + 4 | 0; i2[o2 >> 0] = i2[58887] | 0; i2[o2 + 1 >> 0] = i2[58888] | 0; i2[o2 + 2 >> 0] = i2[58889] | 0; i2[o2 + 3 >> 0] = i2[58890] | 0; i2[o2 + 4 >> 0] = i2[58891] | 0; i2[o2 + 5 >> 0] = i2[58892] | 0; Ep(o2 + 1 | 0, 58893, 0, k[c2 + 4 >> 2] | 0); a2 = fp() | 0; k[f2 >> 2] = e2; e2 = p2 + (av(p2, 12, a2, o2, f2) | 0) | 0; o2 = Fp(p2, e2, c2) | 0; a2 = tn(c2) | 0; k[n2 >> 2] = a2; x = 0; ya(3, p2 | 0, o2 | 0, e2 | 0, h2 | 0, l2 | 0, j2 | 0, n2 | 0); e2 = x; x = 0; if (e2 & 1) { p2 = Wa() | 0; zm(a2) | 0; fb(p2 | 0); } else { zm(a2) | 0; k[g2 >> 2] = k[b2 >> 2]; o2 = k[l2 >> 2] | 0; p2 = k[j2 >> 2] | 0; k[f2 >> 2] = k[g2 >> 2]; p2 = cv(f2, h2, o2, p2, c2, d2) | 0; r = m2; return p2 | 0; } return 0; } function Wp(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; m2 = r; r = r + 240 | 0; g2 = m2 + 8 | 0; a2 = m2; o2 = m2 + 204 | 0; i3 = m2 + 32 | 0; l2 = m2 + 28 | 0; j2 = m2 + 24 | 0; n2 = m2 + 20 | 0; h2 = m2 + 16 | 0; p2 = a2; k[p2 >> 2] = 37; k[p2 + 4 >> 2] = 0; Ep(a2 + 1 | 0, 58895, 0, k[c2 + 4 >> 2] | 0); p2 = fp() | 0; q2 = g2; k[q2 >> 2] = e2; k[q2 + 4 >> 2] = f2; f2 = o2 + (av(o2, 23, p2, a2, g2) | 0) | 0; e2 = Fp(o2, f2, c2) | 0; a2 = tn(c2) | 0; k[n2 >> 2] = a2; x = 0; ya(3, o2 | 0, e2 | 0, f2 | 0, i3 | 0, l2 | 0, j2 | 0, n2 | 0); f2 = x; x = 0; if (f2 & 1) { q2 = Wa() | 0; zm(a2) | 0; fb(q2 | 0); } else { zm(a2) | 0; k[h2 >> 2] = k[b2 >> 2]; p2 = k[l2 >> 2] | 0; q2 = k[j2 >> 2] | 0; k[g2 >> 2] = k[h2 >> 2]; q2 = cv(g2, i3, p2, q2, c2, d2) | 0; r = m2; return q2 | 0; } return 0; } function Xp(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = +e2; var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0; z2 = r; r = r + 352 | 0; t2 = z2 + 312 | 0; n2 = z2 + 48 | 0; m2 = z2 + 32 | 0; i3 = z2 + 24 | 0; f2 = z2 + 8 | 0; l2 = z2; q2 = z2 + 316 | 0; s2 = z2 + 80 | 0; h2 = z2 + 84 | 0; y2 = z2 + 76 | 0; w2 = z2 + 72 | 0; u2 = z2 + 68 | 0; v2 = z2 + 64 | 0; j2 = l2; k[j2 >> 2] = 37; k[j2 + 4 >> 2] = 0; j2 = Lp(l2 + 1 | 0, 58898, k[c2 + 4 >> 2] | 0) | 0; k[s2 >> 2] = q2; a2 = fp() | 0; if (j2) { k[f2 >> 2] = k[c2 + 8 >> 2]; p[f2 + 8 >> 3] = e2; f2 = av(q2, 30, a2, l2, f2) | 0; } else { p[i3 >> 3] = e2; f2 = av(q2, 30, a2, l2, i3) | 0; } a: do if ((f2 | 0) > 29) { x = 0; a2 = Da(3) | 0; f2 = x; x = 0; f2 = f2 & 1; if (j2) { if (!f2 ? (x = 0, k[m2 >> 2] = k[c2 + 8 >> 2], p[m2 + 8 >> 3] = e2, g2 = Ea(17, s2 | 0, a2 | 0, l2 | 0, m2 | 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) A2 = 12; } else if (!f2 ? (x = 0, k[n2 >> 2] = k[c2 + 8 >> 2], p[n2 + 8 >> 3] = e2, o2 = Ea(17, s2 | 0, a2 | 0, l2 | 0, n2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { g2 = o2; A2 = 12; } do if ((A2 | 0) == 12) { a2 = k[s2 >> 2] | 0; if (!a2) { x = 0; Ga(6); o2 = x; x = 0; if (o2 & 1) break; f2 = k[s2 >> 2] | 0; } else f2 = a2; a2 = f2; l2 = f2; A2 = 16; break a; } while (0); a2 = Wa() | 0; } else { a2 = k[s2 >> 2] | 0; l2 = 0; g2 = f2; A2 = 16; } while (0); if ((A2 | 0) == 16) { i3 = a2 + g2 | 0; j2 = Fp(a2, i3, c2) | 0; do if ((a2 | 0) == (q2 | 0)) { a2 = q2; f2 = 0; A2 = 22; } else { g2 = Pl(g2 << 3) | 0; if (!g2) { x = 0; Ga(6); A2 = x; x = 0; if (A2 & 1) { f2 = 0; A2 = 20; break; } a2 = k[s2 >> 2] | 0; } f2 = g2; h2 = g2; A2 = 22; } while (0); do if ((A2 | 0) == 22) { x = 0; g2 = ta(68, c2 | 0) | 0; s2 = x; x = 0; if (!(s2 & 1)) { k[u2 >> 2] = g2; x = 0; ya(4, a2 | 0, j2 | 0, i3 | 0, h2 | 0, y2 | 0, w2 | 0, u2 | 0); u2 = x; x = 0; if (u2 & 1) { a2 = Wa() | 0; zm(g2) | 0; break; } zm(g2) | 0; k[v2 >> 2] = k[b2 >> 2]; A2 = k[y2 >> 2] | 0; a2 = k[w2 >> 2] | 0; x = 0; k[t2 >> 2] = k[v2 >> 2]; a2 = sa(40, t2 | 0, h2 | 0, A2 | 0, a2 | 0, c2 | 0, d2 | 0) | 0; A2 = x; x = 0; if (!(A2 & 1)) { k[b2 >> 2] = a2; if (f2) Ql(f2); if (l2) Ql(l2); r = z2; return a2 | 0; } else A2 = 20; } else A2 = 20; } while (0); if ((A2 | 0) == 20) a2 = Wa() | 0; if (f2) Ql(f2); if (l2) Ql(l2); } fb(a2 | 0); return 0; } function Yp(a2, b2, c2, d2, e2, f2, g2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; var h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0; y2 = r; r = r + 16 | 0; z2 = y2; w2 = Ss(g2, 44212) | 0; u2 = Ss(g2, 44368) | 0; Mb[k[(k[u2 >> 2] | 0) + 20 >> 2] & 127](z2, u2); k[f2 >> 2] = d2; g2 = i2[a2 >> 0] | 0; switch (g2 << 24 >> 24) { case 43: case 45: { x = 0; g2 = Aa(k[(k[w2 >> 2] | 0) + 44 >> 2] | 0, w2 | 0, g2 | 0) | 0; v2 = x; x = 0; if (v2 & 1) t2 = 8; else { l2 = k[f2 >> 2] | 0; k[f2 >> 2] = l2 + 4; k[l2 >> 2] = g2; l2 = a2 + 1 | 0; t2 = 10; } break; } default: { l2 = a2; t2 = 10; } } a: do if ((t2 | 0) == 10) { v2 = c2; b: do if ((v2 - l2 | 0) > 1 ? (i2[l2 >> 0] | 0) == 48 : 0) { h2 = l2 + 1 | 0; switch (i2[h2 >> 0] | 0) { case 88: case 120: break; default: { t2 = 11; break b; } } x = 0; g2 = Aa(k[(k[w2 >> 2] | 0) + 44 >> 2] | 0, w2 | 0, 48) | 0; s2 = x; x = 0; if (s2 & 1) { t2 = 8; break a; } s2 = k[f2 >> 2] | 0; k[f2 >> 2] = s2 + 4; k[s2 >> 2] = g2; l2 = l2 + 2 | 0; x = 0; g2 = Aa(k[(k[w2 >> 2] | 0) + 44 >> 2] | 0, w2 | 0, i2[h2 >> 0] | 0) | 0; s2 = x; x = 0; if (s2 & 1) { t2 = 8; break a; } s2 = k[f2 >> 2] | 0; k[f2 >> 2] = s2 + 4; k[s2 >> 2] = g2; if (l2 >>> 0 < c2 >>> 0) { g2 = l2; while (1) { h2 = i2[g2 >> 0] | 0; x = 0; j2 = Da(3) | 0; s2 = x; x = 0; if (s2 & 1) break; x = 0; h2 = Aa(39, h2 << 24 >> 24 | 0, j2 | 0) | 0; s2 = x; x = 0; if (s2 & 1) break; if (!h2) { s2 = l2; break b; } g2 = g2 + 1 | 0; if (g2 >>> 0 >= c2 >>> 0) { s2 = l2; break b; } } g2 = Wa() | 0; break a; } else { s2 = l2; g2 = l2; } } else t2 = 11; while (0); c: do if ((t2 | 0) == 11) if (l2 >>> 0 < c2 >>> 0) { g2 = l2; while (1) { h2 = i2[g2 >> 0] | 0; x = 0; j2 = Da(3) | 0; s2 = x; x = 0; if (s2 & 1) break; x = 0; h2 = Aa(40, h2 << 24 >> 24 | 0, j2 | 0) | 0; s2 = x; x = 0; if (s2 & 1) break; if (!h2) { s2 = l2; break c; } g2 = g2 + 1 | 0; if (g2 >>> 0 >= c2 >>> 0) { s2 = l2; break c; } } g2 = Wa() | 0; break a; } else { s2 = l2; g2 = l2; } while (0); p2 = i2[z2 >> 0] | 0; q2 = z2 + 4 | 0; if (((p2 & 1) == 0 ? (p2 & 255) >>> 1 : k[q2 >> 2] | 0) | 0) { if ((s2 | 0) != (g2 | 0) ? (m2 = g2 + -1 | 0, s2 >>> 0 < m2 >>> 0) : 0) { j2 = s2; h2 = m2; do { p2 = i2[j2 >> 0] | 0; i2[j2 >> 0] = i2[h2 >> 0] | 0; i2[h2 >> 0] = p2; j2 = j2 + 1 | 0; h2 = h2 + -1 | 0; } while (j2 >>> 0 < h2 >>> 0); } x = 0; m2 = ta(k[(k[u2 >> 2] | 0) + 16 >> 2] | 0, u2 | 0) | 0; p2 = x; x = 0; if (p2 & 1) { t2 = 8; break; } n2 = z2 + 8 | 0; o2 = z2 + 1 | 0; d: do if (s2 >>> 0 < g2 >>> 0) { h2 = 0; j2 = 0; p2 = s2; while (1) { l2 = i2[((i2[z2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0) + j2 >> 0] | 0; if (l2 << 24 >> 24 > 0 & (h2 | 0) == (l2 << 24 >> 24 | 0)) { h2 = k[f2 >> 2] | 0; k[f2 >> 2] = h2 + 4; k[h2 >> 2] = m2; h2 = i2[z2 >> 0] | 0; l2 = 0; j2 = (j2 >>> 0 < (((h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[q2 >> 2] | 0) + -1 | 0) >>> 0 & 1) + j2 | 0; } else l2 = h2; x = 0; h2 = Aa(k[(k[w2 >> 2] | 0) + 44 >> 2] | 0, w2 | 0, i2[p2 >> 0] | 0) | 0; A2 = x; x = 0; if (A2 & 1) break; A2 = k[f2 >> 2] | 0; k[f2 >> 2] = A2 + 4; k[A2 >> 2] = h2; p2 = p2 + 1 | 0; if (p2 >>> 0 >= g2 >>> 0) break d; else h2 = l2 + 1 | 0; } g2 = Wa() | 0; break a; } while (0); h2 = d2 + (s2 - a2 << 2) | 0; l2 = k[f2 >> 2] | 0; if ((h2 | 0) != (l2 | 0)) { j2 = l2 + -4 | 0; if (h2 >>> 0 < j2 >>> 0) { do { A2 = k[h2 >> 2] | 0; k[h2 >> 2] = k[j2 >> 2]; k[j2 >> 2] = A2; h2 = h2 + 4 | 0; j2 = j2 + -4 | 0; } while (h2 >>> 0 < j2 >>> 0); m2 = w2; h2 = l2; } else { m2 = w2; h2 = l2; } } else m2 = w2; } else { x = 0; Ea(k[(k[w2 >> 2] | 0) + 48 >> 2] | 0, w2 | 0, s2 | 0, g2 | 0, k[f2 >> 2] | 0) | 0; A2 = x; x = 0; if (A2 & 1) { t2 = 8; break; } h2 = (k[f2 >> 2] | 0) + (g2 - s2 << 2) | 0; k[f2 >> 2] = h2; m2 = w2; } e: do if (g2 >>> 0 < c2 >>> 0) { while (1) { h2 = i2[g2 >> 0] | 0; if (h2 << 24 >> 24 == 46) { j2 = g2; break; } x = 0; j2 = Aa(k[(k[m2 >> 2] | 0) + 44 >> 2] | 0, w2 | 0, h2 | 0) | 0; A2 = x; x = 0; if (A2 & 1) { t2 = 4; break; } A2 = k[f2 >> 2] | 0; h2 = A2 + 4 | 0; k[f2 >> 2] = h2; k[A2 >> 2] = j2; g2 = g2 + 1 | 0; if (g2 >>> 0 >= c2 >>> 0) break e; } if ((t2 | 0) == 4) { g2 = Wa() | 0; break a; } x = 0; g2 = ta(k[(k[u2 >> 2] | 0) + 12 >> 2] | 0, u2 | 0) | 0; A2 = x; x = 0; if (A2 & 1) { t2 = 8; break a; } A2 = k[f2 >> 2] | 0; h2 = A2 + 4 | 0; k[f2 >> 2] = h2; k[A2 >> 2] = g2; g2 = j2 + 1 | 0; } while (0); x = 0; Ea(k[(k[w2 >> 2] | 0) + 48 >> 2] | 0, w2 | 0, g2 | 0, c2 | 0, h2 | 0) | 0; A2 = x; x = 0; if (A2 & 1) t2 = 8; else { A2 = (k[f2 >> 2] | 0) + (v2 - g2 << 2) | 0; k[f2 >> 2] = A2; k[e2 >> 2] = (b2 | 0) == (c2 | 0) ? A2 : d2 + (b2 - a2 << 2) | 0; Sm(z2); r = y2; return; } } while (0); if ((t2 | 0) == 8) g2 = Wa() | 0; Sm(z2); fb(g2 | 0); } function Zp(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = +e2; var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0; z2 = r; r = r + 352 | 0; t2 = z2 + 304 | 0; n2 = z2 + 48 | 0; m2 = z2 + 32 | 0; i3 = z2 + 24 | 0; f2 = z2 + 8 | 0; l2 = z2; q2 = z2 + 308 | 0; s2 = z2 + 72 | 0; h2 = z2 + 76 | 0; y2 = z2 + 68 | 0; w2 = z2 + 64 | 0; u2 = z2 + 60 | 0; v2 = z2 + 56 | 0; j2 = l2; k[j2 >> 2] = 37; k[j2 + 4 >> 2] = 0; j2 = Lp(l2 + 1 | 0, 58899, k[c2 + 4 >> 2] | 0) | 0; k[s2 >> 2] = q2; a2 = fp() | 0; if (j2) { k[f2 >> 2] = k[c2 + 8 >> 2]; p[f2 + 8 >> 3] = e2; f2 = av(q2, 30, a2, l2, f2) | 0; } else { p[i3 >> 3] = e2; f2 = av(q2, 30, a2, l2, i3) | 0; } a: do if ((f2 | 0) > 29) { x = 0; a2 = Da(3) | 0; f2 = x; x = 0; f2 = f2 & 1; if (j2) { if (!f2 ? (x = 0, k[m2 >> 2] = k[c2 + 8 >> 2], p[m2 + 8 >> 3] = e2, g2 = Ea(17, s2 | 0, a2 | 0, l2 | 0, m2 | 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) A2 = 12; } else if (!f2 ? (x = 0, p[n2 >> 3] = e2, o2 = Ea(17, s2 | 0, a2 | 0, l2 | 0, n2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { g2 = o2; A2 = 12; } do if ((A2 | 0) == 12) { a2 = k[s2 >> 2] | 0; if (!a2) { x = 0; Ga(6); o2 = x; x = 0; if (o2 & 1) break; f2 = k[s2 >> 2] | 0; } else f2 = a2; a2 = f2; l2 = f2; A2 = 16; break a; } while (0); a2 = Wa() | 0; } else { a2 = k[s2 >> 2] | 0; l2 = 0; g2 = f2; A2 = 16; } while (0); if ((A2 | 0) == 16) { i3 = a2 + g2 | 0; j2 = Fp(a2, i3, c2) | 0; do if ((a2 | 0) == (q2 | 0)) { a2 = q2; f2 = 0; A2 = 22; } else { g2 = Pl(g2 << 3) | 0; if (!g2) { x = 0; Ga(6); A2 = x; x = 0; if (A2 & 1) { f2 = 0; A2 = 20; break; } a2 = k[s2 >> 2] | 0; } f2 = g2; h2 = g2; A2 = 22; } while (0); do if ((A2 | 0) == 22) { x = 0; g2 = ta(68, c2 | 0) | 0; s2 = x; x = 0; if (!(s2 & 1)) { k[u2 >> 2] = g2; x = 0; ya(4, a2 | 0, j2 | 0, i3 | 0, h2 | 0, y2 | 0, w2 | 0, u2 | 0); u2 = x; x = 0; if (u2 & 1) { a2 = Wa() | 0; zm(g2) | 0; break; } zm(g2) | 0; k[v2 >> 2] = k[b2 >> 2]; A2 = k[y2 >> 2] | 0; a2 = k[w2 >> 2] | 0; x = 0; k[t2 >> 2] = k[v2 >> 2]; a2 = sa(40, t2 | 0, h2 | 0, A2 | 0, a2 | 0, c2 | 0, d2 | 0) | 0; A2 = x; x = 0; if (!(A2 & 1)) { k[b2 >> 2] = a2; if (f2) Ql(f2); if (l2) Ql(l2); r = z2; return a2 | 0; } else A2 = 20; } else A2 = 20; } while (0); if ((A2 | 0) == 20) a2 = Wa() | 0; if (f2) Ql(f2); if (l2) Ql(l2); } fb(a2 | 0); return 0; } function _p(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; o2 = r; r = r + 192 | 0; j2 = o2; a2 = o2 + 180 | 0; m2 = o2 + 160 | 0; n2 = o2 + 12 | 0; h2 = o2 + 8 | 0; l2 = o2 + 4 | 0; i2[a2 >> 0] = i2[58901] | 0; i2[a2 + 1 >> 0] = i2[58902] | 0; i2[a2 + 2 >> 0] = i2[58903] | 0; i2[a2 + 3 >> 0] = i2[58904] | 0; i2[a2 + 4 >> 0] = i2[58905] | 0; i2[a2 + 5 >> 0] = i2[58906] | 0; f2 = fp() | 0; k[j2 >> 2] = e2; a2 = av(m2, 20, f2, a2, j2) | 0; e2 = m2 + a2 | 0; f2 = Fp(m2, e2, c2) | 0; g2 = tn(c2) | 0; k[h2 >> 2] = g2; x = 0; h2 = Aa(37, h2 | 0, 44212) | 0; p2 = x; x = 0; if (p2 & 1) { p2 = Wa() | 0; zm(g2) | 0; fb(p2 | 0); } else { zm(g2) | 0; Zb[k[(k[h2 >> 2] | 0) + 48 >> 2] & 31](h2, m2, e2, n2) | 0; p2 = n2 + (a2 << 2) | 0; k[l2 >> 2] = k[b2 >> 2]; k[j2 >> 2] = k[l2 >> 2]; p2 = cv(j2, n2, (f2 | 0) == (e2 | 0) ? p2 : n2 + (f2 - m2 << 2) | 0, p2, c2, d2) | 0; r = o2; return p2 | 0; } return 0; } function $p(a2, b2, c2, d2, e2, f2, g2, h2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; var m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0; C2 = r; r = r + 32 | 0; v2 = C2 + 16 | 0; u2 = C2 + 12 | 0; z2 = C2 + 8 | 0; w2 = C2 + 4 | 0; y2 = C2; m2 = tn(d2) | 0; k[z2 >> 2] = m2; x = 0; z2 = Aa(37, z2 | 0, 44220) | 0; t2 = x; x = 0; if (t2 & 1) { C2 = Wa() | 0; zm(m2) | 0; fb(C2 | 0); } zm(m2) | 0; k[e2 >> 2] = 0; t2 = z2 + 8 | 0; m2 = k[b2 >> 2] | 0; a: do if ((g2 | 0) != (h2 | 0)) { b: while (1) { n2 = m2; if (m2) { if ((k[m2 + 12 >> 2] | 0) == (k[m2 + 16 >> 2] | 0) ? (Ob[k[(k[m2 >> 2] | 0) + 36 >> 2] & 127](m2) | 0) == -1 : 0) { k[b2 >> 2] = 0; m2 = 0; n2 = 0; } } else m2 = 0; q2 = (m2 | 0) == 0; p2 = k[c2 >> 2] | 0; o2 = p2; do if (p2) { if ((k[p2 + 12 >> 2] | 0) == (k[p2 + 16 >> 2] | 0) ? (Ob[k[(k[p2 >> 2] | 0) + 36 >> 2] & 127](p2) | 0) == -1 : 0) { k[c2 >> 2] = 0; o2 = 0; B2 = 12; break; } if (!q2) { B2 = 13; break b; } } else B2 = 12; while (0); if ((B2 | 0) == 12) { B2 = 0; if (q2) { B2 = 13; break; } else p2 = 0; } c: do if ((Qb[k[(k[z2 >> 2] | 0) + 36 >> 2] & 63](z2, i2[g2 >> 0] | 0, 0) | 0) << 24 >> 24 == 37) { p2 = g2 + 1 | 0; if ((p2 | 0) == (h2 | 0)) { B2 = 17; break b; } s2 = Qb[k[(k[z2 >> 2] | 0) + 36 >> 2] & 63](z2, i2[p2 >> 0] | 0, 0) | 0; switch (s2 << 24 >> 24) { case 48: case 69: { q2 = g2 + 2 | 0; if ((q2 | 0) == (h2 | 0)) { B2 = 20; break b; } g2 = p2; p2 = Qb[k[(k[z2 >> 2] | 0) + 36 >> 2] & 63](z2, i2[q2 >> 0] | 0, 0) | 0; m2 = s2; break; } default: { p2 = s2; m2 = 0; } } s2 = k[(k[a2 >> 2] | 0) + 36 >> 2] | 0; k[w2 >> 2] = n2; k[y2 >> 2] = o2; k[u2 >> 2] = k[w2 >> 2]; k[v2 >> 2] = k[y2 >> 2]; s2 = ac[s2 & 15](a2, u2, v2, d2, e2, f2, p2, m2) | 0; k[b2 >> 2] = s2; g2 = g2 + 2 | 0; } else { n2 = i2[g2 >> 0] | 0; if (n2 << 24 >> 24 > -1 ? (A2 = k[t2 >> 2] | 0, (j[A2 + (n2 << 24 >> 24 << 1) >> 1] & 8192) != 0) : 0) { do { g2 = g2 + 1 | 0; if ((g2 | 0) == (h2 | 0)) { g2 = h2; break; } n2 = i2[g2 >> 0] | 0; if (n2 << 24 >> 24 <= -1) break; } while ((j[A2 + (n2 << 24 >> 24 << 1) >> 1] & 8192) != 0); n2 = p2; while (1) { if (m2) { if ((k[m2 + 12 >> 2] | 0) == (k[m2 + 16 >> 2] | 0) ? (Ob[k[(k[m2 >> 2] | 0) + 36 >> 2] & 127](m2) | 0) == -1 : 0) { k[b2 >> 2] = 0; m2 = 0; } } else m2 = 0; o2 = (m2 | 0) == 0; do if (p2) { if ((k[p2 + 12 >> 2] | 0) != (k[p2 + 16 >> 2] | 0)) if (o2) { s2 = n2; break; } else break c; if ((Ob[k[(k[p2 >> 2] | 0) + 36 >> 2] & 127](p2) | 0) != -1) if (o2 ^ (n2 | 0) == 0) { s2 = n2; p2 = n2; break; } else break c; else { k[c2 >> 2] = 0; n2 = 0; B2 = 39; break; } } else B2 = 39; while (0); if ((B2 | 0) == 39) { B2 = 0; if (o2) break c; else { s2 = n2; p2 = 0; } } o2 = m2 + 12 | 0; n2 = k[o2 >> 2] | 0; q2 = m2 + 16 | 0; if ((n2 | 0) == (k[q2 >> 2] | 0)) n2 = Ob[k[(k[m2 >> 2] | 0) + 36 >> 2] & 127](m2) | 0; else n2 = l[n2 >> 0] | 0; if ((n2 & 255) << 24 >> 24 <= -1) break c; if (!(j[(k[t2 >> 2] | 0) + (n2 << 24 >> 24 << 1) >> 1] & 8192)) break c; n2 = k[o2 >> 2] | 0; if ((n2 | 0) == (k[q2 >> 2] | 0)) { Ob[k[(k[m2 >> 2] | 0) + 40 >> 2] & 127](m2) | 0; n2 = s2; continue; } else { k[o2 >> 2] = n2 + 1; n2 = s2; continue; } } } o2 = m2 + 12 | 0; n2 = k[o2 >> 2] | 0; p2 = m2 + 16 | 0; if ((n2 | 0) == (k[p2 >> 2] | 0)) n2 = Ob[k[(k[m2 >> 2] | 0) + 36 >> 2] & 127](m2) | 0; else n2 = l[n2 >> 0] | 0; s2 = Vb[k[(k[z2 >> 2] | 0) + 12 >> 2] & 63](z2, n2 & 255) | 0; if (s2 << 24 >> 24 != (Vb[k[(k[z2 >> 2] | 0) + 12 >> 2] & 63](z2, i2[g2 >> 0] | 0) | 0) << 24 >> 24) { B2 = 57; break b; } n2 = k[o2 >> 2] | 0; if ((n2 | 0) == (k[p2 >> 2] | 0)) Ob[k[(k[m2 >> 2] | 0) + 40 >> 2] & 127](m2) | 0; else k[o2 >> 2] = n2 + 1; g2 = g2 + 1 | 0; } while (0); m2 = k[b2 >> 2] | 0; if (!((g2 | 0) != (h2 | 0) & (k[e2 >> 2] | 0) == 0)) break a; } if ((B2 | 0) == 13) { k[e2 >> 2] = 4; break; } else if ((B2 | 0) == 17) { k[e2 >> 2] = 4; break; } else if ((B2 | 0) == 20) { k[e2 >> 2] = 4; break; } else if ((B2 | 0) == 57) { k[e2 >> 2] = 4; m2 = k[b2 >> 2] | 0; break; } } while (0); if (m2) { if ((k[m2 + 12 >> 2] | 0) == (k[m2 + 16 >> 2] | 0) ? (Ob[k[(k[m2 >> 2] | 0) + 36 >> 2] & 127](m2) | 0) == -1 : 0) { k[b2 >> 2] = 0; m2 = 0; } } else m2 = 0; g2 = (m2 | 0) == 0; n2 = k[c2 >> 2] | 0; do if (n2) { if ((k[n2 + 12 >> 2] | 0) == (k[n2 + 16 >> 2] | 0) ? (Ob[k[(k[n2 >> 2] | 0) + 36 >> 2] & 127](n2) | 0) == -1 : 0) { k[c2 >> 2] = 0; B2 = 67; break; } if (!g2) B2 = 68; } else B2 = 67; while (0); if ((B2 | 0) == 67 ? g2 : 0) B2 = 68; if ((B2 | 0) == 68) k[e2 >> 2] = k[e2 >> 2] | 2; r = C2; return m2 | 0; } function aq(a2) { a2 = a2 | 0; return; } function bq(a2) { a2 = a2 | 0; mj(a2); return; } function cq(a2) { a2 = a2 | 0; return 2; } function dq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; g2 = r; r = r + 16 | 0; h2 = g2 + 12 | 0; i3 = g2 + 8 | 0; l2 = g2 + 4 | 0; j2 = g2; k[l2 >> 2] = k[b2 >> 2]; k[j2 >> 2] = k[c2 >> 2]; k[i3 >> 2] = k[l2 >> 2]; k[h2 >> 2] = k[j2 >> 2]; a2 = $p(a2, i3, h2, d2, e2, f2, 58907, 58915) | 0; r = g2; return a2 | 0; } function eq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; g2 = r; r = r + 16 | 0; h2 = g2 + 12 | 0; j2 = g2 + 8 | 0; m2 = g2 + 4 | 0; l2 = g2; n2 = a2 + 8 | 0; n2 = Ob[k[(k[n2 >> 2] | 0) + 20 >> 2] & 127](n2) | 0; k[m2 >> 2] = k[b2 >> 2]; k[l2 >> 2] = k[c2 >> 2]; c2 = i2[n2 >> 0] | 0; o2 = (c2 & 1) == 0; b2 = o2 ? n2 + 1 | 0 : k[n2 + 8 >> 2] | 0; c2 = b2 + (o2 ? (c2 & 255) >>> 1 : k[n2 + 4 >> 2] | 0) | 0; k[j2 >> 2] = k[m2 >> 2]; k[h2 >> 2] = k[l2 >> 2]; a2 = $p(a2, j2, h2, d2, e2, f2, b2, c2) | 0; r = g2; return a2 | 0; } function fq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; j2 = r; r = r + 16 | 0; h2 = j2 + 8 | 0; g2 = j2 + 4 | 0; i3 = j2; d2 = tn(d2) | 0; k[g2 >> 2] = d2; x = 0; g2 = Aa(37, g2 | 0, 44220) | 0; l2 = x; x = 0; if (l2 & 1) { l2 = Wa() | 0; zm(d2) | 0; fb(l2 | 0); } else { zm(d2) | 0; k[i3 >> 2] = k[c2 >> 2]; k[h2 >> 2] = k[i3 >> 2]; gq(a2, f2 + 24 | 0, b2, h2, e2, g2); r = j2; return k[b2 >> 2] | 0; } return 0; } function gq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0; g2 = r; r = r + 16 | 0; h2 = g2 + 4 | 0; i3 = g2; a2 = a2 + 8 | 0; a2 = Ob[k[k[a2 >> 2] >> 2] & 127](a2) | 0; k[i3 >> 2] = k[d2 >> 2]; k[h2 >> 2] = k[i3 >> 2]; c2 = (Hu(c2, h2, a2, a2 + 168 | 0, f2, e2, 0) | 0) - a2 | 0; if ((c2 | 0) < 168) k[b2 >> 2] = ((c2 | 0) / 12 | 0 | 0) % 7 | 0; r = g2; return; } function hq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; j2 = r; r = r + 16 | 0; h2 = j2 + 8 | 0; g2 = j2 + 4 | 0; i3 = j2; d2 = tn(d2) | 0; k[g2 >> 2] = d2; x = 0; g2 = Aa(37, g2 | 0, 44220) | 0; l2 = x; x = 0; if (l2 & 1) { l2 = Wa() | 0; zm(d2) | 0; fb(l2 | 0); } else { zm(d2) | 0; k[i3 >> 2] = k[c2 >> 2]; k[h2 >> 2] = k[i3 >> 2]; iq(a2, f2 + 16 | 0, b2, h2, e2, g2); r = j2; return k[b2 >> 2] | 0; } return 0; } function iq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0; g2 = r; r = r + 16 | 0; h2 = g2 + 4 | 0; i3 = g2; a2 = a2 + 8 | 0; a2 = Ob[k[(k[a2 >> 2] | 0) + 4 >> 2] & 127](a2) | 0; k[i3 >> 2] = k[d2 >> 2]; k[h2 >> 2] = k[i3 >> 2]; c2 = (Hu(c2, h2, a2, a2 + 288 | 0, f2, e2, 0) | 0) - a2 | 0; if ((c2 | 0) < 288) k[b2 >> 2] = ((c2 | 0) / 12 | 0 | 0) % 12 | 0; r = g2; return; } function jq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; j2 = r; r = r + 16 | 0; h2 = j2 + 8 | 0; g2 = j2 + 4 | 0; i3 = j2; d2 = tn(d2) | 0; k[g2 >> 2] = d2; x = 0; g2 = Aa(37, g2 | 0, 44220) | 0; l2 = x; x = 0; if (l2 & 1) { l2 = Wa() | 0; zm(d2) | 0; fb(l2 | 0); } else { zm(d2) | 0; k[i3 >> 2] = k[c2 >> 2]; k[h2 >> 2] = k[i3 >> 2]; kq(a2, f2 + 20 | 0, b2, h2, e2, g2); r = j2; return k[b2 >> 2] | 0; } return 0; } function kq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0; g2 = r; r = r + 16 | 0; a2 = g2 + 4 | 0; h2 = g2; k[h2 >> 2] = k[d2 >> 2]; k[a2 >> 2] = k[h2 >> 2]; a2 = dv(c2, a2, e2, f2, 4) | 0; if (!(k[e2 >> 2] & 4)) { if ((a2 | 0) < 69) a2 = a2 + 2e3 | 0; else a2 = (a2 + -69 | 0) >>> 0 < 31 ? a2 + 1900 | 0 : a2; k[b2 >> 2] = a2 + -1900; } r = g2; return; } function lq(a2, b2, c2, d2, e2, f2, g2, h2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; var j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, M2 = 0, N2 = 0, O2 = 0, P2 = 0, Q2 = 0, R2 = 0, S2 = 0, T2 = 0, U2 = 0, V2 = 0, W2 = 0; U2 = r; r = r + 144 | 0; j2 = U2 + 132 | 0; h2 = U2 + 116 | 0; N2 = U2 + 128 | 0; w2 = U2 + 124 | 0; I2 = U2 + 120 | 0; O2 = U2 + 112 | 0; P2 = U2 + 108 | 0; Q2 = U2 + 104 | 0; R2 = U2 + 100 | 0; S2 = U2 + 96 | 0; T2 = U2 + 92 | 0; l2 = U2 + 88 | 0; m2 = U2 + 84 | 0; n2 = U2 + 80 | 0; o2 = U2 + 76 | 0; p2 = U2 + 72 | 0; q2 = U2 + 68 | 0; s2 = U2 + 64 | 0; t2 = U2 + 60 | 0; u2 = U2 + 56 | 0; v2 = U2 + 52 | 0; y2 = U2 + 48 | 0; z2 = U2 + 44 | 0; A2 = U2 + 40 | 0; B2 = U2 + 36 | 0; C2 = U2 + 32 | 0; D2 = U2 + 28 | 0; E2 = U2 + 24 | 0; F2 = U2 + 20 | 0; G2 = U2 + 16 | 0; H2 = U2 + 12 | 0; J2 = U2 + 8 | 0; K2 = U2 + 4 | 0; L2 = U2; k[e2 >> 2] = 0; M2 = tn(d2) | 0; k[N2 >> 2] = M2; x = 0; N2 = Aa(37, N2 | 0, 44220) | 0; W2 = x; x = 0; if (W2 & 1) { W2 = Wa() | 0; zm(M2) | 0; fb(W2 | 0); } zm(M2) | 0; do switch (g2 << 24 >> 24 | 0) { case 65: case 97: { k[w2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[w2 >> 2]; gq(a2, f2 + 24 | 0, b2, j2, e2, N2); V2 = 28; break; } case 104: case 66: case 98: { k[I2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[I2 >> 2]; iq(a2, f2 + 16 | 0, b2, j2, e2, N2); V2 = 28; break; } case 99: { V2 = a2 + 8 | 0; V2 = Ob[k[(k[V2 >> 2] | 0) + 12 >> 2] & 127](V2) | 0; k[O2 >> 2] = k[b2 >> 2]; k[P2 >> 2] = k[c2 >> 2]; g2 = i2[V2 >> 0] | 0; c2 = (g2 & 1) == 0; W2 = c2 ? V2 + 1 | 0 : k[V2 + 8 >> 2] | 0; V2 = W2 + (c2 ? (g2 & 255) >>> 1 : k[V2 + 4 >> 2] | 0) | 0; k[h2 >> 2] = k[O2 >> 2]; k[j2 >> 2] = k[P2 >> 2]; V2 = $p(a2, h2, j2, d2, e2, f2, W2, V2) | 0; k[b2 >> 2] = V2; V2 = 28; break; } case 101: case 100: { k[Q2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[Q2 >> 2]; mq(a2, f2 + 12 | 0, b2, j2, e2, N2); V2 = 28; break; } case 68: { k[R2 >> 2] = k[b2 >> 2]; k[S2 >> 2] = k[c2 >> 2]; k[h2 >> 2] = k[R2 >> 2]; k[j2 >> 2] = k[S2 >> 2]; V2 = $p(a2, h2, j2, d2, e2, f2, 58915, 58923) | 0; k[b2 >> 2] = V2; V2 = 28; break; } case 70: { k[T2 >> 2] = k[b2 >> 2]; k[l2 >> 2] = k[c2 >> 2]; k[h2 >> 2] = k[T2 >> 2]; k[j2 >> 2] = k[l2 >> 2]; V2 = $p(a2, h2, j2, d2, e2, f2, 58923, 58931) | 0; k[b2 >> 2] = V2; V2 = 28; break; } case 72: { k[m2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[m2 >> 2]; nq(a2, f2 + 8 | 0, b2, j2, e2, N2); V2 = 28; break; } case 73: { k[n2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[n2 >> 2]; oq(a2, f2 + 8 | 0, b2, j2, e2, N2); V2 = 28; break; } case 106: { k[o2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[o2 >> 2]; pq(a2, f2 + 28 | 0, b2, j2, e2, N2); V2 = 28; break; } case 109: { k[p2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[p2 >> 2]; qq(a2, f2 + 16 | 0, b2, j2, e2, N2); V2 = 28; break; } case 77: { k[q2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[q2 >> 2]; rq(a2, f2 + 4 | 0, b2, j2, e2, N2); V2 = 28; break; } case 116: case 110: { k[s2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[s2 >> 2]; sq(a2, b2, j2, e2, N2); V2 = 28; break; } case 112: { k[t2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[t2 >> 2]; tq(a2, f2 + 8 | 0, b2, j2, e2, N2); V2 = 28; break; } case 114: { k[u2 >> 2] = k[b2 >> 2]; k[v2 >> 2] = k[c2 >> 2]; k[h2 >> 2] = k[u2 >> 2]; k[j2 >> 2] = k[v2 >> 2]; V2 = $p(a2, h2, j2, d2, e2, f2, 58931, 58942) | 0; k[b2 >> 2] = V2; V2 = 28; break; } case 82: { k[y2 >> 2] = k[b2 >> 2]; k[z2 >> 2] = k[c2 >> 2]; k[h2 >> 2] = k[y2 >> 2]; k[j2 >> 2] = k[z2 >> 2]; V2 = $p(a2, h2, j2, d2, e2, f2, 58942, 58947) | 0; k[b2 >> 2] = V2; V2 = 28; break; } case 83: { k[A2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[A2 >> 2]; uq(a2, f2, b2, j2, e2, N2); V2 = 28; break; } case 84: { k[B2 >> 2] = k[b2 >> 2]; k[C2 >> 2] = k[c2 >> 2]; k[h2 >> 2] = k[B2 >> 2]; k[j2 >> 2] = k[C2 >> 2]; V2 = $p(a2, h2, j2, d2, e2, f2, 58947, 58955) | 0; k[b2 >> 2] = V2; V2 = 28; break; } case 119: { k[D2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[D2 >> 2]; vq(a2, f2 + 24 | 0, b2, j2, e2, N2); V2 = 28; break; } case 120: { W2 = k[(k[a2 >> 2] | 0) + 20 >> 2] | 0; k[E2 >> 2] = k[b2 >> 2]; k[F2 >> 2] = k[c2 >> 2]; k[h2 >> 2] = k[E2 >> 2]; k[j2 >> 2] = k[F2 >> 2]; h2 = Nb[W2 & 63](a2, h2, j2, d2, e2, f2) | 0; break; } case 88: { V2 = a2 + 8 | 0; V2 = Ob[k[(k[V2 >> 2] | 0) + 24 >> 2] & 127](V2) | 0; k[G2 >> 2] = k[b2 >> 2]; k[H2 >> 2] = k[c2 >> 2]; g2 = i2[V2 >> 0] | 0; c2 = (g2 & 1) == 0; W2 = c2 ? V2 + 1 | 0 : k[V2 + 8 >> 2] | 0; V2 = W2 + (c2 ? (g2 & 255) >>> 1 : k[V2 + 4 >> 2] | 0) | 0; k[h2 >> 2] = k[G2 >> 2]; k[j2 >> 2] = k[H2 >> 2]; V2 = $p(a2, h2, j2, d2, e2, f2, W2, V2) | 0; k[b2 >> 2] = V2; V2 = 28; break; } case 121: { k[J2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[J2 >> 2]; kq(a2, f2 + 20 | 0, b2, j2, e2, N2); V2 = 28; break; } case 89: { k[K2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[K2 >> 2]; wq(a2, f2 + 20 | 0, b2, j2, e2, N2); V2 = 28; break; } case 37: { k[L2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[L2 >> 2]; xq(a2, b2, j2, e2, N2); V2 = 28; break; } default: { k[e2 >> 2] = k[e2 >> 2] | 4; V2 = 28; } } while (0); if ((V2 | 0) == 28) h2 = k[b2 >> 2] | 0; r = U2; return h2 | 0; } function mq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0; g2 = r; r = r + 16 | 0; a2 = g2 + 4 | 0; h2 = g2; k[h2 >> 2] = k[d2 >> 2]; k[a2 >> 2] = k[h2 >> 2]; a2 = dv(c2, a2, e2, f2, 2) | 0; c2 = k[e2 >> 2] | 0; if ((a2 + -1 | 0) >>> 0 < 31 & (c2 & 4 | 0) == 0) k[b2 >> 2] = a2; else k[e2 >> 2] = c2 | 4; r = g2; return; } function nq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0; g2 = r; r = r + 16 | 0; a2 = g2 + 4 | 0; h2 = g2; k[h2 >> 2] = k[d2 >> 2]; k[a2 >> 2] = k[h2 >> 2]; a2 = dv(c2, a2, e2, f2, 2) | 0; c2 = k[e2 >> 2] | 0; if ((a2 | 0) < 24 & (c2 & 4 | 0) == 0) k[b2 >> 2] = a2; else k[e2 >> 2] = c2 | 4; r = g2; return; } function oq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0; g2 = r; r = r + 16 | 0; a2 = g2 + 4 | 0; h2 = g2; k[h2 >> 2] = k[d2 >> 2]; k[a2 >> 2] = k[h2 >> 2]; a2 = dv(c2, a2, e2, f2, 2) | 0; c2 = k[e2 >> 2] | 0; if ((a2 + -1 | 0) >>> 0 < 12 & (c2 & 4 | 0) == 0) k[b2 >> 2] = a2; else k[e2 >> 2] = c2 | 4; r = g2; return; } function pq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0; g2 = r; r = r + 16 | 0; a2 = g2 + 4 | 0; h2 = g2; k[h2 >> 2] = k[d2 >> 2]; k[a2 >> 2] = k[h2 >> 2]; a2 = dv(c2, a2, e2, f2, 3) | 0; c2 = k[e2 >> 2] | 0; if ((a2 | 0) < 366 & (c2 & 4 | 0) == 0) k[b2 >> 2] = a2; else k[e2 >> 2] = c2 | 4; r = g2; return; } function qq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0; g2 = r; r = r + 16 | 0; a2 = g2 + 4 | 0; h2 = g2; k[h2 >> 2] = k[d2 >> 2]; k[a2 >> 2] = k[h2 >> 2]; a2 = dv(c2, a2, e2, f2, 2) | 0; c2 = k[e2 >> 2] | 0; if ((a2 | 0) < 13 & (c2 & 4 | 0) == 0) k[b2 >> 2] = a2 + -1; else k[e2 >> 2] = c2 | 4; r = g2; return; } function rq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0; g2 = r; r = r + 16 | 0; a2 = g2 + 4 | 0; h2 = g2; k[h2 >> 2] = k[d2 >> 2]; k[a2 >> 2] = k[h2 >> 2]; a2 = dv(c2, a2, e2, f2, 2) | 0; c2 = k[e2 >> 2] | 0; if ((a2 | 0) < 60 & (c2 & 4 | 0) == 0) k[b2 >> 2] = a2; else k[e2 >> 2] = c2 | 4; r = g2; return; } function sq(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0; g2 = e2 + 8 | 0; a: while (1) { e2 = k[b2 >> 2] | 0; do if (e2) { if ((k[e2 + 12 >> 2] | 0) == (k[e2 + 16 >> 2] | 0)) if ((Ob[k[(k[e2 >> 2] | 0) + 36 >> 2] & 127](e2) | 0) == -1) { k[b2 >> 2] = 0; e2 = 0; break; } else { e2 = k[b2 >> 2] | 0; break; } } else e2 = 0; while (0); e2 = (e2 | 0) == 0; a2 = k[c2 >> 2] | 0; do if (a2) { if ((k[a2 + 12 >> 2] | 0) != (k[a2 + 16 >> 2] | 0)) if (e2) break; else break a; if ((Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0) != -1) if (e2) break; else break a; else { k[c2 >> 2] = 0; h2 = 12; break; } } else h2 = 12; while (0); if ((h2 | 0) == 12) { h2 = 0; if (e2) { a2 = 0; break; } else a2 = 0; } e2 = k[b2 >> 2] | 0; f2 = k[e2 + 12 >> 2] | 0; if ((f2 | 0) == (k[e2 + 16 >> 2] | 0)) e2 = Ob[k[(k[e2 >> 2] | 0) + 36 >> 2] & 127](e2) | 0; else e2 = l[f2 >> 0] | 0; if ((e2 & 255) << 24 >> 24 <= -1) break; if (!(j[(k[g2 >> 2] | 0) + (e2 << 24 >> 24 << 1) >> 1] & 8192)) break; e2 = k[b2 >> 2] | 0; a2 = e2 + 12 | 0; f2 = k[a2 >> 2] | 0; if ((f2 | 0) == (k[e2 + 16 >> 2] | 0)) { Ob[k[(k[e2 >> 2] | 0) + 40 >> 2] & 127](e2) | 0; continue; } else { k[a2 >> 2] = f2 + 1; continue; } } e2 = k[b2 >> 2] | 0; do if (e2) { if ((k[e2 + 12 >> 2] | 0) == (k[e2 + 16 >> 2] | 0)) if ((Ob[k[(k[e2 >> 2] | 0) + 36 >> 2] & 127](e2) | 0) == -1) { k[b2 >> 2] = 0; e2 = 0; break; } else { e2 = k[b2 >> 2] | 0; break; } } else e2 = 0; while (0); e2 = (e2 | 0) == 0; do if (a2) { if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0) ? (Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0) == -1 : 0) { k[c2 >> 2] = 0; h2 = 32; break; } if (!e2) h2 = 33; } else h2 = 32; while (0); if ((h2 | 0) == 32 ? e2 : 0) h2 = 33; if ((h2 | 0) == 33) k[d2 >> 2] = k[d2 >> 2] | 2; return; } function tq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; m2 = r; r = r + 16 | 0; h2 = m2 + 4 | 0; j2 = m2; l2 = a2 + 8 | 0; l2 = Ob[k[(k[l2 >> 2] | 0) + 8 >> 2] & 127](l2) | 0; a2 = i2[l2 >> 0] | 0; if (!(a2 & 1)) g2 = (a2 & 255) >>> 1; else g2 = k[l2 + 4 >> 2] | 0; a2 = i2[l2 + 12 >> 0] | 0; if (!(a2 & 1)) a2 = (a2 & 255) >>> 1; else a2 = k[l2 + 16 >> 2] | 0; do if ((g2 | 0) != (0 - a2 | 0)) { k[j2 >> 2] = k[d2 >> 2]; k[h2 >> 2] = k[j2 >> 2]; a2 = Hu(c2, h2, l2, l2 + 24 | 0, f2, e2, 0) | 0; g2 = k[b2 >> 2] | 0; if ((a2 | 0) == (l2 | 0) & (g2 | 0) == 12) { k[b2 >> 2] = 0; break; } if ((g2 | 0) < 12 & (a2 - l2 | 0) == 12) k[b2 >> 2] = g2 + 12; } else k[e2 >> 2] = k[e2 >> 2] | 4; while (0); r = m2; return; } function uq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0; g2 = r; r = r + 16 | 0; a2 = g2 + 4 | 0; h2 = g2; k[h2 >> 2] = k[d2 >> 2]; k[a2 >> 2] = k[h2 >> 2]; a2 = dv(c2, a2, e2, f2, 2) | 0; c2 = k[e2 >> 2] | 0; if ((a2 | 0) < 61 & (c2 & 4 | 0) == 0) k[b2 >> 2] = a2; else k[e2 >> 2] = c2 | 4; r = g2; return; } function vq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0; g2 = r; r = r + 16 | 0; a2 = g2 + 4 | 0; h2 = g2; k[h2 >> 2] = k[d2 >> 2]; k[a2 >> 2] = k[h2 >> 2]; a2 = dv(c2, a2, e2, f2, 1) | 0; c2 = k[e2 >> 2] | 0; if ((a2 | 0) < 7 & (c2 & 4 | 0) == 0) k[b2 >> 2] = a2; else k[e2 >> 2] = c2 | 4; r = g2; return; } function wq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0; g2 = r; r = r + 16 | 0; a2 = g2 + 4 | 0; h2 = g2; k[h2 >> 2] = k[d2 >> 2]; k[a2 >> 2] = k[h2 >> 2]; a2 = dv(c2, a2, e2, f2, 4) | 0; if (!(k[e2 >> 2] & 4)) k[b2 >> 2] = a2 + -1900; r = g2; return; } function xq(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0; a2 = k[b2 >> 2] | 0; do if (a2) { if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) if ((Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0) == -1) { k[b2 >> 2] = 0; a2 = 0; break; } else { a2 = k[b2 >> 2] | 0; break; } } else a2 = 0; while (0); f2 = (a2 | 0) == 0; a2 = k[c2 >> 2] | 0; do if (a2) { if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0) ? (Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0) == -1 : 0) { k[c2 >> 2] = 0; h2 = 11; break; } if (f2) { g2 = a2; h2 = 13; } else h2 = 12; } else h2 = 11; while (0); if ((h2 | 0) == 11) if (f2) h2 = 12; else { g2 = 0; h2 = 13; } a: do if ((h2 | 0) == 12) k[d2 >> 2] = k[d2 >> 2] | 6; else if ((h2 | 0) == 13) { a2 = k[b2 >> 2] | 0; f2 = k[a2 + 12 >> 2] | 0; if ((f2 | 0) == (k[a2 + 16 >> 2] | 0)) a2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; else a2 = l[f2 >> 0] | 0; if ((Qb[k[(k[e2 >> 2] | 0) + 36 >> 2] & 63](e2, a2 & 255, 0) | 0) << 24 >> 24 != 37) { k[d2 >> 2] = k[d2 >> 2] | 4; break; } a2 = k[b2 >> 2] | 0; f2 = a2 + 12 | 0; e2 = k[f2 >> 2] | 0; if ((e2 | 0) == (k[a2 + 16 >> 2] | 0)) { Ob[k[(k[a2 >> 2] | 0) + 40 >> 2] & 127](a2) | 0; a2 = k[b2 >> 2] | 0; if (!a2) a2 = 0; else h2 = 21; } else { k[f2 >> 2] = e2 + 1; h2 = 21; } do if ((h2 | 0) == 21) { if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) if ((Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0) == -1) { k[b2 >> 2] = 0; a2 = 0; break; } else { a2 = k[b2 >> 2] | 0; break; } } while (0); a2 = (a2 | 0) == 0; do if (g2) { if ((k[g2 + 12 >> 2] | 0) == (k[g2 + 16 >> 2] | 0) ? (Ob[k[(k[g2 >> 2] | 0) + 36 >> 2] & 127](g2) | 0) == -1 : 0) { k[c2 >> 2] = 0; h2 = 30; break; } if (a2) break a; } else h2 = 30; while (0); if ((h2 | 0) == 30 ? !a2 : 0) break; k[d2 >> 2] = k[d2 >> 2] | 2; } while (0); return; } function yq(a2, b2, c2, d2, e2, f2, g2, h2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; var i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; w2 = r; r = r + 32 | 0; q2 = w2 + 16 | 0; p2 = w2 + 12 | 0; u2 = w2 + 8 | 0; s2 = w2 + 4 | 0; t2 = w2; i3 = tn(d2) | 0; k[u2 >> 2] = i3; x = 0; u2 = Aa(37, u2 | 0, 44212) | 0; o2 = x; x = 0; if (o2 & 1) { w2 = Wa() | 0; zm(i3) | 0; fb(w2 | 0); } zm(i3) | 0; k[e2 >> 2] = 0; i3 = k[b2 >> 2] | 0; a: do if ((g2 | 0) != (h2 | 0)) { b: while (1) { l2 = i3; if (i3) { j2 = k[i3 + 12 >> 2] | 0; if ((j2 | 0) == (k[i3 + 16 >> 2] | 0)) j2 = Ob[k[(k[i3 >> 2] | 0) + 36 >> 2] & 127](i3) | 0; else j2 = k[j2 >> 2] | 0; if ((j2 | 0) == -1) { k[b2 >> 2] = 0; i3 = 0; n2 = 1; o2 = 0; } else { n2 = 0; o2 = l2; } } else { i3 = 0; n2 = 1; o2 = l2; } m2 = k[c2 >> 2] | 0; j2 = m2; do if (m2) { l2 = k[m2 + 12 >> 2] | 0; if ((l2 | 0) == (k[m2 + 16 >> 2] | 0)) l2 = Ob[k[(k[m2 >> 2] | 0) + 36 >> 2] & 127](m2) | 0; else l2 = k[l2 >> 2] | 0; if ((l2 | 0) != -1) if (n2) break; else { v2 = 17; break b; } else { k[c2 >> 2] = 0; j2 = 0; v2 = 15; break; } } else v2 = 15; while (0); if ((v2 | 0) == 15) { v2 = 0; if (n2) { v2 = 17; break; } else m2 = 0; } c: do if ((Qb[k[(k[u2 >> 2] | 0) + 52 >> 2] & 63](u2, k[g2 >> 2] | 0, 0) | 0) << 24 >> 24 == 37) { l2 = g2 + 4 | 0; if ((l2 | 0) == (h2 | 0)) { v2 = 21; break b; } n2 = Qb[k[(k[u2 >> 2] | 0) + 52 >> 2] & 63](u2, k[l2 >> 2] | 0, 0) | 0; switch (n2 << 24 >> 24) { case 48: case 69: { m2 = g2 + 8 | 0; if ((m2 | 0) == (h2 | 0)) { v2 = 24; break b; } g2 = l2; l2 = Qb[k[(k[u2 >> 2] | 0) + 52 >> 2] & 63](u2, k[m2 >> 2] | 0, 0) | 0; i3 = n2; break; } default: { l2 = n2; i3 = 0; } } n2 = k[(k[a2 >> 2] | 0) + 36 >> 2] | 0; k[s2 >> 2] = o2; k[t2 >> 2] = j2; k[p2 >> 2] = k[s2 >> 2]; k[q2 >> 2] = k[t2 >> 2]; o2 = ac[n2 & 15](a2, p2, q2, d2, e2, f2, l2, i3) | 0; k[b2 >> 2] = o2; g2 = g2 + 8 | 0; } else { if (!(Qb[k[(k[u2 >> 2] | 0) + 12 >> 2] & 63](u2, 8192, k[g2 >> 2] | 0) | 0)) { l2 = i3 + 12 | 0; j2 = k[l2 >> 2] | 0; m2 = i3 + 16 | 0; if ((j2 | 0) == (k[m2 >> 2] | 0)) j2 = Ob[k[(k[i3 >> 2] | 0) + 36 >> 2] & 127](i3) | 0; else j2 = k[j2 >> 2] | 0; o2 = Vb[k[(k[u2 >> 2] | 0) + 28 >> 2] & 63](u2, j2) | 0; if ((o2 | 0) != (Vb[k[(k[u2 >> 2] | 0) + 28 >> 2] & 63](u2, k[g2 >> 2] | 0) | 0)) { v2 = 61; break b; } j2 = k[l2 >> 2] | 0; if ((j2 | 0) == (k[m2 >> 2] | 0)) Ob[k[(k[i3 >> 2] | 0) + 40 >> 2] & 127](i3) | 0; else k[l2 >> 2] = j2 + 4; g2 = g2 + 4 | 0; break; } do { g2 = g2 + 4 | 0; if ((g2 | 0) == (h2 | 0)) { g2 = h2; break; } } while (Qb[k[(k[u2 >> 2] | 0) + 12 >> 2] & 63](u2, 8192, k[g2 >> 2] | 0) | 0); j2 = m2; n2 = m2; while (1) { if (i3) { l2 = k[i3 + 12 >> 2] | 0; if ((l2 | 0) == (k[i3 + 16 >> 2] | 0)) l2 = Ob[k[(k[i3 >> 2] | 0) + 36 >> 2] & 127](i3) | 0; else l2 = k[l2 >> 2] | 0; if ((l2 | 0) == -1) { k[b2 >> 2] = 0; m2 = 1; i3 = 0; } else m2 = 0; } else { m2 = 1; i3 = 0; } do if (n2) { l2 = k[n2 + 12 >> 2] | 0; if ((l2 | 0) == (k[n2 + 16 >> 2] | 0)) l2 = Ob[k[(k[n2 >> 2] | 0) + 36 >> 2] & 127](n2) | 0; else l2 = k[l2 >> 2] | 0; if ((l2 | 0) != -1) if (m2 ^ (j2 | 0) == 0) { o2 = j2; n2 = j2; break; } else break c; else { k[c2 >> 2] = 0; j2 = 0; v2 = 44; break; } } else v2 = 44; while (0); if ((v2 | 0) == 44) { v2 = 0; if (m2) break c; else { o2 = j2; n2 = 0; } } l2 = i3 + 12 | 0; j2 = k[l2 >> 2] | 0; m2 = i3 + 16 | 0; if ((j2 | 0) == (k[m2 >> 2] | 0)) j2 = Ob[k[(k[i3 >> 2] | 0) + 36 >> 2] & 127](i3) | 0; else j2 = k[j2 >> 2] | 0; if (!(Qb[k[(k[u2 >> 2] | 0) + 12 >> 2] & 63](u2, 8192, j2) | 0)) break c; j2 = k[l2 >> 2] | 0; if ((j2 | 0) == (k[m2 >> 2] | 0)) { Ob[k[(k[i3 >> 2] | 0) + 40 >> 2] & 127](i3) | 0; j2 = o2; continue; } else { k[l2 >> 2] = j2 + 4; j2 = o2; continue; } } } while (0); i3 = k[b2 >> 2] | 0; if (!((g2 | 0) != (h2 | 0) & (k[e2 >> 2] | 0) == 0)) break a; } if ((v2 | 0) == 17) { k[e2 >> 2] = 4; break; } else if ((v2 | 0) == 21) { k[e2 >> 2] = 4; break; } else if ((v2 | 0) == 24) { k[e2 >> 2] = 4; break; } else if ((v2 | 0) == 61) { k[e2 >> 2] = 4; i3 = k[b2 >> 2] | 0; break; } } while (0); if (i3) { g2 = k[i3 + 12 >> 2] | 0; if ((g2 | 0) == (k[i3 + 16 >> 2] | 0)) g2 = Ob[k[(k[i3 >> 2] | 0) + 36 >> 2] & 127](i3) | 0; else g2 = k[g2 >> 2] | 0; if ((g2 | 0) == -1) { k[b2 >> 2] = 0; i3 = 0; l2 = 1; } else l2 = 0; } else { i3 = 0; l2 = 1; } g2 = k[c2 >> 2] | 0; do if (g2) { j2 = k[g2 + 12 >> 2] | 0; if ((j2 | 0) == (k[g2 + 16 >> 2] | 0)) g2 = Ob[k[(k[g2 >> 2] | 0) + 36 >> 2] & 127](g2) | 0; else g2 = k[j2 >> 2] | 0; if ((g2 | 0) != -1) if (l2) break; else { v2 = 76; break; } else { k[c2 >> 2] = 0; v2 = 74; break; } } else v2 = 74; while (0); if ((v2 | 0) == 74 ? l2 : 0) v2 = 76; if ((v2 | 0) == 76) k[e2 >> 2] = k[e2 >> 2] | 2; r = w2; return i3 | 0; } function zq(a2) { a2 = a2 | 0; return; } function Aq(a2) { a2 = a2 | 0; mj(a2); return; } function Bq(a2) { a2 = a2 | 0; return 2; } function Cq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; g2 = r; r = r + 16 | 0; h2 = g2 + 12 | 0; i3 = g2 + 8 | 0; l2 = g2 + 4 | 0; j2 = g2; k[l2 >> 2] = k[b2 >> 2]; k[j2 >> 2] = k[c2 >> 2]; k[i3 >> 2] = k[l2 >> 2]; k[h2 >> 2] = k[j2 >> 2]; a2 = yq(a2, i3, h2, d2, e2, f2, 44788, 44820) | 0; r = g2; return a2 | 0; } function Dq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; g2 = r; r = r + 16 | 0; h2 = g2 + 12 | 0; j2 = g2 + 8 | 0; m2 = g2 + 4 | 0; l2 = g2; p2 = a2 + 8 | 0; p2 = Ob[k[(k[p2 >> 2] | 0) + 20 >> 2] & 127](p2) | 0; k[m2 >> 2] = k[b2 >> 2]; k[l2 >> 2] = k[c2 >> 2]; n2 = i2[p2 >> 0] | 0; o2 = (n2 & 1) == 0; c2 = p2 + 4 | 0; b2 = o2 ? c2 : k[p2 + 8 >> 2] | 0; c2 = b2 + ((o2 ? (n2 & 255) >>> 1 : k[c2 >> 2] | 0) << 2) | 0; k[j2 >> 2] = k[m2 >> 2]; k[h2 >> 2] = k[l2 >> 2]; a2 = yq(a2, j2, h2, d2, e2, f2, b2, c2) | 0; r = g2; return a2 | 0; } function Eq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; j2 = r; r = r + 16 | 0; h2 = j2 + 8 | 0; g2 = j2 + 4 | 0; i3 = j2; d2 = tn(d2) | 0; k[g2 >> 2] = d2; x = 0; g2 = Aa(37, g2 | 0, 44212) | 0; l2 = x; x = 0; if (l2 & 1) { l2 = Wa() | 0; zm(d2) | 0; fb(l2 | 0); } else { zm(d2) | 0; k[i3 >> 2] = k[c2 >> 2]; k[h2 >> 2] = k[i3 >> 2]; Fq(a2, f2 + 24 | 0, b2, h2, e2, g2); r = j2; return k[b2 >> 2] | 0; } return 0; } function Fq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0; g2 = r; r = r + 16 | 0; h2 = g2 + 4 | 0; i3 = g2; a2 = a2 + 8 | 0; a2 = Ob[k[k[a2 >> 2] >> 2] & 127](a2) | 0; k[i3 >> 2] = k[d2 >> 2]; k[h2 >> 2] = k[i3 >> 2]; c2 = (Su(c2, h2, a2, a2 + 168 | 0, f2, e2, 0) | 0) - a2 | 0; if ((c2 | 0) < 168) k[b2 >> 2] = ((c2 | 0) / 12 | 0 | 0) % 7 | 0; r = g2; return; } function Gq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; j2 = r; r = r + 16 | 0; h2 = j2 + 8 | 0; g2 = j2 + 4 | 0; i3 = j2; d2 = tn(d2) | 0; k[g2 >> 2] = d2; x = 0; g2 = Aa(37, g2 | 0, 44212) | 0; l2 = x; x = 0; if (l2 & 1) { l2 = Wa() | 0; zm(d2) | 0; fb(l2 | 0); } else { zm(d2) | 0; k[i3 >> 2] = k[c2 >> 2]; k[h2 >> 2] = k[i3 >> 2]; Hq(a2, f2 + 16 | 0, b2, h2, e2, g2); r = j2; return k[b2 >> 2] | 0; } return 0; } function Hq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0; g2 = r; r = r + 16 | 0; h2 = g2 + 4 | 0; i3 = g2; a2 = a2 + 8 | 0; a2 = Ob[k[(k[a2 >> 2] | 0) + 4 >> 2] & 127](a2) | 0; k[i3 >> 2] = k[d2 >> 2]; k[h2 >> 2] = k[i3 >> 2]; c2 = (Su(c2, h2, a2, a2 + 288 | 0, f2, e2, 0) | 0) - a2 | 0; if ((c2 | 0) < 288) k[b2 >> 2] = ((c2 | 0) / 12 | 0 | 0) % 12 | 0; r = g2; return; } function Iq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; j2 = r; r = r + 16 | 0; h2 = j2 + 8 | 0; g2 = j2 + 4 | 0; i3 = j2; d2 = tn(d2) | 0; k[g2 >> 2] = d2; x = 0; g2 = Aa(37, g2 | 0, 44212) | 0; l2 = x; x = 0; if (l2 & 1) { l2 = Wa() | 0; zm(d2) | 0; fb(l2 | 0); } else { zm(d2) | 0; k[i3 >> 2] = k[c2 >> 2]; k[h2 >> 2] = k[i3 >> 2]; Jq(a2, f2 + 20 | 0, b2, h2, e2, g2); r = j2; return k[b2 >> 2] | 0; } return 0; } function Jq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0; g2 = r; r = r + 16 | 0; a2 = g2 + 4 | 0; h2 = g2; k[h2 >> 2] = k[d2 >> 2]; k[a2 >> 2] = k[h2 >> 2]; a2 = ev(c2, a2, e2, f2, 4) | 0; if (!(k[e2 >> 2] & 4)) { if ((a2 | 0) < 69) a2 = a2 + 2e3 | 0; else a2 = (a2 + -69 | 0) >>> 0 < 31 ? a2 + 1900 | 0 : a2; k[b2 >> 2] = a2 + -1900; } r = g2; return; } function Kq(a2, b2, c2, d2, e2, f2, g2, h2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; var j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, M2 = 0, N2 = 0, O2 = 0, P2 = 0, Q2 = 0, R2 = 0, S2 = 0, T2 = 0, U2 = 0, V2 = 0, W2 = 0; U2 = r; r = r + 144 | 0; j2 = U2 + 132 | 0; h2 = U2 + 116 | 0; N2 = U2 + 128 | 0; w2 = U2 + 124 | 0; I2 = U2 + 120 | 0; O2 = U2 + 112 | 0; P2 = U2 + 108 | 0; Q2 = U2 + 104 | 0; R2 = U2 + 100 | 0; S2 = U2 + 96 | 0; T2 = U2 + 92 | 0; l2 = U2 + 88 | 0; m2 = U2 + 84 | 0; n2 = U2 + 80 | 0; o2 = U2 + 76 | 0; p2 = U2 + 72 | 0; q2 = U2 + 68 | 0; s2 = U2 + 64 | 0; t2 = U2 + 60 | 0; u2 = U2 + 56 | 0; v2 = U2 + 52 | 0; y2 = U2 + 48 | 0; z2 = U2 + 44 | 0; A2 = U2 + 40 | 0; B2 = U2 + 36 | 0; C2 = U2 + 32 | 0; D2 = U2 + 28 | 0; E2 = U2 + 24 | 0; F2 = U2 + 20 | 0; G2 = U2 + 16 | 0; H2 = U2 + 12 | 0; J2 = U2 + 8 | 0; K2 = U2 + 4 | 0; L2 = U2; k[e2 >> 2] = 0; M2 = tn(d2) | 0; k[N2 >> 2] = M2; x = 0; N2 = Aa(37, N2 | 0, 44212) | 0; W2 = x; x = 0; if (W2 & 1) { W2 = Wa() | 0; zm(M2) | 0; fb(W2 | 0); } zm(M2) | 0; do switch (g2 << 24 >> 24 | 0) { case 65: case 97: { k[w2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[w2 >> 2]; Fq(a2, f2 + 24 | 0, b2, j2, e2, N2); V2 = 28; break; } case 104: case 66: case 98: { k[I2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[I2 >> 2]; Hq(a2, f2 + 16 | 0, b2, j2, e2, N2); V2 = 28; break; } case 99: { W2 = a2 + 8 | 0; W2 = Ob[k[(k[W2 >> 2] | 0) + 12 >> 2] & 127](W2) | 0; k[O2 >> 2] = k[b2 >> 2]; k[P2 >> 2] = k[c2 >> 2]; g2 = i2[W2 >> 0] | 0; c2 = (g2 & 1) == 0; V2 = W2 + 4 | 0; W2 = c2 ? V2 : k[W2 + 8 >> 2] | 0; V2 = W2 + ((c2 ? (g2 & 255) >>> 1 : k[V2 >> 2] | 0) << 2) | 0; k[h2 >> 2] = k[O2 >> 2]; k[j2 >> 2] = k[P2 >> 2]; V2 = yq(a2, h2, j2, d2, e2, f2, W2, V2) | 0; k[b2 >> 2] = V2; V2 = 28; break; } case 101: case 100: { k[Q2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[Q2 >> 2]; Lq(a2, f2 + 12 | 0, b2, j2, e2, N2); V2 = 28; break; } case 68: { k[R2 >> 2] = k[b2 >> 2]; k[S2 >> 2] = k[c2 >> 2]; k[h2 >> 2] = k[R2 >> 2]; k[j2 >> 2] = k[S2 >> 2]; V2 = yq(a2, h2, j2, d2, e2, f2, 44820, 44852) | 0; k[b2 >> 2] = V2; V2 = 28; break; } case 70: { k[T2 >> 2] = k[b2 >> 2]; k[l2 >> 2] = k[c2 >> 2]; k[h2 >> 2] = k[T2 >> 2]; k[j2 >> 2] = k[l2 >> 2]; V2 = yq(a2, h2, j2, d2, e2, f2, 44852, 44884) | 0; k[b2 >> 2] = V2; V2 = 28; break; } case 72: { k[m2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[m2 >> 2]; Mq(a2, f2 + 8 | 0, b2, j2, e2, N2); V2 = 28; break; } case 73: { k[n2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[n2 >> 2]; Nq(a2, f2 + 8 | 0, b2, j2, e2, N2); V2 = 28; break; } case 106: { k[o2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[o2 >> 2]; Oq(a2, f2 + 28 | 0, b2, j2, e2, N2); V2 = 28; break; } case 109: { k[p2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[p2 >> 2]; Pq(a2, f2 + 16 | 0, b2, j2, e2, N2); V2 = 28; break; } case 77: { k[q2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[q2 >> 2]; Qq(a2, f2 + 4 | 0, b2, j2, e2, N2); V2 = 28; break; } case 116: case 110: { k[s2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[s2 >> 2]; Rq(a2, b2, j2, e2, N2); V2 = 28; break; } case 112: { k[t2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[t2 >> 2]; Sq(a2, f2 + 8 | 0, b2, j2, e2, N2); V2 = 28; break; } case 114: { k[u2 >> 2] = k[b2 >> 2]; k[v2 >> 2] = k[c2 >> 2]; k[h2 >> 2] = k[u2 >> 2]; k[j2 >> 2] = k[v2 >> 2]; V2 = yq(a2, h2, j2, d2, e2, f2, 44884, 44928) | 0; k[b2 >> 2] = V2; V2 = 28; break; } case 82: { k[y2 >> 2] = k[b2 >> 2]; k[z2 >> 2] = k[c2 >> 2]; k[h2 >> 2] = k[y2 >> 2]; k[j2 >> 2] = k[z2 >> 2]; V2 = yq(a2, h2, j2, d2, e2, f2, 44928, 44948) | 0; k[b2 >> 2] = V2; V2 = 28; break; } case 83: { k[A2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[A2 >> 2]; Tq(a2, f2, b2, j2, e2, N2); V2 = 28; break; } case 84: { k[B2 >> 2] = k[b2 >> 2]; k[C2 >> 2] = k[c2 >> 2]; k[h2 >> 2] = k[B2 >> 2]; k[j2 >> 2] = k[C2 >> 2]; V2 = yq(a2, h2, j2, d2, e2, f2, 44948, 44980) | 0; k[b2 >> 2] = V2; V2 = 28; break; } case 119: { k[D2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[D2 >> 2]; Uq(a2, f2 + 24 | 0, b2, j2, e2, N2); V2 = 28; break; } case 120: { W2 = k[(k[a2 >> 2] | 0) + 20 >> 2] | 0; k[E2 >> 2] = k[b2 >> 2]; k[F2 >> 2] = k[c2 >> 2]; k[h2 >> 2] = k[E2 >> 2]; k[j2 >> 2] = k[F2 >> 2]; h2 = Nb[W2 & 63](a2, h2, j2, d2, e2, f2) | 0; break; } case 88: { W2 = a2 + 8 | 0; W2 = Ob[k[(k[W2 >> 2] | 0) + 24 >> 2] & 127](W2) | 0; k[G2 >> 2] = k[b2 >> 2]; k[H2 >> 2] = k[c2 >> 2]; g2 = i2[W2 >> 0] | 0; c2 = (g2 & 1) == 0; V2 = W2 + 4 | 0; W2 = c2 ? V2 : k[W2 + 8 >> 2] | 0; V2 = W2 + ((c2 ? (g2 & 255) >>> 1 : k[V2 >> 2] | 0) << 2) | 0; k[h2 >> 2] = k[G2 >> 2]; k[j2 >> 2] = k[H2 >> 2]; V2 = yq(a2, h2, j2, d2, e2, f2, W2, V2) | 0; k[b2 >> 2] = V2; V2 = 28; break; } case 121: { k[J2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[J2 >> 2]; Jq(a2, f2 + 20 | 0, b2, j2, e2, N2); V2 = 28; break; } case 89: { k[K2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[K2 >> 2]; Vq(a2, f2 + 20 | 0, b2, j2, e2, N2); V2 = 28; break; } case 37: { k[L2 >> 2] = k[c2 >> 2]; k[j2 >> 2] = k[L2 >> 2]; Wq(a2, b2, j2, e2, N2); V2 = 28; break; } default: { k[e2 >> 2] = k[e2 >> 2] | 4; V2 = 28; } } while (0); if ((V2 | 0) == 28) h2 = k[b2 >> 2] | 0; r = U2; return h2 | 0; } function Lq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0; g2 = r; r = r + 16 | 0; a2 = g2 + 4 | 0; h2 = g2; k[h2 >> 2] = k[d2 >> 2]; k[a2 >> 2] = k[h2 >> 2]; a2 = ev(c2, a2, e2, f2, 2) | 0; c2 = k[e2 >> 2] | 0; if ((a2 + -1 | 0) >>> 0 < 31 & (c2 & 4 | 0) == 0) k[b2 >> 2] = a2; else k[e2 >> 2] = c2 | 4; r = g2; return; } function Mq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0; g2 = r; r = r + 16 | 0; a2 = g2 + 4 | 0; h2 = g2; k[h2 >> 2] = k[d2 >> 2]; k[a2 >> 2] = k[h2 >> 2]; a2 = ev(c2, a2, e2, f2, 2) | 0; c2 = k[e2 >> 2] | 0; if ((a2 | 0) < 24 & (c2 & 4 | 0) == 0) k[b2 >> 2] = a2; else k[e2 >> 2] = c2 | 4; r = g2; return; } function Nq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0; g2 = r; r = r + 16 | 0; a2 = g2 + 4 | 0; h2 = g2; k[h2 >> 2] = k[d2 >> 2]; k[a2 >> 2] = k[h2 >> 2]; a2 = ev(c2, a2, e2, f2, 2) | 0; c2 = k[e2 >> 2] | 0; if ((a2 + -1 | 0) >>> 0 < 12 & (c2 & 4 | 0) == 0) k[b2 >> 2] = a2; else k[e2 >> 2] = c2 | 4; r = g2; return; } function Oq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0; g2 = r; r = r + 16 | 0; a2 = g2 + 4 | 0; h2 = g2; k[h2 >> 2] = k[d2 >> 2]; k[a2 >> 2] = k[h2 >> 2]; a2 = ev(c2, a2, e2, f2, 3) | 0; c2 = k[e2 >> 2] | 0; if ((a2 | 0) < 366 & (c2 & 4 | 0) == 0) k[b2 >> 2] = a2; else k[e2 >> 2] = c2 | 4; r = g2; return; } function Pq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0; g2 = r; r = r + 16 | 0; a2 = g2 + 4 | 0; h2 = g2; k[h2 >> 2] = k[d2 >> 2]; k[a2 >> 2] = k[h2 >> 2]; a2 = ev(c2, a2, e2, f2, 2) | 0; c2 = k[e2 >> 2] | 0; if ((a2 | 0) < 13 & (c2 & 4 | 0) == 0) k[b2 >> 2] = a2 + -1; else k[e2 >> 2] = c2 | 4; r = g2; return; } function Qq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0; g2 = r; r = r + 16 | 0; a2 = g2 + 4 | 0; h2 = g2; k[h2 >> 2] = k[d2 >> 2]; k[a2 >> 2] = k[h2 >> 2]; a2 = ev(c2, a2, e2, f2, 2) | 0; c2 = k[e2 >> 2] | 0; if ((a2 | 0) < 60 & (c2 & 4 | 0) == 0) k[b2 >> 2] = a2; else k[e2 >> 2] = c2 | 4; r = g2; return; } function Rq(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0; a: while (1) { a2 = k[b2 >> 2] | 0; do if (a2) { f2 = k[a2 + 12 >> 2] | 0; if ((f2 | 0) == (k[a2 + 16 >> 2] | 0)) a2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; else a2 = k[f2 >> 2] | 0; if ((a2 | 0) == -1) { k[b2 >> 2] = 0; g2 = 1; break; } else { g2 = (k[b2 >> 2] | 0) == 0; break; } } else g2 = 1; while (0); f2 = k[c2 >> 2] | 0; do if (f2) { a2 = k[f2 + 12 >> 2] | 0; if ((a2 | 0) == (k[f2 + 16 >> 2] | 0)) a2 = Ob[k[(k[f2 >> 2] | 0) + 36 >> 2] & 127](f2) | 0; else a2 = k[a2 >> 2] | 0; if ((a2 | 0) != -1) if (g2) { g2 = f2; break; } else { g2 = f2; break a; } else { k[c2 >> 2] = 0; h2 = 15; break; } } else h2 = 15; while (0); if ((h2 | 0) == 15) { h2 = 0; if (g2) { g2 = 0; break; } else g2 = 0; } a2 = k[b2 >> 2] | 0; f2 = k[a2 + 12 >> 2] | 0; if ((f2 | 0) == (k[a2 + 16 >> 2] | 0)) a2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; else a2 = k[f2 >> 2] | 0; if (!(Qb[k[(k[e2 >> 2] | 0) + 12 >> 2] & 63](e2, 8192, a2) | 0)) break; a2 = k[b2 >> 2] | 0; f2 = a2 + 12 | 0; g2 = k[f2 >> 2] | 0; if ((g2 | 0) == (k[a2 + 16 >> 2] | 0)) { Ob[k[(k[a2 >> 2] | 0) + 40 >> 2] & 127](a2) | 0; continue; } else { k[f2 >> 2] = g2 + 4; continue; } } a2 = k[b2 >> 2] | 0; do if (a2) { f2 = k[a2 + 12 >> 2] | 0; if ((f2 | 0) == (k[a2 + 16 >> 2] | 0)) a2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; else a2 = k[f2 >> 2] | 0; if ((a2 | 0) == -1) { k[b2 >> 2] = 0; f2 = 1; break; } else { f2 = (k[b2 >> 2] | 0) == 0; break; } } else f2 = 1; while (0); do if (g2) { a2 = k[g2 + 12 >> 2] | 0; if ((a2 | 0) == (k[g2 + 16 >> 2] | 0)) a2 = Ob[k[(k[g2 >> 2] | 0) + 36 >> 2] & 127](g2) | 0; else a2 = k[a2 >> 2] | 0; if ((a2 | 0) != -1) if (f2) break; else { h2 = 39; break; } else { k[c2 >> 2] = 0; h2 = 37; break; } } else h2 = 37; while (0); if ((h2 | 0) == 37 ? f2 : 0) h2 = 39; if ((h2 | 0) == 39) k[d2 >> 2] = k[d2 >> 2] | 2; return; } function Sq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; m2 = r; r = r + 16 | 0; h2 = m2 + 4 | 0; j2 = m2; l2 = a2 + 8 | 0; l2 = Ob[k[(k[l2 >> 2] | 0) + 8 >> 2] & 127](l2) | 0; a2 = i2[l2 >> 0] | 0; if (!(a2 & 1)) g2 = (a2 & 255) >>> 1; else g2 = k[l2 + 4 >> 2] | 0; a2 = i2[l2 + 12 >> 0] | 0; if (!(a2 & 1)) a2 = (a2 & 255) >>> 1; else a2 = k[l2 + 16 >> 2] | 0; do if ((g2 | 0) != (0 - a2 | 0)) { k[j2 >> 2] = k[d2 >> 2]; k[h2 >> 2] = k[j2 >> 2]; a2 = Su(c2, h2, l2, l2 + 24 | 0, f2, e2, 0) | 0; g2 = k[b2 >> 2] | 0; if ((a2 | 0) == (l2 | 0) & (g2 | 0) == 12) { k[b2 >> 2] = 0; break; } if ((g2 | 0) < 12 & (a2 - l2 | 0) == 12) k[b2 >> 2] = g2 + 12; } else k[e2 >> 2] = k[e2 >> 2] | 4; while (0); r = m2; return; } function Tq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0; g2 = r; r = r + 16 | 0; a2 = g2 + 4 | 0; h2 = g2; k[h2 >> 2] = k[d2 >> 2]; k[a2 >> 2] = k[h2 >> 2]; a2 = ev(c2, a2, e2, f2, 2) | 0; c2 = k[e2 >> 2] | 0; if ((a2 | 0) < 61 & (c2 & 4 | 0) == 0) k[b2 >> 2] = a2; else k[e2 >> 2] = c2 | 4; r = g2; return; } function Uq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0; g2 = r; r = r + 16 | 0; a2 = g2 + 4 | 0; h2 = g2; k[h2 >> 2] = k[d2 >> 2]; k[a2 >> 2] = k[h2 >> 2]; a2 = ev(c2, a2, e2, f2, 1) | 0; c2 = k[e2 >> 2] | 0; if ((a2 | 0) < 7 & (c2 & 4 | 0) == 0) k[b2 >> 2] = a2; else k[e2 >> 2] = c2 | 4; r = g2; return; } function Vq(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0; g2 = r; r = r + 16 | 0; a2 = g2 + 4 | 0; h2 = g2; k[h2 >> 2] = k[d2 >> 2]; k[a2 >> 2] = k[h2 >> 2]; a2 = ev(c2, a2, e2, f2, 4) | 0; if (!(k[e2 >> 2] & 4)) k[b2 >> 2] = a2 + -1900; r = g2; return; } function Wq(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, i3 = 0; a2 = k[b2 >> 2] | 0; do if (a2) { f2 = k[a2 + 12 >> 2] | 0; if ((f2 | 0) == (k[a2 + 16 >> 2] | 0)) a2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; else a2 = k[f2 >> 2] | 0; if ((a2 | 0) == -1) { k[b2 >> 2] = 0; g2 = 1; break; } else { g2 = (k[b2 >> 2] | 0) == 0; break; } } else g2 = 1; while (0); f2 = k[c2 >> 2] | 0; do if (f2) { a2 = k[f2 + 12 >> 2] | 0; if ((a2 | 0) == (k[f2 + 16 >> 2] | 0)) a2 = Ob[k[(k[f2 >> 2] | 0) + 36 >> 2] & 127](f2) | 0; else a2 = k[a2 >> 2] | 0; if ((a2 | 0) != -1) if (g2) { h2 = f2; i3 = 17; break; } else { i3 = 16; break; } else { k[c2 >> 2] = 0; i3 = 14; break; } } else i3 = 14; while (0); if ((i3 | 0) == 14) if (g2) i3 = 16; else { h2 = 0; i3 = 17; } a: do if ((i3 | 0) == 16) k[d2 >> 2] = k[d2 >> 2] | 6; else if ((i3 | 0) == 17) { a2 = k[b2 >> 2] | 0; f2 = k[a2 + 12 >> 2] | 0; if ((f2 | 0) == (k[a2 + 16 >> 2] | 0)) a2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; else a2 = k[f2 >> 2] | 0; if ((Qb[k[(k[e2 >> 2] | 0) + 52 >> 2] & 63](e2, a2, 0) | 0) << 24 >> 24 != 37) { k[d2 >> 2] = k[d2 >> 2] | 4; break; } a2 = k[b2 >> 2] | 0; f2 = a2 + 12 | 0; g2 = k[f2 >> 2] | 0; if ((g2 | 0) == (k[a2 + 16 >> 2] | 0)) { Ob[k[(k[a2 >> 2] | 0) + 40 >> 2] & 127](a2) | 0; a2 = k[b2 >> 2] | 0; if (!a2) f2 = 1; else i3 = 25; } else { k[f2 >> 2] = g2 + 4; i3 = 25; } do if ((i3 | 0) == 25) { f2 = k[a2 + 12 >> 2] | 0; if ((f2 | 0) == (k[a2 + 16 >> 2] | 0)) a2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; else a2 = k[f2 >> 2] | 0; if ((a2 | 0) == -1) { k[b2 >> 2] = 0; f2 = 1; break; } else { f2 = (k[b2 >> 2] | 0) == 0; break; } } while (0); do if (h2) { a2 = k[h2 + 12 >> 2] | 0; if ((a2 | 0) == (k[h2 + 16 >> 2] | 0)) a2 = Ob[k[(k[h2 >> 2] | 0) + 36 >> 2] & 127](h2) | 0; else a2 = k[a2 >> 2] | 0; if ((a2 | 0) != -1) if (f2) break a; else break; else { k[c2 >> 2] = 0; i3 = 37; break; } } else i3 = 37; while (0); if ((i3 | 0) == 37 ? !f2 : 0) break; k[d2 >> 2] = k[d2 >> 2] | 2; } while (0); return; } function Xq(a2) { a2 = a2 | 0; Yq(a2 + 8 | 0); return; } function Yq(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0; b2 = k[a2 >> 2] | 0; x = 0; c2 = Da(3) | 0; d2 = x; x = 0; do if (!(d2 & 1)) { if ((b2 | 0) != (c2 | 0) ? (x = 0, qa(188, k[a2 >> 2] | 0), d2 = x, x = 0, d2 & 1) : 0) break; return; } while (0); d2 = Wa(0) | 0; oc(d2); } function Zq(a2) { a2 = a2 | 0; Yq(a2 + 8 | 0); mj(a2); return; } function _q(a2, b2, c2, d2, e2, f2, g2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; var h2 = 0, j2 = 0; j2 = r; r = r + 112 | 0; h2 = j2 + 4 | 0; c2 = j2; k[c2 >> 2] = h2 + 100; $q(a2 + 8 | 0, h2, c2, e2, f2, g2); e2 = k[c2 >> 2] | 0; c2 = k[b2 >> 2] | 0; if ((h2 | 0) != (e2 | 0)) do { g2 = i2[h2 >> 0] | 0; do if (c2) { d2 = c2 + 24 | 0; f2 = k[d2 >> 2] | 0; if ((f2 | 0) == (k[c2 + 28 >> 2] | 0)) { b2 = (Vb[k[(k[c2 >> 2] | 0) + 52 >> 2] & 63](c2, g2 & 255) | 0) == -1; c2 = b2 ? 0 : c2; break; } else { k[d2 >> 2] = f2 + 1; i2[f2 >> 0] = g2; break; } } else c2 = 0; while (0); h2 = h2 + 1 | 0; } while ((h2 | 0) != (e2 | 0)); r = j2; return c2 | 0; } function $q(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, l2 = 0; l2 = r; r = r + 16 | 0; j2 = l2; i2[j2 >> 0] = 37; g2 = j2 + 1 | 0; i2[g2 >> 0] = e2; h2 = j2 + 2 | 0; i2[h2 >> 0] = f2; i2[j2 + 3 >> 0] = 0; if (f2 << 24 >> 24) { i2[g2 >> 0] = f2; i2[h2 >> 0] = e2; } a2 = b2 + (_a(b2 | 0, (k[c2 >> 2] | 0) - b2 | 0, j2 | 0, d2 | 0, k[a2 >> 2] | 0) | 0) | 0; k[c2 >> 2] = a2; r = l2; return; } function ar(a2) { a2 = a2 | 0; Yq(a2 + 8 | 0); return; } function br(a2) { a2 = a2 | 0; Yq(a2 + 8 | 0); mj(a2); return; } function cr(a2, b2, c2, d2, e2, f2, g2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; var h2 = 0; h2 = r; r = r + 416 | 0; d2 = h2 + 8 | 0; c2 = h2; k[c2 >> 2] = d2 + 400; dr(a2 + 8 | 0, d2, c2, e2, f2, g2); a2 = k[c2 >> 2] | 0; c2 = k[b2 >> 2] | 0; if ((d2 | 0) != (a2 | 0)) { e2 = d2; do { d2 = k[e2 >> 2] | 0; if (!c2) c2 = 0; else { f2 = c2 + 24 | 0; g2 = k[f2 >> 2] | 0; if ((g2 | 0) == (k[c2 + 28 >> 2] | 0)) d2 = Vb[k[(k[c2 >> 2] | 0) + 52 >> 2] & 63](c2, d2) | 0; else { k[f2 >> 2] = g2 + 4; k[g2 >> 2] = d2; } c2 = (d2 | 0) == -1 ? 0 : c2; } e2 = e2 + 4 | 0; } while ((e2 | 0) != (a2 | 0)); } r = h2; return c2 | 0; } function dr(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; g2 = r; r = r + 128 | 0; j2 = g2 + 16 | 0; l2 = g2 + 12 | 0; h2 = g2; i3 = g2 + 8 | 0; k[l2 >> 2] = j2 + 100; $q(a2, j2, l2, d2, e2, f2); e2 = h2; k[e2 >> 2] = 0; k[e2 + 4 >> 2] = 0; k[i3 >> 2] = j2; e2 = (k[c2 >> 2] | 0) - b2 >> 2; f2 = Ak(k[a2 >> 2] | 0) | 0; x = 0; e2 = Ea(18, b2 | 0, i3 | 0, e2 | 0, h2 | 0) | 0; a2 = x; x = 0; if (a2 & 1) { e2 = Wa() | 0; if ((f2 | 0) != 0 ? (x = 0, ta(75, f2 | 0) | 0, l2 = x, x = 0, l2 & 1) : 0) { l2 = Wa(0) | 0; oc(l2); } fb(e2 | 0); } if ((f2 | 0) != 0 ? (x = 0, ta(75, f2 | 0) | 0, l2 = x, x = 0, l2 & 1) : 0) { l2 = Wa(0) | 0; oc(l2); } if ((e2 | 0) == -1) $r(58955); else { k[c2 >> 2] = b2 + (e2 << 2); r = g2; return; } } function er(a2) { a2 = a2 | 0; return; } function fr(a2) { a2 = a2 | 0; mj(a2); return; } function gr(a2) { a2 = a2 | 0; return 127; } function hr(a2) { a2 = a2 | 0; return 127; } function ir(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; return; } function jr(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; return; } function kr(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; return; } function lr(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Rm(a2, 1, 45); return; } function mr(a2) { a2 = a2 | 0; return 0; } function nr(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; i2[a2 >> 0] = 2; i2[a2 + 1 >> 0] = 3; i2[a2 + 2 >> 0] = 0; i2[a2 + 3 >> 0] = 4; return; } function or(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; i2[a2 >> 0] = 2; i2[a2 + 1 >> 0] = 3; i2[a2 + 2 >> 0] = 0; i2[a2 + 3 >> 0] = 4; return; } function pr(a2) { a2 = a2 | 0; return; } function qr(a2) { a2 = a2 | 0; mj(a2); return; } function rr(a2) { a2 = a2 | 0; return 127; } function sr(a2) { a2 = a2 | 0; return 127; } function tr(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; return; } function ur(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; return; } function vr(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; return; } function wr(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Rm(a2, 1, 45); return; } function xr(a2) { a2 = a2 | 0; return 0; } function yr(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; i2[a2 >> 0] = 2; i2[a2 + 1 >> 0] = 3; i2[a2 + 2 >> 0] = 0; i2[a2 + 3 >> 0] = 4; return; } function zr(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; i2[a2 >> 0] = 2; i2[a2 + 1 >> 0] = 3; i2[a2 + 2 >> 0] = 0; i2[a2 + 3 >> 0] = 4; return; } function Ar(a2) { a2 = a2 | 0; return; } function Br(a2) { a2 = a2 | 0; mj(a2); return; } function Cr(a2) { a2 = a2 | 0; return 2147483647; } function Dr(a2) { a2 = a2 | 0; return 2147483647; } function Er(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; return; } function Fr(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; return; } function Gr(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; return; } function Hr(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; dn(a2, 1, 45); return; } function Ir(a2) { a2 = a2 | 0; return 0; } function Jr(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; i2[a2 >> 0] = 2; i2[a2 + 1 >> 0] = 3; i2[a2 + 2 >> 0] = 0; i2[a2 + 3 >> 0] = 4; return; } function Kr(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; i2[a2 >> 0] = 2; i2[a2 + 1 >> 0] = 3; i2[a2 + 2 >> 0] = 0; i2[a2 + 3 >> 0] = 4; return; } function Lr(a2) { a2 = a2 | 0; return; } function Mr(a2) { a2 = a2 | 0; mj(a2); return; } function Nr(a2) { a2 = a2 | 0; return 2147483647; } function Or(a2) { a2 = a2 | 0; return 2147483647; } function Pr(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; return; } function Qr(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; return; } function Rr(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; return; } function Sr(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; dn(a2, 1, 45); return; } function Tr(a2) { a2 = a2 | 0; return 0; } function Ur(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; i2[a2 >> 0] = 2; i2[a2 + 1 >> 0] = 3; i2[a2 + 2 >> 0] = 0; i2[a2 + 3 >> 0] = 4; return; } function Vr(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; i2[a2 >> 0] = 2; i2[a2 + 1 >> 0] = 3; i2[a2 + 2 >> 0] = 0; i2[a2 + 3 >> 0] = 4; return; } function Wr(a2) { a2 = a2 | 0; return; } function Xr(a2) { a2 = a2 | 0; mj(a2); return; } function Yr(a2, b2, c2, d2, e2, f2, g2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; var h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0; B2 = r; r = r + 240 | 0; z2 = B2 + 24 | 0; A2 = B2; a2 = B2 + 136 | 0; D2 = B2 + 16 | 0; y2 = B2 + 12 | 0; C2 = B2 + 8 | 0; n2 = B2 + 134 | 0; j2 = B2 + 4 | 0; w2 = B2 + 124 | 0; k[D2 >> 2] = a2; E2 = D2 + 4 | 0; k[E2 >> 2] = 189; l2 = a2 + 100 | 0; x = 0; h2 = ta(68, e2 | 0) | 0; v2 = x; x = 0; if (!(v2 & 1)) { k[C2 >> 2] = h2; x = 0; a2 = Aa(37, C2 | 0, 44220) | 0; v2 = x; x = 0; a: do if (!(v2 & 1) ? (i2[n2 >> 0] = 0, k[j2 >> 2] = k[c2 >> 2], m2 = k[e2 + 4 >> 2] | 0, x = 0, k[z2 >> 2] = k[j2 >> 2], m2 = ua(1, b2 | 0, z2 | 0, d2 | 0, C2 | 0, m2 | 0, f2 | 0, n2 | 0, a2 | 0, D2 | 0, y2 | 0, l2 | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { b: do if (m2) { x = 0; Ea(k[(k[a2 >> 2] | 0) + 32 >> 2] | 0, a2 | 0, 58976, 58986, w2 | 0) | 0; v2 = x; x = 0; if (v2 & 1) { G2 = 10; break a; } j2 = k[y2 >> 2] | 0; l2 = k[D2 >> 2] | 0; a2 = j2 - l2 | 0; if ((a2 | 0) > 98) { a2 = Pl(a2 + 2 | 0) | 0; h2 = a2; if (!a2) { x = 0; Ga(6); v2 = x; x = 0; if (!(v2 & 1)) { a2 = 0; G2 = 13; } } else G2 = 13; } else { h2 = 0; a2 = z2; G2 = 13; } do if ((G2 | 0) == 13) { if (i2[n2 >> 0] | 0) { i2[a2 >> 0] = 45; a2 = a2 + 1 | 0; } u2 = w2 + 10 | 0; v2 = w2; if (l2 >>> 0 < j2 >>> 0) { m2 = w2 + 1 | 0; d2 = m2 + 1 | 0; e2 = d2 + 1 | 0; n2 = e2 + 1 | 0; o2 = n2 + 1 | 0; p2 = o2 + 1 | 0; q2 = p2 + 1 | 0; s2 = q2 + 1 | 0; t2 = s2 + 1 | 0; do { j2 = i2[l2 >> 0] | 0; do if ((i2[w2 >> 0] | 0) != j2 << 24 >> 24) if ((i2[m2 >> 0] | 0) != j2 << 24 >> 24) if ((i2[d2 >> 0] | 0) != j2 << 24 >> 24) if ((i2[e2 >> 0] | 0) != j2 << 24 >> 24) if ((i2[n2 >> 0] | 0) == j2 << 24 >> 24) j2 = n2; else { if ((i2[o2 >> 0] | 0) == j2 << 24 >> 24) { j2 = o2; break; } if ((i2[p2 >> 0] | 0) == j2 << 24 >> 24) { j2 = p2; break; } if ((i2[q2 >> 0] | 0) == j2 << 24 >> 24) { j2 = q2; break; } if ((i2[s2 >> 0] | 0) == j2 << 24 >> 24) { j2 = s2; break; } j2 = (i2[t2 >> 0] | 0) == j2 << 24 >> 24 ? t2 : u2; } else j2 = e2; else j2 = d2; else j2 = m2; else j2 = w2; while (0); i2[a2 >> 0] = i2[58976 + (j2 - v2) >> 0] | 0; l2 = l2 + 1 | 0; a2 = a2 + 1 | 0; } while (l2 >>> 0 < (k[y2 >> 2] | 0) >>> 0); } i2[a2 >> 0] = 0; k[A2 >> 2] = g2; if ((jl(z2, 58987, A2) | 0) != 1 ? (x = 0, qa(190, 58991), g2 = x, x = 0, g2 & 1) : 0) break; if (h2) Ql(h2); break b; } while (0); a2 = Wa() | 0; if (!h2) { j2 = a2; h2 = D2; break a; } Ql(h2); j2 = a2; h2 = D2; break a; } while (0); a2 = k[b2 >> 2] | 0; do if (a2) { if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; g2 = x; x = 0; if (g2 & 1) { G2 = 10; break a; } if ((a2 | 0) == -1) { k[b2 >> 2] = 0; a2 = 0; break; } else { a2 = k[b2 >> 2] | 0; break; } } } else a2 = 0; while (0); h2 = (a2 | 0) == 0; a2 = k[c2 >> 2] | 0; do if (a2) { if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; g2 = x; x = 0; if (g2 & 1) { G2 = 10; break a; } if ((a2 | 0) == -1) { k[c2 >> 2] = 0; G2 = 37; break; } } if (!h2) G2 = 38; } else G2 = 37; while (0); if ((G2 | 0) == 37 ? h2 : 0) G2 = 38; if ((G2 | 0) == 38) k[f2 >> 2] = k[f2 >> 2] | 2; h2 = k[b2 >> 2] | 0; zm(k[C2 >> 2] | 0) | 0; a2 = k[D2 >> 2] | 0; k[D2 >> 2] = 0; if ((a2 | 0) != 0 ? (x = 0, qa(k[E2 >> 2] | 0, a2 | 0), G2 = x, x = 0, G2 & 1) : 0) { G2 = Wa(0) | 0; oc(G2); } r = B2; return h2 | 0; } else G2 = 10; while (0); if ((G2 | 0) == 10) { j2 = Wa() | 0; h2 = D2; } zm(k[C2 >> 2] | 0) | 0; a2 = k[h2 >> 2] | 0; k[h2 >> 2] = 0; if (!a2) F2 = j2; else { h2 = k[E2 >> 2] | 0; G2 = 45; } } else { j2 = Wa() | 0; k[D2 >> 2] = 0; h2 = 189; G2 = 45; } if ((G2 | 0) == 45) { x = 0; qa(h2 | 0, a2 | 0); G2 = x; x = 0; if (G2 & 1) { G2 = Wa(0) | 0; oc(G2); } else F2 = j2; } fb(F2 | 0); return 0; } function Zr(a2) { a2 = a2 | 0; return; } function _r(a2, b2, c2, d2, e2, f2, g2, h2, m2, n2, o2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; m2 = m2 | 0; n2 = n2 | 0; o2 = o2 | 0; var p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, M2 = 0, N2 = 0, O2 = 0, P2 = 0, Q2 = 0, R2 = 0, S2 = 0, T2 = 0, U2 = 0, V2 = 0, W2 = 0, X2 = 0, Y2 = 0, Z2 = 0, _2 = 0, $2 = 0, aa2 = 0, ba2 = 0, ca2 = 0, da2 = 0; ba2 = r; r = r + 512 | 0; P2 = ba2 + 88 | 0; t2 = ba2 + 96 | 0; da2 = ba2 + 80 | 0; T2 = ba2 + 72 | 0; S2 = ba2 + 68 | 0; U2 = ba2 + 500 | 0; Q2 = ba2 + 497 | 0; V2 = ba2 + 496 | 0; Y2 = ba2 + 56 | 0; aa2 = ba2 + 44 | 0; _2 = ba2 + 32 | 0; Z2 = ba2 + 20 | 0; $2 = ba2 + 8 | 0; R2 = ba2 + 4 | 0; X2 = ba2; k[P2 >> 2] = o2; k[da2 >> 2] = t2; ca2 = da2 + 4 | 0; k[ca2 >> 2] = 189; k[T2 >> 2] = t2; k[S2 >> 2] = t2 + 400; k[Y2 >> 2] = 0; k[Y2 + 4 >> 2] = 0; k[Y2 + 8 >> 2] = 0; k[aa2 >> 2] = 0; k[aa2 + 4 >> 2] = 0; k[aa2 + 8 >> 2] = 0; k[_2 >> 2] = 0; k[_2 + 4 >> 2] = 0; k[_2 + 8 >> 2] = 0; k[Z2 >> 2] = 0; k[Z2 + 4 >> 2] = 0; k[Z2 + 8 >> 2] = 0; k[$2 >> 2] = 0; k[$2 + 4 >> 2] = 0; k[$2 + 8 >> 2] = 0; x = 0; za(1, c2 | 0, d2 | 0, U2 | 0, Q2 | 0, V2 | 0, Y2 | 0, aa2 | 0, _2 | 0, Z2 | 0, R2 | 0); O2 = x; x = 0; a: do if (O2 & 1) h2 = Wa() | 0; else { k[n2 >> 2] = k[m2 >> 2]; I2 = h2 + 8 | 0; J2 = _2 + 4 | 0; K2 = Z2 + 4 | 0; L2 = Z2 + 8 | 0; M2 = Z2 + 1 | 0; N2 = _2 + 8 | 0; O2 = _2 + 1 | 0; z2 = (e2 & 512 | 0) != 0; A2 = aa2 + 8 | 0; B2 = aa2 + 1 | 0; C2 = aa2 + 4 | 0; D2 = $2 + 4 | 0; E2 = $2 + 8 | 0; F2 = $2 + 1 | 0; G2 = U2 + 3 | 0; H2 = Y2 + 4 | 0; y2 = 0; s2 = 0; b: while (1) { o2 = k[a2 >> 2] | 0; do if (o2) { if ((k[o2 + 12 >> 2] | 0) == (k[o2 + 16 >> 2] | 0)) { x = 0; o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 24; break b; } if ((o2 | 0) == -1) { k[a2 >> 2] = 0; o2 = 0; break; } else { o2 = k[a2 >> 2] | 0; break; } } } else o2 = 0; while (0); o2 = (o2 | 0) == 0; h2 = k[b2 >> 2] | 0; do if (h2) { if ((k[h2 + 12 >> 2] | 0) != (k[h2 + 16 >> 2] | 0)) if (o2) { w2 = h2; break; } else { W2 = 235; break b; } x = 0; c2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 24; break b; } if ((c2 | 0) != -1) if (o2) { w2 = h2; break; } else { W2 = 235; break b; } else { k[b2 >> 2] = 0; W2 = 15; break; } } else W2 = 15; while (0); if ((W2 | 0) == 15) { W2 = 0; if (o2) { W2 = 235; break; } else w2 = 0; } c: do switch (i2[U2 + y2 >> 0] | 0) { case 1: { if ((y2 | 0) != 3) { o2 = k[a2 >> 2] | 0; h2 = k[o2 + 12 >> 2] | 0; if ((h2 | 0) == (k[o2 + 16 >> 2] | 0)) { x = 0; o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; W2 = x; x = 0; if (W2 & 1) { W2 = 24; break b; } } else o2 = l[h2 >> 0] | 0; if ((o2 & 255) << 24 >> 24 <= -1) { W2 = 40; break b; } if (!(j[(k[I2 >> 2] | 0) + (o2 << 24 >> 24 << 1) >> 1] & 8192)) { W2 = 40; break b; } o2 = k[a2 >> 2] | 0; h2 = o2 + 12 | 0; c2 = k[h2 >> 2] | 0; if ((c2 | 0) == (k[o2 + 16 >> 2] | 0)) { x = 0; o2 = ta(k[(k[o2 >> 2] | 0) + 40 >> 2] | 0, o2 | 0) | 0; W2 = x; x = 0; if (W2 & 1) { W2 = 24; break b; } } else { k[h2 >> 2] = c2 + 1; o2 = l[c2 >> 0] | 0; } x = 0; ra(67, $2 | 0, o2 & 255 | 0); W2 = x; x = 0; if (W2 & 1) { W2 = 24; break b; } else { o2 = w2; d2 = w2; W2 = 42; } } break; } case 0: { if ((y2 | 0) != 3) { o2 = w2; d2 = w2; W2 = 42; } break; } case 3: { h2 = i2[_2 >> 0] | 0; o2 = (h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[J2 >> 2] | 0; c2 = i2[Z2 >> 0] | 0; d2 = (c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[K2 >> 2] | 0; if ((o2 | 0) != (0 - d2 | 0)) { if (!o2) { o2 = k[a2 >> 2] | 0; h2 = k[o2 + 12 >> 2] | 0; if ((h2 | 0) == (k[o2 + 16 >> 2] | 0)) { x = 0; o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 24; break b; } h2 = i2[Z2 >> 0] | 0; } else { o2 = l[h2 >> 0] | 0; h2 = c2; } if ((o2 & 255) << 24 >> 24 != (i2[((h2 & 1) == 0 ? M2 : k[L2 >> 2] | 0) >> 0] | 0)) break c; o2 = k[a2 >> 2] | 0; h2 = o2 + 12 | 0; c2 = k[h2 >> 2] | 0; if ((c2 | 0) == (k[o2 + 16 >> 2] | 0)) { x = 0; ta(k[(k[o2 >> 2] | 0) + 40 >> 2] | 0, o2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 24; break b; } } else k[h2 >> 2] = c2 + 1; i2[g2 >> 0] = 1; w2 = i2[Z2 >> 0] | 0; s2 = ((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[K2 >> 2] | 0) >>> 0 > 1 ? Z2 : s2; break c; } e2 = k[a2 >> 2] | 0; p2 = k[e2 + 12 >> 2] | 0; c2 = k[e2 + 16 >> 2] | 0; o2 = (p2 | 0) == (c2 | 0); if (!d2) { if (o2) { x = 0; o2 = ta(k[(k[e2 >> 2] | 0) + 36 >> 2] | 0, e2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 24; break b; } h2 = i2[_2 >> 0] | 0; } else o2 = l[p2 >> 0] | 0; if ((o2 & 255) << 24 >> 24 != (i2[((h2 & 1) == 0 ? O2 : k[N2 >> 2] | 0) >> 0] | 0)) { i2[g2 >> 0] = 1; break c; } o2 = k[a2 >> 2] | 0; h2 = o2 + 12 | 0; c2 = k[h2 >> 2] | 0; if ((c2 | 0) == (k[o2 + 16 >> 2] | 0)) { x = 0; ta(k[(k[o2 >> 2] | 0) + 40 >> 2] | 0, o2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 24; break b; } } else k[h2 >> 2] = c2 + 1; w2 = i2[_2 >> 0] | 0; s2 = ((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[J2 >> 2] | 0) >>> 0 > 1 ? _2 : s2; break c; } if (o2) { x = 0; o2 = ta(k[(k[e2 >> 2] | 0) + 36 >> 2] | 0, e2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 24; break b; } c2 = k[a2 >> 2] | 0; h2 = i2[_2 >> 0] | 0; e2 = c2; p2 = k[c2 + 12 >> 2] | 0; c2 = k[c2 + 16 >> 2] | 0; } else o2 = l[p2 >> 0] | 0; d2 = e2 + 12 | 0; c2 = (p2 | 0) == (c2 | 0); if ((o2 & 255) << 24 >> 24 == (i2[((h2 & 1) == 0 ? O2 : k[N2 >> 2] | 0) >> 0] | 0)) { if (c2) { x = 0; ta(k[(k[e2 >> 2] | 0) + 40 >> 2] | 0, e2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 24; break b; } } else k[d2 >> 2] = p2 + 1; w2 = i2[_2 >> 0] | 0; s2 = ((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[J2 >> 2] | 0) >>> 0 > 1 ? _2 : s2; break c; } if (c2) { x = 0; o2 = ta(k[(k[e2 >> 2] | 0) + 36 >> 2] | 0, e2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 24; break b; } } else o2 = l[p2 >> 0] | 0; if ((o2 & 255) << 24 >> 24 != (i2[((i2[Z2 >> 0] & 1) == 0 ? M2 : k[L2 >> 2] | 0) >> 0] | 0)) { W2 = 104; break b; } o2 = k[a2 >> 2] | 0; h2 = o2 + 12 | 0; c2 = k[h2 >> 2] | 0; if ((c2 | 0) == (k[o2 + 16 >> 2] | 0)) { x = 0; ta(k[(k[o2 >> 2] | 0) + 40 >> 2] | 0, o2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 24; break b; } } else k[h2 >> 2] = c2 + 1; i2[g2 >> 0] = 1; w2 = i2[Z2 >> 0] | 0; s2 = ((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[K2 >> 2] | 0) >>> 0 > 1 ? Z2 : s2; } break; } case 2: { if (!(y2 >>> 0 < 2 | (s2 | 0) != 0) ? !(z2 | (y2 | 0) == 2 & (i2[G2 >> 0] | 0) != 0) : 0) { s2 = 0; break c; } u2 = i2[aa2 >> 0] | 0; o2 = (u2 & 1) == 0; v2 = k[A2 >> 2] | 0; c2 = o2 ? B2 : v2; q2 = c2; d: do if ((y2 | 0) != 0 ? (l[U2 + (y2 + -1) >> 0] | 0) < 2 : 0) { p2 = o2 ? (u2 & 255) >>> 1 : k[C2 >> 2] | 0; d2 = c2 + p2 | 0; e2 = k[I2 >> 2] | 0; e: do if (!p2) h2 = q2; else { p2 = c2; h2 = q2; do { o2 = i2[p2 >> 0] | 0; if (o2 << 24 >> 24 <= -1) break e; if (!(j[e2 + (o2 << 24 >> 24 << 1) >> 1] & 8192)) break e; p2 = p2 + 1 | 0; h2 = p2; } while ((p2 | 0) != (d2 | 0)); } while (0); d2 = h2 - q2 | 0; e2 = i2[$2 >> 0] | 0; o2 = (e2 & 1) == 0; e2 = o2 ? (e2 & 255) >>> 1 : k[D2 >> 2] | 0; if (e2 >>> 0 >= d2 >>> 0) { o2 = o2 ? F2 : k[E2 >> 2] | 0; p2 = o2 + e2 | 0; if ((h2 | 0) != (q2 | 0)) { o2 = o2 + (e2 - d2) | 0; while (1) { if ((i2[o2 >> 0] | 0) != (i2[c2 >> 0] | 0)) { h2 = q2; break d; } o2 = o2 + 1 | 0; if ((o2 | 0) == (p2 | 0)) break; else c2 = c2 + 1 | 0; } } } else h2 = q2; } else h2 = q2; while (0); o2 = (u2 & 1) == 0; o2 = (o2 ? B2 : v2) + (o2 ? (u2 & 255) >>> 1 : k[C2 >> 2] | 0) | 0; f: do if ((h2 | 0) != (o2 | 0)) { e2 = w2; d2 = w2; o2 = h2; while (1) { h2 = k[a2 >> 2] | 0; do if (h2) { if ((k[h2 + 12 >> 2] | 0) == (k[h2 + 16 >> 2] | 0)) { x = 0; h2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 21; break b; } if ((h2 | 0) == -1) { k[a2 >> 2] = 0; h2 = 0; break; } else { h2 = k[a2 >> 2] | 0; break; } } } else h2 = 0; while (0); c2 = (h2 | 0) == 0; do if (d2) { if ((k[d2 + 12 >> 2] | 0) != (k[d2 + 16 >> 2] | 0)) if (c2) { h2 = e2; p2 = d2; break; } else break f; x = 0; h2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 21; break b; } if ((h2 | 0) != -1) if (c2 ^ (e2 | 0) == 0) { h2 = e2; p2 = e2; break; } else break f; else { k[b2 >> 2] = 0; h2 = 0; W2 = 131; break; } } else { h2 = e2; W2 = 131; } while (0); if ((W2 | 0) == 131) { W2 = 0; if (c2) break f; else p2 = 0; } c2 = k[a2 >> 2] | 0; d2 = k[c2 + 12 >> 2] | 0; if ((d2 | 0) == (k[c2 + 16 >> 2] | 0)) { x = 0; c2 = ta(k[(k[c2 >> 2] | 0) + 36 >> 2] | 0, c2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 21; break b; } } else c2 = l[d2 >> 0] | 0; if ((c2 & 255) << 24 >> 24 != (i2[o2 >> 0] | 0)) break f; c2 = k[a2 >> 2] | 0; d2 = c2 + 12 | 0; e2 = k[d2 >> 2] | 0; if ((e2 | 0) == (k[c2 + 16 >> 2] | 0)) { x = 0; ta(k[(k[c2 >> 2] | 0) + 40 >> 2] | 0, c2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 21; break b; } } else k[d2 >> 2] = e2 + 1; o2 = o2 + 1 | 0; c2 = i2[aa2 >> 0] | 0; w2 = (c2 & 1) == 0; c2 = (w2 ? B2 : k[A2 >> 2] | 0) + (w2 ? (c2 & 255) >>> 1 : k[C2 >> 2] | 0) | 0; if ((o2 | 0) == (c2 | 0)) { o2 = c2; break; } else { e2 = h2; d2 = p2; } } } while (0); if (z2 ? (w2 = i2[aa2 >> 0] | 0, v2 = (w2 & 1) == 0, (o2 | 0) != ((v2 ? B2 : k[A2 >> 2] | 0) + (v2 ? (w2 & 255) >>> 1 : k[C2 >> 2] | 0) | 0)) : 0) { W2 = 143; break b; } break; } case 4: { q2 = i2[V2 >> 0] | 0; h2 = w2; e2 = w2; o2 = 0; g: while (1) { c2 = k[a2 >> 2] | 0; do if (c2) { if ((k[c2 + 12 >> 2] | 0) == (k[c2 + 16 >> 2] | 0)) { x = 0; c2 = ta(k[(k[c2 >> 2] | 0) + 36 >> 2] | 0, c2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 23; break b; } if ((c2 | 0) == -1) { k[a2 >> 2] = 0; c2 = 0; break; } else { c2 = k[a2 >> 2] | 0; break; } } } else c2 = 0; while (0); d2 = (c2 | 0) == 0; do if (e2) { if ((k[e2 + 12 >> 2] | 0) != (k[e2 + 16 >> 2] | 0)) if (d2) { p2 = h2; break; } else { d2 = h2; break g; } x = 0; c2 = ta(k[(k[e2 >> 2] | 0) + 36 >> 2] | 0, e2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 23; break b; } if ((c2 | 0) != -1) if (d2 ^ (h2 | 0) == 0) { p2 = h2; e2 = h2; break; } else { d2 = h2; break g; } else { k[b2 >> 2] = 0; h2 = 0; W2 = 156; break; } } else W2 = 156; while (0); if ((W2 | 0) == 156) { W2 = 0; if (d2) { d2 = h2; break; } else { p2 = h2; e2 = 0; } } h2 = k[a2 >> 2] | 0; c2 = k[h2 + 12 >> 2] | 0; if ((c2 | 0) == (k[h2 + 16 >> 2] | 0)) { x = 0; h2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 23; break b; } } else h2 = l[c2 >> 0] | 0; c2 = h2 & 255; if (c2 << 24 >> 24 > -1 ? (j[(k[I2 >> 2] | 0) + (h2 << 24 >> 24 << 1) >> 1] & 2048) != 0 : 0) { h2 = k[n2 >> 2] | 0; if ((h2 | 0) == (k[P2 >> 2] | 0)) { x = 0; Fa(12, m2 | 0, n2 | 0, P2 | 0); w2 = x; x = 0; if (w2 & 1) { W2 = 23; break b; } h2 = k[n2 >> 2] | 0; } k[n2 >> 2] = h2 + 1; i2[h2 >> 0] = c2; o2 = o2 + 1 | 0; } else { w2 = i2[Y2 >> 0] | 0; if (!(c2 << 24 >> 24 == q2 << 24 >> 24 & ((o2 | 0) != 0 ? (((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[H2 >> 2] | 0) | 0) != 0 : 0))) { d2 = p2; break; } if ((t2 | 0) == (k[S2 >> 2] | 0)) { x = 0; Fa(13, da2 | 0, T2 | 0, S2 | 0); w2 = x; x = 0; if (w2 & 1) { W2 = 23; break b; } t2 = k[T2 >> 2] | 0; } w2 = t2 + 4 | 0; k[T2 >> 2] = w2; k[t2 >> 2] = o2; t2 = w2; o2 = 0; } h2 = k[a2 >> 2] | 0; c2 = h2 + 12 | 0; d2 = k[c2 >> 2] | 0; if ((d2 | 0) == (k[h2 + 16 >> 2] | 0)) { x = 0; ta(k[(k[h2 >> 2] | 0) + 40 >> 2] | 0, h2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 23; break b; } else { h2 = p2; continue; } } else { k[c2 >> 2] = d2 + 1; h2 = p2; continue; } } if ((o2 | 0) != 0 ? (k[da2 >> 2] | 0) != (t2 | 0) : 0) { if ((t2 | 0) == (k[S2 >> 2] | 0)) { x = 0; Fa(13, da2 | 0, T2 | 0, S2 | 0); w2 = x; x = 0; if (w2 & 1) { W2 = 24; break b; } t2 = k[T2 >> 2] | 0; } w2 = t2 + 4 | 0; k[T2 >> 2] = w2; k[t2 >> 2] = o2; t2 = w2; } p2 = k[R2 >> 2] | 0; if ((p2 | 0) > 0) { o2 = k[a2 >> 2] | 0; do if (o2) { if ((k[o2 + 12 >> 2] | 0) == (k[o2 + 16 >> 2] | 0)) { x = 0; o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 24; break b; } if ((o2 | 0) == -1) { k[a2 >> 2] = 0; o2 = 0; break; } else { o2 = k[a2 >> 2] | 0; break; } } } else o2 = 0; while (0); o2 = (o2 | 0) == 0; do if (d2) { if ((k[d2 + 12 >> 2] | 0) == (k[d2 + 16 >> 2] | 0)) { x = 0; h2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 24; break b; } if ((h2 | 0) == -1) { k[b2 >> 2] = 0; W2 = 193; break; } } if (!o2) { W2 = 198; break b; } } else W2 = 193; while (0); if ((W2 | 0) == 193) { W2 = 0; if (o2) { W2 = 198; break b; } else d2 = 0; } o2 = k[a2 >> 2] | 0; h2 = k[o2 + 12 >> 2] | 0; if ((h2 | 0) == (k[o2 + 16 >> 2] | 0)) { x = 0; o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 24; break b; } } else o2 = l[h2 >> 0] | 0; if ((o2 & 255) << 24 >> 24 != (i2[Q2 >> 0] | 0)) { W2 = 198; break b; } o2 = k[a2 >> 2] | 0; h2 = o2 + 12 | 0; c2 = k[h2 >> 2] | 0; if ((c2 | 0) == (k[o2 + 16 >> 2] | 0)) { x = 0; ta(k[(k[o2 >> 2] | 0) + 40 >> 2] | 0, o2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 24; break b; } } else k[h2 >> 2] = c2 + 1; if ((p2 | 0) > 0) { e2 = d2; c2 = d2; q2 = p2; while (1) { o2 = k[a2 >> 2] | 0; do if (o2) { if ((k[o2 + 12 >> 2] | 0) == (k[o2 + 16 >> 2] | 0)) { x = 0; o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 22; break b; } if ((o2 | 0) == -1) { k[a2 >> 2] = 0; o2 = 0; break; } else { o2 = k[a2 >> 2] | 0; break; } } } else o2 = 0; while (0); h2 = (o2 | 0) == 0; do if (c2) { if ((k[c2 + 12 >> 2] | 0) != (k[c2 + 16 >> 2] | 0)) if (h2) { o2 = e2; p2 = c2; break; } else { W2 = 222; break b; } x = 0; o2 = ta(k[(k[c2 >> 2] | 0) + 36 >> 2] | 0, c2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 22; break b; } if ((o2 | 0) != -1) if (h2 ^ (e2 | 0) == 0) { o2 = e2; p2 = e2; break; } else { W2 = 222; break b; } else { k[b2 >> 2] = 0; o2 = 0; W2 = 215; break; } } else { o2 = e2; W2 = 215; } while (0); if ((W2 | 0) == 215) { W2 = 0; if (h2) { W2 = 222; break b; } else p2 = 0; } h2 = k[a2 >> 2] | 0; c2 = k[h2 + 12 >> 2] | 0; if ((c2 | 0) == (k[h2 + 16 >> 2] | 0)) { x = 0; h2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 22; break b; } } else h2 = l[c2 >> 0] | 0; if ((h2 & 255) << 24 >> 24 <= -1) { W2 = 222; break b; } if (!(j[(k[I2 >> 2] | 0) + (h2 << 24 >> 24 << 1) >> 1] & 2048)) { W2 = 222; break b; } if ((k[n2 >> 2] | 0) == (k[P2 >> 2] | 0) ? (x = 0, Fa(12, m2 | 0, n2 | 0, P2 | 0), w2 = x, x = 0, w2 & 1) : 0) { W2 = 22; break b; } h2 = k[a2 >> 2] | 0; c2 = k[h2 + 12 >> 2] | 0; if ((c2 | 0) == (k[h2 + 16 >> 2] | 0)) { x = 0; h2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 22; break b; } } else h2 = l[c2 >> 0] | 0; c2 = k[n2 >> 2] | 0; k[n2 >> 2] = c2 + 1; i2[c2 >> 0] = h2; h2 = q2; q2 = q2 + -1 | 0; k[R2 >> 2] = q2; c2 = k[a2 >> 2] | 0; d2 = c2 + 12 | 0; e2 = k[d2 >> 2] | 0; if ((e2 | 0) == (k[c2 + 16 >> 2] | 0)) { x = 0; ta(k[(k[c2 >> 2] | 0) + 40 >> 2] | 0, c2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 22; break b; } } else k[d2 >> 2] = e2 + 1; if ((h2 | 0) <= 1) break; else { e2 = o2; c2 = p2; } } } } if ((k[n2 >> 2] | 0) == (k[m2 >> 2] | 0)) { W2 = 233; break b; } break; } default: { } } while (0); h: do if ((W2 | 0) == 42) while (1) { W2 = 0; h2 = k[a2 >> 2] | 0; do if (h2) { if ((k[h2 + 12 >> 2] | 0) == (k[h2 + 16 >> 2] | 0)) { x = 0; h2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 20; break b; } if ((h2 | 0) == -1) { k[a2 >> 2] = 0; h2 = 0; break; } else { h2 = k[a2 >> 2] | 0; break; } } } else h2 = 0; while (0); c2 = (h2 | 0) == 0; do if (d2) { if ((k[d2 + 12 >> 2] | 0) != (k[d2 + 16 >> 2] | 0)) if (c2) { e2 = o2; break; } else break h; x = 0; h2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 20; break b; } if ((h2 | 0) != -1) if (c2 ^ (o2 | 0) == 0) { e2 = o2; d2 = o2; break; } else break h; else { k[b2 >> 2] = 0; o2 = 0; W2 = 54; break; } } else W2 = 54; while (0); if ((W2 | 0) == 54) { W2 = 0; if (c2) break h; else { e2 = o2; d2 = 0; } } o2 = k[a2 >> 2] | 0; h2 = k[o2 + 12 >> 2] | 0; if ((h2 | 0) == (k[o2 + 16 >> 2] | 0)) { x = 0; o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { W2 = 20; break b; } } else o2 = l[h2 >> 0] | 0; if ((o2 & 255) << 24 >> 24 <= -1) break h; if (!(j[(k[I2 >> 2] | 0) + (o2 << 24 >> 24 << 1) >> 1] & 8192)) break h; o2 = k[a2 >> 2] | 0; h2 = o2 + 12 | 0; c2 = k[h2 >> 2] | 0; if ((c2 | 0) == (k[o2 + 16 >> 2] | 0)) { x = 0; o2 = ta(k[(k[o2 >> 2] | 0) + 40 >> 2] | 0, o2 | 0) | 0; W2 = x; x = 0; if (W2 & 1) { W2 = 20; break b; } } else { k[h2 >> 2] = c2 + 1; o2 = l[c2 >> 0] | 0; } x = 0; ra(67, $2 | 0, o2 & 255 | 0); W2 = x; x = 0; if (W2 & 1) { W2 = 20; break b; } else { o2 = e2; W2 = 42; } } while (0); y2 = y2 + 1 | 0; if (y2 >>> 0 >= 4) { W2 = 235; break; } } i: switch (W2 | 0) { case 20: { h2 = Wa() | 0; break a; } case 21: { h2 = Wa() | 0; break a; } case 22: { h2 = Wa() | 0; break a; } case 23: { h2 = Wa() | 0; break a; } case 24: { h2 = Wa() | 0; break a; } case 40: { k[f2 >> 2] = k[f2 >> 2] | 4; h2 = 0; break; } case 104: { k[f2 >> 2] = k[f2 >> 2] | 4; h2 = 0; break; } case 143: { k[f2 >> 2] = k[f2 >> 2] | 4; h2 = 0; break; } case 198: { k[f2 >> 2] = k[f2 >> 2] | 4; h2 = 0; break; } case 222: { k[f2 >> 2] = k[f2 >> 2] | 4; h2 = 0; break; } case 233: { k[f2 >> 2] = k[f2 >> 2] | 4; h2 = 0; break; } case 235: { j: do if (s2) { e2 = s2 + 1 | 0; p2 = s2 + 8 | 0; q2 = s2 + 4 | 0; c2 = 1; k: while (1) { o2 = i2[s2 >> 0] | 0; if (!(o2 & 1)) o2 = (o2 & 255) >>> 1; else o2 = k[q2 >> 2] | 0; if (c2 >>> 0 >= o2 >>> 0) break j; o2 = k[a2 >> 2] | 0; do if (o2) { if ((k[o2 + 12 >> 2] | 0) == (k[o2 + 16 >> 2] | 0)) { x = 0; o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; n2 = x; x = 0; if (n2 & 1) { W2 = 19; break k; } if ((o2 | 0) == -1) { k[a2 >> 2] = 0; o2 = 0; break; } else { o2 = k[a2 >> 2] | 0; break; } } } else o2 = 0; while (0); h2 = (o2 | 0) == 0; o2 = k[b2 >> 2] | 0; do if (o2) { if ((k[o2 + 12 >> 2] | 0) == (k[o2 + 16 >> 2] | 0)) { x = 0; o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; n2 = x; x = 0; if (n2 & 1) { W2 = 19; break k; } if ((o2 | 0) == -1) { k[b2 >> 2] = 0; W2 = 253; break; } } if (!h2) { W2 = 260; break k; } } else W2 = 253; while (0); if ((W2 | 0) == 253 ? (W2 = 0, h2) : 0) { W2 = 260; break; } o2 = k[a2 >> 2] | 0; h2 = k[o2 + 12 >> 2] | 0; if ((h2 | 0) == (k[o2 + 16 >> 2] | 0)) { x = 0; o2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; n2 = x; x = 0; if (n2 & 1) { W2 = 19; break; } } else o2 = l[h2 >> 0] | 0; if (!(i2[s2 >> 0] & 1)) h2 = e2; else h2 = k[p2 >> 2] | 0; if ((o2 & 255) << 24 >> 24 != (i2[h2 + c2 >> 0] | 0)) { W2 = 260; break; } o2 = c2 + 1 | 0; h2 = k[a2 >> 2] | 0; c2 = h2 + 12 | 0; d2 = k[c2 >> 2] | 0; if ((d2 | 0) == (k[h2 + 16 >> 2] | 0)) { x = 0; ta(k[(k[h2 >> 2] | 0) + 40 >> 2] | 0, h2 | 0) | 0; n2 = x; x = 0; if (n2 & 1) { W2 = 19; break; } else { c2 = o2; continue; } } else { k[c2 >> 2] = d2 + 1; c2 = o2; continue; } } if ((W2 | 0) == 19) { h2 = Wa() | 0; break a; } else if ((W2 | 0) == 260) { k[f2 >> 2] = k[f2 >> 2] | 4; h2 = 0; break i; } } while (0); o2 = k[da2 >> 2] | 0; if ((o2 | 0) != (t2 | 0) ? (k[X2 >> 2] = 0, cs(Y2, o2, t2, X2), (k[X2 >> 2] | 0) != 0) : 0) { k[f2 >> 2] = k[f2 >> 2] | 4; h2 = 0; } else h2 = 1; break; } } Sm($2); Sm(Z2); Sm(_2); Sm(aa2); Sm(Y2); o2 = k[da2 >> 2] | 0; k[da2 >> 2] = 0; if ((o2 | 0) != 0 ? (x = 0, qa(k[ca2 >> 2] | 0, o2 | 0), da2 = x, x = 0, da2 & 1) : 0) { da2 = Wa(0) | 0; oc(da2); } r = ba2; return h2 | 0; } while (0); Sm($2); Sm(Z2); Sm(_2); Sm(aa2); Sm(Y2); o2 = k[da2 >> 2] | 0; k[da2 >> 2] = 0; if ((o2 | 0) != 0 ? (x = 0, qa(k[ca2 >> 2] | 0, o2 | 0), da2 = x, x = 0, da2 & 1) : 0) { da2 = Wa(0) | 0; oc(da2); } fb(h2 | 0); return 0; } function $r(a2) { a2 = a2 | 0; var b2 = 0; b2 = Va(8) | 0; x = 0; ra(90, b2 | 0, a2 | 0); a2 = x; x = 0; if (a2 & 1) { a2 = Wa() | 0; Ua(b2 | 0); fb(a2 | 0); } else ub(b2 | 0, 616, 80); } function as(a2, b2, c2, d2, e2, f2, g2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; var h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0; v2 = r; r = r + 144 | 0; h2 = v2 + 24 | 0; a2 = v2 + 32 | 0; w2 = v2 + 16 | 0; q2 = v2 + 8 | 0; n2 = v2 + 4 | 0; o2 = v2 + 28 | 0; j2 = v2; k[w2 >> 2] = a2; A2 = w2 + 4 | 0; k[A2 >> 2] = 189; l2 = a2 + 100 | 0; x = 0; u2 = ta(68, e2 | 0) | 0; m2 = x; x = 0; if (!(m2 & 1)) { k[n2 >> 2] = u2; x = 0; m2 = Aa(37, n2 | 0, 44220) | 0; a2 = x; x = 0; a: do if (!(a2 & 1) ? (i2[o2 >> 0] = 0, s2 = k[c2 >> 2] | 0, k[j2 >> 2] = s2, p2 = k[e2 + 4 >> 2] | 0, t2 = s2, x = 0, k[h2 >> 2] = k[j2 >> 2], p2 = ua(1, b2 | 0, h2 | 0, d2 | 0, n2 | 0, p2 | 0, f2 | 0, o2 | 0, m2 | 0, w2 | 0, q2 | 0, l2 | 0) | 0, e2 = x, x = 0, !(e2 & 1)) : 0) { if (p2) { if (!(i2[g2 >> 0] & 1)) { i2[g2 + 1 >> 0] = 0; i2[g2 >> 0] = 0; } else { i2[k[g2 + 8 >> 2] >> 0] = 0; k[g2 + 4 >> 2] = 0; } if (i2[o2 >> 0] | 0) { x = 0; a2 = Aa(k[(k[m2 >> 2] | 0) + 28 >> 2] | 0, m2 | 0, 45) | 0; e2 = x; x = 0; if (e2 & 1) break; x = 0; ra(67, g2 | 0, a2 | 0); e2 = x; x = 0; if (e2 & 1) break; } x = 0; j2 = Aa(k[(k[m2 >> 2] | 0) + 28 >> 2] | 0, m2 | 0, 48) | 0; e2 = x; x = 0; if (e2 & 1) break; a2 = k[w2 >> 2] | 0; l2 = k[q2 >> 2] | 0; h2 = l2 + -1 | 0; b: do if (a2 >>> 0 < h2 >>> 0) do { if ((i2[a2 >> 0] | 0) != j2 << 24 >> 24) break b; a2 = a2 + 1 | 0; } while (a2 >>> 0 < h2 >>> 0); while (0); x = 0; va(32, g2 | 0, a2 | 0, l2 | 0) | 0; g2 = x; x = 0; if (g2 & 1) break; } a2 = k[b2 >> 2] | 0; do if (a2) { if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; g2 = x; x = 0; if (g2 & 1) break a; if ((a2 | 0) == -1) { k[b2 >> 2] = 0; a2 = 0; break; } else { a2 = k[b2 >> 2] | 0; break; } } } else a2 = 0; while (0); h2 = (a2 | 0) == 0; do if (s2) { if ((k[t2 + 12 >> 2] | 0) == (k[t2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[s2 >> 2] | 0) + 36 >> 2] | 0, t2 | 0) | 0; t2 = x; x = 0; if (t2 & 1) break a; if ((a2 | 0) == -1) { k[c2 >> 2] = 0; z2 = 29; break; } } if (!h2) z2 = 30; } else z2 = 29; while (0); if ((z2 | 0) == 29 ? h2 : 0) z2 = 30; if ((z2 | 0) == 30) k[f2 >> 2] = k[f2 >> 2] | 2; h2 = k[b2 >> 2] | 0; zm(u2) | 0; a2 = k[w2 >> 2] | 0; k[w2 >> 2] = 0; if ((a2 | 0) != 0 ? (x = 0, qa(k[A2 >> 2] | 0, a2 | 0), A2 = x, x = 0, A2 & 1) : 0) { A2 = Wa(0) | 0; oc(A2); } r = v2; return h2 | 0; } while (0); h2 = Wa() | 0; zm(u2) | 0; a2 = k[w2 >> 2] | 0; k[w2 >> 2] = 0; if (!a2) y2 = h2; else z2 = 36; } else { h2 = Wa() | 0; k[w2 >> 2] = 0; z2 = 36; } if ((z2 | 0) == 36) { x = 0; qa(k[A2 >> 2] | 0, a2 | 0); A2 = x; x = 0; if (A2 & 1) { A2 = Wa(0) | 0; oc(A2); } else y2 = h2; } fb(y2 | 0); return 0; } function bs(a2, b2, c2, d2, e2, f2, g2, h2, j2, l2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; j2 = j2 | 0; l2 = l2 | 0; var m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0; z2 = r; r = r + 112 | 0; m2 = z2 + 100 | 0; n2 = z2 + 88 | 0; o2 = z2 + 76 | 0; p2 = z2 + 64 | 0; q2 = z2 + 52 | 0; s2 = z2 + 48 | 0; t2 = z2 + 36 | 0; u2 = z2 + 24 | 0; v2 = z2 + 12 | 0; w2 = z2; do if (a2) { a2 = Ss(b2, 43828) | 0; Mb[k[(k[a2 >> 2] | 0) + 44 >> 2] & 127](m2, a2); w2 = k[m2 >> 2] | 0; i2[c2 >> 0] = w2; i2[c2 + 1 >> 0] = w2 >> 8; i2[c2 + 2 >> 0] = w2 >> 16; i2[c2 + 3 >> 0] = w2 >> 24; Mb[k[(k[a2 >> 2] | 0) + 32 >> 2] & 127](n2, a2); if (!(i2[j2 >> 0] & 1)) { i2[j2 + 1 >> 0] = 0; i2[j2 >> 0] = 0; } else { i2[k[j2 + 8 >> 2] >> 0] = 0; k[j2 + 4 >> 2] = 0; } x = 0; ra(91, j2 | 0, 0); c2 = x; x = 0; if (c2 & 1) { c2 = Wa(0) | 0; oc(c2); } ; k[j2 >> 2] = k[n2 >> 2]; k[j2 + 4 >> 2] = k[n2 + 4 >> 2]; k[j2 + 8 >> 2] = k[n2 + 8 >> 2]; k[n2 >> 2] = 0; k[n2 + 4 >> 2] = 0; k[n2 + 8 >> 2] = 0; Sm(n2); Mb[k[(k[a2 >> 2] | 0) + 28 >> 2] & 127](o2, a2); if (!(i2[h2 >> 0] & 1)) { i2[h2 + 1 >> 0] = 0; i2[h2 >> 0] = 0; } else { i2[k[h2 + 8 >> 2] >> 0] = 0; k[h2 + 4 >> 2] = 0; } x = 0; ra(91, h2 | 0, 0); c2 = x; x = 0; if (c2 & 1) { c2 = Wa(0) | 0; oc(c2); } ; k[h2 >> 2] = k[o2 >> 2]; k[h2 + 4 >> 2] = k[o2 + 4 >> 2]; k[h2 + 8 >> 2] = k[o2 + 8 >> 2]; k[o2 >> 2] = 0; k[o2 + 4 >> 2] = 0; k[o2 + 8 >> 2] = 0; Sm(o2); h2 = Ob[k[(k[a2 >> 2] | 0) + 12 >> 2] & 127](a2) | 0; i2[d2 >> 0] = h2; h2 = Ob[k[(k[a2 >> 2] | 0) + 16 >> 2] & 127](a2) | 0; i2[e2 >> 0] = h2; Mb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 127](p2, a2); if (!(i2[f2 >> 0] & 1)) { i2[f2 + 1 >> 0] = 0; i2[f2 >> 0] = 0; } else { i2[k[f2 + 8 >> 2] >> 0] = 0; k[f2 + 4 >> 2] = 0; } x = 0; ra(91, f2 | 0, 0); e2 = x; x = 0; if (e2 & 1) { e2 = Wa(0) | 0; oc(e2); } ; k[f2 >> 2] = k[p2 >> 2]; k[f2 + 4 >> 2] = k[p2 + 4 >> 2]; k[f2 + 8 >> 2] = k[p2 + 8 >> 2]; k[p2 >> 2] = 0; k[p2 + 4 >> 2] = 0; k[p2 + 8 >> 2] = 0; Sm(p2); Mb[k[(k[a2 >> 2] | 0) + 24 >> 2] & 127](q2, a2); if (!(i2[g2 >> 0] & 1)) { i2[g2 + 1 >> 0] = 0; i2[g2 >> 0] = 0; } else { i2[k[g2 + 8 >> 2] >> 0] = 0; k[g2 + 4 >> 2] = 0; } x = 0; ra(91, g2 | 0, 0); e2 = x; x = 0; if (e2 & 1) { e2 = Wa(0) | 0; oc(e2); } else { k[g2 >> 2] = k[q2 >> 2]; k[g2 + 4 >> 2] = k[q2 + 4 >> 2]; k[g2 + 8 >> 2] = k[q2 + 8 >> 2]; k[q2 >> 2] = 0; k[q2 + 4 >> 2] = 0; k[q2 + 8 >> 2] = 0; Sm(q2); y2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; break; } } else { a2 = Ss(b2, 43764) | 0; Mb[k[(k[a2 >> 2] | 0) + 44 >> 2] & 127](s2, a2); s2 = k[s2 >> 2] | 0; i2[c2 >> 0] = s2; i2[c2 + 1 >> 0] = s2 >> 8; i2[c2 + 2 >> 0] = s2 >> 16; i2[c2 + 3 >> 0] = s2 >> 24; Mb[k[(k[a2 >> 2] | 0) + 32 >> 2] & 127](t2, a2); if (!(i2[j2 >> 0] & 1)) { i2[j2 + 1 >> 0] = 0; i2[j2 >> 0] = 0; } else { i2[k[j2 + 8 >> 2] >> 0] = 0; k[j2 + 4 >> 2] = 0; } x = 0; ra(91, j2 | 0, 0); c2 = x; x = 0; if (c2 & 1) { c2 = Wa(0) | 0; oc(c2); } ; k[j2 >> 2] = k[t2 >> 2]; k[j2 + 4 >> 2] = k[t2 + 4 >> 2]; k[j2 + 8 >> 2] = k[t2 + 8 >> 2]; k[t2 >> 2] = 0; k[t2 + 4 >> 2] = 0; k[t2 + 8 >> 2] = 0; Sm(t2); Mb[k[(k[a2 >> 2] | 0) + 28 >> 2] & 127](u2, a2); if (!(i2[h2 >> 0] & 1)) { i2[h2 + 1 >> 0] = 0; i2[h2 >> 0] = 0; } else { i2[k[h2 + 8 >> 2] >> 0] = 0; k[h2 + 4 >> 2] = 0; } x = 0; ra(91, h2 | 0, 0); c2 = x; x = 0; if (c2 & 1) { c2 = Wa(0) | 0; oc(c2); } ; k[h2 >> 2] = k[u2 >> 2]; k[h2 + 4 >> 2] = k[u2 + 4 >> 2]; k[h2 + 8 >> 2] = k[u2 + 8 >> 2]; k[u2 >> 2] = 0; k[u2 + 4 >> 2] = 0; k[u2 + 8 >> 2] = 0; Sm(u2); h2 = Ob[k[(k[a2 >> 2] | 0) + 12 >> 2] & 127](a2) | 0; i2[d2 >> 0] = h2; h2 = Ob[k[(k[a2 >> 2] | 0) + 16 >> 2] & 127](a2) | 0; i2[e2 >> 0] = h2; Mb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 127](v2, a2); if (!(i2[f2 >> 0] & 1)) { i2[f2 + 1 >> 0] = 0; i2[f2 >> 0] = 0; } else { i2[k[f2 + 8 >> 2] >> 0] = 0; k[f2 + 4 >> 2] = 0; } x = 0; ra(91, f2 | 0, 0); e2 = x; x = 0; if (e2 & 1) { e2 = Wa(0) | 0; oc(e2); } ; k[f2 >> 2] = k[v2 >> 2]; k[f2 + 4 >> 2] = k[v2 + 4 >> 2]; k[f2 + 8 >> 2] = k[v2 + 8 >> 2]; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; Sm(v2); Mb[k[(k[a2 >> 2] | 0) + 24 >> 2] & 127](w2, a2); if (!(i2[g2 >> 0] & 1)) { i2[g2 + 1 >> 0] = 0; i2[g2 >> 0] = 0; } else { i2[k[g2 + 8 >> 2] >> 0] = 0; k[g2 + 4 >> 2] = 0; } x = 0; ra(91, g2 | 0, 0); e2 = x; x = 0; if (e2 & 1) { e2 = Wa(0) | 0; oc(e2); } else { k[g2 >> 2] = k[w2 >> 2]; k[g2 + 4 >> 2] = k[w2 + 4 >> 2]; k[g2 + 8 >> 2] = k[w2 + 8 >> 2]; k[w2 >> 2] = 0; k[w2 + 4 >> 2] = 0; k[w2 + 8 >> 2] = 0; Sm(w2); y2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; break; } } while (0); k[l2 >> 2] = y2; r = z2; return; } function cs(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0; e2 = i2[a2 >> 0] | 0; g2 = a2 + 4 | 0; f2 = k[g2 >> 2] | 0; a: do if (((e2 & 1) == 0 ? (e2 & 255) >>> 1 : f2) | 0) { if ((b2 | 0) != (c2 | 0)) { e2 = c2 + -4 | 0; if (e2 >>> 0 > b2 >>> 0) { f2 = b2; do { h2 = k[f2 >> 2] | 0; k[f2 >> 2] = k[e2 >> 2]; k[e2 >> 2] = h2; f2 = f2 + 4 | 0; e2 = e2 + -4 | 0; } while (f2 >>> 0 < e2 >>> 0); } e2 = i2[a2 >> 0] | 0; f2 = k[g2 >> 2] | 0; } h2 = (e2 & 1) == 0; g2 = h2 ? a2 + 1 | 0 : k[a2 + 8 >> 2] | 0; c2 = c2 + -4 | 0; a2 = g2 + (h2 ? (e2 & 255) >>> 1 : f2) | 0; f2 = i2[g2 >> 0] | 0; e2 = f2 << 24 >> 24 < 1 | f2 << 24 >> 24 == 127; b: do if (c2 >>> 0 > b2 >>> 0) { while (1) { if (!e2 ? (f2 << 24 >> 24 | 0) != (k[b2 >> 2] | 0) : 0) break; g2 = (a2 - g2 | 0) > 1 ? g2 + 1 | 0 : g2; b2 = b2 + 4 | 0; f2 = i2[g2 >> 0] | 0; e2 = f2 << 24 >> 24 < 1 | f2 << 24 >> 24 == 127; if (b2 >>> 0 >= c2 >>> 0) break b; } k[d2 >> 2] = 4; break a; } while (0); if (!e2 ? ((k[c2 >> 2] | 0) + -1 | 0) >>> 0 >= f2 << 24 >> 24 >>> 0 : 0) k[d2 >> 2] = 4; } while (0); return; } function ds(a2) { a2 = a2 | 0; return; } function es(a2) { a2 = a2 | 0; mj(a2); return; } function fs(a2, b2, c2, d2, e2, f2, g2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; var h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0; B2 = r; r = r + 576 | 0; w2 = B2 + 424 | 0; A2 = B2; a2 = B2 + 24 | 0; D2 = B2 + 16 | 0; y2 = B2 + 12 | 0; C2 = B2 + 8 | 0; n2 = B2 + 464 | 0; j2 = B2 + 4 | 0; z2 = B2 + 468 | 0; k[D2 >> 2] = a2; F2 = D2 + 4 | 0; k[F2 >> 2] = 189; l2 = a2 + 400 | 0; x = 0; h2 = ta(68, e2 | 0) | 0; v2 = x; x = 0; if (!(v2 & 1)) { k[C2 >> 2] = h2; x = 0; a2 = Aa(37, C2 | 0, 44212) | 0; v2 = x; x = 0; a: do if (!(v2 & 1) ? (i2[n2 >> 0] = 0, k[j2 >> 2] = k[c2 >> 2], m2 = k[e2 + 4 >> 2] | 0, x = 0, k[w2 >> 2] = k[j2 >> 2], m2 = ua(2, b2 | 0, w2 | 0, d2 | 0, C2 | 0, m2 | 0, f2 | 0, n2 | 0, a2 | 0, D2 | 0, y2 | 0, l2 | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { b: do if (m2) { x = 0; Ea(k[(k[a2 >> 2] | 0) + 48 >> 2] | 0, a2 | 0, 59007, 59017, w2 | 0) | 0; v2 = x; x = 0; if (v2 & 1) { G2 = 10; break a; } j2 = k[y2 >> 2] | 0; l2 = k[D2 >> 2] | 0; a2 = j2 - l2 | 0; if ((a2 | 0) > 392) { a2 = Pl((a2 >> 2) + 2 | 0) | 0; h2 = a2; if (!a2) { x = 0; Ga(6); v2 = x; x = 0; if (!(v2 & 1)) { a2 = 0; G2 = 13; } } else G2 = 13; } else { h2 = 0; a2 = z2; G2 = 13; } do if ((G2 | 0) == 13) { if (i2[n2 >> 0] | 0) { i2[a2 >> 0] = 45; a2 = a2 + 1 | 0; } u2 = w2 + 40 | 0; v2 = w2; if (l2 >>> 0 < j2 >>> 0) { m2 = w2 + 4 | 0; d2 = m2 + 4 | 0; e2 = d2 + 4 | 0; n2 = e2 + 4 | 0; o2 = n2 + 4 | 0; p2 = o2 + 4 | 0; q2 = p2 + 4 | 0; s2 = q2 + 4 | 0; t2 = s2 + 4 | 0; do { j2 = k[l2 >> 2] | 0; do if ((k[w2 >> 2] | 0) != (j2 | 0)) if ((k[m2 >> 2] | 0) != (j2 | 0)) if ((k[d2 >> 2] | 0) != (j2 | 0)) if ((k[e2 >> 2] | 0) != (j2 | 0)) if ((k[n2 >> 2] | 0) == (j2 | 0)) j2 = n2; else { if ((k[o2 >> 2] | 0) == (j2 | 0)) { j2 = o2; break; } if ((k[p2 >> 2] | 0) == (j2 | 0)) { j2 = p2; break; } if ((k[q2 >> 2] | 0) == (j2 | 0)) { j2 = q2; break; } if ((k[s2 >> 2] | 0) == (j2 | 0)) { j2 = s2; break; } j2 = (k[t2 >> 2] | 0) == (j2 | 0) ? t2 : u2; } else j2 = e2; else j2 = d2; else j2 = m2; else j2 = w2; while (0); i2[a2 >> 0] = i2[59007 + (j2 - v2 >> 2) >> 0] | 0; l2 = l2 + 4 | 0; a2 = a2 + 1 | 0; } while (l2 >>> 0 < (k[y2 >> 2] | 0) >>> 0); } i2[a2 >> 0] = 0; k[A2 >> 2] = g2; if ((jl(z2, 58987, A2) | 0) != 1 ? (x = 0, qa(190, 58991), g2 = x, x = 0, g2 & 1) : 0) break; if (h2) Ql(h2); break b; } while (0); a2 = Wa() | 0; if (!h2) { j2 = a2; h2 = D2; break a; } Ql(h2); j2 = a2; h2 = D2; break a; } while (0); a2 = k[b2 >> 2] | 0; do if (a2) { h2 = k[a2 + 12 >> 2] | 0; if ((h2 | 0) == (k[a2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; g2 = x; x = 0; if (g2 & 1) { G2 = 10; break a; } } else a2 = k[h2 >> 2] | 0; if ((a2 | 0) == -1) { k[b2 >> 2] = 0; j2 = 1; break; } else { j2 = (k[b2 >> 2] | 0) == 0; break; } } else j2 = 1; while (0); a2 = k[c2 >> 2] | 0; do if (a2) { h2 = k[a2 + 12 >> 2] | 0; if ((h2 | 0) == (k[a2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; g2 = x; x = 0; if (g2 & 1) { G2 = 10; break a; } } else a2 = k[h2 >> 2] | 0; if ((a2 | 0) != -1) if (j2) break; else { G2 = 40; break; } else { k[c2 >> 2] = 0; G2 = 38; break; } } else G2 = 38; while (0); if ((G2 | 0) == 38 ? j2 : 0) G2 = 40; if ((G2 | 0) == 40) k[f2 >> 2] = k[f2 >> 2] | 2; h2 = k[b2 >> 2] | 0; zm(k[C2 >> 2] | 0) | 0; a2 = k[D2 >> 2] | 0; k[D2 >> 2] = 0; if ((a2 | 0) != 0 ? (x = 0, qa(k[F2 >> 2] | 0, a2 | 0), G2 = x, x = 0, G2 & 1) : 0) { G2 = Wa(0) | 0; oc(G2); } r = B2; return h2 | 0; } else G2 = 10; while (0); if ((G2 | 0) == 10) { j2 = Wa() | 0; h2 = D2; } zm(k[C2 >> 2] | 0) | 0; a2 = k[h2 >> 2] | 0; k[h2 >> 2] = 0; if (!a2) E2 = j2; else { h2 = k[F2 >> 2] | 0; G2 = 47; } } else { j2 = Wa() | 0; k[D2 >> 2] = 0; h2 = 189; G2 = 47; } if ((G2 | 0) == 47) { x = 0; qa(h2 | 0, a2 | 0); G2 = x; x = 0; if (G2 & 1) { G2 = Wa(0) | 0; oc(G2); } else E2 = j2; } fb(E2 | 0); return 0; } function gs(a2, b2, c2, d2, e2, f2, g2, h2, j2, m2, n2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; j2 = j2 | 0; m2 = m2 | 0; n2 = n2 | 0; var o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, M2 = 0, N2 = 0, O2 = 0, P2 = 0, Q2 = 0, R2 = 0, S2 = 0, T2 = 0, U2 = 0, V2 = 0, W2 = 0, X2 = 0, Y2 = 0, Z2 = 0, _2 = 0; Y2 = r; r = r + 512 | 0; K2 = Y2 + 96 | 0; o2 = Y2 + 104 | 0; _2 = Y2 + 88 | 0; O2 = Y2 + 80 | 0; N2 = Y2 + 76 | 0; P2 = Y2 + 504 | 0; L2 = Y2 + 72 | 0; Q2 = Y2 + 68 | 0; T2 = Y2 + 56 | 0; X2 = Y2 + 44 | 0; V2 = Y2 + 32 | 0; U2 = Y2 + 20 | 0; W2 = Y2 + 8 | 0; M2 = Y2 + 4 | 0; S2 = Y2; k[K2 >> 2] = n2; k[_2 >> 2] = o2; Z2 = _2 + 4 | 0; k[Z2 >> 2] = 189; k[O2 >> 2] = o2; k[N2 >> 2] = o2 + 400; k[T2 >> 2] = 0; k[T2 + 4 >> 2] = 0; k[T2 + 8 >> 2] = 0; k[X2 >> 2] = 0; k[X2 + 4 >> 2] = 0; k[X2 + 8 >> 2] = 0; k[V2 >> 2] = 0; k[V2 + 4 >> 2] = 0; k[V2 + 8 >> 2] = 0; k[U2 >> 2] = 0; k[U2 + 4 >> 2] = 0; k[U2 + 8 >> 2] = 0; k[W2 >> 2] = 0; k[W2 + 4 >> 2] = 0; k[W2 + 8 >> 2] = 0; x = 0; za(2, c2 | 0, d2 | 0, P2 | 0, L2 | 0, Q2 | 0, T2 | 0, X2 | 0, V2 | 0, U2 | 0, M2 | 0); J2 = x; x = 0; a: do if (J2 & 1) c2 = Wa() | 0; else { k[m2 >> 2] = k[j2 >> 2]; G2 = V2 + 4 | 0; H2 = U2 + 4 | 0; I2 = U2 + 8 | 0; J2 = V2 + 8 | 0; z2 = (e2 & 512 | 0) != 0; A2 = X2 + 8 | 0; B2 = X2 + 4 | 0; C2 = W2 + 4 | 0; D2 = W2 + 8 | 0; E2 = P2 + 3 | 0; F2 = T2 + 4 | 0; y2 = 0; q2 = 0; b: while (1) { n2 = k[a2 >> 2] | 0; do if (n2) { c2 = k[n2 + 12 >> 2] | 0; if ((c2 | 0) == (k[n2 + 16 >> 2] | 0)) { x = 0; n2 = ta(k[(k[n2 >> 2] | 0) + 36 >> 2] | 0, n2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 26; break b; } } else n2 = k[c2 >> 2] | 0; if ((n2 | 0) == -1) { k[a2 >> 2] = 0; d2 = 1; break; } else { d2 = (k[a2 >> 2] | 0) == 0; break; } } else d2 = 1; while (0); c2 = k[b2 >> 2] | 0; do if (c2) { n2 = k[c2 + 12 >> 2] | 0; if ((n2 | 0) == (k[c2 + 16 >> 2] | 0)) { x = 0; n2 = ta(k[(k[c2 >> 2] | 0) + 36 >> 2] | 0, c2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 26; break b; } } else n2 = k[n2 >> 2] | 0; if ((n2 | 0) != -1) if (d2) { w2 = c2; break; } else { s2 = o2; R2 = 244; break b; } else { k[b2 >> 2] = 0; R2 = 16; break; } } else R2 = 16; while (0); if ((R2 | 0) == 16) { R2 = 0; if (d2) { s2 = o2; R2 = 244; break; } else w2 = 0; } c: do switch (i2[P2 + y2 >> 0] | 0) { case 1: { if ((y2 | 0) != 3) { n2 = k[a2 >> 2] | 0; c2 = k[n2 + 12 >> 2] | 0; if ((c2 | 0) == (k[n2 + 16 >> 2] | 0)) { x = 0; n2 = ta(k[(k[n2 >> 2] | 0) + 36 >> 2] | 0, n2 | 0) | 0; R2 = x; x = 0; if (R2 & 1) { R2 = 26; break b; } } else n2 = k[c2 >> 2] | 0; x = 0; n2 = va(k[(k[h2 >> 2] | 0) + 12 >> 2] | 0, h2 | 0, 8192, n2 | 0) | 0; R2 = x; x = 0; if (R2 & 1) { R2 = 26; break b; } if (!n2) { R2 = 42; break b; } n2 = k[a2 >> 2] | 0; c2 = n2 + 12 | 0; d2 = k[c2 >> 2] | 0; if ((d2 | 0) == (k[n2 + 16 >> 2] | 0)) { x = 0; n2 = ta(k[(k[n2 >> 2] | 0) + 40 >> 2] | 0, n2 | 0) | 0; R2 = x; x = 0; if (R2 & 1) { R2 = 26; break b; } } else { k[c2 >> 2] = d2 + 4; n2 = k[d2 >> 2] | 0; } x = 0; ra(92, W2 | 0, n2 | 0); R2 = x; x = 0; if (R2 & 1) { R2 = 26; break b; } else { n2 = w2; e2 = w2; R2 = 44; } } else n2 = o2; break; } case 0: { if ((y2 | 0) == 3) n2 = o2; else { n2 = w2; e2 = w2; R2 = 44; } break; } case 3: { c2 = i2[V2 >> 0] | 0; n2 = (c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[G2 >> 2] | 0; d2 = i2[U2 >> 0] | 0; e2 = (d2 & 1) == 0 ? (d2 & 255) >>> 1 : k[H2 >> 2] | 0; if ((n2 | 0) == (0 - e2 | 0)) n2 = o2; else { if (!n2) { n2 = k[a2 >> 2] | 0; c2 = k[n2 + 12 >> 2] | 0; if ((c2 | 0) == (k[n2 + 16 >> 2] | 0)) { x = 0; n2 = ta(k[(k[n2 >> 2] | 0) + 36 >> 2] | 0, n2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 26; break b; } c2 = i2[U2 >> 0] | 0; } else { n2 = k[c2 >> 2] | 0; c2 = d2; } if ((n2 | 0) != (k[((c2 & 1) == 0 ? H2 : k[I2 >> 2] | 0) >> 2] | 0)) { n2 = o2; break c; } n2 = k[a2 >> 2] | 0; c2 = n2 + 12 | 0; d2 = k[c2 >> 2] | 0; if ((d2 | 0) == (k[n2 + 16 >> 2] | 0)) { x = 0; ta(k[(k[n2 >> 2] | 0) + 40 >> 2] | 0, n2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 26; break b; } } else k[c2 >> 2] = d2 + 4; i2[g2 >> 0] = 1; w2 = i2[U2 >> 0] | 0; n2 = o2; q2 = ((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[H2 >> 2] | 0) >>> 0 > 1 ? U2 : q2; break c; } p2 = k[a2 >> 2] | 0; s2 = k[p2 + 12 >> 2] | 0; d2 = k[p2 + 16 >> 2] | 0; n2 = (s2 | 0) == (d2 | 0); if (!e2) { if (n2) { x = 0; n2 = ta(k[(k[p2 >> 2] | 0) + 36 >> 2] | 0, p2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 26; break b; } c2 = i2[V2 >> 0] | 0; } else n2 = k[s2 >> 2] | 0; if ((n2 | 0) != (k[((c2 & 1) == 0 ? G2 : k[J2 >> 2] | 0) >> 2] | 0)) { i2[g2 >> 0] = 1; n2 = o2; break c; } n2 = k[a2 >> 2] | 0; c2 = n2 + 12 | 0; d2 = k[c2 >> 2] | 0; if ((d2 | 0) == (k[n2 + 16 >> 2] | 0)) { x = 0; ta(k[(k[n2 >> 2] | 0) + 40 >> 2] | 0, n2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 26; break b; } } else k[c2 >> 2] = d2 + 4; w2 = i2[V2 >> 0] | 0; n2 = o2; q2 = ((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[G2 >> 2] | 0) >>> 0 > 1 ? V2 : q2; break c; } if (n2) { x = 0; n2 = ta(k[(k[p2 >> 2] | 0) + 36 >> 2] | 0, p2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 26; break b; } d2 = k[a2 >> 2] | 0; c2 = i2[V2 >> 0] | 0; p2 = d2; s2 = k[d2 + 12 >> 2] | 0; d2 = k[d2 + 16 >> 2] | 0; } else n2 = k[s2 >> 2] | 0; e2 = p2 + 12 | 0; d2 = (s2 | 0) == (d2 | 0); if ((n2 | 0) == (k[((c2 & 1) == 0 ? G2 : k[J2 >> 2] | 0) >> 2] | 0)) { if (d2) { x = 0; ta(k[(k[p2 >> 2] | 0) + 40 >> 2] | 0, p2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 26; break b; } } else k[e2 >> 2] = s2 + 4; w2 = i2[V2 >> 0] | 0; n2 = o2; q2 = ((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[G2 >> 2] | 0) >>> 0 > 1 ? V2 : q2; break c; } if (d2) { x = 0; n2 = ta(k[(k[p2 >> 2] | 0) + 36 >> 2] | 0, p2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 26; break b; } } else n2 = k[s2 >> 2] | 0; if ((n2 | 0) != (k[((i2[U2 >> 0] & 1) == 0 ? H2 : k[I2 >> 2] | 0) >> 2] | 0)) { R2 = 107; break b; } n2 = k[a2 >> 2] | 0; c2 = n2 + 12 | 0; d2 = k[c2 >> 2] | 0; if ((d2 | 0) == (k[n2 + 16 >> 2] | 0)) { x = 0; ta(k[(k[n2 >> 2] | 0) + 40 >> 2] | 0, n2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 26; break b; } } else k[c2 >> 2] = d2 + 4; i2[g2 >> 0] = 1; w2 = i2[U2 >> 0] | 0; n2 = o2; q2 = ((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[H2 >> 2] | 0) >>> 0 > 1 ? U2 : q2; } break; } case 2: { if (!(y2 >>> 0 < 2 | (q2 | 0) != 0) ? !(z2 | (y2 | 0) == 2 & (i2[E2 >> 0] | 0) != 0) : 0) { n2 = o2; q2 = 0; break c; } e2 = i2[X2 >> 0] | 0; d2 = k[A2 >> 2] | 0; c2 = (e2 & 1) == 0 ? B2 : d2; n2 = c2; d: do if ((y2 | 0) != 0 ? (l[P2 + (y2 + -1) >> 0] | 0) < 2 : 0) { v2 = (e2 & 1) == 0; e: do if ((c2 | 0) != ((v2 ? B2 : d2) + ((v2 ? (e2 & 255) >>> 1 : k[B2 >> 2] | 0) << 2) | 0)) { e2 = c2; while (1) { x = 0; c2 = va(k[(k[h2 >> 2] | 0) + 12 >> 2] | 0, h2 | 0, 8192, k[e2 >> 2] | 0) | 0; v2 = x; x = 0; if (v2 & 1) { R2 = 23; break b; } if (!c2) break; e2 = e2 + 4 | 0; n2 = e2; c2 = i2[X2 >> 0] | 0; d2 = k[A2 >> 2] | 0; v2 = (c2 & 1) == 0; if ((e2 | 0) == ((v2 ? B2 : d2) + ((v2 ? (c2 & 255) >>> 1 : k[B2 >> 2] | 0) << 2) | 0)) { e2 = c2; break e; } } e2 = i2[X2 >> 0] | 0; d2 = k[A2 >> 2] | 0; } while (0); s2 = (e2 & 1) == 0 ? B2 : d2; c2 = s2; t2 = n2 - c2 >> 2; u2 = i2[W2 >> 0] | 0; p2 = (u2 & 1) == 0; u2 = p2 ? (u2 & 255) >>> 1 : k[C2 >> 2] | 0; if (u2 >>> 0 >= t2 >>> 0) { p2 = p2 ? C2 : k[D2 >> 2] | 0; v2 = p2 + (u2 << 2) | 0; if (!t2) c2 = n2; else { p2 = p2 + (u2 - t2 << 2) | 0; while (1) { if ((k[p2 >> 2] | 0) != (k[s2 >> 2] | 0)) break d; p2 = p2 + 4 | 0; if ((p2 | 0) == (v2 | 0)) { c2 = n2; break; } else s2 = s2 + 4 | 0; } } } } else c2 = n2; while (0); n2 = (e2 & 1) == 0; n2 = (n2 ? B2 : d2) + ((n2 ? (e2 & 255) >>> 1 : k[B2 >> 2] | 0) << 2) | 0; f: do if ((c2 | 0) != (n2 | 0)) { p2 = w2; e2 = w2; n2 = c2; while (1) { c2 = k[a2 >> 2] | 0; do if (c2) { d2 = k[c2 + 12 >> 2] | 0; if ((d2 | 0) == (k[c2 + 16 >> 2] | 0)) { x = 0; c2 = ta(k[(k[c2 >> 2] | 0) + 36 >> 2] | 0, c2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 22; break b; } } else c2 = k[d2 >> 2] | 0; if ((c2 | 0) == -1) { k[a2 >> 2] = 0; d2 = 1; break; } else { d2 = (k[a2 >> 2] | 0) == 0; break; } } else d2 = 1; while (0); do if (e2) { c2 = k[e2 + 12 >> 2] | 0; if ((c2 | 0) == (k[e2 + 16 >> 2] | 0)) { x = 0; c2 = ta(k[(k[e2 >> 2] | 0) + 36 >> 2] | 0, e2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 22; break b; } } else c2 = k[c2 >> 2] | 0; if ((c2 | 0) != -1) if (d2 ^ (p2 | 0) == 0) { c2 = p2; s2 = p2; break; } else break f; else { k[b2 >> 2] = 0; c2 = 0; R2 = 136; break; } } else { c2 = p2; R2 = 136; } while (0); if ((R2 | 0) == 136) { R2 = 0; if (d2) break f; else s2 = 0; } d2 = k[a2 >> 2] | 0; e2 = k[d2 + 12 >> 2] | 0; if ((e2 | 0) == (k[d2 + 16 >> 2] | 0)) { x = 0; d2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 22; break b; } } else d2 = k[e2 >> 2] | 0; if ((d2 | 0) != (k[n2 >> 2] | 0)) break f; d2 = k[a2 >> 2] | 0; e2 = d2 + 12 | 0; p2 = k[e2 >> 2] | 0; if ((p2 | 0) == (k[d2 + 16 >> 2] | 0)) { x = 0; ta(k[(k[d2 >> 2] | 0) + 40 >> 2] | 0, d2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 22; break b; } } else k[e2 >> 2] = p2 + 4; n2 = n2 + 4 | 0; d2 = i2[X2 >> 0] | 0; w2 = (d2 & 1) == 0; d2 = (w2 ? B2 : k[A2 >> 2] | 0) + ((w2 ? (d2 & 255) >>> 1 : k[B2 >> 2] | 0) << 2) | 0; if ((n2 | 0) == (d2 | 0)) { n2 = d2; break; } else { p2 = c2; e2 = s2; } } } while (0); if (z2 ? (w2 = i2[X2 >> 0] | 0, v2 = (w2 & 1) == 0, (n2 | 0) != ((v2 ? B2 : k[A2 >> 2] | 0) + ((v2 ? (w2 & 255) >>> 1 : k[B2 >> 2] | 0) << 2) | 0)) : 0) { R2 = 148; break b; } else n2 = o2; break; } case 4: { u2 = k[Q2 >> 2] | 0; t2 = w2; p2 = w2; n2 = o2; c2 = 0; g: while (1) { d2 = k[a2 >> 2] | 0; do if (d2) { e2 = k[d2 + 12 >> 2] | 0; if ((e2 | 0) == (k[d2 + 16 >> 2] | 0)) { x = 0; d2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 25; break b; } } else d2 = k[e2 >> 2] | 0; if ((d2 | 0) == -1) { k[a2 >> 2] = 0; e2 = 1; break; } else { e2 = (k[a2 >> 2] | 0) == 0; break; } } else e2 = 1; while (0); do if (p2) { d2 = k[p2 + 12 >> 2] | 0; if ((d2 | 0) == (k[p2 + 16 >> 2] | 0)) { x = 0; d2 = ta(k[(k[p2 >> 2] | 0) + 36 >> 2] | 0, p2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 25; break b; } } else d2 = k[d2 >> 2] | 0; if ((d2 | 0) != -1) if (e2 ^ (t2 | 0) == 0) { d2 = t2; s2 = t2; break; } else { o2 = t2; break g; } else { k[b2 >> 2] = 0; d2 = 0; R2 = 162; break; } } else { d2 = t2; R2 = 162; } while (0); if ((R2 | 0) == 162) { R2 = 0; if (e2) { o2 = d2; break; } else s2 = 0; } e2 = k[a2 >> 2] | 0; o2 = k[e2 + 12 >> 2] | 0; if ((o2 | 0) == (k[e2 + 16 >> 2] | 0)) { x = 0; e2 = ta(k[(k[e2 >> 2] | 0) + 36 >> 2] | 0, e2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 25; break b; } } else e2 = k[o2 >> 2] | 0; x = 0; o2 = va(k[(k[h2 >> 2] | 0) + 12 >> 2] | 0, h2 | 0, 2048, e2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 25; break b; } if (o2) { o2 = k[m2 >> 2] | 0; if ((o2 | 0) == (k[K2 >> 2] | 0)) { x = 0; Fa(14, j2 | 0, m2 | 0, K2 | 0); w2 = x; x = 0; if (w2 & 1) { R2 = 25; break b; } o2 = k[m2 >> 2] | 0; } k[m2 >> 2] = o2 + 4; k[o2 >> 2] = e2; c2 = c2 + 1 | 0; } else { w2 = i2[T2 >> 0] | 0; if (!((e2 | 0) == (u2 | 0) & ((c2 | 0) != 0 ? (((w2 & 1) == 0 ? (w2 & 255) >>> 1 : k[F2 >> 2] | 0) | 0) != 0 : 0))) { o2 = d2; break; } if ((n2 | 0) == (k[N2 >> 2] | 0)) { x = 0; Fa(13, _2 | 0, O2 | 0, N2 | 0); w2 = x; x = 0; if (w2 & 1) { R2 = 25; break b; } n2 = k[O2 >> 2] | 0; } w2 = n2 + 4 | 0; k[O2 >> 2] = w2; k[n2 >> 2] = c2; n2 = w2; c2 = 0; } e2 = k[a2 >> 2] | 0; o2 = e2 + 12 | 0; p2 = k[o2 >> 2] | 0; if ((p2 | 0) == (k[e2 + 16 >> 2] | 0)) { x = 0; ta(k[(k[e2 >> 2] | 0) + 40 >> 2] | 0, e2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 25; break b; } else { t2 = d2; p2 = s2; continue; } } else { k[o2 >> 2] = p2 + 4; t2 = d2; p2 = s2; continue; } } if ((c2 | 0) != 0 ? (k[_2 >> 2] | 0) != (n2 | 0) : 0) { if ((n2 | 0) == (k[N2 >> 2] | 0)) { x = 0; Fa(13, _2 | 0, O2 | 0, N2 | 0); w2 = x; x = 0; if (w2 & 1) { R2 = 26; break b; } n2 = k[O2 >> 2] | 0; } w2 = n2 + 4 | 0; k[O2 >> 2] = w2; k[n2 >> 2] = c2; n2 = w2; } s2 = k[M2 >> 2] | 0; if ((s2 | 0) > 0) { c2 = k[a2 >> 2] | 0; do if (c2) { d2 = k[c2 + 12 >> 2] | 0; if ((d2 | 0) == (k[c2 + 16 >> 2] | 0)) { x = 0; c2 = ta(k[(k[c2 >> 2] | 0) + 36 >> 2] | 0, c2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 26; break b; } } else c2 = k[d2 >> 2] | 0; if ((c2 | 0) == -1) { k[a2 >> 2] = 0; d2 = 1; break; } else { d2 = (k[a2 >> 2] | 0) == 0; break; } } else d2 = 1; while (0); do if (o2) { c2 = k[o2 + 12 >> 2] | 0; if ((c2 | 0) == (k[o2 + 16 >> 2] | 0)) { x = 0; c2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 26; break b; } } else c2 = k[c2 >> 2] | 0; if ((c2 | 0) != -1) if (d2) break; else { R2 = 206; break b; } else { k[b2 >> 2] = 0; R2 = 200; break; } } else R2 = 200; while (0); if ((R2 | 0) == 200) { R2 = 0; if (d2) { R2 = 206; break b; } else o2 = 0; } c2 = k[a2 >> 2] | 0; d2 = k[c2 + 12 >> 2] | 0; if ((d2 | 0) == (k[c2 + 16 >> 2] | 0)) { x = 0; c2 = ta(k[(k[c2 >> 2] | 0) + 36 >> 2] | 0, c2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 26; break b; } } else c2 = k[d2 >> 2] | 0; if ((c2 | 0) != (k[L2 >> 2] | 0)) { R2 = 206; break b; } c2 = k[a2 >> 2] | 0; d2 = c2 + 12 | 0; e2 = k[d2 >> 2] | 0; if ((e2 | 0) == (k[c2 + 16 >> 2] | 0)) { x = 0; ta(k[(k[c2 >> 2] | 0) + 40 >> 2] | 0, c2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 26; break b; } } else k[d2 >> 2] = e2 + 4; if ((s2 | 0) > 0) { p2 = o2; e2 = o2; t2 = s2; while (1) { c2 = k[a2 >> 2] | 0; do if (c2) { d2 = k[c2 + 12 >> 2] | 0; if ((d2 | 0) == (k[c2 + 16 >> 2] | 0)) { x = 0; c2 = ta(k[(k[c2 >> 2] | 0) + 36 >> 2] | 0, c2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 24; break b; } } else c2 = k[d2 >> 2] | 0; if ((c2 | 0) == -1) { k[a2 >> 2] = 0; d2 = 1; break; } else { d2 = (k[a2 >> 2] | 0) == 0; break; } } else d2 = 1; while (0); do if (e2) { c2 = k[e2 + 12 >> 2] | 0; if ((c2 | 0) == (k[e2 + 16 >> 2] | 0)) { x = 0; c2 = ta(k[(k[e2 >> 2] | 0) + 36 >> 2] | 0, e2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 24; break b; } } else c2 = k[c2 >> 2] | 0; if ((c2 | 0) != -1) if (d2 ^ (p2 | 0) == 0) { c2 = p2; s2 = p2; break; } else { R2 = 231; break b; } else { k[b2 >> 2] = 0; c2 = 0; R2 = 224; break; } } else { c2 = p2; R2 = 224; } while (0); if ((R2 | 0) == 224) { R2 = 0; if (d2) { R2 = 231; break b; } else s2 = 0; } d2 = k[a2 >> 2] | 0; e2 = k[d2 + 12 >> 2] | 0; if ((e2 | 0) == (k[d2 + 16 >> 2] | 0)) { x = 0; d2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 24; break b; } } else d2 = k[e2 >> 2] | 0; x = 0; d2 = va(k[(k[h2 >> 2] | 0) + 12 >> 2] | 0, h2 | 0, 2048, d2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 24; break b; } if (!d2) { R2 = 231; break b; } if ((k[m2 >> 2] | 0) == (k[K2 >> 2] | 0) ? (x = 0, Fa(14, j2 | 0, m2 | 0, K2 | 0), w2 = x, x = 0, w2 & 1) : 0) { R2 = 24; break b; } d2 = k[a2 >> 2] | 0; e2 = k[d2 + 12 >> 2] | 0; if ((e2 | 0) == (k[d2 + 16 >> 2] | 0)) { x = 0; d2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 24; break b; } } else d2 = k[e2 >> 2] | 0; e2 = k[m2 >> 2] | 0; k[m2 >> 2] = e2 + 4; k[e2 >> 2] = d2; d2 = t2; t2 = t2 + -1 | 0; k[M2 >> 2] = t2; e2 = k[a2 >> 2] | 0; o2 = e2 + 12 | 0; p2 = k[o2 >> 2] | 0; if ((p2 | 0) == (k[e2 + 16 >> 2] | 0)) { x = 0; ta(k[(k[e2 >> 2] | 0) + 40 >> 2] | 0, e2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 24; break b; } } else k[o2 >> 2] = p2 + 4; if ((d2 | 0) <= 1) break; else { p2 = c2; e2 = s2; } } } } if ((k[m2 >> 2] | 0) == (k[j2 >> 2] | 0)) { R2 = 242; break b; } break; } default: n2 = o2; } while (0); h: do if ((R2 | 0) == 44) while (1) { R2 = 0; c2 = k[a2 >> 2] | 0; do if (c2) { d2 = k[c2 + 12 >> 2] | 0; if ((d2 | 0) == (k[c2 + 16 >> 2] | 0)) { x = 0; c2 = ta(k[(k[c2 >> 2] | 0) + 36 >> 2] | 0, c2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 21; break b; } } else c2 = k[d2 >> 2] | 0; if ((c2 | 0) == -1) { k[a2 >> 2] = 0; d2 = 1; break; } else { d2 = (k[a2 >> 2] | 0) == 0; break; } } else d2 = 1; while (0); do if (e2) { c2 = k[e2 + 12 >> 2] | 0; if ((c2 | 0) == (k[e2 + 16 >> 2] | 0)) { x = 0; c2 = ta(k[(k[e2 >> 2] | 0) + 36 >> 2] | 0, e2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 21; break b; } } else c2 = k[c2 >> 2] | 0; if ((c2 | 0) != -1) if (d2 ^ (n2 | 0) == 0) { p2 = n2; e2 = n2; break; } else { n2 = o2; break h; } else { k[b2 >> 2] = 0; n2 = 0; R2 = 57; break; } } else R2 = 57; while (0); if ((R2 | 0) == 57) { R2 = 0; if (d2) { n2 = o2; break h; } else { p2 = n2; e2 = 0; } } n2 = k[a2 >> 2] | 0; c2 = k[n2 + 12 >> 2] | 0; if ((c2 | 0) == (k[n2 + 16 >> 2] | 0)) { x = 0; n2 = ta(k[(k[n2 >> 2] | 0) + 36 >> 2] | 0, n2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 21; break b; } } else n2 = k[c2 >> 2] | 0; x = 0; n2 = va(k[(k[h2 >> 2] | 0) + 12 >> 2] | 0, h2 | 0, 8192, n2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { R2 = 21; break b; } if (!n2) { n2 = o2; break h; } n2 = k[a2 >> 2] | 0; c2 = n2 + 12 | 0; d2 = k[c2 >> 2] | 0; if ((d2 | 0) == (k[n2 + 16 >> 2] | 0)) { x = 0; n2 = ta(k[(k[n2 >> 2] | 0) + 40 >> 2] | 0, n2 | 0) | 0; R2 = x; x = 0; if (R2 & 1) { R2 = 21; break b; } } else { k[c2 >> 2] = d2 + 4; n2 = k[d2 >> 2] | 0; } x = 0; ra(92, W2 | 0, n2 | 0); R2 = x; x = 0; if (R2 & 1) { R2 = 21; break b; } else { n2 = p2; R2 = 44; } } while (0); y2 = y2 + 1 | 0; if (y2 >>> 0 >= 4) { s2 = n2; R2 = 244; break; } else o2 = n2; } i: switch (R2 | 0) { case 21: { c2 = Wa() | 0; break a; } case 22: { c2 = Wa() | 0; break a; } case 23: { c2 = Wa() | 0; break a; } case 24: { c2 = Wa() | 0; break a; } case 25: { c2 = Wa() | 0; break a; } case 26: { c2 = Wa() | 0; break a; } case 42: { k[f2 >> 2] = k[f2 >> 2] | 4; c2 = 0; break; } case 107: { k[f2 >> 2] = k[f2 >> 2] | 4; c2 = 0; break; } case 148: { k[f2 >> 2] = k[f2 >> 2] | 4; c2 = 0; break; } case 206: { k[f2 >> 2] = k[f2 >> 2] | 4; c2 = 0; break; } case 231: { k[f2 >> 2] = k[f2 >> 2] | 4; c2 = 0; break; } case 242: { k[f2 >> 2] = k[f2 >> 2] | 4; c2 = 0; break; } case 244: { j: do if (q2) { o2 = q2 + 4 | 0; p2 = q2 + 8 | 0; e2 = 1; k: while (1) { n2 = i2[q2 >> 0] | 0; if (!(n2 & 1)) n2 = (n2 & 255) >>> 1; else n2 = k[o2 >> 2] | 0; if (e2 >>> 0 >= n2 >>> 0) break j; n2 = k[a2 >> 2] | 0; do if (n2) { c2 = k[n2 + 12 >> 2] | 0; if ((c2 | 0) == (k[n2 + 16 >> 2] | 0)) { x = 0; n2 = ta(k[(k[n2 >> 2] | 0) + 36 >> 2] | 0, n2 | 0) | 0; m2 = x; x = 0; if (m2 & 1) { R2 = 20; break k; } } else n2 = k[c2 >> 2] | 0; if ((n2 | 0) == -1) { k[a2 >> 2] = 0; d2 = 1; break; } else { d2 = (k[a2 >> 2] | 0) == 0; break; } } else d2 = 1; while (0); n2 = k[b2 >> 2] | 0; do if (n2) { c2 = k[n2 + 12 >> 2] | 0; if ((c2 | 0) == (k[n2 + 16 >> 2] | 0)) { x = 0; n2 = ta(k[(k[n2 >> 2] | 0) + 36 >> 2] | 0, n2 | 0) | 0; m2 = x; x = 0; if (m2 & 1) { R2 = 20; break k; } } else n2 = k[c2 >> 2] | 0; if ((n2 | 0) != -1) if (d2) break; else { R2 = 271; break k; } else { k[b2 >> 2] = 0; R2 = 263; break; } } else R2 = 263; while (0); if ((R2 | 0) == 263 ? (R2 = 0, d2) : 0) { R2 = 271; break; } n2 = k[a2 >> 2] | 0; c2 = k[n2 + 12 >> 2] | 0; if ((c2 | 0) == (k[n2 + 16 >> 2] | 0)) { x = 0; n2 = ta(k[(k[n2 >> 2] | 0) + 36 >> 2] | 0, n2 | 0) | 0; m2 = x; x = 0; if (m2 & 1) { R2 = 20; break; } } else n2 = k[c2 >> 2] | 0; if (!(i2[q2 >> 0] & 1)) c2 = o2; else c2 = k[p2 >> 2] | 0; if ((n2 | 0) != (k[c2 + (e2 << 2) >> 2] | 0)) { R2 = 271; break; } n2 = e2 + 1 | 0; c2 = k[a2 >> 2] | 0; d2 = c2 + 12 | 0; e2 = k[d2 >> 2] | 0; if ((e2 | 0) == (k[c2 + 16 >> 2] | 0)) { x = 0; ta(k[(k[c2 >> 2] | 0) + 40 >> 2] | 0, c2 | 0) | 0; m2 = x; x = 0; if (m2 & 1) { R2 = 20; break; } else { e2 = n2; continue; } } else { k[d2 >> 2] = e2 + 4; e2 = n2; continue; } } if ((R2 | 0) == 20) { c2 = Wa() | 0; break a; } else if ((R2 | 0) == 271) { k[f2 >> 2] = k[f2 >> 2] | 4; c2 = 0; break i; } } while (0); n2 = k[_2 >> 2] | 0; if ((n2 | 0) != (s2 | 0) ? (k[S2 >> 2] = 0, cs(T2, n2, s2, S2), (k[S2 >> 2] | 0) != 0) : 0) { k[f2 >> 2] = k[f2 >> 2] | 4; c2 = 0; } else c2 = 1; break; } } en(W2); en(U2); en(V2); en(X2); Sm(T2); n2 = k[_2 >> 2] | 0; k[_2 >> 2] = 0; if ((n2 | 0) != 0 ? (x = 0, qa(k[Z2 >> 2] | 0, n2 | 0), _2 = x, x = 0, _2 & 1) : 0) { _2 = Wa(0) | 0; oc(_2); } r = Y2; return c2 | 0; } while (0); en(W2); en(U2); en(V2); en(X2); Sm(T2); n2 = k[_2 >> 2] | 0; k[_2 >> 2] = 0; if ((n2 | 0) != 0 ? (x = 0, qa(k[Z2 >> 2] | 0, n2 | 0), _2 = x, x = 0, _2 & 1) : 0) { _2 = Wa(0) | 0; oc(_2); } fb(c2 | 0); return 0; } function hs(a2, b2, c2, d2, e2, f2, g2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; var h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0; v2 = r; r = r + 432 | 0; h2 = v2 + 424 | 0; a2 = v2 + 24 | 0; y2 = v2 + 16 | 0; q2 = v2 + 8 | 0; n2 = v2 + 4 | 0; o2 = v2 + 428 | 0; j2 = v2; k[y2 >> 2] = a2; A2 = y2 + 4 | 0; k[A2 >> 2] = 189; l2 = a2 + 400 | 0; x = 0; u2 = ta(68, e2 | 0) | 0; m2 = x; x = 0; if (!(m2 & 1)) { k[n2 >> 2] = u2; x = 0; m2 = Aa(37, n2 | 0, 44212) | 0; a2 = x; x = 0; a: do if (!(a2 & 1) ? (i2[o2 >> 0] = 0, s2 = k[c2 >> 2] | 0, k[j2 >> 2] = s2, p2 = k[e2 + 4 >> 2] | 0, t2 = s2, x = 0, k[h2 >> 2] = k[j2 >> 2], p2 = ua(2, b2 | 0, h2 | 0, d2 | 0, n2 | 0, p2 | 0, f2 | 0, o2 | 0, m2 | 0, y2 | 0, q2 | 0, l2 | 0) | 0, e2 = x, x = 0, !(e2 & 1)) : 0) { if (p2) { if (!(i2[g2 >> 0] & 1)) i2[g2 >> 0] = 0; else k[k[g2 + 8 >> 2] >> 2] = 0; k[g2 + 4 >> 2] = 0; if (i2[o2 >> 0] | 0) { x = 0; a2 = Aa(k[(k[m2 >> 2] | 0) + 44 >> 2] | 0, m2 | 0, 45) | 0; e2 = x; x = 0; if (e2 & 1) break; x = 0; ra(92, g2 | 0, a2 | 0); e2 = x; x = 0; if (e2 & 1) break; } x = 0; j2 = Aa(k[(k[m2 >> 2] | 0) + 44 >> 2] | 0, m2 | 0, 48) | 0; e2 = x; x = 0; if (e2 & 1) break; a2 = k[y2 >> 2] | 0; l2 = k[q2 >> 2] | 0; h2 = l2 + -4 | 0; b: do if (a2 >>> 0 < h2 >>> 0) do { if ((k[a2 >> 2] | 0) != (j2 | 0)) break b; a2 = a2 + 4 | 0; } while (a2 >>> 0 < h2 >>> 0); while (0); x = 0; va(33, g2 | 0, a2 | 0, l2 | 0) | 0; g2 = x; x = 0; if (g2 & 1) break; } a2 = k[b2 >> 2] | 0; do if (a2) { h2 = k[a2 + 12 >> 2] | 0; if ((h2 | 0) == (k[a2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; g2 = x; x = 0; if (g2 & 1) break a; } else a2 = k[h2 >> 2] | 0; if ((a2 | 0) == -1) { k[b2 >> 2] = 0; h2 = 1; break; } else { h2 = (k[b2 >> 2] | 0) == 0; break; } } else h2 = 1; while (0); do if (s2) { a2 = k[t2 + 12 >> 2] | 0; if ((a2 | 0) == (k[t2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[s2 >> 2] | 0) + 36 >> 2] | 0, t2 | 0) | 0; t2 = x; x = 0; if (t2 & 1) break a; } else a2 = k[a2 >> 2] | 0; if ((a2 | 0) != -1) if (h2) break; else { z2 = 32; break; } else { k[c2 >> 2] = 0; z2 = 30; break; } } else z2 = 30; while (0); if ((z2 | 0) == 30 ? h2 : 0) z2 = 32; if ((z2 | 0) == 32) k[f2 >> 2] = k[f2 >> 2] | 2; h2 = k[b2 >> 2] | 0; zm(u2) | 0; a2 = k[y2 >> 2] | 0; k[y2 >> 2] = 0; if ((a2 | 0) != 0 ? (x = 0, qa(k[A2 >> 2] | 0, a2 | 0), A2 = x, x = 0, A2 & 1) : 0) { A2 = Wa(0) | 0; oc(A2); } r = v2; return h2 | 0; } while (0); h2 = Wa() | 0; zm(u2) | 0; a2 = k[y2 >> 2] | 0; k[y2 >> 2] = 0; if (!a2) w2 = h2; else z2 = 38; } else { h2 = Wa() | 0; k[y2 >> 2] = 0; z2 = 38; } if ((z2 | 0) == 38) { x = 0; qa(k[A2 >> 2] | 0, a2 | 0); A2 = x; x = 0; if (A2 & 1) { A2 = Wa(0) | 0; oc(A2); } else w2 = h2; } fb(w2 | 0); return 0; } function is(a2, b2, c2, d2, e2, f2, g2, h2, j2, l2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; j2 = j2 | 0; l2 = l2 | 0; var m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0; z2 = r; r = r + 112 | 0; m2 = z2 + 100 | 0; n2 = z2 + 88 | 0; o2 = z2 + 76 | 0; p2 = z2 + 64 | 0; q2 = z2 + 52 | 0; s2 = z2 + 48 | 0; t2 = z2 + 36 | 0; u2 = z2 + 24 | 0; v2 = z2 + 12 | 0; w2 = z2; do if (a2) { a2 = Ss(b2, 43956) | 0; Mb[k[(k[a2 >> 2] | 0) + 44 >> 2] & 127](m2, a2); w2 = k[m2 >> 2] | 0; i2[c2 >> 0] = w2; i2[c2 + 1 >> 0] = w2 >> 8; i2[c2 + 2 >> 0] = w2 >> 16; i2[c2 + 3 >> 0] = w2 >> 24; Mb[k[(k[a2 >> 2] | 0) + 32 >> 2] & 127](n2, a2); if (!(i2[j2 >> 0] & 1)) i2[j2 >> 0] = 0; else k[k[j2 + 8 >> 2] >> 2] = 0; k[j2 + 4 >> 2] = 0; x = 0; ra(93, j2 | 0, 0); c2 = x; x = 0; if (c2 & 1) { c2 = Wa(0) | 0; oc(c2); } ; k[j2 >> 2] = k[n2 >> 2]; k[j2 + 4 >> 2] = k[n2 + 4 >> 2]; k[j2 + 8 >> 2] = k[n2 + 8 >> 2]; k[n2 >> 2] = 0; k[n2 + 4 >> 2] = 0; k[n2 + 8 >> 2] = 0; en(n2); Mb[k[(k[a2 >> 2] | 0) + 28 >> 2] & 127](o2, a2); if (!(i2[h2 >> 0] & 1)) i2[h2 >> 0] = 0; else k[k[h2 + 8 >> 2] >> 2] = 0; k[h2 + 4 >> 2] = 0; x = 0; ra(93, h2 | 0, 0); c2 = x; x = 0; if (c2 & 1) { c2 = Wa(0) | 0; oc(c2); } ; k[h2 >> 2] = k[o2 >> 2]; k[h2 + 4 >> 2] = k[o2 + 4 >> 2]; k[h2 + 8 >> 2] = k[o2 + 8 >> 2]; k[o2 >> 2] = 0; k[o2 + 4 >> 2] = 0; k[o2 + 8 >> 2] = 0; en(o2); h2 = Ob[k[(k[a2 >> 2] | 0) + 12 >> 2] & 127](a2) | 0; k[d2 >> 2] = h2; h2 = Ob[k[(k[a2 >> 2] | 0) + 16 >> 2] & 127](a2) | 0; k[e2 >> 2] = h2; Mb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 127](p2, a2); if (!(i2[f2 >> 0] & 1)) { i2[f2 + 1 >> 0] = 0; i2[f2 >> 0] = 0; } else { i2[k[f2 + 8 >> 2] >> 0] = 0; k[f2 + 4 >> 2] = 0; } x = 0; ra(91, f2 | 0, 0); e2 = x; x = 0; if (e2 & 1) { e2 = Wa(0) | 0; oc(e2); } ; k[f2 >> 2] = k[p2 >> 2]; k[f2 + 4 >> 2] = k[p2 + 4 >> 2]; k[f2 + 8 >> 2] = k[p2 + 8 >> 2]; k[p2 >> 2] = 0; k[p2 + 4 >> 2] = 0; k[p2 + 8 >> 2] = 0; Sm(p2); Mb[k[(k[a2 >> 2] | 0) + 24 >> 2] & 127](q2, a2); if (!(i2[g2 >> 0] & 1)) i2[g2 >> 0] = 0; else k[k[g2 + 8 >> 2] >> 2] = 0; k[g2 + 4 >> 2] = 0; x = 0; ra(93, g2 | 0, 0); e2 = x; x = 0; if (e2 & 1) { e2 = Wa(0) | 0; oc(e2); } else { k[g2 >> 2] = k[q2 >> 2]; k[g2 + 4 >> 2] = k[q2 + 4 >> 2]; k[g2 + 8 >> 2] = k[q2 + 8 >> 2]; k[q2 >> 2] = 0; k[q2 + 4 >> 2] = 0; k[q2 + 8 >> 2] = 0; en(q2); y2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; break; } } else { a2 = Ss(b2, 43892) | 0; Mb[k[(k[a2 >> 2] | 0) + 44 >> 2] & 127](s2, a2); s2 = k[s2 >> 2] | 0; i2[c2 >> 0] = s2; i2[c2 + 1 >> 0] = s2 >> 8; i2[c2 + 2 >> 0] = s2 >> 16; i2[c2 + 3 >> 0] = s2 >> 24; Mb[k[(k[a2 >> 2] | 0) + 32 >> 2] & 127](t2, a2); if (!(i2[j2 >> 0] & 1)) i2[j2 >> 0] = 0; else k[k[j2 + 8 >> 2] >> 2] = 0; k[j2 + 4 >> 2] = 0; x = 0; ra(93, j2 | 0, 0); c2 = x; x = 0; if (c2 & 1) { c2 = Wa(0) | 0; oc(c2); } ; k[j2 >> 2] = k[t2 >> 2]; k[j2 + 4 >> 2] = k[t2 + 4 >> 2]; k[j2 + 8 >> 2] = k[t2 + 8 >> 2]; k[t2 >> 2] = 0; k[t2 + 4 >> 2] = 0; k[t2 + 8 >> 2] = 0; en(t2); Mb[k[(k[a2 >> 2] | 0) + 28 >> 2] & 127](u2, a2); if (!(i2[h2 >> 0] & 1)) i2[h2 >> 0] = 0; else k[k[h2 + 8 >> 2] >> 2] = 0; k[h2 + 4 >> 2] = 0; x = 0; ra(93, h2 | 0, 0); c2 = x; x = 0; if (c2 & 1) { c2 = Wa(0) | 0; oc(c2); } ; k[h2 >> 2] = k[u2 >> 2]; k[h2 + 4 >> 2] = k[u2 + 4 >> 2]; k[h2 + 8 >> 2] = k[u2 + 8 >> 2]; k[u2 >> 2] = 0; k[u2 + 4 >> 2] = 0; k[u2 + 8 >> 2] = 0; en(u2); h2 = Ob[k[(k[a2 >> 2] | 0) + 12 >> 2] & 127](a2) | 0; k[d2 >> 2] = h2; h2 = Ob[k[(k[a2 >> 2] | 0) + 16 >> 2] & 127](a2) | 0; k[e2 >> 2] = h2; Mb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 127](v2, a2); if (!(i2[f2 >> 0] & 1)) { i2[f2 + 1 >> 0] = 0; i2[f2 >> 0] = 0; } else { i2[k[f2 + 8 >> 2] >> 0] = 0; k[f2 + 4 >> 2] = 0; } x = 0; ra(91, f2 | 0, 0); e2 = x; x = 0; if (e2 & 1) { e2 = Wa(0) | 0; oc(e2); } ; k[f2 >> 2] = k[v2 >> 2]; k[f2 + 4 >> 2] = k[v2 + 4 >> 2]; k[f2 + 8 >> 2] = k[v2 + 8 >> 2]; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; Sm(v2); Mb[k[(k[a2 >> 2] | 0) + 24 >> 2] & 127](w2, a2); if (!(i2[g2 >> 0] & 1)) i2[g2 >> 0] = 0; else k[k[g2 + 8 >> 2] >> 2] = 0; k[g2 + 4 >> 2] = 0; x = 0; ra(93, g2 | 0, 0); e2 = x; x = 0; if (e2 & 1) { e2 = Wa(0) | 0; oc(e2); } else { k[g2 >> 2] = k[w2 >> 2]; k[g2 + 4 >> 2] = k[w2 + 4 >> 2]; k[g2 + 8 >> 2] = k[w2 + 8 >> 2]; k[w2 >> 2] = 0; k[w2 + 4 >> 2] = 0; k[w2 + 8 >> 2] = 0; en(w2); y2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; break; } } while (0); k[l2 >> 2] = y2; r = z2; return; } function js(a2) { a2 = a2 | 0; return; } function ks(a2) { a2 = a2 | 0; mj(a2); return; } function ls(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = +f2; var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0; D2 = r; r = r + 384 | 0; u2 = D2 + 8 | 0; g2 = D2; j2 = D2 + 284 | 0; l2 = D2 + 72 | 0; h2 = D2 + 184 | 0; F2 = D2 + 68 | 0; A2 = D2 + 80 | 0; w2 = D2 + 77 | 0; B2 = D2 + 76 | 0; G2 = D2 + 56 | 0; I2 = D2 + 44 | 0; H2 = D2 + 32 | 0; m2 = D2 + 28 | 0; t2 = D2 + 84 | 0; z2 = D2 + 24 | 0; y2 = D2 + 20 | 0; v2 = D2 + 16 | 0; k[l2 >> 2] = j2; p[u2 >> 3] = f2; j2 = il(j2, 100, 59018, u2) | 0; do if (j2 >>> 0 > 99) { x = 0; a2 = Da(3) | 0; C2 = x; x = 0; if (!(C2 & 1) ? (x = 0, p[g2 >> 3] = f2, q2 = Ea(17, l2 | 0, a2 | 0, 59018, g2 | 0) | 0, C2 = x, x = 0, !(C2 & 1)) : 0) { a2 = k[l2 >> 2] | 0; if (!a2) { x = 0; Ga(6); C2 = x; x = 0; if (C2 & 1) { a2 = 0; g2 = 0; C2 = 7; break; } a2 = k[l2 >> 2] | 0; } h2 = Pl(q2) | 0; g2 = h2; if (!h2) { x = 0; Ga(6); C2 = x; x = 0; if (C2 & 1) C2 = 7; else { s2 = 0; C2 = 10; } } else { s2 = h2; C2 = 10; } } else { a2 = 0; g2 = 0; C2 = 7; } } else { g2 = 0; a2 = 0; s2 = h2; q2 = j2; C2 = 10; } while (0); if ((C2 | 0) == 10) { x = 0; h2 = ta(68, d2 | 0) | 0; o2 = x; x = 0; if (o2 & 1) C2 = 7; else { k[F2 >> 2] = h2; x = 0; o2 = Aa(37, F2 | 0, 44220) | 0; n2 = x; x = 0; if (!(n2 & 1) ? (n2 = k[l2 >> 2] | 0, x = 0, Ea(k[(k[o2 >> 2] | 0) + 32 >> 2] | 0, o2 | 0, n2 | 0, n2 + q2 | 0, s2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { if (!q2) n2 = 0; else n2 = (i2[k[l2 >> 2] >> 0] | 0) == 45; k[G2 >> 2] = 0; k[G2 + 4 >> 2] = 0; k[G2 + 8 >> 2] = 0; k[I2 >> 2] = 0; k[I2 + 4 >> 2] = 0; k[I2 + 8 >> 2] = 0; k[H2 >> 2] = 0; k[H2 + 4 >> 2] = 0; k[H2 + 8 >> 2] = 0; x = 0; za(3, c2 | 0, n2 | 0, F2 | 0, A2 | 0, w2 | 0, B2 | 0, G2 | 0, I2 | 0, H2 | 0, m2 | 0); c2 = x; x = 0; if (!(c2 & 1)) { m2 = k[m2 >> 2] | 0; if ((q2 | 0) > (m2 | 0)) { c2 = i2[H2 >> 0] | 0; j2 = i2[I2 >> 0] | 0; j2 = (q2 - m2 << 1 | 1) + m2 + ((c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[H2 + 4 >> 2] | 0) + ((j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[I2 + 4 >> 2] | 0) | 0; } else { c2 = i2[H2 >> 0] | 0; j2 = i2[I2 >> 0] | 0; j2 = m2 + 2 + ((c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[H2 + 4 >> 2] | 0) + ((j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[I2 + 4 >> 2] | 0) | 0; } if (j2 >>> 0 > 100) { j2 = Pl(j2) | 0; l2 = j2; if (!j2) { x = 0; Ga(6); t2 = x; x = 0; if (!(t2 & 1)) { j2 = 0; C2 = 26; } } else C2 = 26; } else { l2 = 0; j2 = t2; C2 = 26; } if ((C2 | 0) == 26) { x = 0; wa(1, j2 | 0, z2 | 0, y2 | 0, k[d2 + 4 >> 2] | 0, s2 | 0, s2 + q2 | 0, o2 | 0, n2 | 0, A2 | 0, i2[w2 >> 0] | 0, i2[B2 >> 0] | 0, G2 | 0, I2 | 0, H2 | 0, m2 | 0); B2 = x; x = 0; if (!(B2 & 1) ? (k[v2 >> 2] = k[b2 >> 2], b2 = k[z2 >> 2] | 0, E2 = k[y2 >> 2] | 0, x = 0, k[u2 >> 2] = k[v2 >> 2], E2 = sa(39, u2 | 0, j2 | 0, b2 | 0, E2 | 0, d2 | 0, e2 | 0) | 0, b2 = x, x = 0, !(b2 & 1)) : 0) { if (l2) { Ql(l2); h2 = k[F2 >> 2] | 0; } Sm(H2); Sm(I2); Sm(G2); zm(h2) | 0; if (g2) Ql(g2); if (a2) Ql(a2); r = D2; return E2 | 0; } } j2 = Wa() | 0; if (l2) { Ql(l2); h2 = k[F2 >> 2] | 0; } } else j2 = Wa() | 0; Sm(H2); Sm(I2); Sm(G2); } else j2 = Wa() | 0; zm(h2) | 0; } } if ((C2 | 0) == 7) j2 = Wa() | 0; if (g2) Ql(g2); if (a2) Ql(a2); fb(j2 | 0); return 0; } function ms(a2, b2, c2, d2, e2, f2, g2, h2, j2, l2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; j2 = j2 | 0; l2 = l2 | 0; var m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; D2 = r; r = r + 112 | 0; o2 = D2 + 108 | 0; p2 = D2 + 96 | 0; t2 = D2 + 92 | 0; u2 = D2 + 80 | 0; v2 = D2 + 68 | 0; w2 = D2 + 56 | 0; y2 = D2 + 52 | 0; z2 = D2 + 40 | 0; A2 = D2 + 36 | 0; B2 = D2 + 24 | 0; q2 = D2 + 12 | 0; s2 = D2; do if (a2) { a2 = Ss(c2, 43828) | 0; c2 = k[a2 >> 2] | 0; do if (b2) { Mb[k[c2 + 44 >> 2] & 127](o2, a2); b2 = k[o2 >> 2] | 0; i2[d2 >> 0] = b2; i2[d2 + 1 >> 0] = b2 >> 8; i2[d2 + 2 >> 0] = b2 >> 16; i2[d2 + 3 >> 0] = b2 >> 24; Mb[k[(k[a2 >> 2] | 0) + 32 >> 2] & 127](p2, a2); if (!(i2[j2 >> 0] & 1)) { i2[j2 + 1 >> 0] = 0; i2[j2 >> 0] = 0; } else { i2[k[j2 + 8 >> 2] >> 0] = 0; k[j2 + 4 >> 2] = 0; } x = 0; ra(91, j2 | 0, 0); d2 = x; x = 0; if (d2 & 1) { j2 = Wa(0) | 0; oc(j2); } else { k[j2 >> 2] = k[p2 >> 2]; k[j2 + 4 >> 2] = k[p2 + 4 >> 2]; k[j2 + 8 >> 2] = k[p2 + 8 >> 2]; k[p2 >> 2] = 0; k[p2 + 4 >> 2] = 0; k[p2 + 8 >> 2] = 0; Sm(p2); n2 = a2; break; } } else { Mb[k[c2 + 40 >> 2] & 127](t2, a2); b2 = k[t2 >> 2] | 0; i2[d2 >> 0] = b2; i2[d2 + 1 >> 0] = b2 >> 8; i2[d2 + 2 >> 0] = b2 >> 16; i2[d2 + 3 >> 0] = b2 >> 24; Mb[k[(k[a2 >> 2] | 0) + 28 >> 2] & 127](u2, a2); if (!(i2[j2 >> 0] & 1)) { i2[j2 + 1 >> 0] = 0; i2[j2 >> 0] = 0; } else { i2[k[j2 + 8 >> 2] >> 0] = 0; k[j2 + 4 >> 2] = 0; } x = 0; ra(91, j2 | 0, 0); d2 = x; x = 0; if (d2 & 1) { j2 = Wa(0) | 0; oc(j2); } else { k[j2 >> 2] = k[u2 >> 2]; k[j2 + 4 >> 2] = k[u2 + 4 >> 2]; k[j2 + 8 >> 2] = k[u2 + 8 >> 2]; k[u2 >> 2] = 0; k[u2 + 4 >> 2] = 0; k[u2 + 8 >> 2] = 0; Sm(u2); n2 = a2; break; } } while (0); j2 = Ob[k[(k[a2 >> 2] | 0) + 12 >> 2] & 127](a2) | 0; i2[e2 >> 0] = j2; j2 = Ob[k[(k[a2 >> 2] | 0) + 16 >> 2] & 127](a2) | 0; i2[f2 >> 0] = j2; Mb[k[(k[n2 >> 2] | 0) + 20 >> 2] & 127](v2, a2); if (!(i2[g2 >> 0] & 1)) { i2[g2 + 1 >> 0] = 0; i2[g2 >> 0] = 0; } else { i2[k[g2 + 8 >> 2] >> 0] = 0; k[g2 + 4 >> 2] = 0; } x = 0; ra(91, g2 | 0, 0); f2 = x; x = 0; if (f2 & 1) { f2 = Wa(0) | 0; oc(f2); } ; k[g2 >> 2] = k[v2 >> 2]; k[g2 + 4 >> 2] = k[v2 + 4 >> 2]; k[g2 + 8 >> 2] = k[v2 + 8 >> 2]; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; Sm(v2); Mb[k[(k[n2 >> 2] | 0) + 24 >> 2] & 127](w2, a2); if (!(i2[h2 >> 0] & 1)) { i2[h2 + 1 >> 0] = 0; i2[h2 >> 0] = 0; } else { i2[k[h2 + 8 >> 2] >> 0] = 0; k[h2 + 4 >> 2] = 0; } x = 0; ra(91, h2 | 0, 0); f2 = x; x = 0; if (f2 & 1) { f2 = Wa(0) | 0; oc(f2); } else { k[h2 >> 2] = k[w2 >> 2]; k[h2 + 4 >> 2] = k[w2 + 4 >> 2]; k[h2 + 8 >> 2] = k[w2 + 8 >> 2]; k[w2 >> 2] = 0; k[w2 + 4 >> 2] = 0; k[w2 + 8 >> 2] = 0; Sm(w2); C2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; break; } } else { a2 = Ss(c2, 43764) | 0; c2 = k[a2 >> 2] | 0; do if (b2) { Mb[k[c2 + 44 >> 2] & 127](y2, a2); b2 = k[y2 >> 2] | 0; i2[d2 >> 0] = b2; i2[d2 + 1 >> 0] = b2 >> 8; i2[d2 + 2 >> 0] = b2 >> 16; i2[d2 + 3 >> 0] = b2 >> 24; Mb[k[(k[a2 >> 2] | 0) + 32 >> 2] & 127](z2, a2); if (!(i2[j2 >> 0] & 1)) { i2[j2 + 1 >> 0] = 0; i2[j2 >> 0] = 0; } else { i2[k[j2 + 8 >> 2] >> 0] = 0; k[j2 + 4 >> 2] = 0; } x = 0; ra(91, j2 | 0, 0); d2 = x; x = 0; if (d2 & 1) { j2 = Wa(0) | 0; oc(j2); } else { k[j2 >> 2] = k[z2 >> 2]; k[j2 + 4 >> 2] = k[z2 + 4 >> 2]; k[j2 + 8 >> 2] = k[z2 + 8 >> 2]; k[z2 >> 2] = 0; k[z2 + 4 >> 2] = 0; k[z2 + 8 >> 2] = 0; Sm(z2); m2 = a2; break; } } else { Mb[k[c2 + 40 >> 2] & 127](A2, a2); b2 = k[A2 >> 2] | 0; i2[d2 >> 0] = b2; i2[d2 + 1 >> 0] = b2 >> 8; i2[d2 + 2 >> 0] = b2 >> 16; i2[d2 + 3 >> 0] = b2 >> 24; Mb[k[(k[a2 >> 2] | 0) + 28 >> 2] & 127](B2, a2); if (!(i2[j2 >> 0] & 1)) { i2[j2 + 1 >> 0] = 0; i2[j2 >> 0] = 0; } else { i2[k[j2 + 8 >> 2] >> 0] = 0; k[j2 + 4 >> 2] = 0; } x = 0; ra(91, j2 | 0, 0); d2 = x; x = 0; if (d2 & 1) { j2 = Wa(0) | 0; oc(j2); } else { k[j2 >> 2] = k[B2 >> 2]; k[j2 + 4 >> 2] = k[B2 + 4 >> 2]; k[j2 + 8 >> 2] = k[B2 + 8 >> 2]; k[B2 >> 2] = 0; k[B2 + 4 >> 2] = 0; k[B2 + 8 >> 2] = 0; Sm(B2); m2 = a2; break; } } while (0); j2 = Ob[k[(k[a2 >> 2] | 0) + 12 >> 2] & 127](a2) | 0; i2[e2 >> 0] = j2; j2 = Ob[k[(k[a2 >> 2] | 0) + 16 >> 2] & 127](a2) | 0; i2[f2 >> 0] = j2; Mb[k[(k[m2 >> 2] | 0) + 20 >> 2] & 127](q2, a2); if (!(i2[g2 >> 0] & 1)) { i2[g2 + 1 >> 0] = 0; i2[g2 >> 0] = 0; } else { i2[k[g2 + 8 >> 2] >> 0] = 0; k[g2 + 4 >> 2] = 0; } x = 0; ra(91, g2 | 0, 0); f2 = x; x = 0; if (f2 & 1) { f2 = Wa(0) | 0; oc(f2); } ; k[g2 >> 2] = k[q2 >> 2]; k[g2 + 4 >> 2] = k[q2 + 4 >> 2]; k[g2 + 8 >> 2] = k[q2 + 8 >> 2]; k[q2 >> 2] = 0; k[q2 + 4 >> 2] = 0; k[q2 + 8 >> 2] = 0; Sm(q2); Mb[k[(k[m2 >> 2] | 0) + 24 >> 2] & 127](s2, a2); if (!(i2[h2 >> 0] & 1)) { i2[h2 + 1 >> 0] = 0; i2[h2 >> 0] = 0; } else { i2[k[h2 + 8 >> 2] >> 0] = 0; k[h2 + 4 >> 2] = 0; } x = 0; ra(91, h2 | 0, 0); f2 = x; x = 0; if (f2 & 1) { f2 = Wa(0) | 0; oc(f2); } else { k[h2 >> 2] = k[s2 >> 2]; k[h2 + 4 >> 2] = k[s2 + 4 >> 2]; k[h2 + 8 >> 2] = k[s2 + 8 >> 2]; k[s2 >> 2] = 0; k[s2 + 4 >> 2] = 0; k[s2 + 8 >> 2] = 0; Sm(s2); C2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; break; } } while (0); k[l2 >> 2] = C2; r = D2; return; } function ns(a2, b2, c2, d2, e2, f2, g2, h2, l2, m2, n2, o2, p2, q2, r2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; l2 = l2 | 0; m2 = m2 | 0; n2 = n2 | 0; o2 = o2 | 0; p2 = p2 | 0; q2 = q2 | 0; r2 = r2 | 0; var s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, M2 = 0, N2 = 0, O2 = 0, P2 = 0; k[c2 >> 2] = a2; N2 = q2 + 4 | 0; O2 = q2 + 8 | 0; P2 = q2 + 1 | 0; H2 = p2 + 4 | 0; I2 = (d2 & 512 | 0) == 0; J2 = p2 + 8 | 0; K2 = p2 + 1 | 0; L2 = g2 + 8 | 0; M2 = (r2 | 0) > 0; A2 = o2 + 4 | 0; B2 = o2 + 8 | 0; C2 = o2 + 1 | 0; D2 = r2 + 1 | 0; F2 = -2 - r2 - ((r2 | 0) < 0 ? ~r2 : -1) | 0; G2 = (r2 | 0) > 0; z2 = 0; do { switch (i2[l2 + z2 >> 0] | 0) { case 0: { k[b2 >> 2] = k[c2 >> 2]; break; } case 1: { k[b2 >> 2] = k[c2 >> 2]; x2 = Vb[k[(k[g2 >> 2] | 0) + 28 >> 2] & 63](g2, 32) | 0; y2 = k[c2 >> 2] | 0; k[c2 >> 2] = y2 + 1; i2[y2 >> 0] = x2; break; } case 3: { y2 = i2[q2 >> 0] | 0; s2 = (y2 & 1) == 0; if ((s2 ? (y2 & 255) >>> 1 : k[N2 >> 2] | 0) | 0) { x2 = i2[(s2 ? P2 : k[O2 >> 2] | 0) >> 0] | 0; y2 = k[c2 >> 2] | 0; k[c2 >> 2] = y2 + 1; i2[y2 >> 0] = x2; } break; } case 2: { u2 = i2[p2 >> 0] | 0; s2 = (u2 & 1) == 0; u2 = s2 ? (u2 & 255) >>> 1 : k[H2 >> 2] | 0; if (!(I2 | (u2 | 0) == 0)) { t2 = s2 ? K2 : k[J2 >> 2] | 0; v2 = t2 + u2 | 0; s2 = k[c2 >> 2] | 0; if (u2) do { i2[s2 >> 0] = i2[t2 >> 0] | 0; t2 = t2 + 1 | 0; s2 = s2 + 1 | 0; } while ((t2 | 0) != (v2 | 0)); k[c2 >> 2] = s2; } break; } case 4: { s2 = k[c2 >> 2] | 0; e2 = h2 ? e2 + 1 | 0 : e2; w2 = e2; v2 = k[L2 >> 2] | 0; a: do if (e2 >>> 0 < f2 >>> 0) { t2 = e2; do { u2 = i2[t2 >> 0] | 0; if (u2 << 24 >> 24 <= -1) break a; if (!(j[v2 + (u2 << 24 >> 24 << 1) >> 1] & 2048)) break a; t2 = t2 + 1 | 0; } while (t2 >>> 0 < f2 >>> 0); } else t2 = e2; while (0); u2 = t2; if (M2) { x2 = -2 - u2 - ~(u2 >>> 0 > w2 >>> 0 ? w2 : u2) | 0; x2 = F2 >>> 0 > x2 >>> 0 ? F2 : x2; if (t2 >>> 0 > e2 >>> 0 & G2) { u2 = t2; w2 = r2; while (1) { u2 = u2 + -1 | 0; y2 = i2[u2 >> 0] | 0; v2 = k[c2 >> 2] | 0; k[c2 >> 2] = v2 + 1; i2[v2 >> 0] = y2; v2 = (w2 | 0) > 1; if (!(u2 >>> 0 > e2 >>> 0 & v2)) break; else w2 = w2 + -1 | 0; } } else v2 = G2; y2 = D2 + x2 | 0; u2 = t2 + (x2 + 1) | 0; if (v2) w2 = Vb[k[(k[g2 >> 2] | 0) + 28 >> 2] & 63](g2, 48) | 0; else w2 = 0; t2 = k[c2 >> 2] | 0; k[c2 >> 2] = t2 + 1; if ((y2 | 0) > 0) { v2 = y2; while (1) { i2[t2 >> 0] = w2; t2 = k[c2 >> 2] | 0; k[c2 >> 2] = t2 + 1; if ((v2 | 0) > 1) v2 = v2 + -1 | 0; else break; } } i2[t2 >> 0] = m2; } else u2 = t2; if ((u2 | 0) != (e2 | 0)) { y2 = i2[o2 >> 0] | 0; t2 = (y2 & 1) == 0; if (!((t2 ? (y2 & 255) >>> 1 : k[A2 >> 2] | 0) | 0)) t2 = -1; else t2 = i2[(t2 ? C2 : k[B2 >> 2] | 0) >> 0] | 0; if ((u2 | 0) != (e2 | 0)) { v2 = 0; w2 = 0; while (1) { if ((w2 | 0) == (t2 | 0)) { y2 = k[c2 >> 2] | 0; k[c2 >> 2] = y2 + 1; i2[y2 >> 0] = n2; v2 = v2 + 1 | 0; y2 = i2[o2 >> 0] | 0; t2 = (y2 & 1) == 0; if (v2 >>> 0 < (t2 ? (y2 & 255) >>> 1 : k[A2 >> 2] | 0) >>> 0) { t2 = i2[(t2 ? C2 : k[B2 >> 2] | 0) + v2 >> 0] | 0; t2 = t2 << 24 >> 24 == 127 ? -1 : t2 << 24 >> 24; w2 = 0; } else { t2 = w2; w2 = 0; } } u2 = u2 + -1 | 0; x2 = i2[u2 >> 0] | 0; y2 = k[c2 >> 2] | 0; k[c2 >> 2] = y2 + 1; i2[y2 >> 0] = x2; if ((u2 | 0) == (e2 | 0)) break; else w2 = w2 + 1 | 0; } } } else { x2 = Vb[k[(k[g2 >> 2] | 0) + 28 >> 2] & 63](g2, 48) | 0; y2 = k[c2 >> 2] | 0; k[c2 >> 2] = y2 + 1; i2[y2 >> 0] = x2; } t2 = k[c2 >> 2] | 0; if ((s2 | 0) != (t2 | 0) ? (E2 = t2 + -1 | 0, s2 >>> 0 < E2 >>> 0) : 0) { t2 = E2; do { y2 = i2[s2 >> 0] | 0; i2[s2 >> 0] = i2[t2 >> 0] | 0; i2[t2 >> 0] = y2; s2 = s2 + 1 | 0; t2 = t2 + -1 | 0; } while (s2 >>> 0 < t2 >>> 0); } break; } default: { } } z2 = z2 + 1 | 0; } while ((z2 | 0) != 4); t2 = i2[q2 >> 0] | 0; e2 = (t2 & 1) == 0; t2 = e2 ? (t2 & 255) >>> 1 : k[N2 >> 2] | 0; if (t2 >>> 0 > 1) { s2 = e2 ? P2 : k[O2 >> 2] | 0; u2 = s2 + t2 | 0; e2 = k[c2 >> 2] | 0; if ((t2 | 0) != 1) { s2 = s2 + 1 | 0; do { i2[e2 >> 0] = i2[s2 >> 0] | 0; e2 = e2 + 1 | 0; s2 = s2 + 1 | 0; } while ((s2 | 0) != (u2 | 0)); } k[c2 >> 2] = e2; } switch (d2 & 176 | 0) { case 32: { k[b2 >> 2] = k[c2 >> 2]; break; } case 16: break; default: k[b2 >> 2] = a2; } return; } function os(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0; z2 = r; r = r + 176 | 0; p2 = z2 + 56 | 0; B2 = z2 + 52 | 0; w2 = z2 + 64 | 0; t2 = z2 + 61 | 0; y2 = z2 + 60 | 0; C2 = z2 + 40 | 0; E2 = z2 + 28 | 0; D2 = z2 + 16 | 0; l2 = z2 + 12 | 0; o2 = z2 + 68 | 0; v2 = z2 + 8 | 0; u2 = z2 + 4 | 0; q2 = z2; a2 = tn(d2) | 0; k[B2 >> 2] = a2; x = 0; s2 = Aa(37, B2 | 0, 44220) | 0; n2 = x; x = 0; do if (n2 & 1) F2 = 13; else { m2 = i2[f2 >> 0] | 0; g2 = (m2 & 1) == 0; n2 = f2 + 4 | 0; if (!((g2 ? (m2 & 255) >>> 1 : k[n2 >> 2] | 0) | 0)) m2 = 0; else { g2 = i2[(g2 ? f2 + 1 | 0 : k[f2 + 8 >> 2] | 0) >> 0] | 0; x = 0; h2 = Aa(k[(k[s2 >> 2] | 0) + 28 >> 2] | 0, s2 | 0, 45) | 0; m2 = x; x = 0; if (m2 & 1) { F2 = 13; break; } m2 = g2 << 24 >> 24 == h2 << 24 >> 24; } k[C2 >> 2] = 0; k[C2 + 4 >> 2] = 0; k[C2 + 8 >> 2] = 0; k[E2 >> 2] = 0; k[E2 + 4 >> 2] = 0; k[E2 + 8 >> 2] = 0; k[D2 >> 2] = 0; k[D2 + 4 >> 2] = 0; k[D2 + 8 >> 2] = 0; x = 0; za(3, c2 | 0, m2 | 0, B2 | 0, w2 | 0, t2 | 0, y2 | 0, C2 | 0, E2 | 0, D2 | 0, l2 | 0); j2 = x; x = 0; if (!(j2 & 1)) { j2 = i2[f2 >> 0] | 0; c2 = k[n2 >> 2] | 0; g2 = (j2 & 1) == 0 ? (j2 & 255) >>> 1 : c2; l2 = k[l2 >> 2] | 0; if ((g2 | 0) > (l2 | 0)) { G2 = i2[D2 >> 0] | 0; h2 = i2[E2 >> 0] | 0; g2 = (g2 - l2 << 1 | 1) + l2 + ((G2 & 1) == 0 ? (G2 & 255) >>> 1 : k[D2 + 4 >> 2] | 0) + ((h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[E2 + 4 >> 2] | 0) | 0; } else { G2 = i2[D2 >> 0] | 0; g2 = i2[E2 >> 0] | 0; g2 = l2 + 2 + ((G2 & 1) == 0 ? (G2 & 255) >>> 1 : k[D2 + 4 >> 2] | 0) + ((g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[E2 + 4 >> 2] | 0) | 0; } if (g2 >>> 0 > 100) { g2 = Pl(g2) | 0; h2 = g2; if (!g2) { x = 0; Ga(6); G2 = x; x = 0; if (!(G2 & 1)) { j2 = i2[f2 >> 0] | 0; c2 = k[n2 >> 2] | 0; g2 = 0; F2 = 17; } } else F2 = 17; } else { h2 = 0; g2 = o2; F2 = 17; } if ((F2 | 0) == 17) { G2 = (j2 & 1) == 0; f2 = G2 ? f2 + 1 | 0 : k[f2 + 8 >> 2] | 0; x = 0; wa(1, g2 | 0, v2 | 0, u2 | 0, k[d2 + 4 >> 2] | 0, f2 | 0, f2 + (G2 ? (j2 & 255) >>> 1 : c2) | 0, s2 | 0, m2 | 0, w2 | 0, i2[t2 >> 0] | 0, i2[y2 >> 0] | 0, C2 | 0, E2 | 0, D2 | 0, l2 | 0); G2 = x; x = 0; if (!(G2 & 1) ? (k[q2 >> 2] = k[b2 >> 2], G2 = k[v2 >> 2] | 0, A2 = k[u2 >> 2] | 0, x = 0, k[p2 >> 2] = k[q2 >> 2], A2 = sa(39, p2 | 0, g2 | 0, G2 | 0, A2 | 0, d2 | 0, e2 | 0) | 0, G2 = x, x = 0, !(G2 & 1)) : 0) { if (h2) { Ql(h2); a2 = k[B2 >> 2] | 0; } Sm(D2); Sm(E2); Sm(C2); zm(a2) | 0; r = z2; return A2 | 0; } } g2 = Wa() | 0; if (h2) { Ql(h2); a2 = k[B2 >> 2] | 0; } } else g2 = Wa() | 0; Sm(D2); Sm(E2); Sm(C2); } while (0); if ((F2 | 0) == 13) g2 = Wa() | 0; zm(a2) | 0; fb(g2 | 0); return 0; } function ps(a2) { a2 = a2 | 0; return; } function qs(a2) { a2 = a2 | 0; mj(a2); return; } function rs(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = +f2; var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0; D2 = r; r = r + 992 | 0; u2 = D2 + 8 | 0; g2 = D2; j2 = D2 + 888 | 0; l2 = D2 + 880 | 0; h2 = D2 + 480 | 0; F2 = D2 + 76 | 0; A2 = D2 + 884 | 0; w2 = D2 + 72 | 0; B2 = D2 + 68 | 0; G2 = D2 + 56 | 0; I2 = D2 + 44 | 0; H2 = D2 + 32 | 0; m2 = D2 + 28 | 0; t2 = D2 + 80 | 0; z2 = D2 + 24 | 0; y2 = D2 + 20 | 0; v2 = D2 + 16 | 0; k[l2 >> 2] = j2; p[u2 >> 3] = f2; j2 = il(j2, 100, 59018, u2) | 0; do if (j2 >>> 0 > 99) { x = 0; a2 = Da(3) | 0; C2 = x; x = 0; if (!(C2 & 1) ? (x = 0, p[g2 >> 3] = f2, q2 = Ea(17, l2 | 0, a2 | 0, 59018, g2 | 0) | 0, C2 = x, x = 0, !(C2 & 1)) : 0) { a2 = k[l2 >> 2] | 0; if (!a2) { x = 0; Ga(6); C2 = x; x = 0; if (C2 & 1) { a2 = 0; g2 = 0; C2 = 7; break; } a2 = k[l2 >> 2] | 0; } h2 = Pl(q2 << 2) | 0; g2 = h2; if (!h2) { x = 0; Ga(6); C2 = x; x = 0; if (C2 & 1) C2 = 7; else { s2 = 0; C2 = 10; } } else { s2 = h2; C2 = 10; } } else { a2 = 0; g2 = 0; C2 = 7; } } else { g2 = 0; a2 = 0; s2 = h2; q2 = j2; C2 = 10; } while (0); if ((C2 | 0) == 10) { x = 0; h2 = ta(68, d2 | 0) | 0; o2 = x; x = 0; if (o2 & 1) C2 = 7; else { k[F2 >> 2] = h2; x = 0; o2 = Aa(37, F2 | 0, 44212) | 0; n2 = x; x = 0; if (!(n2 & 1) ? (n2 = k[l2 >> 2] | 0, x = 0, Ea(k[(k[o2 >> 2] | 0) + 48 >> 2] | 0, o2 | 0, n2 | 0, n2 + q2 | 0, s2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { if (!q2) n2 = 0; else n2 = (i2[k[l2 >> 2] >> 0] | 0) == 45; k[G2 >> 2] = 0; k[G2 + 4 >> 2] = 0; k[G2 + 8 >> 2] = 0; k[I2 >> 2] = 0; k[I2 + 4 >> 2] = 0; k[I2 + 8 >> 2] = 0; k[H2 >> 2] = 0; k[H2 + 4 >> 2] = 0; k[H2 + 8 >> 2] = 0; x = 0; za(4, c2 | 0, n2 | 0, F2 | 0, A2 | 0, w2 | 0, B2 | 0, G2 | 0, I2 | 0, H2 | 0, m2 | 0); c2 = x; x = 0; if (!(c2 & 1)) { m2 = k[m2 >> 2] | 0; if ((q2 | 0) > (m2 | 0)) { c2 = i2[H2 >> 0] | 0; j2 = i2[I2 >> 0] | 0; j2 = (q2 - m2 << 1 | 1) + m2 + ((c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[H2 + 4 >> 2] | 0) + ((j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[I2 + 4 >> 2] | 0) | 0; } else { c2 = i2[H2 >> 0] | 0; j2 = i2[I2 >> 0] | 0; j2 = m2 + 2 + ((c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[H2 + 4 >> 2] | 0) + ((j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[I2 + 4 >> 2] | 0) | 0; } if (j2 >>> 0 > 100) { j2 = Pl(j2 << 2) | 0; l2 = j2; if (!j2) { x = 0; Ga(6); t2 = x; x = 0; if (!(t2 & 1)) { j2 = 0; C2 = 26; } } else C2 = 26; } else { l2 = 0; j2 = t2; C2 = 26; } if ((C2 | 0) == 26) { x = 0; wa(2, j2 | 0, z2 | 0, y2 | 0, k[d2 + 4 >> 2] | 0, s2 | 0, s2 + (q2 << 2) | 0, o2 | 0, n2 | 0, A2 | 0, k[w2 >> 2] | 0, k[B2 >> 2] | 0, G2 | 0, I2 | 0, H2 | 0, m2 | 0); B2 = x; x = 0; if (!(B2 & 1) ? (k[v2 >> 2] = k[b2 >> 2], b2 = k[z2 >> 2] | 0, E2 = k[y2 >> 2] | 0, x = 0, k[u2 >> 2] = k[v2 >> 2], E2 = sa(40, u2 | 0, j2 | 0, b2 | 0, E2 | 0, d2 | 0, e2 | 0) | 0, b2 = x, x = 0, !(b2 & 1)) : 0) { if (l2) { Ql(l2); h2 = k[F2 >> 2] | 0; } en(H2); en(I2); Sm(G2); zm(h2) | 0; if (g2) Ql(g2); if (a2) Ql(a2); r = D2; return E2 | 0; } } j2 = Wa() | 0; if (l2) { Ql(l2); h2 = k[F2 >> 2] | 0; } } else j2 = Wa() | 0; en(H2); en(I2); Sm(G2); } else j2 = Wa() | 0; zm(h2) | 0; } } if ((C2 | 0) == 7) j2 = Wa() | 0; if (g2) Ql(g2); if (a2) Ql(a2); fb(j2 | 0); return 0; } function ss(a2, b2, c2, d2, e2, f2, g2, h2, j2, l2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; j2 = j2 | 0; l2 = l2 | 0; var m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0; B2 = r; r = r + 112 | 0; m2 = B2 + 108 | 0; n2 = B2 + 96 | 0; q2 = B2 + 92 | 0; s2 = B2 + 80 | 0; t2 = B2 + 68 | 0; u2 = B2 + 56 | 0; v2 = B2 + 52 | 0; w2 = B2 + 40 | 0; y2 = B2 + 36 | 0; z2 = B2 + 24 | 0; o2 = B2 + 12 | 0; p2 = B2; do if (a2) { a2 = Ss(c2, 43956) | 0; c2 = k[a2 >> 2] | 0; do if (b2) { Mb[k[c2 + 44 >> 2] & 127](m2, a2); b2 = k[m2 >> 2] | 0; i2[d2 >> 0] = b2; i2[d2 + 1 >> 0] = b2 >> 8; i2[d2 + 2 >> 0] = b2 >> 16; i2[d2 + 3 >> 0] = b2 >> 24; Mb[k[(k[a2 >> 2] | 0) + 32 >> 2] & 127](n2, a2); if (!(i2[j2 >> 0] & 1)) i2[j2 >> 0] = 0; else k[k[j2 + 8 >> 2] >> 2] = 0; k[j2 + 4 >> 2] = 0; x = 0; ra(93, j2 | 0, 0); d2 = x; x = 0; if (d2 & 1) { j2 = Wa(0) | 0; oc(j2); } else { k[j2 >> 2] = k[n2 >> 2]; k[j2 + 4 >> 2] = k[n2 + 4 >> 2]; k[j2 + 8 >> 2] = k[n2 + 8 >> 2]; k[n2 >> 2] = 0; k[n2 + 4 >> 2] = 0; k[n2 + 8 >> 2] = 0; en(n2); break; } } else { Mb[k[c2 + 40 >> 2] & 127](q2, a2); b2 = k[q2 >> 2] | 0; i2[d2 >> 0] = b2; i2[d2 + 1 >> 0] = b2 >> 8; i2[d2 + 2 >> 0] = b2 >> 16; i2[d2 + 3 >> 0] = b2 >> 24; Mb[k[(k[a2 >> 2] | 0) + 28 >> 2] & 127](s2, a2); if (!(i2[j2 >> 0] & 1)) i2[j2 >> 0] = 0; else k[k[j2 + 8 >> 2] >> 2] = 0; k[j2 + 4 >> 2] = 0; x = 0; ra(93, j2 | 0, 0); d2 = x; x = 0; if (d2 & 1) { j2 = Wa(0) | 0; oc(j2); } else { k[j2 >> 2] = k[s2 >> 2]; k[j2 + 4 >> 2] = k[s2 + 4 >> 2]; k[j2 + 8 >> 2] = k[s2 + 8 >> 2]; k[s2 >> 2] = 0; k[s2 + 4 >> 2] = 0; k[s2 + 8 >> 2] = 0; en(s2); break; } } while (0); j2 = Ob[k[(k[a2 >> 2] | 0) + 12 >> 2] & 127](a2) | 0; k[e2 >> 2] = j2; j2 = Ob[k[(k[a2 >> 2] | 0) + 16 >> 2] & 127](a2) | 0; k[f2 >> 2] = j2; Mb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 127](t2, a2); if (!(i2[g2 >> 0] & 1)) { i2[g2 + 1 >> 0] = 0; i2[g2 >> 0] = 0; } else { i2[k[g2 + 8 >> 2] >> 0] = 0; k[g2 + 4 >> 2] = 0; } x = 0; ra(91, g2 | 0, 0); f2 = x; x = 0; if (f2 & 1) { f2 = Wa(0) | 0; oc(f2); } ; k[g2 >> 2] = k[t2 >> 2]; k[g2 + 4 >> 2] = k[t2 + 4 >> 2]; k[g2 + 8 >> 2] = k[t2 + 8 >> 2]; k[t2 >> 2] = 0; k[t2 + 4 >> 2] = 0; k[t2 + 8 >> 2] = 0; Sm(t2); Mb[k[(k[a2 >> 2] | 0) + 24 >> 2] & 127](u2, a2); if (!(i2[h2 >> 0] & 1)) i2[h2 >> 0] = 0; else k[k[h2 + 8 >> 2] >> 2] = 0; k[h2 + 4 >> 2] = 0; x = 0; ra(93, h2 | 0, 0); f2 = x; x = 0; if (f2 & 1) { f2 = Wa(0) | 0; oc(f2); } else { k[h2 >> 2] = k[u2 >> 2]; k[h2 + 4 >> 2] = k[u2 + 4 >> 2]; k[h2 + 8 >> 2] = k[u2 + 8 >> 2]; k[u2 >> 2] = 0; k[u2 + 4 >> 2] = 0; k[u2 + 8 >> 2] = 0; en(u2); A2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; break; } } else { a2 = Ss(c2, 43892) | 0; c2 = k[a2 >> 2] | 0; do if (b2) { Mb[k[c2 + 44 >> 2] & 127](v2, a2); b2 = k[v2 >> 2] | 0; i2[d2 >> 0] = b2; i2[d2 + 1 >> 0] = b2 >> 8; i2[d2 + 2 >> 0] = b2 >> 16; i2[d2 + 3 >> 0] = b2 >> 24; Mb[k[(k[a2 >> 2] | 0) + 32 >> 2] & 127](w2, a2); if (!(i2[j2 >> 0] & 1)) i2[j2 >> 0] = 0; else k[k[j2 + 8 >> 2] >> 2] = 0; k[j2 + 4 >> 2] = 0; x = 0; ra(93, j2 | 0, 0); d2 = x; x = 0; if (d2 & 1) { j2 = Wa(0) | 0; oc(j2); } else { k[j2 >> 2] = k[w2 >> 2]; k[j2 + 4 >> 2] = k[w2 + 4 >> 2]; k[j2 + 8 >> 2] = k[w2 + 8 >> 2]; k[w2 >> 2] = 0; k[w2 + 4 >> 2] = 0; k[w2 + 8 >> 2] = 0; en(w2); break; } } else { Mb[k[c2 + 40 >> 2] & 127](y2, a2); b2 = k[y2 >> 2] | 0; i2[d2 >> 0] = b2; i2[d2 + 1 >> 0] = b2 >> 8; i2[d2 + 2 >> 0] = b2 >> 16; i2[d2 + 3 >> 0] = b2 >> 24; Mb[k[(k[a2 >> 2] | 0) + 28 >> 2] & 127](z2, a2); if (!(i2[j2 >> 0] & 1)) i2[j2 >> 0] = 0; else k[k[j2 + 8 >> 2] >> 2] = 0; k[j2 + 4 >> 2] = 0; x = 0; ra(93, j2 | 0, 0); d2 = x; x = 0; if (d2 & 1) { j2 = Wa(0) | 0; oc(j2); } else { k[j2 >> 2] = k[z2 >> 2]; k[j2 + 4 >> 2] = k[z2 + 4 >> 2]; k[j2 + 8 >> 2] = k[z2 + 8 >> 2]; k[z2 >> 2] = 0; k[z2 + 4 >> 2] = 0; k[z2 + 8 >> 2] = 0; en(z2); break; } } while (0); j2 = Ob[k[(k[a2 >> 2] | 0) + 12 >> 2] & 127](a2) | 0; k[e2 >> 2] = j2; j2 = Ob[k[(k[a2 >> 2] | 0) + 16 >> 2] & 127](a2) | 0; k[f2 >> 2] = j2; Mb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 127](o2, a2); if (!(i2[g2 >> 0] & 1)) { i2[g2 + 1 >> 0] = 0; i2[g2 >> 0] = 0; } else { i2[k[g2 + 8 >> 2] >> 0] = 0; k[g2 + 4 >> 2] = 0; } x = 0; ra(91, g2 | 0, 0); f2 = x; x = 0; if (f2 & 1) { f2 = Wa(0) | 0; oc(f2); } ; k[g2 >> 2] = k[o2 >> 2]; k[g2 + 4 >> 2] = k[o2 + 4 >> 2]; k[g2 + 8 >> 2] = k[o2 + 8 >> 2]; k[o2 >> 2] = 0; k[o2 + 4 >> 2] = 0; k[o2 + 8 >> 2] = 0; Sm(o2); Mb[k[(k[a2 >> 2] | 0) + 24 >> 2] & 127](p2, a2); if (!(i2[h2 >> 0] & 1)) i2[h2 >> 0] = 0; else k[k[h2 + 8 >> 2] >> 2] = 0; k[h2 + 4 >> 2] = 0; x = 0; ra(93, h2 | 0, 0); f2 = x; x = 0; if (f2 & 1) { f2 = Wa(0) | 0; oc(f2); } else { k[h2 >> 2] = k[p2 >> 2]; k[h2 + 4 >> 2] = k[p2 + 4 >> 2]; k[h2 + 8 >> 2] = k[p2 + 8 >> 2]; k[p2 >> 2] = 0; k[p2 + 4 >> 2] = 0; k[p2 + 8 >> 2] = 0; en(p2); A2 = Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0; break; } } while (0); k[l2 >> 2] = A2; r = B2; return; } function ts(a2, b2, c2, d2, e2, f2, g2, h2, j2, l2, m2, n2, o2, p2, q2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; j2 = j2 | 0; l2 = l2 | 0; m2 = m2 | 0; n2 = n2 | 0; o2 = o2 | 0; p2 = p2 | 0; q2 = q2 | 0; var r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0; k[c2 >> 2] = a2; J2 = p2 + 4 | 0; K2 = p2 + 8 | 0; C2 = o2 + 4 | 0; D2 = (d2 & 512 | 0) == 0; E2 = o2 + 8 | 0; F2 = (q2 | 0) > 0; G2 = n2 + 4 | 0; H2 = n2 + 8 | 0; I2 = n2 + 1 | 0; A2 = (q2 | 0) > 0; z2 = 0; do { switch (i2[j2 + z2 >> 0] | 0) { case 0: { k[b2 >> 2] = k[c2 >> 2]; break; } case 1: { k[b2 >> 2] = k[c2 >> 2]; x2 = Vb[k[(k[g2 >> 2] | 0) + 44 >> 2] & 63](g2, 32) | 0; y2 = k[c2 >> 2] | 0; k[c2 >> 2] = y2 + 4; k[y2 >> 2] = x2; break; } case 3: { y2 = i2[p2 >> 0] | 0; r2 = (y2 & 1) == 0; if ((r2 ? (y2 & 255) >>> 1 : k[J2 >> 2] | 0) | 0) { x2 = k[(r2 ? J2 : k[K2 >> 2] | 0) >> 2] | 0; y2 = k[c2 >> 2] | 0; k[c2 >> 2] = y2 + 4; k[y2 >> 2] = x2; } break; } case 2: { v2 = i2[o2 >> 0] | 0; r2 = (v2 & 1) == 0; v2 = r2 ? (v2 & 255) >>> 1 : k[C2 >> 2] | 0; if (!(D2 | (v2 | 0) == 0)) { r2 = r2 ? C2 : k[E2 >> 2] | 0; t2 = r2 + (v2 << 2) | 0; u2 = k[c2 >> 2] | 0; if (v2) { s2 = u2; while (1) { k[s2 >> 2] = k[r2 >> 2]; r2 = r2 + 4 | 0; if ((r2 | 0) == (t2 | 0)) break; else s2 = s2 + 4 | 0; } } k[c2 >> 2] = u2 + (v2 << 2); } break; } case 4: { r2 = k[c2 >> 2] | 0; e2 = h2 ? e2 + 4 | 0 : e2; a: do if (e2 >>> 0 < f2 >>> 0) { s2 = e2; do { if (!(Qb[k[(k[g2 >> 2] | 0) + 12 >> 2] & 63](g2, 2048, k[s2 >> 2] | 0) | 0)) break a; s2 = s2 + 4 | 0; } while (s2 >>> 0 < f2 >>> 0); } else s2 = e2; while (0); if (F2) { if (s2 >>> 0 > e2 >>> 0 & A2) { v2 = k[c2 >> 2] | 0; u2 = q2; while (1) { s2 = s2 + -4 | 0; t2 = v2 + 4 | 0; k[v2 >> 2] = k[s2 >> 2]; w2 = u2 + -1 | 0; u2 = (u2 | 0) > 1; if (s2 >>> 0 > e2 >>> 0 & u2) { v2 = t2; u2 = w2; } else { v2 = w2; break; } } k[c2 >> 2] = t2; t2 = v2; } else { u2 = A2; t2 = q2; } if (u2) w2 = Vb[k[(k[g2 >> 2] | 0) + 44 >> 2] & 63](g2, 48) | 0; else w2 = 0; x2 = k[c2 >> 2] | 0; u2 = t2 + ((t2 | 0) < 0 ? ~t2 : -1) | 0; if ((t2 | 0) > 0) { v2 = x2; while (1) { k[v2 >> 2] = w2; if ((t2 | 0) > 1) { v2 = v2 + 4 | 0; t2 = t2 + -1 | 0; } else break; } } k[c2 >> 2] = x2 + (u2 + 2 << 2); k[x2 + (u2 + 1 << 2) >> 2] = l2; } if ((s2 | 0) == (e2 | 0)) { x2 = Vb[k[(k[g2 >> 2] | 0) + 44 >> 2] & 63](g2, 48) | 0; y2 = k[c2 >> 2] | 0; s2 = y2 + 4 | 0; k[c2 >> 2] = s2; k[y2 >> 2] = x2; } else { x2 = i2[n2 >> 0] | 0; t2 = (x2 & 1) == 0; y2 = k[G2 >> 2] | 0; if (!((t2 ? (x2 & 255) >>> 1 : y2) | 0)) t2 = -1; else t2 = i2[(t2 ? I2 : k[H2 >> 2] | 0) >> 0] | 0; if ((s2 | 0) != (e2 | 0)) { w2 = 0; x2 = 0; while (1) { u2 = k[c2 >> 2] | 0; if ((x2 | 0) == (t2 | 0)) { v2 = u2 + 4 | 0; k[c2 >> 2] = v2; k[u2 >> 2] = m2; w2 = w2 + 1 | 0; u2 = i2[n2 >> 0] | 0; t2 = (u2 & 1) == 0; if (w2 >>> 0 < (t2 ? (u2 & 255) >>> 1 : y2) >>> 0) { t2 = i2[(t2 ? I2 : k[H2 >> 2] | 0) + w2 >> 0] | 0; u2 = v2; t2 = t2 << 24 >> 24 == 127 ? -1 : t2 << 24 >> 24; v2 = 0; } else { u2 = v2; t2 = x2; v2 = 0; } } else v2 = x2; s2 = s2 + -4 | 0; x2 = k[s2 >> 2] | 0; k[c2 >> 2] = u2 + 4; k[u2 >> 2] = x2; if ((s2 | 0) == (e2 | 0)) break; else x2 = v2 + 1 | 0; } } s2 = k[c2 >> 2] | 0; } if ((r2 | 0) != (s2 | 0) ? (B2 = s2 + -4 | 0, r2 >>> 0 < B2 >>> 0) : 0) { s2 = B2; do { y2 = k[r2 >> 2] | 0; k[r2 >> 2] = k[s2 >> 2]; k[s2 >> 2] = y2; r2 = r2 + 4 | 0; s2 = s2 + -4 | 0; } while (r2 >>> 0 < s2 >>> 0); } break; } default: { } } z2 = z2 + 1 | 0; } while ((z2 | 0) != 4); r2 = i2[p2 >> 0] | 0; e2 = (r2 & 1) == 0; r2 = e2 ? (r2 & 255) >>> 1 : k[J2 >> 2] | 0; if (r2 >>> 0 > 1) { s2 = e2 ? J2 : k[K2 >> 2] | 0; e2 = s2 + 4 | 0; s2 = s2 + (r2 << 2) | 0; t2 = k[c2 >> 2] | 0; u2 = s2 - e2 | 0; if ((r2 | 0) != 1) { r2 = t2; while (1) { k[r2 >> 2] = k[e2 >> 2]; e2 = e2 + 4 | 0; if ((e2 | 0) == (s2 | 0)) break; else r2 = r2 + 4 | 0; } } k[c2 >> 2] = t2 + (u2 >>> 2 << 2); } switch (d2 & 176 | 0) { case 32: { k[b2 >> 2] = k[c2 >> 2]; break; } case 16: break; default: k[b2 >> 2] = a2; } return; } function us(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0; z2 = r; r = r + 480 | 0; o2 = z2 + 468 | 0; B2 = z2 + 464 | 0; w2 = z2 + 472 | 0; t2 = z2 + 56 | 0; y2 = z2 + 52 | 0; C2 = z2 + 40 | 0; E2 = z2 + 28 | 0; D2 = z2 + 16 | 0; l2 = z2 + 12 | 0; n2 = z2 + 64 | 0; v2 = z2 + 8 | 0; u2 = z2 + 4 | 0; p2 = z2; a2 = tn(d2) | 0; k[B2 >> 2] = a2; x = 0; q2 = Aa(37, B2 | 0, 44212) | 0; s2 = x; x = 0; do if (s2 & 1) F2 = 13; else { m2 = i2[f2 >> 0] | 0; g2 = (m2 & 1) == 0; s2 = f2 + 4 | 0; if (!((g2 ? (m2 & 255) >>> 1 : k[s2 >> 2] | 0) | 0)) m2 = 0; else { g2 = k[(g2 ? s2 : k[f2 + 8 >> 2] | 0) >> 2] | 0; x = 0; h2 = Aa(k[(k[q2 >> 2] | 0) + 44 >> 2] | 0, q2 | 0, 45) | 0; m2 = x; x = 0; if (m2 & 1) { F2 = 13; break; } m2 = (g2 | 0) == (h2 | 0); } k[C2 >> 2] = 0; k[C2 + 4 >> 2] = 0; k[C2 + 8 >> 2] = 0; k[E2 >> 2] = 0; k[E2 + 4 >> 2] = 0; k[E2 + 8 >> 2] = 0; k[D2 >> 2] = 0; k[D2 + 4 >> 2] = 0; k[D2 + 8 >> 2] = 0; x = 0; za(4, c2 | 0, m2 | 0, B2 | 0, w2 | 0, t2 | 0, y2 | 0, C2 | 0, E2 | 0, D2 | 0, l2 | 0); j2 = x; x = 0; if (!(j2 & 1)) { j2 = i2[f2 >> 0] | 0; c2 = k[s2 >> 2] | 0; g2 = (j2 & 1) == 0 ? (j2 & 255) >>> 1 : c2; l2 = k[l2 >> 2] | 0; if ((g2 | 0) > (l2 | 0)) { G2 = i2[D2 >> 0] | 0; h2 = i2[E2 >> 0] | 0; g2 = (g2 - l2 << 1 | 1) + l2 + ((G2 & 1) == 0 ? (G2 & 255) >>> 1 : k[D2 + 4 >> 2] | 0) + ((h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[E2 + 4 >> 2] | 0) | 0; } else { G2 = i2[D2 >> 0] | 0; g2 = i2[E2 >> 0] | 0; g2 = l2 + 2 + ((G2 & 1) == 0 ? (G2 & 255) >>> 1 : k[D2 + 4 >> 2] | 0) + ((g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[E2 + 4 >> 2] | 0) | 0; } if (g2 >>> 0 > 100) { g2 = Pl(g2 << 2) | 0; h2 = g2; if (!g2) { x = 0; Ga(6); G2 = x; x = 0; if (!(G2 & 1)) { j2 = i2[f2 >> 0] | 0; c2 = k[s2 >> 2] | 0; g2 = 0; F2 = 17; } } else F2 = 17; } else { h2 = 0; g2 = n2; F2 = 17; } if ((F2 | 0) == 17) { G2 = (j2 & 1) == 0; f2 = G2 ? s2 : k[f2 + 8 >> 2] | 0; x = 0; wa(2, g2 | 0, v2 | 0, u2 | 0, k[d2 + 4 >> 2] | 0, f2 | 0, f2 + ((G2 ? (j2 & 255) >>> 1 : c2) << 2) | 0, q2 | 0, m2 | 0, w2 | 0, k[t2 >> 2] | 0, k[y2 >> 2] | 0, C2 | 0, E2 | 0, D2 | 0, l2 | 0); G2 = x; x = 0; if (!(G2 & 1) ? (k[p2 >> 2] = k[b2 >> 2], G2 = k[v2 >> 2] | 0, A2 = k[u2 >> 2] | 0, x = 0, k[o2 >> 2] = k[p2 >> 2], A2 = sa(40, o2 | 0, g2 | 0, G2 | 0, A2 | 0, d2 | 0, e2 | 0) | 0, G2 = x, x = 0, !(G2 & 1)) : 0) { if (h2) { Ql(h2); a2 = k[B2 >> 2] | 0; } en(D2); en(E2); Sm(C2); zm(a2) | 0; r = z2; return A2 | 0; } } g2 = Wa() | 0; if (h2) { Ql(h2); a2 = k[B2 >> 2] | 0; } } else g2 = Wa() | 0; en(D2); en(E2); Sm(C2); } while (0); if ((F2 | 0) == 13) g2 = Wa() | 0; zm(a2) | 0; fb(g2 | 0); return 0; } function vs(a2) { a2 = a2 | 0; return; } function ws(a2) { a2 = a2 | 0; mj(a2); return; } function xs(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; a2 = vk((i2[b2 >> 0] & 1) == 0 ? b2 + 1 | 0 : k[b2 + 8 >> 2] | 0, 1) | 0; return a2 >>> ((a2 | 0) != (-1 | 0) & 1) | 0; } function ys(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, l2 = 0; h2 = r; r = r + 16 | 0; j2 = h2; k[j2 >> 2] = 0; k[j2 + 4 >> 2] = 0; k[j2 + 8 >> 2] = 0; g2 = i2[f2 >> 0] | 0; l2 = (g2 & 1) == 0; b2 = l2 ? f2 + 1 | 0 : k[f2 + 8 >> 2] | 0; g2 = l2 ? (g2 & 255) >>> 1 : k[f2 + 4 >> 2] | 0; f2 = b2 + g2 | 0; a: do if ((g2 | 0) > 0) { while (1) { x = 0; ra(67, j2 | 0, i2[b2 >> 0] | 0); l2 = x; x = 0; if (l2 & 1) break; b2 = b2 + 1 | 0; if (b2 >>> 0 >= f2 >>> 0) { g2 = 4; break a; } } b2 = Wa() | 0; g2 = 7; } else g2 = 4; while (0); b: do if ((g2 | 0) == 4) { x = 0; b2 = Ea(19, ((c2 | 0) == -1 ? -1 : c2 << 1) | 0, d2 | 0, e2 | 0, ((i2[j2 >> 0] & 1) == 0 ? j2 + 1 | 0 : k[j2 + 8 >> 2] | 0) | 0) | 0; l2 = x; x = 0; if (l2 & 1) { b2 = Wa() | 0; g2 = 7; break; } k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; l2 = xl(b2) | 0; f2 = b2 + l2 | 0; c: do if ((l2 | 0) > 0) { while (1) { x = 0; ra(67, a2 | 0, i2[b2 >> 0] | 0); l2 = x; x = 0; if (l2 & 1) break; b2 = b2 + 1 | 0; if (b2 >>> 0 >= f2 >>> 0) break c; } b2 = Wa() | 0; Sm(a2); break b; } while (0); Sm(j2); r = h2; return; } while (0); Sm(j2); fb(b2 | 0); } function zs(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; return; } function As(a2) { a2 = a2 | 0; return; } function Bs(a2) { a2 = a2 | 0; mj(a2); return; } function Cs(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; a2 = vk((i2[b2 >> 0] & 1) == 0 ? b2 + 1 | 0 : k[b2 + 8 >> 2] | 0, 1) | 0; return a2 >>> ((a2 | 0) != (-1 | 0) & 1) | 0; } function Ds(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0; v2 = r; r = r + 224 | 0; n2 = v2 + 184 | 0; m2 = v2 + 192 | 0; l2 = v2 + 180 | 0; o2 = v2 + 176 | 0; t2 = v2 + 168 | 0; s2 = v2 + 40 | 0; q2 = v2 + 32 | 0; u2 = v2 + 28 | 0; w2 = v2 + 16 | 0; j2 = v2 + 8 | 0; p2 = v2; k[w2 >> 2] = 0; k[w2 + 4 >> 2] = 0; k[w2 + 8 >> 2] = 0; k[j2 + 4 >> 2] = 0; k[j2 >> 2] = 44696; h2 = i2[f2 >> 0] | 0; y2 = (h2 & 1) == 0; g2 = f2 + 4 | 0; b2 = y2 ? g2 : k[f2 + 8 >> 2] | 0; f2 = y2 ? (h2 & 255) >>> 1 : k[g2 >> 2] | 0; g2 = b2 + (f2 << 2) | 0; h2 = m2 + 32 | 0; a: do if ((f2 | 0) > 0) { b: while (1) { k[o2 >> 2] = b2; x = 0; f2 = Ha(k[(k[j2 >> 2] | 0) + 12 >> 2] | 0, j2 | 0, n2 | 0, b2 | 0, g2 | 0, o2 | 0, m2 | 0, h2 | 0, l2 | 0) | 0; y2 = x; x = 0; if (y2 & 1) { f2 = 12; break; } if ((f2 | 0) == 2 ? 1 : (k[o2 >> 2] | 0) == (b2 | 0)) { f2 = 5; break; } if (m2 >>> 0 < (k[l2 >> 2] | 0) >>> 0) { b2 = m2; do { x = 0; ra(67, w2 | 0, i2[b2 >> 0] | 0); y2 = x; x = 0; if (y2 & 1) { f2 = 11; break b; } b2 = b2 + 1 | 0; } while (b2 >>> 0 < (k[l2 >> 2] | 0) >>> 0); } b2 = k[o2 >> 2] | 0; if (!((f2 | 0) != 2 & b2 >>> 0 < g2 >>> 0)) { f2 = 9; break a; } } if ((f2 | 0) == 5) { x = 0; qa(190, 58955); x = 0; b2 = Wa() | 0; } else if ((f2 | 0) == 11) b2 = Wa() | 0; else if ((f2 | 0) == 12) b2 = Wa() | 0; } else f2 = 9; while (0); c: do if ((f2 | 0) == 9) { x = 0; b2 = Ea(19, ((c2 | 0) == -1 ? -1 : c2 << 1) | 0, d2 | 0, e2 | 0, ((i2[w2 >> 0] & 1) == 0 ? w2 + 1 | 0 : k[w2 + 8 >> 2] | 0) | 0) | 0; y2 = x; x = 0; if (y2 & 1) { b2 = Wa() | 0; break; } k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; k[p2 + 4 >> 2] = 0; k[p2 >> 2] = 44744; y2 = xl(b2) | 0; g2 = b2 + y2 | 0; h2 = g2; j2 = s2 + 128 | 0; d: do if ((y2 | 0) > 0) { e: while (1) { k[u2 >> 2] = b2; x = 0; f2 = Ha(k[(k[p2 >> 2] | 0) + 16 >> 2] | 0, p2 | 0, t2 | 0, b2 | 0, ((h2 - b2 | 0) > 32 ? b2 + 32 | 0 : g2) | 0, u2 | 0, s2 | 0, j2 | 0, q2 | 0) | 0; y2 = x; x = 0; if (y2 & 1) { f2 = 24; break; } if ((f2 | 0) == 2 ? 1 : (k[u2 >> 2] | 0) == (b2 | 0)) { f2 = 18; break; } if (s2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { b2 = s2; do { x = 0; ra(92, a2 | 0, k[b2 >> 2] | 0); y2 = x; x = 0; if (y2 & 1) { f2 = 23; break e; } b2 = b2 + 4 | 0; } while (b2 >>> 0 < (k[q2 >> 2] | 0) >>> 0); } b2 = k[u2 >> 2] | 0; if (!((f2 | 0) != 2 & b2 >>> 0 < g2 >>> 0)) break d; } if ((f2 | 0) == 18) { x = 0; qa(190, 58955); x = 0; b2 = Wa() | 0; } else if ((f2 | 0) == 23) b2 = Wa() | 0; else if ((f2 | 0) == 24) b2 = Wa() | 0; en(a2); break c; } while (0); Sm(w2); r = v2; return; } while (0); Sm(w2); fb(b2 | 0); } function Es(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; return; } function Fs(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; k[a2 + 4 >> 2] = b2 + -1; k[a2 >> 2] = 44196; f2 = a2 + 8 | 0; x = 0; ra(94, f2 | 0, 28); e2 = x; x = 0; if (e2 & 1) b2 = Wa() | 0; else { e2 = a2 + 144 | 0; x = 0; Fa(5, e2 | 0, 58885, 1); d2 = x; x = 0; if (d2 & 1) b2 = Wa() | 0; else { c2 = k[f2 >> 2] | 0; d2 = a2 + 12 | 0; b2 = k[d2 >> 2] | 0; if ((b2 | 0) != (c2 | 0)) { do b2 = b2 + -4 | 0; while ((b2 | 0) != (c2 | 0)); k[d2 >> 2] = b2; } k[495] = 0; k[494] = 43124; x = 0; ra(95, a2 | 0, 1976); d2 = x; x = 0; do if (((((((((((((!(d2 & 1) ? (k[497] = 0, k[496] = 43164, x = 0, ra(96, a2 | 0, 1984), d2 = x, x = 0, !(d2 & 1)) : 0) ? (k[499] = 0, k[498] = 44236, k[500] = 0, i2[2004] = 0, d2 = Ys() | 0, k[500] = d2, x = 0, ra(97, a2 | 0, 1992), d2 = x, x = 0, !(d2 & 1)) : 0) ? (k[503] = 0, k[502] = 44484, x = 0, ra(98, a2 | 0, 2008), d2 = x, x = 0, !(d2 & 1)) : 0) ? (k[505] = 0, k[504] = 44552, x = 0, ra(99, a2 | 0, 2016), d2 = x, x = 0, !(d2 & 1)) : 0) ? (x = 0, ra(100, 2024, 1), d2 = x, x = 0, !(d2 & 1)) : 0) ? (x = 0, ra(101, a2 | 0, 2024), d2 = x, x = 0, !(d2 & 1)) : 0) ? (k[511] = 0, k[510] = 44600, x = 0, ra(102, a2 | 0, 2040), d2 = x, x = 0, !(d2 & 1)) : 0) ? (k[513] = 0, k[512] = 44648, x = 0, ra(103, a2 | 0, 2048), d2 = x, x = 0, !(d2 & 1)) : 0) ? (bu(2056, 1), x = 0, ra(104, a2 | 0, 2056), d2 = x, x = 0, !(d2 & 1)) : 0) ? (cu(2080, 1), x = 0, ra(105, a2 | 0, 2080), d2 = x, x = 0, !(d2 & 1)) : 0) ? (k[529] = 0, k[528] = 43204, x = 0, ra(106, a2 | 0, 2112), d2 = x, x = 0, !(d2 & 1)) : 0) ? (k[531] = 0, k[530] = 43276, x = 0, ra(107, a2 | 0, 2120), d2 = x, x = 0, !(d2 & 1)) : 0) ? (k[533] = 0, k[532] = 43348, x = 0, ra(108, a2 | 0, 2128), d2 = x, x = 0, !(d2 & 1)) : 0) { k[535] = 0; k[534] = 43408; x = 0; ra(109, a2 | 0, 2136); d2 = x; x = 0; if (d2 & 1) { g2 = 42; break; } k[537] = 0; k[536] = 43716; x = 0; ra(110, a2 | 0, 2144); d2 = x; x = 0; if (d2 & 1) { g2 = 42; break; } k[539] = 0; k[538] = 43780; x = 0; ra(111, a2 | 0, 2152); d2 = x; x = 0; if (d2 & 1) { g2 = 42; break; } k[541] = 0; k[540] = 43844; x = 0; ra(112, a2 | 0, 2160); d2 = x; x = 0; if (d2 & 1) { g2 = 42; break; } k[543] = 0; k[542] = 43908; x = 0; ra(113, a2 | 0, 2168); d2 = x; x = 0; if (d2 & 1) { g2 = 42; break; } k[545] = 0; k[544] = 43972; x = 0; ra(114, a2 | 0, 2176); d2 = x; x = 0; if (d2 & 1) { g2 = 42; break; } k[547] = 0; k[546] = 44008; x = 0; ra(115, a2 | 0, 2184); d2 = x; x = 0; if (d2 & 1) { g2 = 42; break; } k[549] = 0; k[548] = 44044; x = 0; ra(116, a2 | 0, 2192); d2 = x; x = 0; if (d2 & 1) { g2 = 42; break; } k[551] = 0; k[550] = 44080; x = 0; ra(117, a2 | 0, 2200); d2 = x; x = 0; if (d2 & 1) { g2 = 42; break; } k[553] = 0; k[552] = 43468; k[554] = 43516; x = 0; ra(118, a2 | 0, 2208); d2 = x; x = 0; if (d2 & 1) { g2 = 42; break; } k[557] = 0; k[556] = 43560; k[558] = 43608; x = 0; ra(119, a2 | 0, 2224); d2 = x; x = 0; if (d2 & 1) { g2 = 42; break; } k[561] = 0; k[560] = 44464; x = 0; b2 = Da(3) | 0; d2 = x; x = 0; if (d2 & 1) { b2 = Wa() | 0; break; } k[562] = b2; k[560] = 43652; x = 0; ra(120, a2 | 0, 2240); d2 = x; x = 0; if (d2 & 1) { g2 = 42; break; } k[565] = 0; k[564] = 44464; x = 0; b2 = Da(3) | 0; d2 = x; x = 0; if (d2 & 1) { b2 = Wa() | 0; break; } k[566] = b2; k[564] = 43684; x = 0; ra(121, a2 | 0, 2256); g2 = x; x = 0; if (g2 & 1) { g2 = 42; break; } k[569] = 0; k[568] = 44116; x = 0; ra(122, a2 | 0, 2272); g2 = x; x = 0; if (g2 & 1) { g2 = 42; break; } k[571] = 0; k[570] = 44156; x = 0; ra(123, a2 | 0, 2280); g2 = x; x = 0; if (g2 & 1) { g2 = 42; break; } return; } else g2 = 42; while (0); if ((g2 | 0) == 42) b2 = Wa() | 0; Sm(e2); } Nv(f2); } fb(b2 | 0); } function Gs() { var a2 = 0; do if ((i2[2288] | 0) == 0 ? (Qa(2288) | 0) != 0 : 0) { x = 0; Da(4) | 0; a2 = x; x = 0; if (a2 & 1) { a2 = Wa() | 0; Bb(2288); fb(a2 | 0); } else { k[11246] = 44980; Ya(2288); break; } } while (0); return k[11246] | 0; } function Hs(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0; ym(b2); e2 = a2 + 8 | 0; d2 = k[e2 >> 2] | 0; do if ((k[a2 + 12 >> 2] | 0) - d2 >> 2 >>> 0 <= c2 >>> 0) { x = 0; ra(124, e2 | 0, c2 + 1 | 0); a2 = x; x = 0; if (!(a2 & 1)) { d2 = k[e2 >> 2] | 0; break; } d2 = Wa() | 0; if (b2) zm(b2) | 0; fb(d2 | 0); } while (0); a2 = k[d2 + (c2 << 2) >> 2] | 0; if (a2) { zm(a2) | 0; d2 = k[e2 >> 2] | 0; } k[d2 + (c2 << 2) >> 2] = b2; return; } function Is(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0; k[a2 >> 2] = 44196; d2 = a2 + 8 | 0; e2 = a2 + 12 | 0; b2 = k[d2 >> 2] | 0; if ((k[e2 >> 2] | 0) != (b2 | 0)) { c2 = 0; do { b2 = k[b2 + (c2 << 2) >> 2] | 0; if (b2) zm(b2) | 0; c2 = c2 + 1 | 0; b2 = k[d2 >> 2] | 0; } while (c2 >>> 0 < (k[e2 >> 2] | 0) - b2 >> 2 >>> 0); } Sm(a2 + 144 | 0); Nv(d2); return; } function Js(a2) { a2 = a2 | 0; Is(a2); mj(a2); return; } function Ks(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; if (Pv(a2, b2) | 0) return k[(k[a2 + 8 >> 2] | 0) + (b2 << 2) >> 2] | 0; else { a2 = Va(4) | 0; Aj(a2); ub(a2 | 0, 640, 82); } return 0; } function Ls() { Fs(2296, 1); k[11245] = 2296; return 44980; } function Ms() { var a2 = 0; a2 = Gs() | 0; a2 = k[a2 >> 2] | 0; k[11247] = a2; ym(a2); return 44988; } function Ns() { var a2 = 0; do if ((i2[2456] | 0) == 0 ? (Qa(2456) | 0) != 0 : 0) { x = 0; Da(5) | 0; a2 = x; x = 0; if (a2 & 1) { a2 = Wa() | 0; Bb(2456); fb(a2 | 0); } else { k[11248] = 44988; Ya(2456); break; } } while (0); return k[11248] | 0; } function Os(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; x = 0; b2 = Da(6) | 0; c2 = x; x = 0; if (c2 & 1) { c2 = Wa(0) | 0; oc(c2); } else { c2 = k[b2 >> 2] | 0; k[a2 >> 2] = c2; ym(c2); return; } } function Ps(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; b2 = k[b2 >> 2] | 0; k[a2 >> 2] = b2; ym(b2); return; } function Qs(a2) { a2 = a2 | 0; zm(k[a2 >> 2] | 0) | 0; return; } function Rs(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; c2 = r; r = r + 16 | 0; b2 = c2; if ((k[a2 >> 2] | 0) != -1) { k[b2 >> 2] = a2; k[b2 + 4 >> 2] = 191; k[b2 + 8 >> 2] = 0; Om(a2, b2, 192); } r = c2; return (k[a2 + 4 >> 2] | 0) + -1 | 0; } function Ss(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; a2 = k[a2 >> 2] | 0; return Ks(a2, Rs(b2) | 0) | 0; } function Ts(a2) { a2 = a2 | 0; mj(a2); return; } function Us(a2) { a2 = a2 | 0; if (a2) Lb[k[(k[a2 >> 2] | 0) + 4 >> 2] & 255](a2); return; } function Vs(a2) { a2 = a2 | 0; var b2 = 0; b2 = k[11052] | 0; k[11052] = b2 + 1; k[a2 + 4 >> 2] = b2 + 1; return; } function Ws(a2) { a2 = a2 | 0; mj(a2); return; } function Xs(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; if (c2 >>> 0 < 128) { c2 = (Ys() | 0) + (c2 << 1) | 0; c2 = (j[c2 >> 1] & b2) << 16 >> 16 != 0; } else c2 = 0; return c2 | 0; } function Ys() { var a2 = 0, b2 = 0; x = 0; a2 = Da(7) | 0; b2 = x; x = 0; if (b2 & 1) { b2 = Wa(0) | 0; oc(b2); } else return k[a2 >> 2] | 0; return 0; } function Zs(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0; f2 = (c2 - b2 | 0) >>> 2; if ((b2 | 0) != (c2 | 0)) { e2 = b2; while (1) { a2 = k[e2 >> 2] | 0; if (a2 >>> 0 < 128) { a2 = (Ys() | 0) + (a2 << 1) | 0; a2 = m[a2 >> 1] | 0; } else a2 = 0; j[d2 >> 1] = a2; e2 = e2 + 4 | 0; if ((e2 | 0) == (c2 | 0)) break; else d2 = d2 + 2 | 0; } } return b2 + (f2 << 2) | 0; } function _s(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; a: do if ((c2 | 0) == (d2 | 0)) c2 = d2; else while (1) { a2 = k[c2 >> 2] | 0; if (a2 >>> 0 < 128 ? (a2 = (Ys() | 0) + (a2 << 1) | 0, (j[a2 >> 1] & b2) << 16 >> 16 != 0) : 0) break a; c2 = c2 + 4 | 0; if ((c2 | 0) == (d2 | 0)) { c2 = d2; break; } } while (0); return c2 | 0; } function $s(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; a: do if ((c2 | 0) == (d2 | 0)) c2 = d2; else while (1) { a2 = k[c2 >> 2] | 0; if (a2 >>> 0 >= 128) break a; a2 = (Ys() | 0) + (a2 << 1) | 0; if (!((j[a2 >> 1] & b2) << 16 >> 16)) break a; c2 = c2 + 4 | 0; if ((c2 | 0) == (d2 | 0)) { c2 = d2; break; } } while (0); return c2 | 0; } function at(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; if (b2 >>> 0 < 128) { b2 = (bt() | 0) + (b2 << 2) | 0; b2 = k[b2 >> 2] | 0; } return b2 | 0; } function bt() { var a2 = 0, b2 = 0; x = 0; a2 = Da(8) | 0; b2 = x; x = 0; if (b2 & 1) { b2 = Wa(0) | 0; oc(b2); } else return k[a2 >> 2] | 0; return 0; } function ct(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0; e2 = (c2 - b2 | 0) >>> 2; if ((b2 | 0) != (c2 | 0)) { d2 = b2; do { a2 = k[d2 >> 2] | 0; if (a2 >>> 0 < 128) { a2 = (bt() | 0) + (a2 << 2) | 0; a2 = k[a2 >> 2] | 0; } k[d2 >> 2] = a2; d2 = d2 + 4 | 0; } while ((d2 | 0) != (c2 | 0)); } return b2 + (e2 << 2) | 0; } function dt(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; if (b2 >>> 0 < 128) { b2 = (et() | 0) + (b2 << 2) | 0; b2 = k[b2 >> 2] | 0; } return b2 | 0; } function et() { var a2 = 0, b2 = 0; x = 0; a2 = Da(9) | 0; b2 = x; x = 0; if (b2 & 1) { b2 = Wa(0) | 0; oc(b2); } else return k[a2 >> 2] | 0; return 0; } function ft(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0; e2 = (c2 - b2 | 0) >>> 2; if ((b2 | 0) != (c2 | 0)) { d2 = b2; do { a2 = k[d2 >> 2] | 0; if (a2 >>> 0 < 128) { a2 = (et() | 0) + (a2 << 2) | 0; a2 = k[a2 >> 2] | 0; } k[d2 >> 2] = a2; d2 = d2 + 4 | 0; } while ((d2 | 0) != (c2 | 0)); } return b2 + (e2 << 2) | 0; } function gt(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; return b2 << 24 >> 24 | 0; } function ht(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; if ((b2 | 0) != (c2 | 0)) while (1) { k[d2 >> 2] = i2[b2 >> 0]; b2 = b2 + 1 | 0; if ((b2 | 0) == (c2 | 0)) break; else d2 = d2 + 4 | 0; } return c2 | 0; } function it(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; return (b2 >>> 0 < 128 ? b2 & 255 : c2) | 0; } function jt(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0; g2 = (c2 - b2 | 0) >>> 2; if ((b2 | 0) != (c2 | 0)) { f2 = b2; a2 = e2; while (1) { e2 = k[f2 >> 2] | 0; i2[a2 >> 0] = e2 >>> 0 < 128 ? e2 & 255 : d2; f2 = f2 + 4 | 0; if ((f2 | 0) == (c2 | 0)) break; else a2 = a2 + 1 | 0; } } return b2 + (g2 << 2) | 0; } function kt(a2) { a2 = a2 | 0; var b2 = 0; k[a2 >> 2] = 44236; b2 = k[a2 + 8 >> 2] | 0; if ((b2 | 0) != 0 ? (i2[a2 + 12 >> 0] | 0) != 0 : 0) nj(b2); return; } function lt(a2) { a2 = a2 | 0; kt(a2); mj(a2); return; } function mt(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; if (b2 << 24 >> 24 > -1) { b2 = (bt() | 0) + ((b2 & 255) << 2) | 0; b2 = k[b2 >> 2] & 255; } return b2 | 0; } function nt(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; if ((b2 | 0) != (c2 | 0)) { a2 = b2; do { b2 = i2[a2 >> 0] | 0; if (b2 << 24 >> 24 > -1) { b2 = (bt() | 0) + (b2 << 24 >> 24 << 2) | 0; b2 = k[b2 >> 2] & 255; } i2[a2 >> 0] = b2; a2 = a2 + 1 | 0; } while ((a2 | 0) != (c2 | 0)); } return c2 | 0; } function ot(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; if (b2 << 24 >> 24 > -1) { b2 = (et() | 0) + (b2 << 24 >> 24 << 2) | 0; b2 = k[b2 >> 2] & 255; } return b2 | 0; } function pt(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; if ((b2 | 0) != (c2 | 0)) { a2 = b2; do { b2 = i2[a2 >> 0] | 0; if (b2 << 24 >> 24 > -1) { b2 = (et() | 0) + (b2 << 24 >> 24 << 2) | 0; b2 = k[b2 >> 2] & 255; } i2[a2 >> 0] = b2; a2 = a2 + 1 | 0; } while ((a2 | 0) != (c2 | 0)); } return c2 | 0; } function qt(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; return b2 | 0; } function rt(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; if ((b2 | 0) != (c2 | 0)) while (1) { i2[d2 >> 0] = i2[b2 >> 0] | 0; b2 = b2 + 1 | 0; if ((b2 | 0) == (c2 | 0)) break; else d2 = d2 + 1 | 0; } return c2 | 0; } function st(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; return (b2 << 24 >> 24 > -1 ? b2 : c2) | 0; } function tt(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; if ((b2 | 0) != (c2 | 0)) while (1) { a2 = i2[b2 >> 0] | 0; i2[e2 >> 0] = a2 << 24 >> 24 > -1 ? a2 : d2; b2 = b2 + 1 | 0; if ((b2 | 0) == (c2 | 0)) break; else e2 = e2 + 1 | 0; } return c2 | 0; } function ut(a2) { a2 = a2 | 0; mj(a2); return; } function vt(a2, b2, c2, d2, e2, f2, g2, h2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; k[e2 >> 2] = c2; k[h2 >> 2] = f2; return 3; } function wt(a2, b2, c2, d2, e2, f2, g2, h2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; k[e2 >> 2] = c2; k[h2 >> 2] = f2; return 3; } function xt(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; k[e2 >> 2] = c2; return 3; } function yt(a2) { a2 = a2 | 0; return 1; } function zt(a2) { a2 = a2 | 0; return 1; } function At(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; a2 = d2 - c2 | 0; return (a2 >>> 0 < e2 >>> 0 ? a2 : e2) | 0; } function Bt(a2) { a2 = a2 | 0; return 1; } function Ct(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0; k[a2 + 4 >> 2] = b2 + -1; k[a2 >> 2] = 44304; x = 0; b2 = Da(3) | 0; c2 = x; x = 0; if (c2 & 1) { c2 = Wa() | 0; fb(c2 | 0); } else { k[a2 + 8 >> 2] = b2; return; } } function Dt(a2) { a2 = a2 | 0; Gu(a2); mj(a2); return; } function Hl(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, N2 = 0, O2 = 0, P2 = 0, Q2 = 0, R2 = 0, S2 = 0, T2 = 0, U2 = 0, V2 = 0, W2 = 0, X2 = 0, Y2 = 0, Z2 = 0, _2 = 0, $2 = 0, aa2 = 0, ba2 = 0, ca2 = 0, da2 = 0, ea2 = 0, fa2 = 0, ga2 = 0; ga2 = r; r = r + 624 | 0; ba2 = ga2 + 24 | 0; da2 = ga2 + 16 | 0; ca2 = ga2 + 588 | 0; Y2 = ga2 + 576 | 0; aa2 = ga2; V2 = ga2 + 536 | 0; fa2 = ga2 + 8 | 0; ea2 = ga2 + 528 | 0; L2 = (a2 | 0) != 0; N2 = V2 + 40 | 0; U2 = N2; V2 = V2 + 39 | 0; W2 = fa2 + 4 | 0; X2 = Y2 + 12 | 0; Y2 = Y2 + 11 | 0; Z2 = ca2; _2 = X2; $2 = _2 - Z2 | 0; O2 = -2 - Z2 | 0; P2 = _2 + 2 | 0; Q2 = ba2 + 288 | 0; R2 = ca2 + 9 | 0; S2 = R2; T2 = ca2 + 8 | 0; f2 = 0; w2 = b2; g2 = 0; b2 = 0; a: while (1) { do if ((f2 | 0) > -1) if ((g2 | 0) > (2147483647 - f2 | 0)) { f2 = mk() | 0; k[f2 >> 2] = 75; f2 = -1; break; } else { f2 = g2 + f2 | 0; break; } while (0); g2 = i2[w2 >> 0] | 0; if (!(g2 << 24 >> 24)) { K2 = 245; break; } else h2 = w2; b: while (1) { switch (g2 << 24 >> 24) { case 37: { g2 = h2; K2 = 9; break b; } case 0: { g2 = h2; break b; } default: { } } J2 = h2 + 1 | 0; g2 = i2[J2 >> 0] | 0; h2 = J2; } c: do if ((K2 | 0) == 9) while (1) { K2 = 0; if ((i2[g2 + 1 >> 0] | 0) != 37) break c; h2 = h2 + 1 | 0; g2 = g2 + 2 | 0; if ((i2[g2 >> 0] | 0) == 37) K2 = 9; else break; } while (0); y2 = h2 - w2 | 0; if (L2 ? (k[a2 >> 2] & 32 | 0) == 0 : 0) fl(w2, y2, a2) | 0; if ((h2 | 0) != (w2 | 0)) { w2 = g2; g2 = y2; continue; } o2 = g2 + 1 | 0; h2 = i2[o2 >> 0] | 0; m2 = (h2 << 24 >> 24) + -48 | 0; if (m2 >>> 0 < 10) { J2 = (i2[g2 + 2 >> 0] | 0) == 36; o2 = J2 ? g2 + 3 | 0 : o2; h2 = i2[o2 >> 0] | 0; u2 = J2 ? m2 : -1; b2 = J2 ? 1 : b2; } else u2 = -1; g2 = h2 << 24 >> 24; d: do if ((g2 & -32 | 0) == 32) { m2 = 0; while (1) { if (!(1 << g2 + -32 & 75913)) { q2 = m2; g2 = o2; break d; } m2 = 1 << (h2 << 24 >> 24) + -32 | m2; o2 = o2 + 1 | 0; h2 = i2[o2 >> 0] | 0; g2 = h2 << 24 >> 24; if ((g2 & -32 | 0) != 32) { q2 = m2; g2 = o2; break; } } } else { q2 = 0; g2 = o2; } while (0); do if (h2 << 24 >> 24 == 42) { m2 = g2 + 1 | 0; h2 = (i2[m2 >> 0] | 0) + -48 | 0; if (h2 >>> 0 < 10 ? (i2[g2 + 2 >> 0] | 0) == 36 : 0) { k[e2 + (h2 << 2) >> 2] = 10; b2 = 1; g2 = g2 + 3 | 0; h2 = k[d2 + ((i2[m2 >> 0] | 0) + -48 << 3) >> 2] | 0; } else { if (b2) { f2 = -1; break a; } if (!L2) { x2 = q2; g2 = m2; b2 = 0; J2 = 0; break; } b2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); h2 = k[b2 >> 2] | 0; k[c2 >> 2] = b2 + 4; b2 = 0; g2 = m2; } if ((h2 | 0) < 0) { x2 = q2 | 8192; J2 = 0 - h2 | 0; } else { x2 = q2; J2 = h2; } } else { m2 = (h2 << 24 >> 24) + -48 | 0; if (m2 >>> 0 < 10) { h2 = 0; do { h2 = (h2 * 10 | 0) + m2 | 0; g2 = g2 + 1 | 0; m2 = (i2[g2 >> 0] | 0) + -48 | 0; } while (m2 >>> 0 < 10); if ((h2 | 0) < 0) { f2 = -1; break a; } else { x2 = q2; J2 = h2; } } else { x2 = q2; J2 = 0; } } while (0); e: do if ((i2[g2 >> 0] | 0) == 46) { m2 = g2 + 1 | 0; h2 = i2[m2 >> 0] | 0; if (h2 << 24 >> 24 != 42) { o2 = (h2 << 24 >> 24) + -48 | 0; if (o2 >>> 0 < 10) { g2 = m2; h2 = 0; } else { g2 = m2; o2 = 0; break; } while (1) { h2 = (h2 * 10 | 0) + o2 | 0; g2 = g2 + 1 | 0; o2 = (i2[g2 >> 0] | 0) + -48 | 0; if (o2 >>> 0 >= 10) { o2 = h2; break e; } } } m2 = g2 + 2 | 0; h2 = (i2[m2 >> 0] | 0) + -48 | 0; if (h2 >>> 0 < 10 ? (i2[g2 + 3 >> 0] | 0) == 36 : 0) { k[e2 + (h2 << 2) >> 2] = 10; g2 = g2 + 4 | 0; o2 = k[d2 + ((i2[m2 >> 0] | 0) + -48 << 3) >> 2] | 0; break; } if (b2) { f2 = -1; break a; } if (L2) { g2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); o2 = k[g2 >> 2] | 0; k[c2 >> 2] = g2 + 4; g2 = m2; } else { g2 = m2; o2 = 0; } } else o2 = -1; while (0); s2 = 0; while (1) { h2 = (i2[g2 >> 0] | 0) + -65 | 0; if (h2 >>> 0 > 57) { f2 = -1; break a; } m2 = g2 + 1 | 0; h2 = i2[56223 + (s2 * 58 | 0) + h2 >> 0] | 0; q2 = h2 & 255; if ((q2 + -1 | 0) >>> 0 < 8) { g2 = m2; s2 = q2; } else { I2 = m2; break; } } if (!(h2 << 24 >> 24)) { f2 = -1; break; } m2 = (u2 | 0) > -1; do if (h2 << 24 >> 24 == 19) if (m2) { f2 = -1; break a; } else K2 = 52; else { if (m2) { k[e2 + (u2 << 2) >> 2] = q2; G2 = d2 + (u2 << 3) | 0; H2 = k[G2 + 4 >> 2] | 0; K2 = aa2; k[K2 >> 2] = k[G2 >> 2]; k[K2 + 4 >> 2] = H2; K2 = 52; break; } if (!L2) { f2 = 0; break a; } Ml(aa2, q2, c2); } while (0); if ((K2 | 0) == 52 ? (K2 = 0, !L2) : 0) { w2 = I2; g2 = y2; continue; } u2 = i2[g2 >> 0] | 0; u2 = (s2 | 0) != 0 & (u2 & 15 | 0) == 3 ? u2 & -33 : u2; m2 = x2 & -65537; H2 = (x2 & 8192 | 0) == 0 ? x2 : m2; f: do switch (u2 | 0) { case 110: switch (s2 | 0) { case 0: { k[k[aa2 >> 2] >> 2] = f2; w2 = I2; g2 = y2; continue a; } case 1: { k[k[aa2 >> 2] >> 2] = f2; w2 = I2; g2 = y2; continue a; } case 2: { w2 = k[aa2 >> 2] | 0; k[w2 >> 2] = f2; k[w2 + 4 >> 2] = ((f2 | 0) < 0) << 31 >> 31; w2 = I2; g2 = y2; continue a; } case 3: { j[k[aa2 >> 2] >> 1] = f2; w2 = I2; g2 = y2; continue a; } case 4: { i2[k[aa2 >> 2] >> 0] = f2; w2 = I2; g2 = y2; continue a; } case 6: { k[k[aa2 >> 2] >> 2] = f2; w2 = I2; g2 = y2; continue a; } case 7: { w2 = k[aa2 >> 2] | 0; k[w2 >> 2] = f2; k[w2 + 4 >> 2] = ((f2 | 0) < 0) << 31 >> 31; w2 = I2; g2 = y2; continue a; } default: { w2 = I2; g2 = y2; continue a; } } case 112: { s2 = H2 | 8; o2 = o2 >>> 0 > 8 ? o2 : 8; u2 = 120; K2 = 64; break; } case 88: case 120: { s2 = H2; K2 = 64; break; } case 111: { m2 = aa2; h2 = k[m2 >> 2] | 0; m2 = k[m2 + 4 >> 2] | 0; if ((h2 | 0) == 0 & (m2 | 0) == 0) g2 = N2; else { g2 = N2; do { g2 = g2 + -1 | 0; i2[g2 >> 0] = h2 & 7 | 48; h2 = uw(h2 | 0, m2 | 0, 3) | 0; m2 = M; } while (!((h2 | 0) == 0 & (m2 | 0) == 0)); } if (!(H2 & 8)) { h2 = H2; s2 = 0; q2 = 56703; K2 = 77; } else { s2 = U2 - g2 + 1 | 0; h2 = H2; o2 = (o2 | 0) < (s2 | 0) ? s2 : o2; s2 = 0; q2 = 56703; K2 = 77; } break; } case 105: case 100: { h2 = aa2; g2 = k[h2 >> 2] | 0; h2 = k[h2 + 4 >> 2] | 0; if ((h2 | 0) < 0) { g2 = rw(0, 0, g2 | 0, h2 | 0) | 0; h2 = M; m2 = aa2; k[m2 >> 2] = g2; k[m2 + 4 >> 2] = h2; m2 = 1; q2 = 56703; K2 = 76; break f; } if (!(H2 & 2048)) { q2 = H2 & 1; m2 = q2; q2 = (q2 | 0) == 0 ? 56703 : 56705; K2 = 76; } else { m2 = 1; q2 = 56704; K2 = 76; } break; } case 117: { h2 = aa2; g2 = k[h2 >> 2] | 0; h2 = k[h2 + 4 >> 2] | 0; m2 = 0; q2 = 56703; K2 = 76; break; } case 99: { i2[V2 >> 0] = k[aa2 >> 2]; w2 = V2; h2 = 1; s2 = 0; u2 = 56703; g2 = N2; break; } case 109: { g2 = mk() | 0; g2 = nk(k[g2 >> 2] | 0) | 0; K2 = 82; break; } case 115: { g2 = k[aa2 >> 2] | 0; g2 = (g2 | 0) != 0 ? g2 : 56713; K2 = 82; break; } case 67: { k[fa2 >> 2] = k[aa2 >> 2]; k[W2 >> 2] = 0; k[aa2 >> 2] = fa2; o2 = -1; K2 = 86; break; } case 83: { if (!o2) { Ol(a2, 32, J2, 0, H2); g2 = 0; K2 = 98; } else K2 = 86; break; } case 65: case 71: case 70: case 69: case 97: case 103: case 102: case 101: { n2 = +p[aa2 >> 3]; k[da2 >> 2] = 0; p[t >> 3] = n2; if ((k[t + 4 >> 2] | 0) >= 0) if (!(H2 & 2048)) { G2 = H2 & 1; F2 = G2; G2 = (G2 | 0) == 0 ? 56721 : 56726; } else { F2 = 1; G2 = 56723; } else { n2 = -n2; F2 = 1; G2 = 56720; } p[t >> 3] = n2; E2 = k[t + 4 >> 2] & 2146435072; do if (E2 >>> 0 < 2146435072 | (E2 | 0) == 2146435072 & 0 < 0) { v2 = +Gk(n2, da2) * 2; h2 = v2 != 0; if (h2) k[da2 >> 2] = (k[da2 >> 2] | 0) + -1; C2 = u2 | 32; if ((C2 | 0) == 97) { w2 = u2 & 32; y2 = (w2 | 0) == 0 ? G2 : G2 + 9 | 0; x2 = F2 | 2; g2 = 12 - o2 | 0; do if (!(o2 >>> 0 > 11 | (g2 | 0) == 0)) { n2 = 8; do { g2 = g2 + -1 | 0; n2 = n2 * 16; } while ((g2 | 0) != 0); if ((i2[y2 >> 0] | 0) == 45) { n2 = -(n2 + (-v2 - n2)); break; } else { n2 = v2 + n2 - n2; break; } } else n2 = v2; while (0); h2 = k[da2 >> 2] | 0; g2 = (h2 | 0) < 0 ? 0 - h2 | 0 : h2; g2 = Nl(g2, ((g2 | 0) < 0) << 31 >> 31, X2) | 0; if ((g2 | 0) == (X2 | 0)) { i2[Y2 >> 0] = 48; g2 = Y2; } i2[g2 + -1 >> 0] = (h2 >> 31 & 2) + 43; s2 = g2 + -2 | 0; i2[s2 >> 0] = u2 + 15; q2 = (o2 | 0) < 1; m2 = (H2 & 8 | 0) == 0; h2 = ca2; while (1) { G2 = ~~n2; g2 = h2 + 1 | 0; i2[h2 >> 0] = l[56687 + G2 >> 0] | w2; n2 = (n2 - +(G2 | 0)) * 16; do if ((g2 - Z2 | 0) == 1) { if (m2 & (q2 & n2 == 0)) break; i2[g2 >> 0] = 46; g2 = h2 + 2 | 0; } while (0); if (!(n2 != 0)) break; else h2 = g2; } o2 = (o2 | 0) != 0 & (O2 + g2 | 0) < (o2 | 0) ? P2 + o2 - s2 | 0 : $2 - s2 + g2 | 0; m2 = o2 + x2 | 0; Ol(a2, 32, J2, m2, H2); if (!(k[a2 >> 2] & 32)) fl(y2, x2, a2) | 0; Ol(a2, 48, J2, m2, H2 ^ 65536); g2 = g2 - Z2 | 0; if (!(k[a2 >> 2] & 32)) fl(ca2, g2, a2) | 0; h2 = _2 - s2 | 0; Ol(a2, 48, o2 - (g2 + h2) | 0, 0, 0); if (!(k[a2 >> 2] & 32)) fl(s2, h2, a2) | 0; Ol(a2, 32, J2, m2, H2 ^ 8192); g2 = (m2 | 0) < (J2 | 0) ? J2 : m2; break; } g2 = (o2 | 0) < 0 ? 6 : o2; if (h2) { h2 = (k[da2 >> 2] | 0) + -28 | 0; k[da2 >> 2] = h2; n2 = v2 * 268435456; } else { n2 = v2; h2 = k[da2 >> 2] | 0; } E2 = (h2 | 0) < 0 ? ba2 : Q2; D2 = E2; h2 = E2; do { B2 = ~~n2 >>> 0; k[h2 >> 2] = B2; h2 = h2 + 4 | 0; n2 = (n2 - +(B2 >>> 0)) * 1e9; } while (n2 != 0); m2 = h2; h2 = k[da2 >> 2] | 0; if ((h2 | 0) > 0) { q2 = E2; while (1) { s2 = (h2 | 0) > 29 ? 29 : h2; o2 = m2 + -4 | 0; do if (o2 >>> 0 < q2 >>> 0) o2 = q2; else { h2 = 0; do { B2 = ww(k[o2 >> 2] | 0, 0, s2 | 0) | 0; B2 = tw(B2 | 0, M | 0, h2 | 0, 0) | 0; h2 = M; A2 = Fw(B2 | 0, h2 | 0, 1e9, 0) | 0; k[o2 >> 2] = A2; h2 = Ew(B2 | 0, h2 | 0, 1e9, 0) | 0; o2 = o2 + -4 | 0; } while (o2 >>> 0 >= q2 >>> 0); if (!h2) { o2 = q2; break; } o2 = q2 + -4 | 0; k[o2 >> 2] = h2; } while (0); while (1) { if (m2 >>> 0 <= o2 >>> 0) break; h2 = m2 + -4 | 0; if (!(k[h2 >> 2] | 0)) m2 = h2; else break; } h2 = (k[da2 >> 2] | 0) - s2 | 0; k[da2 >> 2] = h2; if ((h2 | 0) > 0) q2 = o2; else break; } } else o2 = E2; if ((h2 | 0) < 0) { y2 = ((g2 + 25 | 0) / 9 | 0) + 1 | 0; z2 = (C2 | 0) == 102; w2 = o2; while (1) { x2 = 0 - h2 | 0; x2 = (x2 | 0) > 9 ? 9 : x2; do if (w2 >>> 0 < m2 >>> 0) { h2 = (1 << x2) + -1 | 0; q2 = 1e9 >>> x2; o2 = 0; s2 = w2; do { B2 = k[s2 >> 2] | 0; k[s2 >> 2] = (B2 >>> x2) + o2; o2 = ia(B2 & h2, q2) | 0; s2 = s2 + 4 | 0; } while (s2 >>> 0 < m2 >>> 0); h2 = (k[w2 >> 2] | 0) == 0 ? w2 + 4 | 0 : w2; if (!o2) { o2 = h2; break; } k[m2 >> 2] = o2; o2 = h2; m2 = m2 + 4 | 0; } else o2 = (k[w2 >> 2] | 0) == 0 ? w2 + 4 | 0 : w2; while (0); h2 = z2 ? E2 : o2; m2 = (m2 - h2 >> 2 | 0) > (y2 | 0) ? h2 + (y2 << 2) | 0 : m2; h2 = (k[da2 >> 2] | 0) + x2 | 0; k[da2 >> 2] = h2; if ((h2 | 0) >= 0) { w2 = o2; break; } else w2 = o2; } } else w2 = o2; do if (w2 >>> 0 < m2 >>> 0) { h2 = (D2 - w2 >> 2) * 9 | 0; q2 = k[w2 >> 2] | 0; if (q2 >>> 0 < 10) break; else o2 = 10; do { o2 = o2 * 10 | 0; h2 = h2 + 1 | 0; } while (q2 >>> 0 >= o2 >>> 0); } else h2 = 0; while (0); A2 = (C2 | 0) == 103; B2 = (g2 | 0) != 0; o2 = g2 - ((C2 | 0) != 102 ? h2 : 0) + ((B2 & A2) << 31 >> 31) | 0; if ((o2 | 0) < (((m2 - D2 >> 2) * 9 | 0) + -9 | 0)) { s2 = o2 + 9216 | 0; z2 = (s2 | 0) / 9 | 0; o2 = E2 + (z2 + -1023 << 2) | 0; s2 = ((s2 | 0) % 9 | 0) + 1 | 0; if ((s2 | 0) < 9) { q2 = 10; do { q2 = q2 * 10 | 0; s2 = s2 + 1 | 0; } while ((s2 | 0) != 9); } else q2 = 10; x2 = k[o2 >> 2] | 0; y2 = (x2 >>> 0) % (q2 >>> 0) | 0; if ((y2 | 0) == 0 ? (E2 + (z2 + -1022 << 2) | 0) == (m2 | 0) : 0) q2 = w2; else K2 = 163; do if ((K2 | 0) == 163) { K2 = 0; v2 = (((x2 >>> 0) / (q2 >>> 0) | 0) & 1 | 0) == 0 ? 9007199254740992 : 9007199254740994; s2 = (q2 | 0) / 2 | 0; do if (y2 >>> 0 < s2 >>> 0) n2 = 0.5; else { if ((y2 | 0) == (s2 | 0) ? (E2 + (z2 + -1022 << 2) | 0) == (m2 | 0) : 0) { n2 = 1; break; } n2 = 1.5; } while (0); do if (F2) { if ((i2[G2 >> 0] | 0) != 45) break; v2 = -v2; n2 = -n2; } while (0); s2 = x2 - y2 | 0; k[o2 >> 2] = s2; if (!(v2 + n2 != v2)) { q2 = w2; break; } C2 = s2 + q2 | 0; k[o2 >> 2] = C2; if (C2 >>> 0 > 999999999) { h2 = w2; while (1) { q2 = o2 + -4 | 0; k[o2 >> 2] = 0; if (q2 >>> 0 < h2 >>> 0) { h2 = h2 + -4 | 0; k[h2 >> 2] = 0; } C2 = (k[q2 >> 2] | 0) + 1 | 0; k[q2 >> 2] = C2; if (C2 >>> 0 > 999999999) o2 = q2; else { w2 = h2; o2 = q2; break; } } } h2 = (D2 - w2 >> 2) * 9 | 0; s2 = k[w2 >> 2] | 0; if (s2 >>> 0 < 10) { q2 = w2; break; } else q2 = 10; do { q2 = q2 * 10 | 0; h2 = h2 + 1 | 0; } while (s2 >>> 0 >= q2 >>> 0); q2 = w2; } while (0); C2 = o2 + 4 | 0; w2 = q2; m2 = m2 >>> 0 > C2 >>> 0 ? C2 : m2; } y2 = 0 - h2 | 0; while (1) { if (m2 >>> 0 <= w2 >>> 0) { z2 = 0; C2 = m2; break; } o2 = m2 + -4 | 0; if (!(k[o2 >> 2] | 0)) m2 = o2; else { z2 = 1; C2 = m2; break; } } do if (A2) { g2 = (B2 & 1 ^ 1) + g2 | 0; if ((g2 | 0) > (h2 | 0) & (h2 | 0) > -5) { u2 = u2 + -1 | 0; g2 = g2 + -1 - h2 | 0; } else { u2 = u2 + -2 | 0; g2 = g2 + -1 | 0; } m2 = H2 & 8; if (m2) break; do if (z2) { m2 = k[C2 + -4 >> 2] | 0; if (!m2) { o2 = 9; break; } if (!((m2 >>> 0) % 10 | 0)) { q2 = 10; o2 = 0; } else { o2 = 0; break; } do { q2 = q2 * 10 | 0; o2 = o2 + 1 | 0; } while (((m2 >>> 0) % (q2 >>> 0) | 0 | 0) == 0); } else o2 = 9; while (0); m2 = ((C2 - D2 >> 2) * 9 | 0) + -9 | 0; if ((u2 | 32 | 0) == 102) { m2 = m2 - o2 | 0; m2 = (m2 | 0) < 0 ? 0 : m2; g2 = (g2 | 0) < (m2 | 0) ? g2 : m2; m2 = 0; break; } else { m2 = m2 + h2 - o2 | 0; m2 = (m2 | 0) < 0 ? 0 : m2; g2 = (g2 | 0) < (m2 | 0) ? g2 : m2; m2 = 0; break; } } else m2 = H2 & 8; while (0); x2 = g2 | m2; q2 = (x2 | 0) != 0 & 1; s2 = (u2 | 32 | 0) == 102; if (s2) { h2 = (h2 | 0) > 0 ? h2 : 0; u2 = 0; } else { o2 = (h2 | 0) < 0 ? y2 : h2; o2 = Nl(o2, ((o2 | 0) < 0) << 31 >> 31, X2) | 0; if ((_2 - o2 | 0) < 2) do { o2 = o2 + -1 | 0; i2[o2 >> 0] = 48; } while ((_2 - o2 | 0) < 2); i2[o2 + -1 >> 0] = (h2 >> 31 & 2) + 43; D2 = o2 + -2 | 0; i2[D2 >> 0] = u2; h2 = _2 - D2 | 0; u2 = D2; } y2 = F2 + 1 + g2 + q2 + h2 | 0; Ol(a2, 32, J2, y2, H2); if (!(k[a2 >> 2] & 32)) fl(G2, F2, a2) | 0; Ol(a2, 48, J2, y2, H2 ^ 65536); do if (s2) { o2 = w2 >>> 0 > E2 >>> 0 ? E2 : w2; h2 = o2; do { m2 = Nl(k[h2 >> 2] | 0, 0, R2) | 0; do if ((h2 | 0) == (o2 | 0)) { if ((m2 | 0) != (R2 | 0)) break; i2[T2 >> 0] = 48; m2 = T2; } else { if (m2 >>> 0 <= ca2 >>> 0) break; do { m2 = m2 + -1 | 0; i2[m2 >> 0] = 48; } while (m2 >>> 0 > ca2 >>> 0); } while (0); if (!(k[a2 >> 2] & 32)) fl(m2, S2 - m2 | 0, a2) | 0; h2 = h2 + 4 | 0; } while (h2 >>> 0 <= E2 >>> 0); do if (x2) { if (k[a2 >> 2] & 32) break; fl(56755, 1, a2) | 0; } while (0); if ((g2 | 0) > 0 & h2 >>> 0 < C2 >>> 0) { m2 = h2; while (1) { h2 = Nl(k[m2 >> 2] | 0, 0, R2) | 0; if (h2 >>> 0 > ca2 >>> 0) do { h2 = h2 + -1 | 0; i2[h2 >> 0] = 48; } while (h2 >>> 0 > ca2 >>> 0); if (!(k[a2 >> 2] & 32)) fl(h2, (g2 | 0) > 9 ? 9 : g2, a2) | 0; m2 = m2 + 4 | 0; h2 = g2 + -9 | 0; if (!((g2 | 0) > 9 & m2 >>> 0 < C2 >>> 0)) { g2 = h2; break; } else g2 = h2; } } Ol(a2, 48, g2 + 9 | 0, 9, 0); } else { s2 = z2 ? C2 : w2 + 4 | 0; if ((g2 | 0) > -1) { q2 = (m2 | 0) == 0; o2 = w2; do { h2 = Nl(k[o2 >> 2] | 0, 0, R2) | 0; if ((h2 | 0) == (R2 | 0)) { i2[T2 >> 0] = 48; h2 = T2; } do if ((o2 | 0) == (w2 | 0)) { m2 = h2 + 1 | 0; if (!(k[a2 >> 2] & 32)) fl(h2, 1, a2) | 0; if (q2 & (g2 | 0) < 1) { h2 = m2; break; } if (k[a2 >> 2] & 32) { h2 = m2; break; } fl(56755, 1, a2) | 0; h2 = m2; } else { if (h2 >>> 0 <= ca2 >>> 0) break; do { h2 = h2 + -1 | 0; i2[h2 >> 0] = 48; } while (h2 >>> 0 > ca2 >>> 0); } while (0); m2 = S2 - h2 | 0; if (!(k[a2 >> 2] & 32)) fl(h2, (g2 | 0) > (m2 | 0) ? m2 : g2, a2) | 0; g2 = g2 - m2 | 0; o2 = o2 + 4 | 0; } while (o2 >>> 0 < s2 >>> 0 & (g2 | 0) > -1); } Ol(a2, 48, g2 + 18 | 0, 18, 0); if (k[a2 >> 2] & 32) break; fl(u2, _2 - u2 | 0, a2) | 0; } while (0); Ol(a2, 32, J2, y2, H2 ^ 8192); g2 = (y2 | 0) < (J2 | 0) ? J2 : y2; } else { s2 = (u2 & 32 | 0) != 0; q2 = n2 != n2 | false; h2 = q2 ? 0 : F2; o2 = h2 + 3 | 0; Ol(a2, 32, J2, o2, m2); g2 = k[a2 >> 2] | 0; if (!(g2 & 32)) { fl(G2, h2, a2) | 0; g2 = k[a2 >> 2] | 0; } if (!(g2 & 32)) fl(q2 ? s2 ? 56747 : 56751 : s2 ? 56739 : 56743, 3, a2) | 0; Ol(a2, 32, J2, o2, H2 ^ 8192); g2 = (o2 | 0) < (J2 | 0) ? J2 : o2; } while (0); w2 = I2; continue a; } default: { m2 = H2; h2 = o2; s2 = 0; u2 = 56703; g2 = N2; } } while (0); g: do if ((K2 | 0) == 64) { m2 = aa2; h2 = k[m2 >> 2] | 0; m2 = k[m2 + 4 >> 2] | 0; q2 = u2 & 32; if (!((h2 | 0) == 0 & (m2 | 0) == 0)) { g2 = N2; do { g2 = g2 + -1 | 0; i2[g2 >> 0] = l[56687 + (h2 & 15) >> 0] | q2; h2 = uw(h2 | 0, m2 | 0, 4) | 0; m2 = M; } while (!((h2 | 0) == 0 & (m2 | 0) == 0)); K2 = aa2; if ((s2 & 8 | 0) == 0 | (k[K2 >> 2] | 0) == 0 & (k[K2 + 4 >> 2] | 0) == 0) { h2 = s2; s2 = 0; q2 = 56703; K2 = 77; } else { h2 = s2; s2 = 2; q2 = 56703 + (u2 >> 4) | 0; K2 = 77; } } else { g2 = N2; h2 = s2; s2 = 0; q2 = 56703; K2 = 77; } } else if ((K2 | 0) == 76) { g2 = Nl(g2, h2, N2) | 0; h2 = H2; s2 = m2; K2 = 77; } else if ((K2 | 0) == 82) { K2 = 0; H2 = tl(g2, 0, o2) | 0; G2 = (H2 | 0) == 0; w2 = g2; h2 = G2 ? o2 : H2 - g2 | 0; s2 = 0; u2 = 56703; g2 = G2 ? g2 + o2 | 0 : H2; } else if ((K2 | 0) == 86) { K2 = 0; h2 = 0; g2 = 0; q2 = k[aa2 >> 2] | 0; while (1) { m2 = k[q2 >> 2] | 0; if (!m2) break; g2 = Sk(ea2, m2) | 0; if ((g2 | 0) < 0 | g2 >>> 0 > (o2 - h2 | 0) >>> 0) break; h2 = g2 + h2 | 0; if (o2 >>> 0 > h2 >>> 0) q2 = q2 + 4 | 0; else break; } if ((g2 | 0) < 0) { f2 = -1; break a; } Ol(a2, 32, J2, h2, H2); if (!h2) { g2 = 0; K2 = 98; } else { m2 = 0; o2 = k[aa2 >> 2] | 0; while (1) { g2 = k[o2 >> 2] | 0; if (!g2) { g2 = h2; K2 = 98; break g; } g2 = Sk(ea2, g2) | 0; m2 = g2 + m2 | 0; if ((m2 | 0) > (h2 | 0)) { g2 = h2; K2 = 98; break g; } if (!(k[a2 >> 2] & 32)) fl(ea2, g2, a2) | 0; if (m2 >>> 0 >= h2 >>> 0) { g2 = h2; K2 = 98; break; } else o2 = o2 + 4 | 0; } } } while (0); if ((K2 | 0) == 98) { K2 = 0; Ol(a2, 32, J2, g2, H2 ^ 8192); w2 = I2; g2 = (J2 | 0) > (g2 | 0) ? J2 : g2; continue; } if ((K2 | 0) == 77) { K2 = 0; m2 = (o2 | 0) > -1 ? h2 & -65537 : h2; h2 = aa2; h2 = (k[h2 >> 2] | 0) != 0 | (k[h2 + 4 >> 2] | 0) != 0; if ((o2 | 0) != 0 | h2) { h2 = (h2 & 1 ^ 1) + (U2 - g2) | 0; w2 = g2; h2 = (o2 | 0) > (h2 | 0) ? o2 : h2; u2 = q2; g2 = N2; } else { w2 = N2; h2 = 0; u2 = q2; g2 = N2; } } q2 = g2 - w2 | 0; h2 = (h2 | 0) < (q2 | 0) ? q2 : h2; o2 = s2 + h2 | 0; g2 = (J2 | 0) < (o2 | 0) ? o2 : J2; Ol(a2, 32, g2, o2, m2); if (!(k[a2 >> 2] & 32)) fl(u2, s2, a2) | 0; Ol(a2, 48, g2, o2, m2 ^ 65536); Ol(a2, 48, h2, q2, 0); if (!(k[a2 >> 2] & 32)) fl(w2, q2, a2) | 0; Ol(a2, 32, g2, o2, m2 ^ 8192); w2 = I2; } h: do if ((K2 | 0) == 245) { if (!a2) if (b2) { f2 = 1; while (1) { b2 = k[e2 + (f2 << 2) >> 2] | 0; if (!b2) break; Ml(d2 + (f2 << 3) | 0, b2, c2); f2 = f2 + 1 | 0; if ((f2 | 0) >= 10) { f2 = 1; break h; } } if ((f2 | 0) < 10) while (1) { if (k[e2 + (f2 << 2) >> 2] | 0) { f2 = -1; break h; } f2 = f2 + 1 | 0; if ((f2 | 0) >= 10) { f2 = 1; break; } } else f2 = 1; } else f2 = 0; } while (0); r = ga2; return f2 | 0; } function Il(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; return $k(a2, b2, c2) | 0; } function Jl(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; h2 = r; r = r + 112 | 0; g2 = h2; e2 = g2; f2 = e2 + 112 | 0; do { k[e2 >> 2] = 0; e2 = e2 + 4 | 0; } while ((e2 | 0) < (f2 | 0)); e2 = g2 + 4 | 0; k[e2 >> 2] = a2; f2 = g2 + 8 | 0; k[f2 >> 2] = -1; k[g2 + 44 >> 2] = a2; k[g2 + 76 >> 2] = -1; qk(g2, 0); d2 = +ok(g2, c2, 1); c2 = (k[e2 >> 2] | 0) - (k[f2 >> 2] | 0) + (k[g2 + 108 >> 2] | 0) | 0; if (b2) k[b2 >> 2] = (c2 | 0) != 0 ? a2 + c2 | 0 : a2; r = h2; return +d2; } function Kl(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, i3 = 0; i3 = r; r = r + 112 | 0; h2 = i3; k[h2 >> 2] = 0; f2 = h2 + 4 | 0; k[f2 >> 2] = a2; k[h2 + 44 >> 2] = a2; g2 = h2 + 8 | 0; k[g2 >> 2] = (a2 | 0) < 0 ? -1 : a2 + 2147483647 | 0; k[h2 + 76 >> 2] = -1; qk(h2, 0); d2 = pk(h2, c2, 1, d2, e2) | 0; if (b2) k[b2 >> 2] = a2 + ((k[f2 >> 2] | 0) + (k[h2 + 108 >> 2] | 0) - (k[g2 >> 2] | 0)); r = i3; return d2 | 0; } function Ll(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0; d2 = a2 + 20 | 0; e2 = k[d2 >> 2] | 0; a2 = (k[a2 + 16 >> 2] | 0) - e2 | 0; a2 = a2 >>> 0 > c2 >>> 0 ? c2 : a2; vw(e2 | 0, b2 | 0, a2 | 0) | 0; k[d2 >> 2] = (k[d2 >> 2] | 0) + a2; return c2 | 0; } function Ml(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0; a: do if (b2 >>> 0 <= 20) do switch (b2 | 0) { case 9: { d2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); b2 = k[d2 >> 2] | 0; k[c2 >> 2] = d2 + 4; k[a2 >> 2] = b2; break a; } case 10: { d2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); b2 = k[d2 >> 2] | 0; k[c2 >> 2] = d2 + 4; d2 = a2; k[d2 >> 2] = b2; k[d2 + 4 >> 2] = ((b2 | 0) < 0) << 31 >> 31; break a; } case 11: { d2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); b2 = k[d2 >> 2] | 0; k[c2 >> 2] = d2 + 4; d2 = a2; k[d2 >> 2] = b2; k[d2 + 4 >> 2] = 0; break a; } case 12: { d2 = (k[c2 >> 2] | 0) + (8 - 1) & ~(8 - 1); b2 = d2; e2 = k[b2 >> 2] | 0; b2 = k[b2 + 4 >> 2] | 0; k[c2 >> 2] = d2 + 8; d2 = a2; k[d2 >> 2] = e2; k[d2 + 4 >> 2] = b2; break a; } case 13: { e2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); d2 = k[e2 >> 2] | 0; k[c2 >> 2] = e2 + 4; d2 = (d2 & 65535) << 16 >> 16; e2 = a2; k[e2 >> 2] = d2; k[e2 + 4 >> 2] = ((d2 | 0) < 0) << 31 >> 31; break a; } case 14: { e2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); d2 = k[e2 >> 2] | 0; k[c2 >> 2] = e2 + 4; e2 = a2; k[e2 >> 2] = d2 & 65535; k[e2 + 4 >> 2] = 0; break a; } case 15: { e2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); d2 = k[e2 >> 2] | 0; k[c2 >> 2] = e2 + 4; d2 = (d2 & 255) << 24 >> 24; e2 = a2; k[e2 >> 2] = d2; k[e2 + 4 >> 2] = ((d2 | 0) < 0) << 31 >> 31; break a; } case 16: { e2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); d2 = k[e2 >> 2] | 0; k[c2 >> 2] = e2 + 4; e2 = a2; k[e2 >> 2] = d2 & 255; k[e2 + 4 >> 2] = 0; break a; } case 17: { e2 = (k[c2 >> 2] | 0) + (8 - 1) & ~(8 - 1); f2 = +p[e2 >> 3]; k[c2 >> 2] = e2 + 8; p[a2 >> 3] = f2; break a; } case 18: { e2 = (k[c2 >> 2] | 0) + (8 - 1) & ~(8 - 1); f2 = +p[e2 >> 3]; k[c2 >> 2] = e2 + 8; p[a2 >> 3] = f2; break a; } default: break a; } while (0); while (0); return; } function Nl(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0; if (b2 >>> 0 > 0 | (b2 | 0) == 0 & a2 >>> 0 > 4294967295) while (1) { d2 = Fw(a2 | 0, b2 | 0, 10, 0) | 0; c2 = c2 + -1 | 0; i2[c2 >> 0] = d2 | 48; d2 = Ew(a2 | 0, b2 | 0, 10, 0) | 0; if (b2 >>> 0 > 9 | (b2 | 0) == 9 & a2 >>> 0 > 4294967295) { a2 = d2; b2 = M; } else { a2 = d2; break; } } if (a2) while (1) { c2 = c2 + -1 | 0; i2[c2 >> 0] = (a2 >>> 0) % 10 | 0 | 48; if (a2 >>> 0 < 10) break; else a2 = (a2 >>> 0) / 10 | 0; } return c2 | 0; } function Ol(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0; h2 = r; r = r + 256 | 0; g2 = h2; do if ((c2 | 0) > (d2 | 0) & (e2 & 73728 | 0) == 0) { e2 = c2 - d2 | 0; sw(g2 | 0, b2 | 0, (e2 >>> 0 > 256 ? 256 : e2) | 0) | 0; b2 = k[a2 >> 2] | 0; f2 = (b2 & 32 | 0) == 0; if (e2 >>> 0 > 255) { d2 = c2 - d2 | 0; do { if (f2) { fl(g2, 256, a2) | 0; b2 = k[a2 >> 2] | 0; } e2 = e2 + -256 | 0; f2 = (b2 & 32 | 0) == 0; } while (e2 >>> 0 > 255); if (f2) e2 = d2 & 255; else break; } else if (!f2) break; fl(g2, e2, a2) | 0; } while (0); r = h2; return; } function Pl(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, M2 = 0; do if (a2 >>> 0 < 245) { o2 = a2 >>> 0 < 11 ? 16 : a2 + 11 & -8; a2 = o2 >>> 3; h2 = k[10218] | 0; c2 = h2 >>> a2; if (c2 & 3) { a2 = (c2 & 1 ^ 1) + a2 | 0; d2 = a2 << 1; c2 = 40912 + (d2 << 2) | 0; d2 = 40912 + (d2 + 2 << 2) | 0; e2 = k[d2 >> 2] | 0; f2 = e2 + 8 | 0; g2 = k[f2 >> 2] | 0; do if ((c2 | 0) != (g2 | 0)) { if (g2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); b2 = g2 + 12 | 0; if ((k[b2 >> 2] | 0) == (e2 | 0)) { k[b2 >> 2] = c2; k[d2 >> 2] = g2; break; } else Pa(); } else k[10218] = h2 & ~(1 << a2); while (0); M2 = a2 << 3; k[e2 + 4 >> 2] = M2 | 3; M2 = e2 + (M2 | 4) | 0; k[M2 >> 2] = k[M2 >> 2] | 1; M2 = f2; return M2 | 0; } g2 = k[10220] | 0; if (o2 >>> 0 > g2 >>> 0) { if (c2) { d2 = 2 << a2; d2 = c2 << a2 & (d2 | 0 - d2); d2 = (d2 & 0 - d2) + -1 | 0; i3 = d2 >>> 12 & 16; d2 = d2 >>> i3; e2 = d2 >>> 5 & 8; d2 = d2 >>> e2; f2 = d2 >>> 2 & 4; d2 = d2 >>> f2; c2 = d2 >>> 1 & 2; d2 = d2 >>> c2; a2 = d2 >>> 1 & 1; a2 = (e2 | i3 | f2 | c2 | a2) + (d2 >>> a2) | 0; d2 = a2 << 1; c2 = 40912 + (d2 << 2) | 0; d2 = 40912 + (d2 + 2 << 2) | 0; f2 = k[d2 >> 2] | 0; i3 = f2 + 8 | 0; e2 = k[i3 >> 2] | 0; do if ((c2 | 0) != (e2 | 0)) { if (e2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); b2 = e2 + 12 | 0; if ((k[b2 >> 2] | 0) == (f2 | 0)) { k[b2 >> 2] = c2; k[d2 >> 2] = e2; j2 = k[10220] | 0; break; } else Pa(); } else { k[10218] = h2 & ~(1 << a2); j2 = g2; } while (0); M2 = a2 << 3; g2 = M2 - o2 | 0; k[f2 + 4 >> 2] = o2 | 3; h2 = f2 + o2 | 0; k[f2 + (o2 | 4) >> 2] = g2 | 1; k[f2 + M2 >> 2] = g2; if (j2) { e2 = k[10223] | 0; c2 = j2 >>> 3; b2 = c2 << 1; d2 = 40912 + (b2 << 2) | 0; a2 = k[10218] | 0; c2 = 1 << c2; if (a2 & c2) { a2 = 40912 + (b2 + 2 << 2) | 0; b2 = k[a2 >> 2] | 0; if (b2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); else { l2 = a2; m2 = b2; } } else { k[10218] = a2 | c2; l2 = 40912 + (b2 + 2 << 2) | 0; m2 = d2; } k[l2 >> 2] = e2; k[m2 + 12 >> 2] = e2; k[e2 + 8 >> 2] = m2; k[e2 + 12 >> 2] = d2; } k[10220] = g2; k[10223] = h2; M2 = i3; return M2 | 0; } a2 = k[10219] | 0; if (a2) { c2 = (a2 & 0 - a2) + -1 | 0; L2 = c2 >>> 12 & 16; c2 = c2 >>> L2; K2 = c2 >>> 5 & 8; c2 = c2 >>> K2; M2 = c2 >>> 2 & 4; c2 = c2 >>> M2; a2 = c2 >>> 1 & 2; c2 = c2 >>> a2; d2 = c2 >>> 1 & 1; d2 = k[41176 + ((K2 | L2 | M2 | a2 | d2) + (c2 >>> d2) << 2) >> 2] | 0; c2 = (k[d2 + 4 >> 2] & -8) - o2 | 0; a2 = d2; while (1) { b2 = k[a2 + 16 >> 2] | 0; if (!b2) { b2 = k[a2 + 20 >> 2] | 0; if (!b2) { i3 = c2; break; } } a2 = (k[b2 + 4 >> 2] & -8) - o2 | 0; M2 = a2 >>> 0 < c2 >>> 0; c2 = M2 ? a2 : c2; a2 = b2; d2 = M2 ? b2 : d2; } f2 = k[10222] | 0; if (d2 >>> 0 < f2 >>> 0) Pa(); h2 = d2 + o2 | 0; if (d2 >>> 0 >= h2 >>> 0) Pa(); g2 = k[d2 + 24 >> 2] | 0; c2 = k[d2 + 12 >> 2] | 0; do if ((c2 | 0) == (d2 | 0)) { a2 = d2 + 20 | 0; b2 = k[a2 >> 2] | 0; if (!b2) { a2 = d2 + 16 | 0; b2 = k[a2 >> 2] | 0; if (!b2) { n2 = 0; break; } } while (1) { c2 = b2 + 20 | 0; e2 = k[c2 >> 2] | 0; if (e2) { b2 = e2; a2 = c2; continue; } c2 = b2 + 16 | 0; e2 = k[c2 >> 2] | 0; if (!e2) break; else { b2 = e2; a2 = c2; } } if (a2 >>> 0 < f2 >>> 0) Pa(); else { k[a2 >> 2] = 0; n2 = b2; break; } } else { e2 = k[d2 + 8 >> 2] | 0; if (e2 >>> 0 < f2 >>> 0) Pa(); b2 = e2 + 12 | 0; if ((k[b2 >> 2] | 0) != (d2 | 0)) Pa(); a2 = c2 + 8 | 0; if ((k[a2 >> 2] | 0) == (d2 | 0)) { k[b2 >> 2] = c2; k[a2 >> 2] = e2; n2 = c2; break; } else Pa(); } while (0); do if (g2) { b2 = k[d2 + 28 >> 2] | 0; a2 = 41176 + (b2 << 2) | 0; if ((d2 | 0) == (k[a2 >> 2] | 0)) { k[a2 >> 2] = n2; if (!n2) { k[10219] = k[10219] & ~(1 << b2); break; } } else { if (g2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); b2 = g2 + 16 | 0; if ((k[b2 >> 2] | 0) == (d2 | 0)) k[b2 >> 2] = n2; else k[g2 + 20 >> 2] = n2; if (!n2) break; } a2 = k[10222] | 0; if (n2 >>> 0 < a2 >>> 0) Pa(); k[n2 + 24 >> 2] = g2; b2 = k[d2 + 16 >> 2] | 0; do if (b2) if (b2 >>> 0 < a2 >>> 0) Pa(); else { k[n2 + 16 >> 2] = b2; k[b2 + 24 >> 2] = n2; break; } while (0); b2 = k[d2 + 20 >> 2] | 0; if (b2) if (b2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); else { k[n2 + 20 >> 2] = b2; k[b2 + 24 >> 2] = n2; break; } } while (0); if (i3 >>> 0 < 16) { M2 = i3 + o2 | 0; k[d2 + 4 >> 2] = M2 | 3; M2 = d2 + (M2 + 4) | 0; k[M2 >> 2] = k[M2 >> 2] | 1; } else { k[d2 + 4 >> 2] = o2 | 3; k[d2 + (o2 | 4) >> 2] = i3 | 1; k[d2 + (i3 + o2) >> 2] = i3; b2 = k[10220] | 0; if (b2) { f2 = k[10223] | 0; c2 = b2 >>> 3; b2 = c2 << 1; e2 = 40912 + (b2 << 2) | 0; a2 = k[10218] | 0; c2 = 1 << c2; if (a2 & c2) { b2 = 40912 + (b2 + 2 << 2) | 0; a2 = k[b2 >> 2] | 0; if (a2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); else { p2 = b2; q2 = a2; } } else { k[10218] = a2 | c2; p2 = 40912 + (b2 + 2 << 2) | 0; q2 = e2; } k[p2 >> 2] = f2; k[q2 + 12 >> 2] = f2; k[f2 + 8 >> 2] = q2; k[f2 + 12 >> 2] = e2; } k[10220] = i3; k[10223] = h2; } M2 = d2 + 8 | 0; return M2 | 0; } else q2 = o2; } else q2 = o2; } else if (a2 >>> 0 <= 4294967231) { a2 = a2 + 11 | 0; m2 = a2 & -8; l2 = k[10219] | 0; if (l2) { c2 = 0 - m2 | 0; a2 = a2 >>> 8; if (a2) if (m2 >>> 0 > 16777215) j2 = 31; else { q2 = (a2 + 1048320 | 0) >>> 16 & 8; v2 = a2 << q2; p2 = (v2 + 520192 | 0) >>> 16 & 4; v2 = v2 << p2; j2 = (v2 + 245760 | 0) >>> 16 & 2; j2 = 14 - (p2 | q2 | j2) + (v2 << j2 >>> 15) | 0; j2 = m2 >>> (j2 + 7 | 0) & 1 | j2 << 1; } else j2 = 0; a2 = k[41176 + (j2 << 2) >> 2] | 0; a: do if (!a2) { e2 = 0; a2 = 0; v2 = 86; } else { g2 = c2; e2 = 0; h2 = m2 << ((j2 | 0) == 31 ? 0 : 25 - (j2 >>> 1) | 0); i3 = a2; a2 = 0; while (1) { f2 = k[i3 + 4 >> 2] & -8; c2 = f2 - m2 | 0; if (c2 >>> 0 < g2 >>> 0) if ((f2 | 0) == (m2 | 0)) { f2 = i3; a2 = i3; v2 = 90; break a; } else a2 = i3; else c2 = g2; v2 = k[i3 + 20 >> 2] | 0; i3 = k[i3 + 16 + (h2 >>> 31 << 2) >> 2] | 0; e2 = (v2 | 0) == 0 | (v2 | 0) == (i3 | 0) ? e2 : v2; if (!i3) { v2 = 86; break; } else { g2 = c2; h2 = h2 << 1; } } } while (0); if ((v2 | 0) == 86) { if ((e2 | 0) == 0 & (a2 | 0) == 0) { a2 = 2 << j2; a2 = l2 & (a2 | 0 - a2); if (!a2) { q2 = m2; break; } a2 = (a2 & 0 - a2) + -1 | 0; n2 = a2 >>> 12 & 16; a2 = a2 >>> n2; l2 = a2 >>> 5 & 8; a2 = a2 >>> l2; p2 = a2 >>> 2 & 4; a2 = a2 >>> p2; q2 = a2 >>> 1 & 2; a2 = a2 >>> q2; e2 = a2 >>> 1 & 1; e2 = k[41176 + ((l2 | n2 | p2 | q2 | e2) + (a2 >>> e2) << 2) >> 2] | 0; a2 = 0; } if (!e2) { h2 = c2; i3 = a2; } else { f2 = e2; v2 = 90; } } if ((v2 | 0) == 90) while (1) { v2 = 0; q2 = (k[f2 + 4 >> 2] & -8) - m2 | 0; e2 = q2 >>> 0 < c2 >>> 0; c2 = e2 ? q2 : c2; a2 = e2 ? f2 : a2; e2 = k[f2 + 16 >> 2] | 0; if (e2) { f2 = e2; v2 = 90; continue; } f2 = k[f2 + 20 >> 2] | 0; if (!f2) { h2 = c2; i3 = a2; break; } else v2 = 90; } if ((i3 | 0) != 0 ? h2 >>> 0 < ((k[10220] | 0) - m2 | 0) >>> 0 : 0) { e2 = k[10222] | 0; if (i3 >>> 0 < e2 >>> 0) Pa(); g2 = i3 + m2 | 0; if (i3 >>> 0 >= g2 >>> 0) Pa(); f2 = k[i3 + 24 >> 2] | 0; c2 = k[i3 + 12 >> 2] | 0; do if ((c2 | 0) == (i3 | 0)) { a2 = i3 + 20 | 0; b2 = k[a2 >> 2] | 0; if (!b2) { a2 = i3 + 16 | 0; b2 = k[a2 >> 2] | 0; if (!b2) { o2 = 0; break; } } while (1) { c2 = b2 + 20 | 0; d2 = k[c2 >> 2] | 0; if (d2) { b2 = d2; a2 = c2; continue; } c2 = b2 + 16 | 0; d2 = k[c2 >> 2] | 0; if (!d2) break; else { b2 = d2; a2 = c2; } } if (a2 >>> 0 < e2 >>> 0) Pa(); else { k[a2 >> 2] = 0; o2 = b2; break; } } else { d2 = k[i3 + 8 >> 2] | 0; if (d2 >>> 0 < e2 >>> 0) Pa(); b2 = d2 + 12 | 0; if ((k[b2 >> 2] | 0) != (i3 | 0)) Pa(); a2 = c2 + 8 | 0; if ((k[a2 >> 2] | 0) == (i3 | 0)) { k[b2 >> 2] = c2; k[a2 >> 2] = d2; o2 = c2; break; } else Pa(); } while (0); do if (f2) { b2 = k[i3 + 28 >> 2] | 0; a2 = 41176 + (b2 << 2) | 0; if ((i3 | 0) == (k[a2 >> 2] | 0)) { k[a2 >> 2] = o2; if (!o2) { k[10219] = k[10219] & ~(1 << b2); break; } } else { if (f2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); b2 = f2 + 16 | 0; if ((k[b2 >> 2] | 0) == (i3 | 0)) k[b2 >> 2] = o2; else k[f2 + 20 >> 2] = o2; if (!o2) break; } a2 = k[10222] | 0; if (o2 >>> 0 < a2 >>> 0) Pa(); k[o2 + 24 >> 2] = f2; b2 = k[i3 + 16 >> 2] | 0; do if (b2) if (b2 >>> 0 < a2 >>> 0) Pa(); else { k[o2 + 16 >> 2] = b2; k[b2 + 24 >> 2] = o2; break; } while (0); b2 = k[i3 + 20 >> 2] | 0; if (b2) if (b2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); else { k[o2 + 20 >> 2] = b2; k[b2 + 24 >> 2] = o2; break; } } while (0); b: do if (h2 >>> 0 >= 16) { k[i3 + 4 >> 2] = m2 | 3; k[i3 + (m2 | 4) >> 2] = h2 | 1; k[i3 + (h2 + m2) >> 2] = h2; b2 = h2 >>> 3; if (h2 >>> 0 < 256) { a2 = b2 << 1; d2 = 40912 + (a2 << 2) | 0; c2 = k[10218] | 0; b2 = 1 << b2; if (c2 & b2) { b2 = 40912 + (a2 + 2 << 2) | 0; a2 = k[b2 >> 2] | 0; if (a2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); else { s2 = b2; t2 = a2; } } else { k[10218] = c2 | b2; s2 = 40912 + (a2 + 2 << 2) | 0; t2 = d2; } k[s2 >> 2] = g2; k[t2 + 12 >> 2] = g2; k[i3 + (m2 + 8) >> 2] = t2; k[i3 + (m2 + 12) >> 2] = d2; break; } b2 = h2 >>> 8; if (b2) if (h2 >>> 0 > 16777215) d2 = 31; else { L2 = (b2 + 1048320 | 0) >>> 16 & 8; M2 = b2 << L2; K2 = (M2 + 520192 | 0) >>> 16 & 4; M2 = M2 << K2; d2 = (M2 + 245760 | 0) >>> 16 & 2; d2 = 14 - (K2 | L2 | d2) + (M2 << d2 >>> 15) | 0; d2 = h2 >>> (d2 + 7 | 0) & 1 | d2 << 1; } else d2 = 0; b2 = 41176 + (d2 << 2) | 0; k[i3 + (m2 + 28) >> 2] = d2; k[i3 + (m2 + 20) >> 2] = 0; k[i3 + (m2 + 16) >> 2] = 0; a2 = k[10219] | 0; c2 = 1 << d2; if (!(a2 & c2)) { k[10219] = a2 | c2; k[b2 >> 2] = g2; k[i3 + (m2 + 24) >> 2] = b2; k[i3 + (m2 + 12) >> 2] = g2; k[i3 + (m2 + 8) >> 2] = g2; break; } b2 = k[b2 >> 2] | 0; c: do if ((k[b2 + 4 >> 2] & -8 | 0) != (h2 | 0)) { d2 = h2 << ((d2 | 0) == 31 ? 0 : 25 - (d2 >>> 1) | 0); while (1) { a2 = b2 + 16 + (d2 >>> 31 << 2) | 0; c2 = k[a2 >> 2] | 0; if (!c2) break; if ((k[c2 + 4 >> 2] & -8 | 0) == (h2 | 0)) { y2 = c2; break c; } else { d2 = d2 << 1; b2 = c2; } } if (a2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); else { k[a2 >> 2] = g2; k[i3 + (m2 + 24) >> 2] = b2; k[i3 + (m2 + 12) >> 2] = g2; k[i3 + (m2 + 8) >> 2] = g2; break b; } } else y2 = b2; while (0); b2 = y2 + 8 | 0; a2 = k[b2 >> 2] | 0; M2 = k[10222] | 0; if (a2 >>> 0 >= M2 >>> 0 & y2 >>> 0 >= M2 >>> 0) { k[a2 + 12 >> 2] = g2; k[b2 >> 2] = g2; k[i3 + (m2 + 8) >> 2] = a2; k[i3 + (m2 + 12) >> 2] = y2; k[i3 + (m2 + 24) >> 2] = 0; break; } else Pa(); } else { M2 = h2 + m2 | 0; k[i3 + 4 >> 2] = M2 | 3; M2 = i3 + (M2 + 4) | 0; k[M2 >> 2] = k[M2 >> 2] | 1; } while (0); M2 = i3 + 8 | 0; return M2 | 0; } else q2 = m2; } else q2 = m2; } else q2 = -1; while (0); c2 = k[10220] | 0; if (c2 >>> 0 >= q2 >>> 0) { b2 = c2 - q2 | 0; a2 = k[10223] | 0; if (b2 >>> 0 > 15) { k[10223] = a2 + q2; k[10220] = b2; k[a2 + (q2 + 4) >> 2] = b2 | 1; k[a2 + c2 >> 2] = b2; k[a2 + 4 >> 2] = q2 | 3; } else { k[10220] = 0; k[10223] = 0; k[a2 + 4 >> 2] = c2 | 3; M2 = a2 + (c2 + 4) | 0; k[M2 >> 2] = k[M2 >> 2] | 1; } M2 = a2 + 8 | 0; return M2 | 0; } a2 = k[10221] | 0; if (a2 >>> 0 > q2 >>> 0) { L2 = a2 - q2 | 0; k[10221] = L2; M2 = k[10224] | 0; k[10224] = M2 + q2; k[M2 + (q2 + 4) >> 2] = L2 | 1; k[M2 + 4 >> 2] = q2 | 3; M2 = M2 + 8 | 0; return M2 | 0; } do if (!(k[10336] | 0)) { a2 = hb(30) | 0; if (!(a2 + -1 & a2)) { k[10338] = a2; k[10337] = a2; k[10339] = -1; k[10340] = -1; k[10341] = 0; k[10329] = 0; y2 = (zb(0) | 0) & -16 ^ 1431655768; k[10336] = y2; break; } else Pa(); } while (0); i3 = q2 + 48 | 0; h2 = k[10338] | 0; j2 = q2 + 47 | 0; g2 = h2 + j2 | 0; h2 = 0 - h2 | 0; l2 = g2 & h2; if (l2 >>> 0 <= q2 >>> 0) { M2 = 0; return M2 | 0; } a2 = k[10328] | 0; if ((a2 | 0) != 0 ? (t2 = k[10326] | 0, y2 = t2 + l2 | 0, y2 >>> 0 <= t2 >>> 0 | y2 >>> 0 > a2 >>> 0) : 0) { M2 = 0; return M2 | 0; } d: do if (!(k[10329] & 4)) { a2 = k[10224] | 0; e: do if (a2) { e2 = 41320; while (1) { c2 = k[e2 >> 2] | 0; if (c2 >>> 0 <= a2 >>> 0 ? (r2 = e2 + 4 | 0, (c2 + (k[r2 >> 2] | 0) | 0) >>> 0 > a2 >>> 0) : 0) { f2 = e2; a2 = r2; break; } e2 = k[e2 + 8 >> 2] | 0; if (!e2) { v2 = 174; break e; } } c2 = g2 - (k[10221] | 0) & h2; if (c2 >>> 0 < 2147483647) { e2 = bb(c2 | 0) | 0; y2 = (e2 | 0) == ((k[f2 >> 2] | 0) + (k[a2 >> 2] | 0) | 0); a2 = y2 ? c2 : 0; if (y2) { if ((e2 | 0) != (-1 | 0)) { w2 = e2; p2 = a2; v2 = 194; break d; } } else v2 = 184; } else a2 = 0; } else v2 = 174; while (0); do if ((v2 | 0) == 174) { f2 = bb(0) | 0; if ((f2 | 0) != (-1 | 0)) { a2 = f2; c2 = k[10337] | 0; e2 = c2 + -1 | 0; if (!(e2 & a2)) c2 = l2; else c2 = l2 - a2 + (e2 + a2 & 0 - c2) | 0; a2 = k[10326] | 0; e2 = a2 + c2 | 0; if (c2 >>> 0 > q2 >>> 0 & c2 >>> 0 < 2147483647) { y2 = k[10328] | 0; if ((y2 | 0) != 0 ? e2 >>> 0 <= a2 >>> 0 | e2 >>> 0 > y2 >>> 0 : 0) { a2 = 0; break; } e2 = bb(c2 | 0) | 0; y2 = (e2 | 0) == (f2 | 0); a2 = y2 ? c2 : 0; if (y2) { w2 = f2; p2 = a2; v2 = 194; break d; } else v2 = 184; } else a2 = 0; } else a2 = 0; } while (0); f: do if ((v2 | 0) == 184) { f2 = 0 - c2 | 0; do if (i3 >>> 0 > c2 >>> 0 & (c2 >>> 0 < 2147483647 & (e2 | 0) != (-1 | 0)) ? (u2 = k[10338] | 0, u2 = j2 - c2 + u2 & 0 - u2, u2 >>> 0 < 2147483647) : 0) if ((bb(u2 | 0) | 0) == (-1 | 0)) { bb(f2 | 0) | 0; break f; } else { c2 = u2 + c2 | 0; break; } while (0); if ((e2 | 0) != (-1 | 0)) { w2 = e2; p2 = c2; v2 = 194; break d; } } while (0); k[10329] = k[10329] | 4; v2 = 191; } else { a2 = 0; v2 = 191; } while (0); if ((((v2 | 0) == 191 ? l2 >>> 0 < 2147483647 : 0) ? (w2 = bb(l2 | 0) | 0, x2 = bb(0) | 0, w2 >>> 0 < x2 >>> 0 & ((w2 | 0) != (-1 | 0) & (x2 | 0) != (-1 | 0))) : 0) ? (z2 = x2 - w2 | 0, A2 = z2 >>> 0 > (q2 + 40 | 0) >>> 0, A2) : 0) { p2 = A2 ? z2 : a2; v2 = 194; } if ((v2 | 0) == 194) { a2 = (k[10326] | 0) + p2 | 0; k[10326] = a2; if (a2 >>> 0 > (k[10327] | 0) >>> 0) k[10327] = a2; g2 = k[10224] | 0; g: do if (g2) { f2 = 41320; do { a2 = k[f2 >> 2] | 0; c2 = f2 + 4 | 0; e2 = k[c2 >> 2] | 0; if ((w2 | 0) == (a2 + e2 | 0)) { B2 = a2; C2 = c2; D2 = e2; E2 = f2; v2 = 204; break; } f2 = k[f2 + 8 >> 2] | 0; } while ((f2 | 0) != 0); if (((v2 | 0) == 204 ? (k[E2 + 12 >> 2] & 8 | 0) == 0 : 0) ? g2 >>> 0 < w2 >>> 0 & g2 >>> 0 >= B2 >>> 0 : 0) { k[C2 >> 2] = D2 + p2; M2 = (k[10221] | 0) + p2 | 0; L2 = g2 + 8 | 0; L2 = (L2 & 7 | 0) == 0 ? 0 : 0 - L2 & 7; K2 = M2 - L2 | 0; k[10224] = g2 + L2; k[10221] = K2; k[g2 + (L2 + 4) >> 2] = K2 | 1; k[g2 + (M2 + 4) >> 2] = 40; k[10225] = k[10340]; break; } a2 = k[10222] | 0; if (w2 >>> 0 < a2 >>> 0) { k[10222] = w2; a2 = w2; } c2 = w2 + p2 | 0; f2 = 41320; while (1) { if ((k[f2 >> 2] | 0) == (c2 | 0)) { e2 = f2; c2 = f2; v2 = 212; break; } f2 = k[f2 + 8 >> 2] | 0; if (!f2) { c2 = 41320; break; } } if ((v2 | 0) == 212) if (!(k[c2 + 12 >> 2] & 8)) { k[e2 >> 2] = w2; n2 = c2 + 4 | 0; k[n2 >> 2] = (k[n2 >> 2] | 0) + p2; n2 = w2 + 8 | 0; n2 = (n2 & 7 | 0) == 0 ? 0 : 0 - n2 & 7; j2 = w2 + (p2 + 8) | 0; j2 = (j2 & 7 | 0) == 0 ? 0 : 0 - j2 & 7; b2 = w2 + (j2 + p2) | 0; m2 = n2 + q2 | 0; o2 = w2 + m2 | 0; l2 = b2 - (w2 + n2) - q2 | 0; k[w2 + (n2 + 4) >> 2] = q2 | 3; h: do if ((b2 | 0) != (g2 | 0)) { if ((b2 | 0) == (k[10223] | 0)) { M2 = (k[10220] | 0) + l2 | 0; k[10220] = M2; k[10223] = o2; k[w2 + (m2 + 4) >> 2] = M2 | 1; k[w2 + (M2 + m2) >> 2] = M2; break; } h2 = p2 + 4 | 0; c2 = k[w2 + (h2 + j2) >> 2] | 0; if ((c2 & 3 | 0) == 1) { i3 = c2 & -8; f2 = c2 >>> 3; i: do if (c2 >>> 0 >= 256) { g2 = k[w2 + ((j2 | 24) + p2) >> 2] | 0; d2 = k[w2 + (p2 + 12 + j2) >> 2] | 0; do if ((d2 | 0) == (b2 | 0)) { e2 = j2 | 16; d2 = w2 + (h2 + e2) | 0; c2 = k[d2 >> 2] | 0; if (!c2) { d2 = w2 + (e2 + p2) | 0; c2 = k[d2 >> 2] | 0; if (!c2) { J2 = 0; break; } } while (1) { e2 = c2 + 20 | 0; f2 = k[e2 >> 2] | 0; if (f2) { c2 = f2; d2 = e2; continue; } e2 = c2 + 16 | 0; f2 = k[e2 >> 2] | 0; if (!f2) break; else { c2 = f2; d2 = e2; } } if (d2 >>> 0 < a2 >>> 0) Pa(); else { k[d2 >> 2] = 0; J2 = c2; break; } } else { e2 = k[w2 + ((j2 | 8) + p2) >> 2] | 0; if (e2 >>> 0 < a2 >>> 0) Pa(); a2 = e2 + 12 | 0; if ((k[a2 >> 2] | 0) != (b2 | 0)) Pa(); c2 = d2 + 8 | 0; if ((k[c2 >> 2] | 0) == (b2 | 0)) { k[a2 >> 2] = d2; k[c2 >> 2] = e2; J2 = d2; break; } else Pa(); } while (0); if (!g2) break; a2 = k[w2 + (p2 + 28 + j2) >> 2] | 0; c2 = 41176 + (a2 << 2) | 0; do if ((b2 | 0) != (k[c2 >> 2] | 0)) { if (g2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); a2 = g2 + 16 | 0; if ((k[a2 >> 2] | 0) == (b2 | 0)) k[a2 >> 2] = J2; else k[g2 + 20 >> 2] = J2; if (!J2) break i; } else { k[c2 >> 2] = J2; if (J2) break; k[10219] = k[10219] & ~(1 << a2); break i; } while (0); c2 = k[10222] | 0; if (J2 >>> 0 < c2 >>> 0) Pa(); k[J2 + 24 >> 2] = g2; b2 = j2 | 16; a2 = k[w2 + (b2 + p2) >> 2] | 0; do if (a2) if (a2 >>> 0 < c2 >>> 0) Pa(); else { k[J2 + 16 >> 2] = a2; k[a2 + 24 >> 2] = J2; break; } while (0); b2 = k[w2 + (h2 + b2) >> 2] | 0; if (!b2) break; if (b2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); else { k[J2 + 20 >> 2] = b2; k[b2 + 24 >> 2] = J2; break; } } else { d2 = k[w2 + ((j2 | 8) + p2) >> 2] | 0; e2 = k[w2 + (p2 + 12 + j2) >> 2] | 0; c2 = 40912 + (f2 << 1 << 2) | 0; do if ((d2 | 0) != (c2 | 0)) { if (d2 >>> 0 < a2 >>> 0) Pa(); if ((k[d2 + 12 >> 2] | 0) == (b2 | 0)) break; Pa(); } while (0); if ((e2 | 0) == (d2 | 0)) { k[10218] = k[10218] & ~(1 << f2); break; } do if ((e2 | 0) == (c2 | 0)) F2 = e2 + 8 | 0; else { if (e2 >>> 0 < a2 >>> 0) Pa(); a2 = e2 + 8 | 0; if ((k[a2 >> 2] | 0) == (b2 | 0)) { F2 = a2; break; } Pa(); } while (0); k[d2 + 12 >> 2] = e2; k[F2 >> 2] = d2; } while (0); b2 = w2 + ((i3 | j2) + p2) | 0; e2 = i3 + l2 | 0; } else e2 = l2; b2 = b2 + 4 | 0; k[b2 >> 2] = k[b2 >> 2] & -2; k[w2 + (m2 + 4) >> 2] = e2 | 1; k[w2 + (e2 + m2) >> 2] = e2; b2 = e2 >>> 3; if (e2 >>> 0 < 256) { a2 = b2 << 1; d2 = 40912 + (a2 << 2) | 0; c2 = k[10218] | 0; b2 = 1 << b2; do if (!(c2 & b2)) { k[10218] = c2 | b2; K2 = 40912 + (a2 + 2 << 2) | 0; L2 = d2; } else { b2 = 40912 + (a2 + 2 << 2) | 0; a2 = k[b2 >> 2] | 0; if (a2 >>> 0 >= (k[10222] | 0) >>> 0) { K2 = b2; L2 = a2; break; } Pa(); } while (0); k[K2 >> 2] = o2; k[L2 + 12 >> 2] = o2; k[w2 + (m2 + 8) >> 2] = L2; k[w2 + (m2 + 12) >> 2] = d2; break; } b2 = e2 >>> 8; do if (!b2) d2 = 0; else { if (e2 >>> 0 > 16777215) { d2 = 31; break; } K2 = (b2 + 1048320 | 0) >>> 16 & 8; L2 = b2 << K2; J2 = (L2 + 520192 | 0) >>> 16 & 4; L2 = L2 << J2; d2 = (L2 + 245760 | 0) >>> 16 & 2; d2 = 14 - (J2 | K2 | d2) + (L2 << d2 >>> 15) | 0; d2 = e2 >>> (d2 + 7 | 0) & 1 | d2 << 1; } while (0); b2 = 41176 + (d2 << 2) | 0; k[w2 + (m2 + 28) >> 2] = d2; k[w2 + (m2 + 20) >> 2] = 0; k[w2 + (m2 + 16) >> 2] = 0; a2 = k[10219] | 0; c2 = 1 << d2; if (!(a2 & c2)) { k[10219] = a2 | c2; k[b2 >> 2] = o2; k[w2 + (m2 + 24) >> 2] = b2; k[w2 + (m2 + 12) >> 2] = o2; k[w2 + (m2 + 8) >> 2] = o2; break; } b2 = k[b2 >> 2] | 0; j: do if ((k[b2 + 4 >> 2] & -8 | 0) != (e2 | 0)) { d2 = e2 << ((d2 | 0) == 31 ? 0 : 25 - (d2 >>> 1) | 0); while (1) { a2 = b2 + 16 + (d2 >>> 31 << 2) | 0; c2 = k[a2 >> 2] | 0; if (!c2) break; if ((k[c2 + 4 >> 2] & -8 | 0) == (e2 | 0)) { M2 = c2; break j; } else { d2 = d2 << 1; b2 = c2; } } if (a2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); else { k[a2 >> 2] = o2; k[w2 + (m2 + 24) >> 2] = b2; k[w2 + (m2 + 12) >> 2] = o2; k[w2 + (m2 + 8) >> 2] = o2; break h; } } else M2 = b2; while (0); b2 = M2 + 8 | 0; a2 = k[b2 >> 2] | 0; L2 = k[10222] | 0; if (a2 >>> 0 >= L2 >>> 0 & M2 >>> 0 >= L2 >>> 0) { k[a2 + 12 >> 2] = o2; k[b2 >> 2] = o2; k[w2 + (m2 + 8) >> 2] = a2; k[w2 + (m2 + 12) >> 2] = M2; k[w2 + (m2 + 24) >> 2] = 0; break; } else Pa(); } else { M2 = (k[10221] | 0) + l2 | 0; k[10221] = M2; k[10224] = o2; k[w2 + (m2 + 4) >> 2] = M2 | 1; } while (0); M2 = w2 + (n2 | 8) | 0; return M2 | 0; } else c2 = 41320; while (1) { a2 = k[c2 >> 2] | 0; if (a2 >>> 0 <= g2 >>> 0 ? (b2 = k[c2 + 4 >> 2] | 0, d2 = a2 + b2 | 0, d2 >>> 0 > g2 >>> 0) : 0) break; c2 = k[c2 + 8 >> 2] | 0; } e2 = a2 + (b2 + -39) | 0; a2 = a2 + (b2 + -47 + ((e2 & 7 | 0) == 0 ? 0 : 0 - e2 & 7)) | 0; e2 = g2 + 16 | 0; a2 = a2 >>> 0 < e2 >>> 0 ? g2 : a2; b2 = a2 + 8 | 0; c2 = w2 + 8 | 0; c2 = (c2 & 7 | 0) == 0 ? 0 : 0 - c2 & 7; M2 = p2 + -40 - c2 | 0; k[10224] = w2 + c2; k[10221] = M2; k[w2 + (c2 + 4) >> 2] = M2 | 1; k[w2 + (p2 + -36) >> 2] = 40; k[10225] = k[10340]; c2 = a2 + 4 | 0; k[c2 >> 2] = 27; k[b2 >> 2] = k[10330]; k[b2 + 4 >> 2] = k[10331]; k[b2 + 8 >> 2] = k[10332]; k[b2 + 12 >> 2] = k[10333]; k[10330] = w2; k[10331] = p2; k[10333] = 0; k[10332] = b2; b2 = a2 + 28 | 0; k[b2 >> 2] = 7; if ((a2 + 32 | 0) >>> 0 < d2 >>> 0) do { M2 = b2; b2 = b2 + 4 | 0; k[b2 >> 2] = 7; } while ((M2 + 8 | 0) >>> 0 < d2 >>> 0); if ((a2 | 0) != (g2 | 0)) { f2 = a2 - g2 | 0; k[c2 >> 2] = k[c2 >> 2] & -2; k[g2 + 4 >> 2] = f2 | 1; k[a2 >> 2] = f2; b2 = f2 >>> 3; if (f2 >>> 0 < 256) { a2 = b2 << 1; d2 = 40912 + (a2 << 2) | 0; c2 = k[10218] | 0; b2 = 1 << b2; if (c2 & b2) { b2 = 40912 + (a2 + 2 << 2) | 0; a2 = k[b2 >> 2] | 0; if (a2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); else { G2 = b2; H2 = a2; } } else { k[10218] = c2 | b2; G2 = 40912 + (a2 + 2 << 2) | 0; H2 = d2; } k[G2 >> 2] = g2; k[H2 + 12 >> 2] = g2; k[g2 + 8 >> 2] = H2; k[g2 + 12 >> 2] = d2; break; } b2 = f2 >>> 8; if (b2) if (f2 >>> 0 > 16777215) d2 = 31; else { L2 = (b2 + 1048320 | 0) >>> 16 & 8; M2 = b2 << L2; K2 = (M2 + 520192 | 0) >>> 16 & 4; M2 = M2 << K2; d2 = (M2 + 245760 | 0) >>> 16 & 2; d2 = 14 - (K2 | L2 | d2) + (M2 << d2 >>> 15) | 0; d2 = f2 >>> (d2 + 7 | 0) & 1 | d2 << 1; } else d2 = 0; c2 = 41176 + (d2 << 2) | 0; k[g2 + 28 >> 2] = d2; k[g2 + 20 >> 2] = 0; k[e2 >> 2] = 0; b2 = k[10219] | 0; a2 = 1 << d2; if (!(b2 & a2)) { k[10219] = b2 | a2; k[c2 >> 2] = g2; k[g2 + 24 >> 2] = c2; k[g2 + 12 >> 2] = g2; k[g2 + 8 >> 2] = g2; break; } b2 = k[c2 >> 2] | 0; k: do if ((k[b2 + 4 >> 2] & -8 | 0) != (f2 | 0)) { d2 = f2 << ((d2 | 0) == 31 ? 0 : 25 - (d2 >>> 1) | 0); while (1) { a2 = b2 + 16 + (d2 >>> 31 << 2) | 0; c2 = k[a2 >> 2] | 0; if (!c2) break; if ((k[c2 + 4 >> 2] & -8 | 0) == (f2 | 0)) { I2 = c2; break k; } else { d2 = d2 << 1; b2 = c2; } } if (a2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); else { k[a2 >> 2] = g2; k[g2 + 24 >> 2] = b2; k[g2 + 12 >> 2] = g2; k[g2 + 8 >> 2] = g2; break g; } } else I2 = b2; while (0); b2 = I2 + 8 | 0; a2 = k[b2 >> 2] | 0; M2 = k[10222] | 0; if (a2 >>> 0 >= M2 >>> 0 & I2 >>> 0 >= M2 >>> 0) { k[a2 + 12 >> 2] = g2; k[b2 >> 2] = g2; k[g2 + 8 >> 2] = a2; k[g2 + 12 >> 2] = I2; k[g2 + 24 >> 2] = 0; break; } else Pa(); } } else { M2 = k[10222] | 0; if ((M2 | 0) == 0 | w2 >>> 0 < M2 >>> 0) k[10222] = w2; k[10330] = w2; k[10331] = p2; k[10333] = 0; k[10227] = k[10336]; k[10226] = -1; b2 = 0; do { M2 = b2 << 1; L2 = 40912 + (M2 << 2) | 0; k[40912 + (M2 + 3 << 2) >> 2] = L2; k[40912 + (M2 + 2 << 2) >> 2] = L2; b2 = b2 + 1 | 0; } while ((b2 | 0) != 32); M2 = w2 + 8 | 0; M2 = (M2 & 7 | 0) == 0 ? 0 : 0 - M2 & 7; L2 = p2 + -40 - M2 | 0; k[10224] = w2 + M2; k[10221] = L2; k[w2 + (M2 + 4) >> 2] = L2 | 1; k[w2 + (p2 + -36) >> 2] = 40; k[10225] = k[10340]; } while (0); b2 = k[10221] | 0; if (b2 >>> 0 > q2 >>> 0) { L2 = b2 - q2 | 0; k[10221] = L2; M2 = k[10224] | 0; k[10224] = M2 + q2; k[M2 + (q2 + 4) >> 2] = L2 | 1; k[M2 + 4 >> 2] = q2 | 3; M2 = M2 + 8 | 0; return M2 | 0; } } M2 = mk() | 0; k[M2 >> 2] = 12; M2 = 0; return M2 | 0; } function Ql(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0; if (!a2) return; b2 = a2 + -8 | 0; h2 = k[10222] | 0; if (b2 >>> 0 < h2 >>> 0) Pa(); c2 = k[a2 + -4 >> 2] | 0; d2 = c2 & 3; if ((d2 | 0) == 1) Pa(); o2 = c2 & -8; q2 = a2 + (o2 + -8) | 0; do if (!(c2 & 1)) { b2 = k[b2 >> 2] | 0; if (!d2) return; i3 = -8 - b2 | 0; l2 = a2 + i3 | 0; m2 = b2 + o2 | 0; if (l2 >>> 0 < h2 >>> 0) Pa(); if ((l2 | 0) == (k[10223] | 0)) { b2 = a2 + (o2 + -4) | 0; c2 = k[b2 >> 2] | 0; if ((c2 & 3 | 0) != 3) { u2 = l2; f2 = m2; break; } k[10220] = m2; k[b2 >> 2] = c2 & -2; k[a2 + (i3 + 4) >> 2] = m2 | 1; k[q2 >> 2] = m2; return; } e2 = b2 >>> 3; if (b2 >>> 0 < 256) { d2 = k[a2 + (i3 + 8) >> 2] | 0; c2 = k[a2 + (i3 + 12) >> 2] | 0; b2 = 40912 + (e2 << 1 << 2) | 0; if ((d2 | 0) != (b2 | 0)) { if (d2 >>> 0 < h2 >>> 0) Pa(); if ((k[d2 + 12 >> 2] | 0) != (l2 | 0)) Pa(); } if ((c2 | 0) == (d2 | 0)) { k[10218] = k[10218] & ~(1 << e2); u2 = l2; f2 = m2; break; } if ((c2 | 0) != (b2 | 0)) { if (c2 >>> 0 < h2 >>> 0) Pa(); b2 = c2 + 8 | 0; if ((k[b2 >> 2] | 0) == (l2 | 0)) g2 = b2; else Pa(); } else g2 = c2 + 8 | 0; k[d2 + 12 >> 2] = c2; k[g2 >> 2] = d2; u2 = l2; f2 = m2; break; } g2 = k[a2 + (i3 + 24) >> 2] | 0; d2 = k[a2 + (i3 + 12) >> 2] | 0; do if ((d2 | 0) == (l2 | 0)) { c2 = a2 + (i3 + 20) | 0; b2 = k[c2 >> 2] | 0; if (!b2) { c2 = a2 + (i3 + 16) | 0; b2 = k[c2 >> 2] | 0; if (!b2) { j2 = 0; break; } } while (1) { d2 = b2 + 20 | 0; e2 = k[d2 >> 2] | 0; if (e2) { b2 = e2; c2 = d2; continue; } d2 = b2 + 16 | 0; e2 = k[d2 >> 2] | 0; if (!e2) break; else { b2 = e2; c2 = d2; } } if (c2 >>> 0 < h2 >>> 0) Pa(); else { k[c2 >> 2] = 0; j2 = b2; break; } } else { e2 = k[a2 + (i3 + 8) >> 2] | 0; if (e2 >>> 0 < h2 >>> 0) Pa(); b2 = e2 + 12 | 0; if ((k[b2 >> 2] | 0) != (l2 | 0)) Pa(); c2 = d2 + 8 | 0; if ((k[c2 >> 2] | 0) == (l2 | 0)) { k[b2 >> 2] = d2; k[c2 >> 2] = e2; j2 = d2; break; } else Pa(); } while (0); if (g2) { b2 = k[a2 + (i3 + 28) >> 2] | 0; c2 = 41176 + (b2 << 2) | 0; if ((l2 | 0) == (k[c2 >> 2] | 0)) { k[c2 >> 2] = j2; if (!j2) { k[10219] = k[10219] & ~(1 << b2); u2 = l2; f2 = m2; break; } } else { if (g2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); b2 = g2 + 16 | 0; if ((k[b2 >> 2] | 0) == (l2 | 0)) k[b2 >> 2] = j2; else k[g2 + 20 >> 2] = j2; if (!j2) { u2 = l2; f2 = m2; break; } } c2 = k[10222] | 0; if (j2 >>> 0 < c2 >>> 0) Pa(); k[j2 + 24 >> 2] = g2; b2 = k[a2 + (i3 + 16) >> 2] | 0; do if (b2) if (b2 >>> 0 < c2 >>> 0) Pa(); else { k[j2 + 16 >> 2] = b2; k[b2 + 24 >> 2] = j2; break; } while (0); b2 = k[a2 + (i3 + 20) >> 2] | 0; if (b2) if (b2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); else { k[j2 + 20 >> 2] = b2; k[b2 + 24 >> 2] = j2; u2 = l2; f2 = m2; break; } else { u2 = l2; f2 = m2; } } else { u2 = l2; f2 = m2; } } else { u2 = b2; f2 = o2; } while (0); if (u2 >>> 0 >= q2 >>> 0) Pa(); b2 = a2 + (o2 + -4) | 0; c2 = k[b2 >> 2] | 0; if (!(c2 & 1)) Pa(); if (!(c2 & 2)) { if ((q2 | 0) == (k[10224] | 0)) { t2 = (k[10221] | 0) + f2 | 0; k[10221] = t2; k[10224] = u2; k[u2 + 4 >> 2] = t2 | 1; if ((u2 | 0) != (k[10223] | 0)) return; k[10223] = 0; k[10220] = 0; return; } if ((q2 | 0) == (k[10223] | 0)) { t2 = (k[10220] | 0) + f2 | 0; k[10220] = t2; k[10223] = u2; k[u2 + 4 >> 2] = t2 | 1; k[u2 + t2 >> 2] = t2; return; } f2 = (c2 & -8) + f2 | 0; e2 = c2 >>> 3; do if (c2 >>> 0 >= 256) { g2 = k[a2 + (o2 + 16) >> 2] | 0; b2 = k[a2 + (o2 | 4) >> 2] | 0; do if ((b2 | 0) == (q2 | 0)) { c2 = a2 + (o2 + 12) | 0; b2 = k[c2 >> 2] | 0; if (!b2) { c2 = a2 + (o2 + 8) | 0; b2 = k[c2 >> 2] | 0; if (!b2) { p2 = 0; break; } } while (1) { d2 = b2 + 20 | 0; e2 = k[d2 >> 2] | 0; if (e2) { b2 = e2; c2 = d2; continue; } d2 = b2 + 16 | 0; e2 = k[d2 >> 2] | 0; if (!e2) break; else { b2 = e2; c2 = d2; } } if (c2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); else { k[c2 >> 2] = 0; p2 = b2; break; } } else { c2 = k[a2 + o2 >> 2] | 0; if (c2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); d2 = c2 + 12 | 0; if ((k[d2 >> 2] | 0) != (q2 | 0)) Pa(); e2 = b2 + 8 | 0; if ((k[e2 >> 2] | 0) == (q2 | 0)) { k[d2 >> 2] = b2; k[e2 >> 2] = c2; p2 = b2; break; } else Pa(); } while (0); if (g2) { b2 = k[a2 + (o2 + 20) >> 2] | 0; c2 = 41176 + (b2 << 2) | 0; if ((q2 | 0) == (k[c2 >> 2] | 0)) { k[c2 >> 2] = p2; if (!p2) { k[10219] = k[10219] & ~(1 << b2); break; } } else { if (g2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); b2 = g2 + 16 | 0; if ((k[b2 >> 2] | 0) == (q2 | 0)) k[b2 >> 2] = p2; else k[g2 + 20 >> 2] = p2; if (!p2) break; } c2 = k[10222] | 0; if (p2 >>> 0 < c2 >>> 0) Pa(); k[p2 + 24 >> 2] = g2; b2 = k[a2 + (o2 + 8) >> 2] | 0; do if (b2) if (b2 >>> 0 < c2 >>> 0) Pa(); else { k[p2 + 16 >> 2] = b2; k[b2 + 24 >> 2] = p2; break; } while (0); b2 = k[a2 + (o2 + 12) >> 2] | 0; if (b2) if (b2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); else { k[p2 + 20 >> 2] = b2; k[b2 + 24 >> 2] = p2; break; } } } else { d2 = k[a2 + o2 >> 2] | 0; c2 = k[a2 + (o2 | 4) >> 2] | 0; b2 = 40912 + (e2 << 1 << 2) | 0; if ((d2 | 0) != (b2 | 0)) { if (d2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); if ((k[d2 + 12 >> 2] | 0) != (q2 | 0)) Pa(); } if ((c2 | 0) == (d2 | 0)) { k[10218] = k[10218] & ~(1 << e2); break; } if ((c2 | 0) != (b2 | 0)) { if (c2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); b2 = c2 + 8 | 0; if ((k[b2 >> 2] | 0) == (q2 | 0)) n2 = b2; else Pa(); } else n2 = c2 + 8 | 0; k[d2 + 12 >> 2] = c2; k[n2 >> 2] = d2; } while (0); k[u2 + 4 >> 2] = f2 | 1; k[u2 + f2 >> 2] = f2; if ((u2 | 0) == (k[10223] | 0)) { k[10220] = f2; return; } } else { k[b2 >> 2] = c2 & -2; k[u2 + 4 >> 2] = f2 | 1; k[u2 + f2 >> 2] = f2; } b2 = f2 >>> 3; if (f2 >>> 0 < 256) { c2 = b2 << 1; e2 = 40912 + (c2 << 2) | 0; d2 = k[10218] | 0; b2 = 1 << b2; if (d2 & b2) { b2 = 40912 + (c2 + 2 << 2) | 0; c2 = k[b2 >> 2] | 0; if (c2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); else { r2 = b2; s2 = c2; } } else { k[10218] = d2 | b2; r2 = 40912 + (c2 + 2 << 2) | 0; s2 = e2; } k[r2 >> 2] = u2; k[s2 + 12 >> 2] = u2; k[u2 + 8 >> 2] = s2; k[u2 + 12 >> 2] = e2; return; } b2 = f2 >>> 8; if (b2) if (f2 >>> 0 > 16777215) e2 = 31; else { r2 = (b2 + 1048320 | 0) >>> 16 & 8; s2 = b2 << r2; q2 = (s2 + 520192 | 0) >>> 16 & 4; s2 = s2 << q2; e2 = (s2 + 245760 | 0) >>> 16 & 2; e2 = 14 - (q2 | r2 | e2) + (s2 << e2 >>> 15) | 0; e2 = f2 >>> (e2 + 7 | 0) & 1 | e2 << 1; } else e2 = 0; b2 = 41176 + (e2 << 2) | 0; k[u2 + 28 >> 2] = e2; k[u2 + 20 >> 2] = 0; k[u2 + 16 >> 2] = 0; c2 = k[10219] | 0; d2 = 1 << e2; a: do if (c2 & d2) { b2 = k[b2 >> 2] | 0; b: do if ((k[b2 + 4 >> 2] & -8 | 0) != (f2 | 0)) { e2 = f2 << ((e2 | 0) == 31 ? 0 : 25 - (e2 >>> 1) | 0); while (1) { c2 = b2 + 16 + (e2 >>> 31 << 2) | 0; d2 = k[c2 >> 2] | 0; if (!d2) break; if ((k[d2 + 4 >> 2] & -8 | 0) == (f2 | 0)) { t2 = d2; break b; } else { e2 = e2 << 1; b2 = d2; } } if (c2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); else { k[c2 >> 2] = u2; k[u2 + 24 >> 2] = b2; k[u2 + 12 >> 2] = u2; k[u2 + 8 >> 2] = u2; break a; } } else t2 = b2; while (0); b2 = t2 + 8 | 0; c2 = k[b2 >> 2] | 0; s2 = k[10222] | 0; if (c2 >>> 0 >= s2 >>> 0 & t2 >>> 0 >= s2 >>> 0) { k[c2 + 12 >> 2] = u2; k[b2 >> 2] = u2; k[u2 + 8 >> 2] = c2; k[u2 + 12 >> 2] = t2; k[u2 + 24 >> 2] = 0; break; } else Pa(); } else { k[10219] = c2 | d2; k[b2 >> 2] = u2; k[u2 + 24 >> 2] = b2; k[u2 + 12 >> 2] = u2; k[u2 + 8 >> 2] = u2; } while (0); u2 = (k[10226] | 0) + -1 | 0; k[10226] = u2; if (!u2) b2 = 41328; else return; while (1) { b2 = k[b2 >> 2] | 0; if (!b2) break; else b2 = b2 + 8 | 0; } k[10226] = -1; return; } function Rl(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0; if (a2) { c2 = ia(b2, a2) | 0; if ((b2 | a2) >>> 0 > 65535) c2 = ((c2 >>> 0) / (a2 >>> 0) | 0 | 0) == (b2 | 0) ? c2 : -1; } else c2 = 0; b2 = Pl(c2) | 0; if (!b2) return b2 | 0; if (!(k[b2 + -4 >> 2] & 3)) return b2 | 0; sw(b2 | 0, 0, c2 | 0) | 0; return b2 | 0; } function Sl(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0; if (!a2) { a2 = Pl(b2) | 0; return a2 | 0; } if (b2 >>> 0 > 4294967231) { a2 = mk() | 0; k[a2 >> 2] = 12; a2 = 0; return a2 | 0; } c2 = Tl(a2 + -8 | 0, b2 >>> 0 < 11 ? 16 : b2 + 11 & -8) | 0; if (c2) { a2 = c2 + 8 | 0; return a2 | 0; } c2 = Pl(b2) | 0; if (!c2) { a2 = 0; return a2 | 0; } d2 = k[a2 + -4 >> 2] | 0; d2 = (d2 & -8) - ((d2 & 3 | 0) == 0 ? 8 : 4) | 0; vw(c2 | 0, a2 | 0, (d2 >>> 0 < b2 >>> 0 ? d2 : b2) | 0) | 0; Ql(a2); a2 = c2; return a2 | 0; } function Tl(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; o2 = a2 + 4 | 0; p2 = k[o2 >> 2] | 0; i3 = p2 & -8; l2 = a2 + i3 | 0; h2 = k[10222] | 0; c2 = p2 & 3; if (!((c2 | 0) != 1 & a2 >>> 0 >= h2 >>> 0 & a2 >>> 0 < l2 >>> 0)) Pa(); d2 = a2 + (i3 | 4) | 0; e2 = k[d2 >> 2] | 0; if (!(e2 & 1)) Pa(); if (!c2) { if (b2 >>> 0 < 256) { a2 = 0; return a2 | 0; } if (i3 >>> 0 >= (b2 + 4 | 0) >>> 0 ? (i3 - b2 | 0) >>> 0 <= k[10338] << 1 >>> 0 : 0) return a2 | 0; a2 = 0; return a2 | 0; } if (i3 >>> 0 >= b2 >>> 0) { c2 = i3 - b2 | 0; if (c2 >>> 0 <= 15) return a2 | 0; k[o2 >> 2] = p2 & 1 | b2 | 2; k[a2 + (b2 + 4) >> 2] = c2 | 3; k[d2 >> 2] = k[d2 >> 2] | 1; Ul(a2 + b2 | 0, c2); return a2 | 0; } if ((l2 | 0) == (k[10224] | 0)) { c2 = (k[10221] | 0) + i3 | 0; if (c2 >>> 0 <= b2 >>> 0) { a2 = 0; return a2 | 0; } n2 = c2 - b2 | 0; k[o2 >> 2] = p2 & 1 | b2 | 2; k[a2 + (b2 + 4) >> 2] = n2 | 1; k[10224] = a2 + b2; k[10221] = n2; return a2 | 0; } if ((l2 | 0) == (k[10223] | 0)) { d2 = (k[10220] | 0) + i3 | 0; if (d2 >>> 0 < b2 >>> 0) { a2 = 0; return a2 | 0; } c2 = d2 - b2 | 0; if (c2 >>> 0 > 15) { k[o2 >> 2] = p2 & 1 | b2 | 2; k[a2 + (b2 + 4) >> 2] = c2 | 1; k[a2 + d2 >> 2] = c2; d2 = a2 + (d2 + 4) | 0; k[d2 >> 2] = k[d2 >> 2] & -2; d2 = a2 + b2 | 0; } else { k[o2 >> 2] = p2 & 1 | d2 | 2; d2 = a2 + (d2 + 4) | 0; k[d2 >> 2] = k[d2 >> 2] | 1; d2 = 0; c2 = 0; } k[10220] = c2; k[10223] = d2; return a2 | 0; } if (e2 & 2) { a2 = 0; return a2 | 0; } m2 = (e2 & -8) + i3 | 0; if (m2 >>> 0 < b2 >>> 0) { a2 = 0; return a2 | 0; } n2 = m2 - b2 | 0; f2 = e2 >>> 3; do if (e2 >>> 0 >= 256) { g2 = k[a2 + (i3 + 24) >> 2] | 0; f2 = k[a2 + (i3 + 12) >> 2] | 0; do if ((f2 | 0) == (l2 | 0)) { d2 = a2 + (i3 + 20) | 0; c2 = k[d2 >> 2] | 0; if (!c2) { d2 = a2 + (i3 + 16) | 0; c2 = k[d2 >> 2] | 0; if (!c2) { j2 = 0; break; } } while (1) { e2 = c2 + 20 | 0; f2 = k[e2 >> 2] | 0; if (f2) { c2 = f2; d2 = e2; continue; } e2 = c2 + 16 | 0; f2 = k[e2 >> 2] | 0; if (!f2) break; else { c2 = f2; d2 = e2; } } if (d2 >>> 0 < h2 >>> 0) Pa(); else { k[d2 >> 2] = 0; j2 = c2; break; } } else { e2 = k[a2 + (i3 + 8) >> 2] | 0; if (e2 >>> 0 < h2 >>> 0) Pa(); c2 = e2 + 12 | 0; if ((k[c2 >> 2] | 0) != (l2 | 0)) Pa(); d2 = f2 + 8 | 0; if ((k[d2 >> 2] | 0) == (l2 | 0)) { k[c2 >> 2] = f2; k[d2 >> 2] = e2; j2 = f2; break; } else Pa(); } while (0); if (g2) { c2 = k[a2 + (i3 + 28) >> 2] | 0; d2 = 41176 + (c2 << 2) | 0; if ((l2 | 0) == (k[d2 >> 2] | 0)) { k[d2 >> 2] = j2; if (!j2) { k[10219] = k[10219] & ~(1 << c2); break; } } else { if (g2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); c2 = g2 + 16 | 0; if ((k[c2 >> 2] | 0) == (l2 | 0)) k[c2 >> 2] = j2; else k[g2 + 20 >> 2] = j2; if (!j2) break; } d2 = k[10222] | 0; if (j2 >>> 0 < d2 >>> 0) Pa(); k[j2 + 24 >> 2] = g2; c2 = k[a2 + (i3 + 16) >> 2] | 0; do if (c2) if (c2 >>> 0 < d2 >>> 0) Pa(); else { k[j2 + 16 >> 2] = c2; k[c2 + 24 >> 2] = j2; break; } while (0); c2 = k[a2 + (i3 + 20) >> 2] | 0; if (c2) if (c2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); else { k[j2 + 20 >> 2] = c2; k[c2 + 24 >> 2] = j2; break; } } } else { e2 = k[a2 + (i3 + 8) >> 2] | 0; d2 = k[a2 + (i3 + 12) >> 2] | 0; c2 = 40912 + (f2 << 1 << 2) | 0; if ((e2 | 0) != (c2 | 0)) { if (e2 >>> 0 < h2 >>> 0) Pa(); if ((k[e2 + 12 >> 2] | 0) != (l2 | 0)) Pa(); } if ((d2 | 0) == (e2 | 0)) { k[10218] = k[10218] & ~(1 << f2); break; } if ((d2 | 0) != (c2 | 0)) { if (d2 >>> 0 < h2 >>> 0) Pa(); c2 = d2 + 8 | 0; if ((k[c2 >> 2] | 0) == (l2 | 0)) g2 = c2; else Pa(); } else g2 = d2 + 8 | 0; k[e2 + 12 >> 2] = d2; k[g2 >> 2] = e2; } while (0); if (n2 >>> 0 < 16) { k[o2 >> 2] = m2 | p2 & 1 | 2; b2 = a2 + (m2 | 4) | 0; k[b2 >> 2] = k[b2 >> 2] | 1; return a2 | 0; } else { k[o2 >> 2] = p2 & 1 | b2 | 2; k[a2 + (b2 + 4) >> 2] = n2 | 3; p2 = a2 + (m2 | 4) | 0; k[p2 >> 2] = k[p2 >> 2] | 1; Ul(a2 + b2 | 0, n2); return a2 | 0; } return 0; } function Ul(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0; q2 = a2 + b2 | 0; c2 = k[a2 + 4 >> 2] | 0; do if (!(c2 & 1)) { j2 = k[a2 >> 2] | 0; if (!(c2 & 3)) return; n2 = a2 + (0 - j2) | 0; m2 = j2 + b2 | 0; i3 = k[10222] | 0; if (n2 >>> 0 < i3 >>> 0) Pa(); if ((n2 | 0) == (k[10223] | 0)) { d2 = a2 + (b2 + 4) | 0; c2 = k[d2 >> 2] | 0; if ((c2 & 3 | 0) != 3) { t2 = n2; g2 = m2; break; } k[10220] = m2; k[d2 >> 2] = c2 & -2; k[a2 + (4 - j2) >> 2] = m2 | 1; k[q2 >> 2] = m2; return; } f2 = j2 >>> 3; if (j2 >>> 0 < 256) { e2 = k[a2 + (8 - j2) >> 2] | 0; d2 = k[a2 + (12 - j2) >> 2] | 0; c2 = 40912 + (f2 << 1 << 2) | 0; if ((e2 | 0) != (c2 | 0)) { if (e2 >>> 0 < i3 >>> 0) Pa(); if ((k[e2 + 12 >> 2] | 0) != (n2 | 0)) Pa(); } if ((d2 | 0) == (e2 | 0)) { k[10218] = k[10218] & ~(1 << f2); t2 = n2; g2 = m2; break; } if ((d2 | 0) != (c2 | 0)) { if (d2 >>> 0 < i3 >>> 0) Pa(); c2 = d2 + 8 | 0; if ((k[c2 >> 2] | 0) == (n2 | 0)) h2 = c2; else Pa(); } else h2 = d2 + 8 | 0; k[e2 + 12 >> 2] = d2; k[h2 >> 2] = e2; t2 = n2; g2 = m2; break; } h2 = k[a2 + (24 - j2) >> 2] | 0; e2 = k[a2 + (12 - j2) >> 2] | 0; do if ((e2 | 0) == (n2 | 0)) { e2 = 16 - j2 | 0; d2 = a2 + (e2 + 4) | 0; c2 = k[d2 >> 2] | 0; if (!c2) { d2 = a2 + e2 | 0; c2 = k[d2 >> 2] | 0; if (!c2) { l2 = 0; break; } } while (1) { e2 = c2 + 20 | 0; f2 = k[e2 >> 2] | 0; if (f2) { c2 = f2; d2 = e2; continue; } e2 = c2 + 16 | 0; f2 = k[e2 >> 2] | 0; if (!f2) break; else { c2 = f2; d2 = e2; } } if (d2 >>> 0 < i3 >>> 0) Pa(); else { k[d2 >> 2] = 0; l2 = c2; break; } } else { f2 = k[a2 + (8 - j2) >> 2] | 0; if (f2 >>> 0 < i3 >>> 0) Pa(); c2 = f2 + 12 | 0; if ((k[c2 >> 2] | 0) != (n2 | 0)) Pa(); d2 = e2 + 8 | 0; if ((k[d2 >> 2] | 0) == (n2 | 0)) { k[c2 >> 2] = e2; k[d2 >> 2] = f2; l2 = e2; break; } else Pa(); } while (0); if (h2) { c2 = k[a2 + (28 - j2) >> 2] | 0; d2 = 41176 + (c2 << 2) | 0; if ((n2 | 0) == (k[d2 >> 2] | 0)) { k[d2 >> 2] = l2; if (!l2) { k[10219] = k[10219] & ~(1 << c2); t2 = n2; g2 = m2; break; } } else { if (h2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); c2 = h2 + 16 | 0; if ((k[c2 >> 2] | 0) == (n2 | 0)) k[c2 >> 2] = l2; else k[h2 + 20 >> 2] = l2; if (!l2) { t2 = n2; g2 = m2; break; } } e2 = k[10222] | 0; if (l2 >>> 0 < e2 >>> 0) Pa(); k[l2 + 24 >> 2] = h2; c2 = 16 - j2 | 0; d2 = k[a2 + c2 >> 2] | 0; do if (d2) if (d2 >>> 0 < e2 >>> 0) Pa(); else { k[l2 + 16 >> 2] = d2; k[d2 + 24 >> 2] = l2; break; } while (0); c2 = k[a2 + (c2 + 4) >> 2] | 0; if (c2) if (c2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); else { k[l2 + 20 >> 2] = c2; k[c2 + 24 >> 2] = l2; t2 = n2; g2 = m2; break; } else { t2 = n2; g2 = m2; } } else { t2 = n2; g2 = m2; } } else { t2 = a2; g2 = b2; } while (0); i3 = k[10222] | 0; if (q2 >>> 0 < i3 >>> 0) Pa(); c2 = a2 + (b2 + 4) | 0; d2 = k[c2 >> 2] | 0; if (!(d2 & 2)) { if ((q2 | 0) == (k[10224] | 0)) { s2 = (k[10221] | 0) + g2 | 0; k[10221] = s2; k[10224] = t2; k[t2 + 4 >> 2] = s2 | 1; if ((t2 | 0) != (k[10223] | 0)) return; k[10223] = 0; k[10220] = 0; return; } if ((q2 | 0) == (k[10223] | 0)) { s2 = (k[10220] | 0) + g2 | 0; k[10220] = s2; k[10223] = t2; k[t2 + 4 >> 2] = s2 | 1; k[t2 + s2 >> 2] = s2; return; } g2 = (d2 & -8) + g2 | 0; f2 = d2 >>> 3; do if (d2 >>> 0 >= 256) { h2 = k[a2 + (b2 + 24) >> 2] | 0; e2 = k[a2 + (b2 + 12) >> 2] | 0; do if ((e2 | 0) == (q2 | 0)) { d2 = a2 + (b2 + 20) | 0; c2 = k[d2 >> 2] | 0; if (!c2) { d2 = a2 + (b2 + 16) | 0; c2 = k[d2 >> 2] | 0; if (!c2) { p2 = 0; break; } } while (1) { e2 = c2 + 20 | 0; f2 = k[e2 >> 2] | 0; if (f2) { c2 = f2; d2 = e2; continue; } e2 = c2 + 16 | 0; f2 = k[e2 >> 2] | 0; if (!f2) break; else { c2 = f2; d2 = e2; } } if (d2 >>> 0 < i3 >>> 0) Pa(); else { k[d2 >> 2] = 0; p2 = c2; break; } } else { f2 = k[a2 + (b2 + 8) >> 2] | 0; if (f2 >>> 0 < i3 >>> 0) Pa(); c2 = f2 + 12 | 0; if ((k[c2 >> 2] | 0) != (q2 | 0)) Pa(); d2 = e2 + 8 | 0; if ((k[d2 >> 2] | 0) == (q2 | 0)) { k[c2 >> 2] = e2; k[d2 >> 2] = f2; p2 = e2; break; } else Pa(); } while (0); if (h2) { c2 = k[a2 + (b2 + 28) >> 2] | 0; d2 = 41176 + (c2 << 2) | 0; if ((q2 | 0) == (k[d2 >> 2] | 0)) { k[d2 >> 2] = p2; if (!p2) { k[10219] = k[10219] & ~(1 << c2); break; } } else { if (h2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); c2 = h2 + 16 | 0; if ((k[c2 >> 2] | 0) == (q2 | 0)) k[c2 >> 2] = p2; else k[h2 + 20 >> 2] = p2; if (!p2) break; } d2 = k[10222] | 0; if (p2 >>> 0 < d2 >>> 0) Pa(); k[p2 + 24 >> 2] = h2; c2 = k[a2 + (b2 + 16) >> 2] | 0; do if (c2) if (c2 >>> 0 < d2 >>> 0) Pa(); else { k[p2 + 16 >> 2] = c2; k[c2 + 24 >> 2] = p2; break; } while (0); c2 = k[a2 + (b2 + 20) >> 2] | 0; if (c2) if (c2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); else { k[p2 + 20 >> 2] = c2; k[c2 + 24 >> 2] = p2; break; } } } else { e2 = k[a2 + (b2 + 8) >> 2] | 0; d2 = k[a2 + (b2 + 12) >> 2] | 0; c2 = 40912 + (f2 << 1 << 2) | 0; if ((e2 | 0) != (c2 | 0)) { if (e2 >>> 0 < i3 >>> 0) Pa(); if ((k[e2 + 12 >> 2] | 0) != (q2 | 0)) Pa(); } if ((d2 | 0) == (e2 | 0)) { k[10218] = k[10218] & ~(1 << f2); break; } if ((d2 | 0) != (c2 | 0)) { if (d2 >>> 0 < i3 >>> 0) Pa(); c2 = d2 + 8 | 0; if ((k[c2 >> 2] | 0) == (q2 | 0)) o2 = c2; else Pa(); } else o2 = d2 + 8 | 0; k[e2 + 12 >> 2] = d2; k[o2 >> 2] = e2; } while (0); k[t2 + 4 >> 2] = g2 | 1; k[t2 + g2 >> 2] = g2; if ((t2 | 0) == (k[10223] | 0)) { k[10220] = g2; return; } } else { k[c2 >> 2] = d2 & -2; k[t2 + 4 >> 2] = g2 | 1; k[t2 + g2 >> 2] = g2; } c2 = g2 >>> 3; if (g2 >>> 0 < 256) { d2 = c2 << 1; f2 = 40912 + (d2 << 2) | 0; e2 = k[10218] | 0; c2 = 1 << c2; if (e2 & c2) { c2 = 40912 + (d2 + 2 << 2) | 0; d2 = k[c2 >> 2] | 0; if (d2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); else { r2 = c2; s2 = d2; } } else { k[10218] = e2 | c2; r2 = 40912 + (d2 + 2 << 2) | 0; s2 = f2; } k[r2 >> 2] = t2; k[s2 + 12 >> 2] = t2; k[t2 + 8 >> 2] = s2; k[t2 + 12 >> 2] = f2; return; } c2 = g2 >>> 8; if (c2) if (g2 >>> 0 > 16777215) f2 = 31; else { r2 = (c2 + 1048320 | 0) >>> 16 & 8; s2 = c2 << r2; q2 = (s2 + 520192 | 0) >>> 16 & 4; s2 = s2 << q2; f2 = (s2 + 245760 | 0) >>> 16 & 2; f2 = 14 - (q2 | r2 | f2) + (s2 << f2 >>> 15) | 0; f2 = g2 >>> (f2 + 7 | 0) & 1 | f2 << 1; } else f2 = 0; c2 = 41176 + (f2 << 2) | 0; k[t2 + 28 >> 2] = f2; k[t2 + 20 >> 2] = 0; k[t2 + 16 >> 2] = 0; d2 = k[10219] | 0; e2 = 1 << f2; if (!(d2 & e2)) { k[10219] = d2 | e2; k[c2 >> 2] = t2; k[t2 + 24 >> 2] = c2; k[t2 + 12 >> 2] = t2; k[t2 + 8 >> 2] = t2; return; } c2 = k[c2 >> 2] | 0; a: do if ((k[c2 + 4 >> 2] & -8 | 0) != (g2 | 0)) { f2 = g2 << ((f2 | 0) == 31 ? 0 : 25 - (f2 >>> 1) | 0); while (1) { d2 = c2 + 16 + (f2 >>> 31 << 2) | 0; e2 = k[d2 >> 2] | 0; if (!e2) break; if ((k[e2 + 4 >> 2] & -8 | 0) == (g2 | 0)) { c2 = e2; break a; } else { f2 = f2 << 1; c2 = e2; } } if (d2 >>> 0 < (k[10222] | 0) >>> 0) Pa(); k[d2 >> 2] = t2; k[t2 + 24 >> 2] = c2; k[t2 + 12 >> 2] = t2; k[t2 + 8 >> 2] = t2; return; } while (0); d2 = c2 + 8 | 0; e2 = k[d2 >> 2] | 0; s2 = k[10222] | 0; if (!(e2 >>> 0 >= s2 >>> 0 & c2 >>> 0 >= s2 >>> 0)) Pa(); k[e2 + 12 >> 2] = t2; k[d2 >> 2] = t2; k[t2 + 8 >> 2] = e2; k[t2 + 12 >> 2] = c2; k[t2 + 24 >> 2] = 0; return; } function Vl(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; d2 = k[9321] | 0; Zl(42048, d2, 42104); k[10342] = 42892; k[10344] = 42912; k[10343] = 0; a2 = k[10720] | 0; x = 0; ra(62, 41368 + a2 | 0, 42048); f2 = x; x = 0; if (f2 & 1) { f2 = Wa() | 0; qn(41376); fb(f2 | 0); } k[41368 + (a2 + 72) >> 2] = 0; k[41368 + (a2 + 76) >> 2] = -1; e2 = k[9322] | 0; _l(42152, e2, 42112); k[10364] = 42972; k[10365] = 42992; c2 = k[10740] | 0; x = 0; ra(62, 41456 + c2 | 0, 42152); f2 = x; x = 0; if (f2 & 1) { f2 = Wa() | 0; qn(41460); fb(f2 | 0); } a2 = c2 + 72 | 0; k[41456 + a2 >> 2] = 0; b2 = c2 + 76 | 0; k[41456 + b2 >> 2] = -1; f2 = k[9320] | 0; _l(42200, f2, 42120); k[10385] = 42972; k[10386] = 42992; x = 0; ra(62, 41540 + c2 | 0, 42200); g2 = x; x = 0; if (g2 & 1) { g2 = Wa() | 0; qn(41544); fb(g2 | 0); } k[41540 + a2 >> 2] = 0; k[41540 + b2 >> 2] = -1; g2 = k[41540 + ((k[(k[10385] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0; k[10406] = 42972; k[10407] = 42992; x = 0; ra(62, 41624 + c2 | 0, g2 | 0); g2 = x; x = 0; if (g2 & 1) { g2 = Wa() | 0; qn(41628); fb(g2 | 0); } k[41624 + a2 >> 2] = 0; k[41624 + b2 >> 2] = -1; k[41368 + ((k[(k[10342] | 0) + -12 >> 2] | 0) + 72) >> 2] = 41456; a2 = 41540 + ((k[(k[10385] | 0) + -12 >> 2] | 0) + 4) | 0; k[a2 >> 2] = k[a2 >> 2] | 8192; k[41540 + ((k[(k[10385] | 0) + -12 >> 2] | 0) + 72) >> 2] = 41456; $l(42248, d2, 42128); k[10427] = 42932; k[10429] = 42952; k[10428] = 0; a2 = k[10730] | 0; x = 0; ra(62, 41708 + a2 | 0, 42248); g2 = x; x = 0; if (g2 & 1) { g2 = Wa() | 0; vn(41716); fb(g2 | 0); } k[41708 + (a2 + 72) >> 2] = 0; k[41708 + (a2 + 76) >> 2] = -1; am(42304, e2, 42136); k[10449] = 43012; k[10450] = 43032; c2 = k[10750] | 0; x = 0; ra(62, 41796 + c2 | 0, 42304); g2 = x; x = 0; if (g2 & 1) { g2 = Wa() | 0; vn(41800); fb(g2 | 0); } a2 = c2 + 72 | 0; k[41796 + a2 >> 2] = 0; b2 = c2 + 76 | 0; k[41796 + b2 >> 2] = -1; am(42352, f2, 42144); k[10470] = 43012; k[10471] = 43032; x = 0; ra(62, 41880 + c2 | 0, 42352); g2 = x; x = 0; if (g2 & 1) { g2 = Wa() | 0; vn(41884); fb(g2 | 0); } k[41880 + a2 >> 2] = 0; k[41880 + b2 >> 2] = -1; g2 = k[41880 + ((k[(k[10470] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0; k[10491] = 43012; k[10492] = 43032; x = 0; ra(62, 41964 + c2 | 0, g2 | 0); g2 = x; x = 0; if (g2 & 1) { g2 = Wa() | 0; vn(41968); fb(g2 | 0); } else { k[41964 + a2 >> 2] = 0; k[41964 + b2 >> 2] = -1; k[41708 + ((k[(k[10427] | 0) + -12 >> 2] | 0) + 72) >> 2] = 41796; g2 = 41880 + ((k[(k[10470] | 0) + -12 >> 2] | 0) + 4) | 0; k[g2 >> 2] = k[g2 >> 2] | 8192; k[41880 + ((k[(k[10470] | 0) + -12 >> 2] | 0) + 72) >> 2] = 41796; return; } } function Wl(a2) { a2 = a2 | 0; x = 0; ta(70, 41456) | 0; a2 = x; x = 0; if (((!(a2 & 1) ? (x = 0, ta(70, 41624) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, ta(71, 41796) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, ta(71, 41964) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) return; a2 = Wa(0) | 0; oc(a2); } function Xl() { Vl(0); tb(187, 56757, w | 0) | 0; return; } function Yl() { return; } function Zl(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0; e2 = r; r = r + 16 | 0; f2 = e2 + 4 | 0; d2 = e2; zn(a2); k[a2 >> 2] = 42600; k[a2 + 32 >> 2] = b2; k[a2 + 40 >> 2] = c2; k[a2 + 48 >> 2] = -1; i2[a2 + 52 >> 0] = 0; Ps(f2, a2 + 4 | 0); k[d2 >> 2] = k[f2 >> 2]; x = 0; ra(23, a2 | 0, d2 | 0); c2 = x; x = 0; if (c2 & 1) { f2 = Wa() | 0; Qs(d2); xn(a2); fb(f2 | 0); } else { Qs(d2); r = e2; return; } } function _l(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0; e2 = r; r = r + 16 | 0; f2 = e2 + 4 | 0; d2 = e2; zn(a2); k[a2 >> 2] = 42536; k[a2 + 32 >> 2] = b2; Ps(f2, a2 + 4 | 0); k[d2 >> 2] = k[f2 >> 2]; x = 0; b2 = Aa(37, d2 | 0, 44280) | 0; f2 = x; x = 0; if (f2 & 1) { f2 = Wa() | 0; Qs(d2); xn(a2); fb(f2 | 0); } else { Qs(d2); k[a2 + 36 >> 2] = b2; k[a2 + 40 >> 2] = c2; f2 = (Ob[k[(k[b2 >> 2] | 0) + 28 >> 2] & 127](b2) | 0) & 1; i2[a2 + 44 >> 0] = f2; r = e2; return; } } function $l(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0; e2 = r; r = r + 16 | 0; f2 = e2 + 4 | 0; d2 = e2; On(a2); k[a2 >> 2] = 42472; k[a2 + 32 >> 2] = b2; k[a2 + 40 >> 2] = c2; k[a2 + 48 >> 2] = -1; i2[a2 + 52 >> 0] = 0; Ps(f2, a2 + 4 | 0); k[d2 >> 2] = k[f2 >> 2]; x = 0; ra(21, a2 | 0, d2 | 0); c2 = x; x = 0; if (c2 & 1) { f2 = Wa() | 0; Qs(d2); Mn(a2); fb(f2 | 0); } else { Qs(d2); r = e2; return; } } function am(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0; e2 = r; r = r + 16 | 0; f2 = e2 + 4 | 0; d2 = e2; On(a2); k[a2 >> 2] = 42408; k[a2 + 32 >> 2] = b2; Ps(f2, a2 + 4 | 0); k[d2 >> 2] = k[f2 >> 2]; x = 0; b2 = Aa(37, d2 | 0, 44288) | 0; f2 = x; x = 0; if (f2 & 1) { f2 = Wa() | 0; Qs(d2); Mn(a2); fb(f2 | 0); } else { Qs(d2); k[a2 + 36 >> 2] = b2; k[a2 + 40 >> 2] = c2; f2 = (Ob[k[(k[b2 >> 2] | 0) + 28 >> 2] & 127](b2) | 0) & 1; i2[a2 + 44 >> 0] = f2; r = e2; return; } } function bm(a2) { a2 = a2 | 0; Mn(a2); mj(a2); return; } function cm(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Ob[k[(k[a2 >> 2] | 0) + 24 >> 2] & 127](a2) | 0; b2 = Ss(b2, 44288) | 0; k[a2 + 36 >> 2] = b2; b2 = (Ob[k[(k[b2 >> 2] | 0) + 28 >> 2] & 127](b2) | 0) & 1; i2[a2 + 44 >> 0] = b2; return; } function dm(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; j2 = r; r = r + 16 | 0; h2 = j2 + 8 | 0; g2 = j2; c2 = a2 + 36 | 0; d2 = a2 + 40 | 0; e2 = h2 + 8 | 0; f2 = h2; b2 = a2 + 32 | 0; a: while (1) { a2 = k[c2 >> 2] | 0; a2 = Wb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 31](a2, k[d2 >> 2] | 0, h2, e2, g2) | 0; l2 = (k[g2 >> 2] | 0) - f2 | 0; if ((gl(h2, 1, l2, k[b2 >> 2] | 0) | 0) != (l2 | 0)) { a2 = -1; break; } switch (a2 | 0) { case 1: break; case 2: { a2 = -1; break a; } default: { i3 = 4; break a; } } } if ((i3 | 0) == 4) a2 = ((dl(k[b2 >> 2] | 0) | 0) != 0) << 31 >> 31; r = j2; return a2 | 0; } function em(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0; a: do if (!(i2[a2 + 44 >> 0] | 0)) if ((c2 | 0) > 0) { d2 = b2; b2 = 0; while (1) { if ((Vb[k[(k[a2 >> 2] | 0) + 52 >> 2] & 63](a2, k[d2 >> 2] | 0) | 0) == -1) break a; b2 = b2 + 1 | 0; if ((b2 | 0) < (c2 | 0)) d2 = d2 + 4 | 0; else break; } } else b2 = 0; else b2 = gl(b2, 4, c2, k[a2 + 32 >> 2] | 0) | 0; while (0); return b2 | 0; } function fm(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0; s2 = r; r = r + 32 | 0; o2 = s2 + 16 | 0; c2 = s2 + 8 | 0; n2 = s2 + 4 | 0; m2 = s2; p2 = (b2 | 0) == -1; a: do if (!p2) { k[c2 >> 2] = b2; if (i2[a2 + 44 >> 0] | 0) if ((gl(c2, 4, 1, k[a2 + 32 >> 2] | 0) | 0) == 1) { q2 = 11; break; } else { c2 = -1; break; } k[n2 >> 2] = o2; j2 = c2 + 4 | 0; l2 = a2 + 36 | 0; e2 = a2 + 40 | 0; f2 = o2 + 8 | 0; g2 = o2; h2 = a2 + 32 | 0; while (1) { a2 = k[l2 >> 2] | 0; a2 = ac[k[(k[a2 >> 2] | 0) + 12 >> 2] & 15](a2, k[e2 >> 2] | 0, c2, j2, m2, o2, f2, n2) | 0; if ((k[m2 >> 2] | 0) == (c2 | 0)) { c2 = -1; break a; } if ((a2 | 0) == 3) break; d2 = (a2 | 0) == 1; if (a2 >>> 0 >= 2) { c2 = -1; break a; } a2 = (k[n2 >> 2] | 0) - g2 | 0; if ((gl(o2, 1, a2, k[h2 >> 2] | 0) | 0) != (a2 | 0)) { c2 = -1; break a; } if (d2) c2 = d2 ? k[m2 >> 2] | 0 : c2; else { q2 = 11; break a; } } if ((gl(c2, 1, 1, k[h2 >> 2] | 0) | 0) != 1) c2 = -1; else q2 = 11; } else q2 = 11; while (0); if ((q2 | 0) == 11) c2 = p2 ? 0 : b2; r = s2; return c2 | 0; } function gm(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0; d2 = Ss(b2, 44288) | 0; c2 = a2 + 36 | 0; k[c2 >> 2] = d2; d2 = Ob[k[(k[d2 >> 2] | 0) + 24 >> 2] & 127](d2) | 0; b2 = a2 + 44 | 0; k[b2 >> 2] = d2; c2 = k[c2 >> 2] | 0; c2 = (Ob[k[(k[c2 >> 2] | 0) + 28 >> 2] & 127](c2) | 0) & 1; i2[a2 + 53 >> 0] = c2; if ((k[b2 >> 2] | 0) > 8) $r(56783); return; } function hm(a2) { a2 = a2 | 0; Mn(a2); mj(a2); return; } function im(a2) { a2 = a2 | 0; return lm(a2, 0) | 0; } function jm(a2) { a2 = a2 | 0; return lm(a2, 1) | 0; } function km(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; l2 = r; r = r + 32 | 0; j2 = l2 + 16 | 0; h2 = l2 + 8 | 0; d2 = l2 + 4 | 0; e2 = l2; f2 = a2 + 52 | 0; c2 = (i2[f2 >> 0] | 0) != 0; a: do if ((b2 | 0) == -1) if (c2) b2 = -1; else { b2 = k[a2 + 48 >> 2] | 0; i2[f2 >> 0] = (b2 | 0) != -1 & 1; } else { g2 = a2 + 48 | 0; b: do if (c2) { k[d2 >> 2] = k[g2 >> 2]; c2 = k[a2 + 36 >> 2] | 0; switch (ac[k[(k[c2 >> 2] | 0) + 12 >> 2] & 15](c2, k[a2 + 40 >> 2] | 0, d2, d2 + 4 | 0, e2, j2, j2 + 8 | 0, h2) | 0) { case 1: case 2: { b2 = -1; break a; } case 3: { i2[j2 >> 0] = k[g2 >> 2]; k[h2 >> 2] = j2 + 1; break; } default: { } } c2 = a2 + 32 | 0; while (1) { d2 = k[h2 >> 2] | 0; if (d2 >>> 0 <= j2 >>> 0) break b; a2 = d2 + -1 | 0; k[h2 >> 2] = a2; if ((kl(i2[a2 >> 0] | 0, k[c2 >> 2] | 0) | 0) == -1) { b2 = -1; break a; } } } while (0); k[g2 >> 2] = b2; i2[f2 >> 0] = 1; } while (0); r = l2; return b2 | 0; } function lm(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0; q2 = r; r = r + 32 | 0; p2 = q2 + 16 | 0; o2 = q2 + 8 | 0; l2 = q2 + 4 | 0; m2 = q2; e2 = a2 + 52 | 0; a: do if (i2[e2 >> 0] | 0) { d2 = a2 + 48 | 0; c2 = k[d2 >> 2] | 0; if (b2) { k[d2 >> 2] = -1; i2[e2 >> 0] = 0; } } else { c2 = k[a2 + 44 >> 2] | 0; c2 = (c2 | 0) > 1 ? c2 : 1; n2 = a2 + 32 | 0; if ((c2 | 0) > 0) { e2 = 0; do { d2 = hl(k[n2 >> 2] | 0) | 0; if ((d2 | 0) == -1) { c2 = -1; break a; } i2[p2 + e2 >> 0] = d2; e2 = e2 + 1 | 0; } while ((e2 | 0) < (c2 | 0)); } b: do if (!(i2[a2 + 53 >> 0] | 0)) { g2 = a2 + 40 | 0; h2 = a2 + 36 | 0; j2 = o2 + 4 | 0; c: while (1) { s2 = k[g2 >> 2] | 0; e2 = s2; d2 = k[e2 >> 2] | 0; e2 = k[e2 + 4 >> 2] | 0; t2 = k[h2 >> 2] | 0; f2 = p2 + c2 | 0; switch (ac[k[(k[t2 >> 2] | 0) + 16 >> 2] & 15](t2, s2, p2, f2, l2, o2, j2, m2) | 0) { case 2: { c2 = -1; break a; } case 3: break c; case 1: break; default: break b; } t2 = k[g2 >> 2] | 0; k[t2 >> 2] = d2; k[t2 + 4 >> 2] = e2; if ((c2 | 0) == 8) { c2 = -1; break a; } d2 = hl(k[n2 >> 2] | 0) | 0; if ((d2 | 0) == -1) { c2 = -1; break a; } i2[f2 >> 0] = d2; c2 = c2 + 1 | 0; } k[o2 >> 2] = i2[p2 >> 0]; } else k[o2 >> 2] = i2[p2 >> 0]; while (0); if (b2) { c2 = k[o2 >> 2] | 0; k[a2 + 48 >> 2] = c2; break; } while (1) { if ((c2 | 0) <= 0) break; c2 = c2 + -1 | 0; if ((kl(i2[p2 + c2 >> 0] | 0, k[n2 >> 2] | 0) | 0) == -1) { c2 = -1; break a; } } c2 = k[o2 >> 2] | 0; } while (0); r = q2; return c2 | 0; } function mm(a2) { a2 = a2 | 0; xn(a2); mj(a2); return; } function nm(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Ob[k[(k[a2 >> 2] | 0) + 24 >> 2] & 127](a2) | 0; b2 = Ss(b2, 44280) | 0; k[a2 + 36 >> 2] = b2; b2 = (Ob[k[(k[b2 >> 2] | 0) + 28 >> 2] & 127](b2) | 0) & 1; i2[a2 + 44 >> 0] = b2; return; } function om(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; j2 = r; r = r + 16 | 0; h2 = j2 + 8 | 0; g2 = j2; c2 = a2 + 36 | 0; d2 = a2 + 40 | 0; e2 = h2 + 8 | 0; f2 = h2; b2 = a2 + 32 | 0; a: while (1) { a2 = k[c2 >> 2] | 0; a2 = Wb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 31](a2, k[d2 >> 2] | 0, h2, e2, g2) | 0; l2 = (k[g2 >> 2] | 0) - f2 | 0; if ((gl(h2, 1, l2, k[b2 >> 2] | 0) | 0) != (l2 | 0)) { a2 = -1; break; } switch (a2 | 0) { case 1: break; case 2: { a2 = -1; break a; } default: { i3 = 4; break a; } } } if ((i3 | 0) == 4) a2 = ((dl(k[b2 >> 2] | 0) | 0) != 0) << 31 >> 31; r = j2; return a2 | 0; } function pm(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0; a: do if (!(i2[a2 + 44 >> 0] | 0)) if ((c2 | 0) > 0) { d2 = b2; b2 = 0; while (1) { if ((Vb[k[(k[a2 >> 2] | 0) + 52 >> 2] & 63](a2, l[d2 >> 0] | 0) | 0) == -1) break a; b2 = b2 + 1 | 0; if ((b2 | 0) < (c2 | 0)) d2 = d2 + 1 | 0; else break; } } else b2 = 0; else b2 = gl(b2, 1, c2, k[a2 + 32 >> 2] | 0) | 0; while (0); return b2 | 0; } function qm(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0; s2 = r; r = r + 32 | 0; o2 = s2 + 16 | 0; c2 = s2 + 8 | 0; n2 = s2 + 4 | 0; m2 = s2; p2 = (b2 | 0) == -1; a: do if (!p2) { i2[c2 >> 0] = b2; if (i2[a2 + 44 >> 0] | 0) if ((gl(c2, 1, 1, k[a2 + 32 >> 2] | 0) | 0) == 1) { q2 = 11; break; } else { c2 = -1; break; } k[n2 >> 2] = o2; l2 = c2 + 1 | 0; e2 = a2 + 36 | 0; f2 = a2 + 40 | 0; g2 = o2 + 8 | 0; h2 = o2; j2 = a2 + 32 | 0; while (1) { a2 = k[e2 >> 2] | 0; a2 = ac[k[(k[a2 >> 2] | 0) + 12 >> 2] & 15](a2, k[f2 >> 2] | 0, c2, l2, m2, o2, g2, n2) | 0; if ((k[m2 >> 2] | 0) == (c2 | 0)) { c2 = -1; break a; } if ((a2 | 0) == 3) break; d2 = (a2 | 0) == 1; if (a2 >>> 0 >= 2) { c2 = -1; break a; } a2 = (k[n2 >> 2] | 0) - h2 | 0; if ((gl(o2, 1, a2, k[j2 >> 2] | 0) | 0) != (a2 | 0)) { c2 = -1; break a; } if (d2) c2 = d2 ? k[m2 >> 2] | 0 : c2; else { q2 = 11; break a; } } if ((gl(c2, 1, 1, k[j2 >> 2] | 0) | 0) != 1) c2 = -1; else q2 = 11; } else q2 = 11; while (0); if ((q2 | 0) == 11) c2 = p2 ? 0 : b2; r = s2; return c2 | 0; } function rm(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0; d2 = Ss(b2, 44280) | 0; c2 = a2 + 36 | 0; k[c2 >> 2] = d2; d2 = Ob[k[(k[d2 >> 2] | 0) + 24 >> 2] & 127](d2) | 0; b2 = a2 + 44 | 0; k[b2 >> 2] = d2; c2 = k[c2 >> 2] | 0; c2 = (Ob[k[(k[c2 >> 2] | 0) + 28 >> 2] & 127](c2) | 0) & 1; i2[a2 + 53 >> 0] = c2; if ((k[b2 >> 2] | 0) > 8) $r(56783); return; } function sm(a2) { a2 = a2 | 0; xn(a2); mj(a2); return; } function tm(a2) { a2 = a2 | 0; return wm(a2, 0) | 0; } function um(a2) { a2 = a2 | 0; return wm(a2, 1) | 0; } function vm(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; l2 = r; r = r + 32 | 0; j2 = l2 + 16 | 0; h2 = l2 + 4 | 0; d2 = l2 + 8 | 0; e2 = l2; f2 = a2 + 52 | 0; c2 = (i2[f2 >> 0] | 0) != 0; a: do if ((b2 | 0) == -1) if (c2) b2 = -1; else { b2 = k[a2 + 48 >> 2] | 0; i2[f2 >> 0] = (b2 | 0) != -1 & 1; } else { g2 = a2 + 48 | 0; b: do if (c2) { i2[d2 >> 0] = k[g2 >> 2]; c2 = k[a2 + 36 >> 2] | 0; switch (ac[k[(k[c2 >> 2] | 0) + 12 >> 2] & 15](c2, k[a2 + 40 >> 2] | 0, d2, d2 + 1 | 0, e2, j2, j2 + 8 | 0, h2) | 0) { case 1: case 2: { b2 = -1; break a; } case 3: { i2[j2 >> 0] = k[g2 >> 2]; k[h2 >> 2] = j2 + 1; break; } default: { } } c2 = a2 + 32 | 0; while (1) { d2 = k[h2 >> 2] | 0; if (d2 >>> 0 <= j2 >>> 0) break b; a2 = d2 + -1 | 0; k[h2 >> 2] = a2; if ((kl(i2[a2 >> 0] | 0, k[c2 >> 2] | 0) | 0) == -1) { b2 = -1; break a; } } } while (0); k[g2 >> 2] = b2; i2[f2 >> 0] = 1; } while (0); r = l2; return b2 | 0; } function wm(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0; s2 = r; r = r + 32 | 0; q2 = s2 + 16 | 0; p2 = s2 + 8 | 0; m2 = s2 + 4 | 0; n2 = s2; e2 = a2 + 52 | 0; a: do if (i2[e2 >> 0] | 0) { d2 = a2 + 48 | 0; c2 = k[d2 >> 2] | 0; if (b2) { k[d2 >> 2] = -1; i2[e2 >> 0] = 0; } } else { c2 = k[a2 + 44 >> 2] | 0; c2 = (c2 | 0) > 1 ? c2 : 1; o2 = a2 + 32 | 0; if ((c2 | 0) > 0) { e2 = 0; do { d2 = hl(k[o2 >> 2] | 0) | 0; if ((d2 | 0) == -1) { c2 = -1; break a; } i2[q2 + e2 >> 0] = d2; e2 = e2 + 1 | 0; } while ((e2 | 0) < (c2 | 0)); } b: do if (!(i2[a2 + 53 >> 0] | 0)) { g2 = a2 + 40 | 0; h2 = a2 + 36 | 0; j2 = p2 + 1 | 0; c: while (1) { t2 = k[g2 >> 2] | 0; e2 = t2; d2 = k[e2 >> 2] | 0; e2 = k[e2 + 4 >> 2] | 0; u2 = k[h2 >> 2] | 0; f2 = q2 + c2 | 0; switch (ac[k[(k[u2 >> 2] | 0) + 16 >> 2] & 15](u2, t2, q2, f2, m2, p2, j2, n2) | 0) { case 2: { c2 = -1; break a; } case 3: break c; case 1: break; default: break b; } u2 = k[g2 >> 2] | 0; k[u2 >> 2] = d2; k[u2 + 4 >> 2] = e2; if ((c2 | 0) == 8) { c2 = -1; break a; } d2 = hl(k[o2 >> 2] | 0) | 0; if ((d2 | 0) == -1) { c2 = -1; break a; } i2[f2 >> 0] = d2; c2 = c2 + 1 | 0; } i2[p2 >> 0] = i2[q2 >> 0] | 0; } else i2[p2 >> 0] = i2[q2 >> 0] | 0; while (0); if (b2) { c2 = i2[p2 >> 0] | 0; k[a2 + 48 >> 2] = c2 & 255; } else { while (1) { if ((c2 | 0) <= 0) break; c2 = c2 + -1 | 0; if ((kl(l[q2 + c2 >> 0] | 0, k[o2 >> 2] | 0) | 0) == -1) { c2 = -1; break a; } } c2 = i2[p2 >> 0] | 0; } c2 = c2 & 255; } while (0); r = s2; return c2 | 0; } function xm(a2) { a2 = a2 | 0; return; } function ym(a2) { a2 = a2 | 0; a2 = a2 + 4 | 0; k[a2 >> 2] = (k[a2 >> 2] | 0) + 1; return; } function zm(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; c2 = a2 + 4 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = b2 + -1; if (!b2) { Lb[k[(k[a2 >> 2] | 0) + 8 >> 2] & 255](a2); a2 = 1; } else a2 = 0; return a2 | 0; } function Am(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; k[a2 >> 2] = 36868; x = 0; ra(86, a2 + 4 | 0, ((i2[b2 >> 0] & 1) == 0 ? b2 + 1 | 0 : k[b2 + 8 >> 2] | 0) | 0); a2 = x; x = 0; if (a2 & 1) { a2 = Wa() | 0; fb(a2 | 0); } else return; } function Bm(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; k[a2 >> 2] = 36868; x = 0; ra(86, a2 + 4 | 0, b2 | 0); a2 = x; x = 0; if (a2 & 1) { a2 = Wa() | 0; fb(a2 | 0); } else return; } function Cm(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0; d2 = xl(b2) | 0; c2 = lj(d2 + 13 | 0) | 0; k[c2 >> 2] = d2; k[c2 + 4 >> 2] = d2; k[c2 + 8 >> 2] = 0; c2 = c2 + 12 | 0; vw(c2 | 0, b2 | 0, d2 + 1 | 0) | 0; k[a2 >> 2] = c2; return; } function Dm(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; k[a2 >> 2] = c2; k[a2 + 4 >> 2] = b2; return; } function Em(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0; e2 = r; r = r + 16 | 0; d2 = e2; _b[k[(k[a2 >> 2] | 0) + 12 >> 2] & 15](d2, a2, b2); if ((k[d2 + 4 >> 2] | 0) == (k[c2 + 4 >> 2] | 0)) d2 = (k[d2 >> 2] | 0) == (k[c2 >> 2] | 0); else d2 = 0; r = e2; return d2 | 0; } function Fm(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; return ((k[b2 >> 2] | 0) == (c2 | 0) ? (k[b2 + 4 >> 2] | 0) == (a2 | 0) : 0) | 0; } function Gm(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; b2 = nk(c2) | 0; Qm(a2, b2, xl(b2) | 0); return; } function Hm(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0; g2 = r; r = r + 16 | 0; f2 = g2; d2 = k[b2 >> 2] | 0; do if (d2) { e2 = i2[c2 >> 0] | 0; if (!(e2 & 1)) e2 = (e2 & 255) >>> 1; else e2 = k[c2 + 4 >> 2] | 0; if (e2) { Zm(c2, 56990) | 0; d2 = k[b2 >> 2] | 0; } b2 = k[b2 + 4 >> 2] | 0; _b[k[(k[b2 >> 2] | 0) + 24 >> 2] & 15](f2, b2, d2); b2 = i2[f2 >> 0] | 0; e2 = (b2 & 1) == 0; x = 0; va(30, c2 | 0, (e2 ? f2 + 1 | 0 : k[f2 + 8 >> 2] | 0) | 0, (e2 ? (b2 & 255) >>> 1 : k[f2 + 4 >> 2] | 0) | 0) | 0; b2 = x; x = 0; if (b2 & 1) { g2 = Wa() | 0; Sm(f2); fb(g2 | 0); } else { Sm(f2); break; } } while (0); k[a2 >> 2] = k[c2 >> 2]; k[a2 + 4 >> 2] = k[c2 + 4 >> 2]; k[a2 + 8 >> 2] = k[c2 + 8 >> 2]; k[c2 >> 2] = 0; k[c2 + 4 >> 2] = 0; k[c2 + 8 >> 2] = 0; r = g2; return; } function Im(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0; e2 = r; r = r + 32 | 0; d2 = e2 + 12 | 0; f2 = e2; Qm(f2, c2, xl(c2) | 0); x = 0; Fa(10, d2 | 0, b2 | 0, f2 | 0); c2 = x; x = 0; do if (!(c2 & 1)) { x = 0; ra(87, a2 | 0, d2 | 0); c2 = x; x = 0; if (c2 & 1) { e2 = Wa() | 0; Sm(d2); d2 = e2; break; } else { Sm(d2); Sm(f2); k[a2 >> 2] = 42664; c2 = k[b2 + 4 >> 2] | 0; f2 = a2 + 8 | 0; k[f2 >> 2] = k[b2 >> 2]; k[f2 + 4 >> 2] = c2; r = e2; return; } } else d2 = Wa() | 0; while (0); Sm(f2); fb(d2 | 0); } function Jm(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0; f2 = r; r = r + 48 | 0; e2 = f2 + 24 | 0; h2 = f2 + 16 | 0; g2 = f2; k[h2 >> 2] = b2; k[h2 + 4 >> 2] = c2; Pm(g2, d2); x = 0; Fa(10, e2 | 0, h2 | 0, g2 | 0); d2 = x; x = 0; do if (!(d2 & 1)) { x = 0; ra(87, a2 | 0, e2 | 0); h2 = x; x = 0; if (h2 & 1) { h2 = Wa() | 0; Sm(e2); e2 = h2; break; } else { Sm(e2); Sm(g2); k[a2 >> 2] = 42664; k[a2 + 8 >> 2] = b2; k[a2 + 12 >> 2] = c2; r = f2; return; } } else e2 = Wa() | 0; while (0); Sm(g2); fb(e2 | 0); } function Km(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0; e2 = r; r = r + 48 | 0; d2 = e2 + 24 | 0; g2 = e2 + 16 | 0; f2 = e2; k[g2 >> 2] = b2; k[g2 + 4 >> 2] = c2; Qm(f2, 58898, 0); x = 0; Fa(10, d2 | 0, g2 | 0, f2 | 0); g2 = x; x = 0; do if (!(g2 & 1)) { x = 0; ra(87, a2 | 0, d2 | 0); g2 = x; x = 0; if (g2 & 1) { g2 = Wa() | 0; Sm(d2); d2 = g2; break; } else { Sm(d2); Sm(f2); k[a2 >> 2] = 42664; k[a2 + 8 >> 2] = b2; k[a2 + 12 >> 2] = c2; r = e2; return; } } else d2 = Wa() | 0; while (0); Sm(f2); fb(d2 | 0); } function Lm(a2) { a2 = a2 | 0; wj(a2); return; } function Mm(a2) { a2 = a2 | 0; wj(a2); mj(a2); return; } function Nm(a2) { a2 = a2 | 0; return; } function Om(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0; Ab(42676) | 0; if ((k[a2 >> 2] | 0) == 1) do Ma(42704, 42676) | 0; while ((k[a2 >> 2] | 0) == 1); do if (!(k[a2 >> 2] | 0)) { k[a2 >> 2] = 1; x = 0; ta(72, 42676) | 0; d2 = x; x = 0; if ((((!(d2 & 1) ? (x = 0, qa(c2 | 0, b2 | 0), d2 = x, x = 0, !(d2 & 1)) : 0) ? (x = 0, ta(73, 42676) | 0, d2 = x, x = 0, !(d2 & 1)) : 0) ? (k[a2 >> 2] = -1, x = 0, ta(72, 42676) | 0, d2 = x, x = 0, !(d2 & 1)) : 0) ? (x = 0, ta(74, 42704) | 0, d2 = x, x = 0, !(d2 & 1)) : 0) break; d2 = Wa(0) | 0; cb(d2 | 0) | 0; x = 0; ta(73, 42676) | 0; d2 = x; x = 0; if ((!(d2 & 1) ? (k[a2 >> 2] = 0, x = 0, ta(72, 42676) | 0, d2 = x, x = 0, !(d2 & 1)) : 0) ? (x = 0, ta(74, 42704) | 0, d2 = x, x = 0, !(d2 & 1)) : 0) { x = 0; Ga(5); x = 0; } b2 = Wa() | 0; x = 0; Ga(3); d2 = x; x = 0; if (d2 & 1) { d2 = Wa(0) | 0; oc(d2); } else fb(b2 | 0); } else lb(42676) | 0; while (0); return; } function Pm(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; if (!(i2[b2 >> 0] & 1)) { k[a2 >> 2] = k[b2 >> 2]; k[a2 + 4 >> 2] = k[b2 + 4 >> 2]; k[a2 + 8 >> 2] = k[b2 + 8 >> 2]; } else Qm(a2, k[b2 + 8 >> 2] | 0, k[b2 + 4 >> 2] | 0); return; } function Qm(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0; if (c2 >>> 0 > 4294967279) ij(a2); if (c2 >>> 0 < 11) { i2[a2 >> 0] = c2 << 1; a2 = a2 + 1 | 0; } else { e2 = c2 + 16 & -16; d2 = lj(e2) | 0; k[a2 + 8 >> 2] = d2; k[a2 >> 2] = e2 | 1; k[a2 + 4 >> 2] = c2; a2 = d2; } vw(a2 | 0, b2 | 0, c2 | 0) | 0; i2[a2 + c2 >> 0] = 0; return; } function Rm(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0; if (b2 >>> 0 > 4294967279) ij(a2); if (b2 >>> 0 < 11) { i2[a2 >> 0] = b2 << 1; a2 = a2 + 1 | 0; } else { e2 = b2 + 16 & -16; d2 = lj(e2) | 0; k[a2 + 8 >> 2] = d2; k[a2 >> 2] = e2 | 1; k[a2 + 4 >> 2] = b2; a2 = d2; } sw(a2 | 0, c2 | 0, b2 | 0) | 0; i2[a2 + b2 >> 0] = 0; return; } function Sm(a2) { a2 = a2 | 0; if (i2[a2 >> 0] & 1) mj(k[a2 + 8 >> 2] | 0); return; } function Tm(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0; if ((a2 | 0) != (b2 | 0)) { c2 = i2[b2 >> 0] | 0; d2 = (c2 & 1) == 0; Vm(a2, d2 ? b2 + 1 | 0 : k[b2 + 8 >> 2] | 0, d2 ? (c2 & 255) >>> 1 : k[b2 + 4 >> 2] | 0) | 0; } return a2 | 0; } function Um(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; return Vm(a2, b2, xl(b2) | 0) | 0; } function Vm(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0; d2 = i2[a2 >> 0] | 0; if (!(d2 & 1)) f2 = 10; else { d2 = k[a2 >> 2] | 0; f2 = (d2 & -2) + -1 | 0; d2 = d2 & 255; } e2 = (d2 & 1) == 0; do if (f2 >>> 0 >= c2 >>> 0) { if (e2) d2 = a2 + 1 | 0; else d2 = k[a2 + 8 >> 2] | 0; xw(d2 | 0, b2 | 0, c2 | 0) | 0; i2[d2 + c2 >> 0] = 0; if (!(i2[a2 >> 0] & 1)) { i2[a2 >> 0] = c2 << 1; break; } else { k[a2 + 4 >> 2] = c2; break; } } else { if (e2) d2 = (d2 & 255) >>> 1; else d2 = k[a2 + 4 >> 2] | 0; an(a2, f2, c2 - f2 | 0, d2, 0, d2, c2, b2); } while (0); return a2 | 0; } function Wm(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0; d2 = i2[a2 >> 0] | 0; e2 = (d2 & 1) == 0; if (e2) d2 = (d2 & 255) >>> 1; else d2 = k[a2 + 4 >> 2] | 0; do if (d2 >>> 0 >= b2 >>> 0) if (e2) { i2[a2 + 1 + b2 >> 0] = 0; i2[a2 >> 0] = b2 << 1; break; } else { i2[(k[a2 + 8 >> 2] | 0) + b2 >> 0] = 0; k[a2 + 4 >> 2] = b2; break; } else Xm(a2, b2 - d2 | 0, c2) | 0; while (0); return; } function Xm(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0; if (b2) { d2 = i2[a2 >> 0] | 0; if (!(d2 & 1)) e2 = 10; else { d2 = k[a2 >> 2] | 0; e2 = (d2 & -2) + -1 | 0; d2 = d2 & 255; } if (!(d2 & 1)) f2 = (d2 & 255) >>> 1; else f2 = k[a2 + 4 >> 2] | 0; if ((e2 - f2 | 0) >>> 0 < b2 >>> 0) { bn(a2, e2, b2 - e2 + f2 | 0, f2, f2, 0, 0); d2 = i2[a2 >> 0] | 0; } if (!(d2 & 1)) e2 = a2 + 1 | 0; else e2 = k[a2 + 8 >> 2] | 0; sw(e2 + f2 | 0, c2 | 0, b2 | 0) | 0; d2 = f2 + b2 | 0; if (!(i2[a2 >> 0] & 1)) i2[a2 >> 0] = d2 << 1; else k[a2 + 4 >> 2] = d2; i2[e2 + d2 >> 0] = 0; } return a2 | 0; } function Ym(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; if (b2 >>> 0 > 4294967279) ij(a2); c2 = i2[a2 >> 0] | 0; if (!(c2 & 1)) d2 = 10; else { c2 = k[a2 >> 2] | 0; d2 = (c2 & -2) + -1 | 0; c2 = c2 & 255; } if (!(c2 & 1)) h2 = (c2 & 255) >>> 1; else h2 = k[a2 + 4 >> 2] | 0; b2 = h2 >>> 0 > b2 >>> 0 ? h2 : b2; if (b2 >>> 0 < 11) g2 = 10; else g2 = (b2 + 16 & -16) + -1 | 0; a: do if ((g2 | 0) != (d2 | 0)) { do if ((g2 | 0) != 10) { b2 = g2 + 1 | 0; if (g2 >>> 0 <= d2 >>> 0) { x = 0; b2 = ta(67, b2 | 0) | 0; f2 = x; x = 0; if (f2 & 1) { a2 = Wa(0) | 0; cb(a2 | 0) | 0; eb(); break a; } } else b2 = lj(b2) | 0; if (!(c2 & 1)) { d2 = 1; e2 = a2 + 1 | 0; f2 = 0; break; } else { d2 = 1; e2 = k[a2 + 8 >> 2] | 0; f2 = 1; break; } } else { b2 = a2 + 1 | 0; d2 = 0; e2 = k[a2 + 8 >> 2] | 0; f2 = 1; } while (0); if (!(c2 & 1)) c2 = (c2 & 255) >>> 1; else c2 = k[a2 + 4 >> 2] | 0; vw(b2 | 0, e2 | 0, c2 + 1 | 0) | 0; if (f2) mj(e2); if (d2) { k[a2 >> 2] = g2 + 1 | 1; k[a2 + 4 >> 2] = h2; k[a2 + 8 >> 2] = b2; break; } else { i2[a2 >> 0] = h2 << 1; break; } } while (0); return; } function Zm(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; return $m(a2, b2, xl(b2) | 0) | 0; } function _m(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0; c2 = i2[a2 >> 0] | 0; d2 = (c2 & 1) != 0; if (d2) { e2 = (k[a2 >> 2] & -2) + -1 | 0; f2 = k[a2 + 4 >> 2] | 0; } else { e2 = 10; f2 = (c2 & 255) >>> 1; } if ((f2 | 0) == (e2 | 0)) { bn(a2, e2, 1, e2, e2, 0, 0); if (!(i2[a2 >> 0] & 1)) e2 = 7; else e2 = 8; } else if (d2) e2 = 8; else e2 = 7; if ((e2 | 0) == 7) { i2[a2 >> 0] = (f2 << 1) + 2; c2 = a2 + 1 | 0; d2 = f2 + 1 | 0; } else if ((e2 | 0) == 8) { c2 = k[a2 + 8 >> 2] | 0; d2 = f2 + 1 | 0; k[a2 + 4 >> 2] = d2; } i2[c2 + f2 >> 0] = b2; i2[c2 + d2 >> 0] = 0; return; } function $m(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0; d2 = i2[a2 >> 0] | 0; if (!(d2 & 1)) e2 = 10; else { d2 = k[a2 >> 2] | 0; e2 = (d2 & -2) + -1 | 0; d2 = d2 & 255; } if (!(d2 & 1)) f2 = (d2 & 255) >>> 1; else f2 = k[a2 + 4 >> 2] | 0; if ((e2 - f2 | 0) >>> 0 >= c2 >>> 0) { if (c2) { if (!(d2 & 1)) e2 = a2 + 1 | 0; else e2 = k[a2 + 8 >> 2] | 0; vw(e2 + f2 | 0, b2 | 0, c2 | 0) | 0; d2 = f2 + c2 | 0; if (!(i2[a2 >> 0] & 1)) i2[a2 >> 0] = d2 << 1; else k[a2 + 4 >> 2] = d2; i2[e2 + d2 >> 0] = 0; } } else an(a2, e2, c2 - e2 + f2 | 0, f2, f2, 0, c2, b2); return a2 | 0; } function an(a2, b2, c2, d2, e2, f2, g2, h2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; var j2 = 0, l2 = 0, m2 = 0; if ((-18 - b2 | 0) >>> 0 < c2 >>> 0) ij(a2); if (!(i2[a2 >> 0] & 1)) m2 = a2 + 1 | 0; else m2 = k[a2 + 8 >> 2] | 0; if (b2 >>> 0 < 2147483623) { j2 = c2 + b2 | 0; l2 = b2 << 1; j2 = j2 >>> 0 < l2 >>> 0 ? l2 : j2; j2 = j2 >>> 0 < 11 ? 11 : j2 + 16 & -16; } else j2 = -17; l2 = lj(j2) | 0; if (e2) vw(l2 | 0, m2 | 0, e2 | 0) | 0; if (g2) vw(l2 + e2 | 0, h2 | 0, g2 | 0) | 0; c2 = d2 - f2 | 0; if ((c2 | 0) != (e2 | 0)) vw(l2 + (g2 + e2) | 0, m2 + (f2 + e2) | 0, c2 - e2 | 0) | 0; if ((b2 | 0) != 10) mj(m2); k[a2 + 8 >> 2] = l2; k[a2 >> 2] = j2 | 1; b2 = c2 + g2 | 0; k[a2 + 4 >> 2] = b2; i2[l2 + b2 >> 0] = 0; return; } function bn(a2, b2, c2, d2, e2, f2, g2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; var h2 = 0, j2 = 0, l2 = 0; if ((-17 - b2 | 0) >>> 0 < c2 >>> 0) ij(a2); if (!(i2[a2 >> 0] & 1)) l2 = a2 + 1 | 0; else l2 = k[a2 + 8 >> 2] | 0; if (b2 >>> 0 < 2147483623) { h2 = c2 + b2 | 0; j2 = b2 << 1; h2 = h2 >>> 0 < j2 >>> 0 ? j2 : h2; h2 = h2 >>> 0 < 11 ? 11 : h2 + 16 & -16; } else h2 = -17; j2 = lj(h2) | 0; if (e2) vw(j2 | 0, l2 | 0, e2 | 0) | 0; c2 = d2 - f2 | 0; if ((c2 | 0) != (e2 | 0)) vw(j2 + (g2 + e2) | 0, l2 + (f2 + e2) | 0, c2 - e2 | 0) | 0; if ((b2 | 0) != 10) mj(l2); k[a2 + 8 >> 2] = j2; k[a2 >> 2] = h2 | 1; return; } function cn(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0; if (c2 >>> 0 > 1073741807) ij(a2); if (c2 >>> 0 < 2) { i2[a2 >> 0] = c2 << 1; a2 = a2 + 4 | 0; } else { e2 = c2 + 4 & -4; d2 = lj(e2 << 2) | 0; k[a2 + 8 >> 2] = d2; k[a2 >> 2] = e2 | 1; k[a2 + 4 >> 2] = c2; a2 = d2; } Al(a2, b2, c2) | 0; k[a2 + (c2 << 2) >> 2] = 0; return; } function dn(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0; if (b2 >>> 0 > 1073741807) ij(a2); if (b2 >>> 0 < 2) { i2[a2 >> 0] = b2 << 1; a2 = a2 + 4 | 0; } else { e2 = b2 + 4 & -4; d2 = lj(e2 << 2) | 0; k[a2 + 8 >> 2] = d2; k[a2 >> 2] = e2 | 1; k[a2 + 4 >> 2] = b2; a2 = d2; } Cl(a2, c2, b2) | 0; k[a2 + (b2 << 2) >> 2] = 0; return; } function en(a2) { a2 = a2 | 0; if (i2[a2 >> 0] & 1) mj(k[a2 + 8 >> 2] | 0); return; } function fn(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; return gn(a2, b2, zl(b2) | 0) | 0; } function gn(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0; d2 = i2[a2 >> 0] | 0; if (!(d2 & 1)) f2 = 1; else { d2 = k[a2 >> 2] | 0; f2 = (d2 & -2) + -1 | 0; d2 = d2 & 255; } e2 = (d2 & 1) == 0; do if (f2 >>> 0 >= c2 >>> 0) { if (e2) d2 = a2 + 4 | 0; else d2 = k[a2 + 8 >> 2] | 0; Bl(d2, b2, c2) | 0; k[d2 + (c2 << 2) >> 2] = 0; if (!(i2[a2 >> 0] & 1)) { i2[a2 >> 0] = c2 << 1; break; } else { k[a2 + 4 >> 2] = c2; break; } } else { if (e2) d2 = (d2 & 255) >>> 1; else d2 = k[a2 + 4 >> 2] | 0; kn(a2, f2, c2 - f2 | 0, d2, 0, d2, c2, b2); } while (0); return a2 | 0; } function hn(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; if (b2 >>> 0 > 1073741807) ij(a2); c2 = i2[a2 >> 0] | 0; if (!(c2 & 1)) d2 = 1; else { c2 = k[a2 >> 2] | 0; d2 = (c2 & -2) + -1 | 0; c2 = c2 & 255; } if (!(c2 & 1)) h2 = (c2 & 255) >>> 1; else h2 = k[a2 + 4 >> 2] | 0; b2 = h2 >>> 0 > b2 >>> 0 ? h2 : b2; if (b2 >>> 0 < 2) g2 = 1; else g2 = (b2 + 4 & -4) + -1 | 0; a: do if ((g2 | 0) != (d2 | 0)) { do if ((g2 | 0) != 1) { b2 = (g2 << 2) + 4 | 0; if (g2 >>> 0 <= d2 >>> 0) { x = 0; b2 = ta(67, b2 | 0) | 0; f2 = x; x = 0; if (f2 & 1) { a2 = Wa(0) | 0; cb(a2 | 0) | 0; eb(); break a; } } else b2 = lj(b2) | 0; if (!(c2 & 1)) { d2 = 1; e2 = a2 + 4 | 0; f2 = 0; break; } else { d2 = 1; e2 = k[a2 + 8 >> 2] | 0; f2 = 1; break; } } else { b2 = a2 + 4 | 0; d2 = 0; e2 = k[a2 + 8 >> 2] | 0; f2 = 1; } while (0); if (!(c2 & 1)) c2 = (c2 & 255) >>> 1; else c2 = k[a2 + 4 >> 2] | 0; Al(b2, e2, c2 + 1 | 0) | 0; if (f2) mj(e2); if (d2) { k[a2 >> 2] = g2 + 1 | 1; k[a2 + 4 >> 2] = h2; k[a2 + 8 >> 2] = b2; break; } else { i2[a2 >> 0] = h2 << 1; break; } } while (0); return; } function jn(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0; c2 = i2[a2 >> 0] | 0; d2 = (c2 & 1) != 0; if (d2) { e2 = (k[a2 >> 2] & -2) + -1 | 0; f2 = k[a2 + 4 >> 2] | 0; } else { e2 = 1; f2 = (c2 & 255) >>> 1; } if ((f2 | 0) == (e2 | 0)) { ln(a2, e2, 1, e2, e2, 0, 0); if (!(i2[a2 >> 0] & 1)) e2 = 7; else e2 = 8; } else if (d2) e2 = 8; else e2 = 7; if ((e2 | 0) == 7) { i2[a2 >> 0] = (f2 << 1) + 2; c2 = a2 + 4 | 0; d2 = f2 + 1 | 0; } else if ((e2 | 0) == 8) { c2 = k[a2 + 8 >> 2] | 0; d2 = f2 + 1 | 0; k[a2 + 4 >> 2] = d2; } k[c2 + (f2 << 2) >> 2] = b2; k[c2 + (d2 << 2) >> 2] = 0; return; } function kn(a2, b2, c2, d2, e2, f2, g2, h2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; var j2 = 0, l2 = 0, m2 = 0; if ((1073741806 - b2 | 0) >>> 0 < c2 >>> 0) ij(a2); if (!(i2[a2 >> 0] & 1)) m2 = a2 + 4 | 0; else m2 = k[a2 + 8 >> 2] | 0; if (b2 >>> 0 < 536870887) { j2 = c2 + b2 | 0; l2 = b2 << 1; j2 = j2 >>> 0 < l2 >>> 0 ? l2 : j2; j2 = j2 >>> 0 < 2 ? 2 : j2 + 4 & -4; } else j2 = 1073741807; l2 = lj(j2 << 2) | 0; if (e2) Al(l2, m2, e2) | 0; if (g2) Al(l2 + (e2 << 2) | 0, h2, g2) | 0; c2 = d2 - f2 | 0; if ((c2 | 0) != (e2 | 0)) Al(l2 + (g2 + e2 << 2) | 0, m2 + (f2 + e2 << 2) | 0, c2 - e2 | 0) | 0; if ((b2 | 0) != 1) mj(m2); k[a2 + 8 >> 2] = l2; k[a2 >> 2] = j2 | 1; b2 = c2 + g2 | 0; k[a2 + 4 >> 2] = b2; k[l2 + (b2 << 2) >> 2] = 0; return; } function ln(a2, b2, c2, d2, e2, f2, g2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; var h2 = 0, j2 = 0, l2 = 0; if ((1073741807 - b2 | 0) >>> 0 < c2 >>> 0) ij(a2); if (!(i2[a2 >> 0] & 1)) l2 = a2 + 4 | 0; else l2 = k[a2 + 8 >> 2] | 0; if (b2 >>> 0 < 536870887) { h2 = c2 + b2 | 0; j2 = b2 << 1; h2 = h2 >>> 0 < j2 >>> 0 ? j2 : h2; h2 = h2 >>> 0 < 2 ? 2 : h2 + 4 & -4; } else h2 = 1073741807; j2 = lj(h2 << 2) | 0; if (e2) Al(j2, l2, e2) | 0; c2 = d2 - f2 | 0; if ((c2 | 0) != (e2 | 0)) Al(j2 + (g2 + e2 << 2) | 0, l2 + (f2 + e2 << 2) | 0, c2 - e2 | 0) | 0; if ((b2 | 0) != 1) mj(l2); k[a2 + 8 >> 2] = j2; k[a2 >> 2] = h2 | 1; return; } function mn(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0; e2 = b2; d2 = c2 - e2 | 0; if (d2 >>> 0 > 4294967279) ij(a2); if (d2 >>> 0 < 11) { i2[a2 >> 0] = d2 << 1; f2 = a2 + 1 | 0; } else { g2 = d2 + 16 & -16; f2 = lj(g2) | 0; k[a2 + 8 >> 2] = f2; k[a2 >> 2] = g2 | 1; k[a2 + 4 >> 2] = d2; } a2 = c2 - e2 | 0; if ((b2 | 0) != (c2 | 0)) { d2 = f2; while (1) { i2[d2 >> 0] = i2[b2 >> 0] | 0; b2 = b2 + 1 | 0; if ((b2 | 0) == (c2 | 0)) break; else d2 = d2 + 1 | 0; } } i2[f2 + a2 >> 0] = 0; return; } function nn(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0; f2 = b2; d2 = c2 - f2 | 0; e2 = d2 >> 2; if (e2 >>> 0 > 1073741807) ij(a2); if (e2 >>> 0 < 2) { i2[a2 >> 0] = d2 >>> 1; a2 = a2 + 4 | 0; } else { g2 = e2 + 4 & -4; d2 = lj(g2 << 2) | 0; k[a2 + 8 >> 2] = d2; k[a2 >> 2] = g2 | 1; k[a2 + 4 >> 2] = e2; a2 = d2; } e2 = (c2 - f2 | 0) >>> 2; if ((b2 | 0) != (c2 | 0)) { d2 = a2; while (1) { k[d2 >> 2] = k[b2 >> 2]; b2 = b2 + 4 | 0; if ((b2 | 0) == (c2 | 0)) break; else d2 = d2 + 4 | 0; } } k[a2 + (e2 << 2) >> 2] = 0; return; } function on(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0; c2 = r; r = r + 16 | 0; d2 = c2; e2 = (k[a2 + 24 >> 2] | 0) == 0; k[a2 + 16 >> 2] = e2 & 1 | b2; if (!((e2 & 1 | b2) & k[a2 + 20 >> 2])) { r = c2; return; } b2 = Va(16) | 0; Co() | 0; k[d2 >> 2] = 1; k[d2 + 4 >> 2] = 43112; x = 0; Fa(11, b2 | 0, 57437, d2 | 0); e2 = x; x = 0; if (e2 & 1) { e2 = Wa() | 0; Ua(b2 | 0); fb(e2 | 0); } else ub(b2 | 0, 864, 112); } function pn(a2) { a2 = a2 | 0; var b2 = 0; k[a2 >> 2] = 43068; x = 0; ra(88, a2 | 0, 0); b2 = x; x = 0; if (b2 & 1) { b2 = Wa(0) | 0; oc(b2); } else { Qs(a2 + 28 | 0); Ql(k[a2 + 32 >> 2] | 0); Ql(k[a2 + 36 >> 2] | 0); Ql(k[a2 + 48 >> 2] | 0); Ql(k[a2 + 60 >> 2] | 0); return; } } function qn(a2) { a2 = a2 | 0; pn(a2); return; } function rn(a2) { a2 = a2 | 0; pn(a2); mj(a2); return; } function sn(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0; c2 = k[a2 + 40 >> 2] | 0; d2 = a2 + 32 | 0; e2 = a2 + 36 | 0; if (c2) do { c2 = c2 + -1 | 0; _b[k[(k[d2 >> 2] | 0) + (c2 << 2) >> 2] & 15](b2, a2, k[(k[e2 >> 2] | 0) + (c2 << 2) >> 2] | 0); } while ((c2 | 0) != 0); return; } function tn(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; c2 = r; r = r + 16 | 0; b2 = c2; Ps(b2, a2 + 28 | 0); r = c2; return k[b2 >> 2] | 0; } function un(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0; k[a2 + 24 >> 2] = b2; k[a2 + 16 >> 2] = (b2 | 0) == 0 & 1; k[a2 + 20 >> 2] = 0; k[a2 + 4 >> 2] = 4098; k[a2 + 12 >> 2] = 0; k[a2 + 8 >> 2] = 6; c2 = a2 + 28 | 0; b2 = a2 + 32 | 0; a2 = b2 + 40 | 0; do { k[b2 >> 2] = 0; b2 = b2 + 4 | 0; } while ((b2 | 0) < (a2 | 0)); Os(c2); return; } function vn(a2) { a2 = a2 | 0; pn(a2); return; } function wn(a2) { a2 = a2 | 0; pn(a2); mj(a2); return; } function xn(a2) { a2 = a2 | 0; k[a2 >> 2] = 42760; Qs(a2 + 4 | 0); return; } function yn(a2) { a2 = a2 | 0; k[a2 >> 2] = 42760; Qs(a2 + 4 | 0); mj(a2); return; } function zn(a2) { a2 = a2 | 0; k[a2 >> 2] = 42760; Os(a2 + 4 | 0); a2 = a2 + 8 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; k[a2 + 12 >> 2] = 0; k[a2 + 16 >> 2] = 0; k[a2 + 20 >> 2] = 0; return; } function An(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; return; } function Bn(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; return a2 | 0; } function Cn(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; b2 = a2; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; b2 = a2 + 8 | 0; k[b2 >> 2] = -1; k[b2 + 4 >> 2] = -1; return; } function Dn(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; b2 = a2; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; b2 = a2 + 8 | 0; k[b2 >> 2] = -1; k[b2 + 4 >> 2] = -1; return; } function En(a2) { a2 = a2 | 0; return 0; } function Fn(a2) { a2 = a2 | 0; return 0; } function Gn(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0; f2 = a2 + 12 | 0; g2 = a2 + 16 | 0; a: do if ((c2 | 0) > 0) { e2 = b2; b2 = 0; while (1) { d2 = k[f2 >> 2] | 0; if (d2 >>> 0 < (k[g2 >> 2] | 0) >>> 0) { k[f2 >> 2] = d2 + 1; d2 = i2[d2 >> 0] | 0; } else { d2 = Ob[k[(k[a2 >> 2] | 0) + 40 >> 2] & 127](a2) | 0; if ((d2 | 0) == -1) break a; d2 = d2 & 255; } i2[e2 >> 0] = d2; b2 = b2 + 1 | 0; if ((b2 | 0) < (c2 | 0)) e2 = e2 + 1 | 0; else break; } } else b2 = 0; while (0); return b2 | 0; } function Hn(a2) { a2 = a2 | 0; return -1; } function In(a2) { a2 = a2 | 0; var b2 = 0; if ((Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0) == -1) a2 = -1; else { b2 = a2 + 12 | 0; a2 = k[b2 >> 2] | 0; k[b2 >> 2] = a2 + 1; a2 = l[a2 >> 0] | 0; } return a2 | 0; } function Jn(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; return -1; } function Kn(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; f2 = a2 + 24 | 0; g2 = a2 + 28 | 0; a: do if ((c2 | 0) > 0) { e2 = b2; b2 = 0; while (1) { d2 = k[f2 >> 2] | 0; if (d2 >>> 0 >= (k[g2 >> 2] | 0) >>> 0) { if ((Vb[k[(k[a2 >> 2] | 0) + 52 >> 2] & 63](a2, l[e2 >> 0] | 0) | 0) == -1) break a; } else { h2 = i2[e2 >> 0] | 0; k[f2 >> 2] = d2 + 1; i2[d2 >> 0] = h2; } b2 = b2 + 1 | 0; if ((b2 | 0) < (c2 | 0)) e2 = e2 + 1 | 0; else break; } } else b2 = 0; while (0); return b2 | 0; } function Ln(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; return -1; } function Mn(a2) { a2 = a2 | 0; k[a2 >> 2] = 42824; Qs(a2 + 4 | 0); return; } function Nn(a2) { a2 = a2 | 0; k[a2 >> 2] = 42824; Qs(a2 + 4 | 0); mj(a2); return; } function On(a2) { a2 = a2 | 0; k[a2 >> 2] = 42824; Os(a2 + 4 | 0); a2 = a2 + 8 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; k[a2 + 12 >> 2] = 0; k[a2 + 16 >> 2] = 0; k[a2 + 20 >> 2] = 0; return; } function Pn(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; return; } function Qn(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; return a2 | 0; } function Rn(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; b2 = a2; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; b2 = a2 + 8 | 0; k[b2 >> 2] = -1; k[b2 + 4 >> 2] = -1; return; } function Sn(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; b2 = a2; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; b2 = a2 + 8 | 0; k[b2 >> 2] = -1; k[b2 + 4 >> 2] = -1; return; } function Tn(a2) { a2 = a2 | 0; return 0; } function Un(a2) { a2 = a2 | 0; return 0; } function Vn(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0; f2 = a2 + 12 | 0; g2 = a2 + 16 | 0; a: do if ((c2 | 0) > 0) { e2 = b2; b2 = 0; while (1) { d2 = k[f2 >> 2] | 0; if (d2 >>> 0 >= (k[g2 >> 2] | 0) >>> 0) { d2 = Ob[k[(k[a2 >> 2] | 0) + 40 >> 2] & 127](a2) | 0; if ((d2 | 0) == -1) break a; } else { k[f2 >> 2] = d2 + 4; d2 = k[d2 >> 2] | 0; } k[e2 >> 2] = d2; b2 = b2 + 1 | 0; if ((b2 | 0) < (c2 | 0)) e2 = e2 + 4 | 0; else break; } } else b2 = 0; while (0); return b2 | 0; } function Wn(a2) { a2 = a2 | 0; return -1; } function Xn(a2) { a2 = a2 | 0; var b2 = 0; if ((Ob[k[(k[a2 >> 2] | 0) + 36 >> 2] & 127](a2) | 0) == -1) a2 = -1; else { b2 = a2 + 12 | 0; a2 = k[b2 >> 2] | 0; k[b2 >> 2] = a2 + 4; a2 = k[a2 >> 2] | 0; } return a2 | 0; } function Yn(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; return -1; } function Zn(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; f2 = a2 + 24 | 0; g2 = a2 + 28 | 0; a: do if ((c2 | 0) > 0) { e2 = b2; b2 = 0; while (1) { d2 = k[f2 >> 2] | 0; if (d2 >>> 0 >= (k[g2 >> 2] | 0) >>> 0) { if ((Vb[k[(k[a2 >> 2] | 0) + 52 >> 2] & 63](a2, k[e2 >> 2] | 0) | 0) == -1) break a; } else { h2 = k[e2 >> 2] | 0; k[f2 >> 2] = d2 + 4; k[d2 >> 2] = h2; } b2 = b2 + 1 | 0; if ((b2 | 0) < (c2 | 0)) e2 = e2 + 4 | 0; else break; } } else b2 = 0; while (0); return b2 | 0; } function _n(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; return -1; } function $n(a2) { a2 = a2 | 0; pn(a2 + 8 | 0); return; } function ao(a2) { a2 = a2 | 0; pn(a2 + ((k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) + 8) | 0); return; } function bo(a2) { a2 = a2 | 0; pn(a2 + 8 | 0); mj(a2); return; } function co(a2) { a2 = a2 | 0; bo(a2 + (k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) | 0); return; } function eo(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0; d2 = r; r = r + 16 | 0; c2 = d2; a: do if (k[a2 + ((k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0) { x = 0; ra(65, c2 | 0, a2 | 0); b2 = x; x = 0; b: do if (b2 & 1) b2 = Wa(0) | 0; else { do if (i2[c2 >> 0] | 0) { b2 = k[a2 + ((k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0; x = 0; b2 = ta(k[(k[b2 >> 2] | 0) + 24 >> 2] | 0, b2 | 0) | 0; e2 = x; x = 0; if (!(e2 & 1)) { if ((b2 | 0) != -1) break; e2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; x = 0; ra(66, a2 + e2 | 0, k[a2 + (e2 + 16) >> 2] | 1 | 0); e2 = x; x = 0; if (!(e2 & 1)) break; } b2 = Wa(0) | 0; ro(c2); break b; } while (0); ro(c2); break a; } while (0); cb(b2 | 0) | 0; x = 0; qa(181, a2 + (k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) | 0); e2 = x; x = 0; if (!(e2 & 1)) { eb(); break; } b2 = Wa() | 0; x = 0; Ga(3); e2 = x; x = 0; if (e2 & 1) { e2 = Wa(0) | 0; oc(e2); } else fb(b2 | 0); } while (0); r = d2; return a2 | 0; } function fo(a2) { a2 = a2 | 0; var b2 = 0; b2 = a2 + 16 | 0; k[b2 >> 2] = k[b2 >> 2] | 1; if (!(k[a2 + 20 >> 2] & 1)) return; else vb(); } function go(a2) { a2 = a2 | 0; pn(a2 + 8 | 0); return; } function ho(a2) { a2 = a2 | 0; pn(a2 + ((k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) + 8) | 0); return; } function io(a2) { a2 = a2 | 0; pn(a2 + 8 | 0); mj(a2); return; } function jo(a2) { a2 = a2 | 0; io(a2 + (k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) | 0); return; } function ko(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0; d2 = r; r = r + 16 | 0; c2 = d2; a: do if (k[a2 + ((k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0) { x = 0; ra(89, c2 | 0, a2 | 0); b2 = x; x = 0; b: do if (b2 & 1) b2 = Wa(0) | 0; else { do if (i2[c2 >> 0] | 0) { b2 = k[a2 + ((k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0; x = 0; b2 = ta(k[(k[b2 >> 2] | 0) + 24 >> 2] | 0, b2 | 0) | 0; e2 = x; x = 0; if (!(e2 & 1)) { if ((b2 | 0) != -1) break; e2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; x = 0; ra(66, a2 + e2 | 0, k[a2 + (e2 + 16) >> 2] | 1 | 0); e2 = x; x = 0; if (!(e2 & 1)) break; } b2 = Wa(0) | 0; zo(c2); break b; } while (0); zo(c2); break a; } while (0); cb(b2 | 0) | 0; x = 0; qa(181, a2 + (k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) | 0); e2 = x; x = 0; if (!(e2 & 1)) { eb(); break; } b2 = Wa() | 0; x = 0; Ga(3); e2 = x; x = 0; if (e2 & 1) { e2 = Wa(0) | 0; oc(e2); } else fb(b2 | 0); } while (0); r = d2; return a2 | 0; } function lo(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; return; } function mo(a2) { a2 = a2 | 0; pn(a2 + 4 | 0); return; } function no(a2) { a2 = a2 | 0; pn(a2 + ((k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) + 4) | 0); return; } function oo(a2) { a2 = a2 | 0; pn(a2 + 4 | 0); mj(a2); return; } function po(a2) { a2 = a2 | 0; oo(a2 + (k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) | 0); return; } function qo(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0; i2[a2 >> 0] = 0; k[a2 + 4 >> 2] = b2; c2 = k[(k[b2 >> 2] | 0) + -12 >> 2] | 0; if (!(k[b2 + (c2 + 16) >> 2] | 0)) { c2 = k[b2 + (c2 + 72) >> 2] | 0; if (c2) eo(c2) | 0; i2[a2 >> 0] = 1; } return; } function ro(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; a2 = a2 + 4 | 0; c2 = k[a2 >> 2] | 0; b2 = k[(k[c2 >> 2] | 0) + -12 >> 2] | 0; do if ((((k[c2 + (b2 + 24) >> 2] | 0) != 0 ? (k[c2 + (b2 + 16) >> 2] | 0) == 0 : 0) ? (k[c2 + (b2 + 4) >> 2] & 8192 | 0) != 0 : 0) ? !(gb() | 0) : 0) { b2 = k[a2 >> 2] | 0; b2 = k[b2 + ((k[(k[b2 >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0; x = 0; b2 = ta(k[(k[b2 >> 2] | 0) + 24 >> 2] | 0, b2 | 0) | 0; c2 = x; x = 0; if (!(c2 & 1)) { if ((b2 | 0) != -1) break; b2 = k[a2 >> 2] | 0; c2 = k[(k[b2 >> 2] | 0) + -12 >> 2] | 0; x = 0; ra(66, b2 + c2 | 0, k[b2 + (c2 + 16) >> 2] | 1 | 0); c2 = x; x = 0; if (!(c2 & 1)) break; } c2 = Wa(0) | 0; cb(c2 | 0) | 0; x = 0; Ga(3); c2 = x; x = 0; if (c2 & 1) { c2 = Wa(0) | 0; oc(c2); } } while (0); return; } function so(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; o2 = r; r = r + 32 | 0; h2 = o2 + 20 | 0; j2 = o2 + 16 | 0; m2 = o2 + 8 | 0; c2 = o2; x = 0; ra(65, m2 | 0, a2 | 0); l2 = x; x = 0; a: do if (l2 & 1) { c2 = Wa(0) | 0; d2 = a2; e2 = a2; n2 = 19; } else { do if (i2[m2 >> 0] | 0) { l2 = tn(a2 + (k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; k[c2 >> 2] = l2; x = 0; l2 = Aa(37, c2 | 0, 43392) | 0; g2 = x; x = 0; if (g2 & 1) { n2 = Wa(0) | 0; Qs(c2); c2 = n2; } else { Qs(c2); e2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; g2 = k[a2 + (e2 + 24) >> 2] | 0; d2 = a2 + e2 | 0; e2 = a2 + (e2 + 76) | 0; c2 = k[e2 >> 2] | 0; do if ((c2 | 0) == -1) { c2 = tn(d2) | 0; k[h2 >> 2] = c2; x = 0; c2 = Aa(37, h2 | 0, 44220) | 0; p2 = x; x = 0; if (!(p2 & 1) ? (x = 0, f2 = Aa(k[(k[c2 >> 2] | 0) + 28 >> 2] | 0, c2 | 0, 32) | 0, p2 = x, x = 0, !(p2 & 1)) : 0) { Qs(h2); c2 = f2 << 24 >> 24; k[e2 >> 2] = c2; n2 = 10; break; } c2 = Wa(0) | 0; Qs(h2); } else n2 = 10; while (0); if ((n2 | 0) == 10) { p2 = k[(k[l2 >> 2] | 0) + 16 >> 2] | 0; k[j2 >> 2] = g2; x = 0; k[h2 >> 2] = k[j2 >> 2]; c2 = Ba(p2 | 0, l2 | 0, h2 | 0, d2 | 0, c2 & 255 | 0, b2 | 0) | 0; p2 = x; x = 0; if (!(p2 & 1)) { if (c2) break; p2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; x = 0; ra(66, a2 + p2 | 0, k[a2 + (p2 + 16) >> 2] | 5 | 0); p2 = x; x = 0; if (!(p2 & 1)) break; } c2 = Wa(0) | 0; } } ro(m2); d2 = a2; e2 = a2; n2 = 19; break a; } while (0); ro(m2); } while (0); do if ((n2 | 0) == 19) { cb(c2 | 0) | 0; x = 0; qa(181, d2 + (k[(k[e2 >> 2] | 0) + -12 >> 2] | 0) | 0); p2 = x; x = 0; if (!(p2 & 1)) { eb(); break; } c2 = Wa() | 0; x = 0; Ga(3); p2 = x; x = 0; if (p2 & 1) { p2 = Wa(0) | 0; oc(p2); } else fb(c2 | 0); } while (0); r = o2; return a2 | 0; } function to(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; o2 = r; r = r + 32 | 0; h2 = o2 + 20 | 0; j2 = o2 + 16 | 0; m2 = o2 + 8 | 0; c2 = o2; x = 0; ra(65, m2 | 0, a2 | 0); l2 = x; x = 0; a: do if (l2 & 1) { c2 = Wa(0) | 0; d2 = a2; e2 = a2; n2 = 19; } else { do if (i2[m2 >> 0] | 0) { l2 = tn(a2 + (k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) | 0) | 0; k[c2 >> 2] = l2; x = 0; l2 = Aa(37, c2 | 0, 43392) | 0; g2 = x; x = 0; if (g2 & 1) { n2 = Wa(0) | 0; Qs(c2); c2 = n2; } else { Qs(c2); e2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; g2 = k[a2 + (e2 + 24) >> 2] | 0; d2 = a2 + e2 | 0; e2 = a2 + (e2 + 76) | 0; c2 = k[e2 >> 2] | 0; do if ((c2 | 0) == -1) { c2 = tn(d2) | 0; k[h2 >> 2] = c2; x = 0; c2 = Aa(37, h2 | 0, 44220) | 0; p2 = x; x = 0; if (!(p2 & 1) ? (x = 0, f2 = Aa(k[(k[c2 >> 2] | 0) + 28 >> 2] | 0, c2 | 0, 32) | 0, p2 = x, x = 0, !(p2 & 1)) : 0) { Qs(h2); c2 = f2 << 24 >> 24; k[e2 >> 2] = c2; n2 = 10; break; } c2 = Wa(0) | 0; Qs(h2); } else n2 = 10; while (0); if ((n2 | 0) == 10) { p2 = k[(k[l2 >> 2] | 0) + 24 >> 2] | 0; k[j2 >> 2] = g2; x = 0; k[h2 >> 2] = k[j2 >> 2]; c2 = Ba(p2 | 0, l2 | 0, h2 | 0, d2 | 0, c2 & 255 | 0, b2 | 0) | 0; p2 = x; x = 0; if (!(p2 & 1)) { if (c2) break; p2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; x = 0; ra(66, a2 + p2 | 0, k[a2 + (p2 + 16) >> 2] | 5 | 0); p2 = x; x = 0; if (!(p2 & 1)) break; } c2 = Wa(0) | 0; } } ro(m2); d2 = a2; e2 = a2; n2 = 19; break a; } while (0); ro(m2); } while (0); do if ((n2 | 0) == 19) { cb(c2 | 0) | 0; x = 0; qa(181, d2 + (k[(k[e2 >> 2] | 0) + -12 >> 2] | 0) | 0); p2 = x; x = 0; if (!(p2 & 1)) { eb(); break; } c2 = Wa() | 0; x = 0; Ga(3); p2 = x; x = 0; if (p2 & 1) { p2 = Wa(0) | 0; oc(p2); } else fb(c2 | 0); } while (0); r = o2; return a2 | 0; } function uo(a2) { a2 = a2 | 0; pn(a2 + 4 | 0); return; } function vo(a2) { a2 = a2 | 0; pn(a2 + ((k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) + 4) | 0); return; } function wo(a2) { a2 = a2 | 0; pn(a2 + 4 | 0); mj(a2); return; } function xo(a2) { a2 = a2 | 0; wo(a2 + (k[(k[a2 >> 2] | 0) + -12 >> 2] | 0) | 0); return; } function yo(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0; i2[a2 >> 0] = 0; k[a2 + 4 >> 2] = b2; c2 = k[(k[b2 >> 2] | 0) + -12 >> 2] | 0; if (!(k[b2 + (c2 + 16) >> 2] | 0)) { c2 = k[b2 + (c2 + 72) >> 2] | 0; if (c2) ko(c2) | 0; i2[a2 >> 0] = 1; } return; } function zo(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; a2 = a2 + 4 | 0; c2 = k[a2 >> 2] | 0; b2 = k[(k[c2 >> 2] | 0) + -12 >> 2] | 0; do if ((((k[c2 + (b2 + 24) >> 2] | 0) != 0 ? (k[c2 + (b2 + 16) >> 2] | 0) == 0 : 0) ? (k[c2 + (b2 + 4) >> 2] & 8192 | 0) != 0 : 0) ? !(gb() | 0) : 0) { b2 = k[a2 >> 2] | 0; b2 = k[b2 + ((k[(k[b2 >> 2] | 0) + -12 >> 2] | 0) + 24) >> 2] | 0; x = 0; b2 = ta(k[(k[b2 >> 2] | 0) + 24 >> 2] | 0, b2 | 0) | 0; c2 = x; x = 0; if (!(c2 & 1)) { if ((b2 | 0) != -1) break; b2 = k[a2 >> 2] | 0; c2 = k[(k[b2 >> 2] | 0) + -12 >> 2] | 0; x = 0; ra(66, b2 + c2 | 0, k[b2 + (c2 + 16) >> 2] | 1 | 0); c2 = x; x = 0; if (!(c2 & 1)) break; } c2 = Wa(0) | 0; cb(c2 | 0) | 0; x = 0; Ga(3); c2 = x; x = 0; if (c2 & 1) { c2 = Wa(0) | 0; oc(c2); } } while (0); return; } function Ao(a2) { a2 = a2 | 0; return 57453; } function Bo(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; if ((c2 | 0) != 1 & (c2 | 0) < 257) Gm(a2, b2, c2); else Qm(a2, 57462, 35); return; } function Co() { if ((i2[1048] | 0) == 0 ? (Qa(1048) | 0) != 0 : 0) { k[10778] = 43084; tb(72, 43112, w | 0) | 0; Ya(1048); } return 43112; } function Do(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; d2 = r; r = r + 16 | 0; e2 = d2 + 8 | 0; f2 = d2; h2 = c2; g2 = k[h2 + 4 >> 2] | 0; c2 = f2; k[c2 >> 2] = k[h2 >> 2]; k[c2 + 4 >> 2] = g2; k[e2 >> 2] = k[f2 >> 2]; k[e2 + 4 >> 2] = k[f2 + 4 >> 2]; Im(a2, e2, b2); k[a2 >> 2] = 43048; r = d2; return; } function Eo(a2) { a2 = a2 | 0; Lm(a2); return; } function Fo(a2) { a2 = a2 | 0; Lm(a2); mj(a2); return; } function Go(a2) { a2 = a2 | 0; pn(a2); mj(a2); return; } function Ho(a2) { a2 = a2 | 0; mj(a2); return; } function Io(a2) { a2 = a2 | 0; return; } function Jo(a2) { a2 = a2 | 0; return; } function Ko(a2) { a2 = a2 | 0; mj(a2); return; } function Lo(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0; a: do if ((d2 | 0) == (e2 | 0)) g2 = 6; else while (1) { if ((b2 | 0) == (c2 | 0)) { b2 = -1; break a; } a2 = i2[b2 >> 0] | 0; f2 = i2[d2 >> 0] | 0; if (a2 << 24 >> 24 < f2 << 24 >> 24) { b2 = -1; break a; } if (f2 << 24 >> 24 < a2 << 24 >> 24) { b2 = 1; break a; } b2 = b2 + 1 | 0; d2 = d2 + 1 | 0; if ((d2 | 0) == (e2 | 0)) { g2 = 6; break; } } while (0); if ((g2 | 0) == 6) b2 = (b2 | 0) != (c2 | 0) & 1; return b2 | 0; } function Mo(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; mn(a2, c2, d2); return; } function No(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0; if ((b2 | 0) == (c2 | 0)) a2 = 0; else { a2 = 0; do { a2 = (i2[b2 >> 0] | 0) + (a2 << 4) | 0; d2 = a2 & -268435456; a2 = (d2 >>> 24 | d2) ^ a2; b2 = b2 + 1 | 0; } while ((b2 | 0) != (c2 | 0)); } return a2 | 0; } function Oo(a2) { a2 = a2 | 0; return; } function Po(a2) { a2 = a2 | 0; mj(a2); return; } function Qo(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0; a: do if ((d2 | 0) == (e2 | 0)) g2 = 6; else while (1) { if ((b2 | 0) == (c2 | 0)) { b2 = -1; break a; } a2 = k[b2 >> 2] | 0; f2 = k[d2 >> 2] | 0; if ((a2 | 0) < (f2 | 0)) { b2 = -1; break a; } if ((f2 | 0) < (a2 | 0)) { b2 = 1; break a; } b2 = b2 + 4 | 0; d2 = d2 + 4 | 0; if ((d2 | 0) == (e2 | 0)) { g2 = 6; break; } } while (0); if ((g2 | 0) == 6) b2 = (b2 | 0) != (c2 | 0) & 1; return b2 | 0; } function Ro(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; nn(a2, c2, d2); return; } function So(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0; if ((b2 | 0) == (c2 | 0)) a2 = 0; else { a2 = 0; do { a2 = (k[b2 >> 2] | 0) + (a2 << 4) | 0; d2 = a2 & -268435456; a2 = (d2 >>> 24 | d2) ^ a2; b2 = b2 + 4 | 0; } while ((b2 | 0) != (c2 | 0)); } return a2 | 0; } function To(a2) { a2 = a2 | 0; return; } function Uo(a2) { a2 = a2 | 0; mj(a2); return; } function Vo(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0; q2 = r; r = r + 64 | 0; o2 = q2 + 56 | 0; g2 = q2 + 52 | 0; m2 = q2 + 48 | 0; h2 = q2 + 44 | 0; j2 = q2 + 40 | 0; l2 = q2 + 36 | 0; n2 = q2 + 32 | 0; s2 = q2 + 8 | 0; p2 = q2; a: do if (!(k[d2 + 4 >> 2] & 1)) { k[m2 >> 2] = -1; s2 = k[(k[a2 >> 2] | 0) + 16 >> 2] | 0; k[h2 >> 2] = k[b2 >> 2]; k[j2 >> 2] = k[c2 >> 2]; k[g2 >> 2] = k[h2 >> 2]; k[o2 >> 2] = k[j2 >> 2]; g2 = Nb[s2 & 63](a2, g2, o2, d2, e2, m2) | 0; k[b2 >> 2] = g2; switch (k[m2 >> 2] | 0) { case 0: { i2[f2 >> 0] = 0; break a; } case 1: { i2[f2 >> 0] = 1; break a; } default: { i2[f2 >> 0] = 1; k[e2 >> 2] = 4; break a; } } } else { g2 = tn(d2) | 0; k[l2 >> 2] = g2; x = 0; a2 = Aa(37, l2 | 0, 44220) | 0; m2 = x; x = 0; do if (!(m2 & 1)) { zm(g2) | 0; g2 = tn(d2) | 0; k[n2 >> 2] = g2; x = 0; j2 = Aa(37, n2 | 0, 44360) | 0; n2 = x; x = 0; if (n2 & 1) { s2 = Wa() | 0; zm(g2) | 0; g2 = s2; break; } zm(g2) | 0; x = 0; ra(k[(k[j2 >> 2] | 0) + 24 >> 2] | 0, s2 | 0, j2 | 0); n2 = x; x = 0; if (!(n2 & 1)) { h2 = s2 + 12 | 0; x = 0; ra(k[(k[j2 >> 2] | 0) + 28 >> 2] | 0, h2 | 0, j2 | 0); n2 = x; x = 0; if (!(n2 & 1)) { k[p2 >> 2] = k[c2 >> 2]; x = 0; k[o2 >> 2] = k[p2 >> 2]; g2 = na(7, b2 | 0, o2 | 0, s2 | 0, s2 + 24 | 0, a2 | 0, e2 | 0, 1) | 0; e2 = x; x = 0; if (e2 & 1) { g2 = Wa() | 0; Sm(s2 + 12 | 0); Sm(s2); break; } else { i2[f2 >> 0] = (g2 | 0) == (s2 | 0) & 1; g2 = k[b2 >> 2] | 0; Sm(s2 + 12 | 0); Sm(s2); break a; } } } else h2 = s2; g2 = Wa() | 0; j2 = M; if ((s2 | 0) != (h2 | 0)) do { h2 = h2 + -12 | 0; Sm(h2); } while ((h2 | 0) != (s2 | 0)); } else { s2 = Wa() | 0; zm(g2) | 0; g2 = s2; } while (0); fb(g2 | 0); } while (0); r = q2; return g2 | 0; } function Wo(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; g2 = r; r = r + 16 | 0; h2 = g2 + 12 | 0; i3 = g2 + 8 | 0; l2 = g2 + 4 | 0; j2 = g2; k[l2 >> 2] = k[b2 >> 2]; k[j2 >> 2] = k[c2 >> 2]; k[i3 >> 2] = k[l2 >> 2]; k[h2 >> 2] = k[j2 >> 2]; a2 = Iu(a2, i3, h2, d2, e2, f2) | 0; r = g2; return a2 | 0; } function Xo(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; g2 = r; r = r + 16 | 0; h2 = g2 + 12 | 0; i3 = g2 + 8 | 0; l2 = g2 + 4 | 0; j2 = g2; k[l2 >> 2] = k[b2 >> 2]; k[j2 >> 2] = k[c2 >> 2]; k[i3 >> 2] = k[l2 >> 2]; k[h2 >> 2] = k[j2 >> 2]; a2 = Ju(a2, i3, h2, d2, e2, f2) | 0; r = g2; return a2 | 0; } function Yo(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; g2 = r; r = r + 16 | 0; h2 = g2 + 12 | 0; i3 = g2 + 8 | 0; l2 = g2 + 4 | 0; j2 = g2; k[l2 >> 2] = k[b2 >> 2]; k[j2 >> 2] = k[c2 >> 2]; k[i3 >> 2] = k[l2 >> 2]; k[h2 >> 2] = k[j2 >> 2]; a2 = Ku(a2, i3, h2, d2, e2, f2) | 0; r = g2; return a2 | 0; } function Zo(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; g2 = r; r = r + 16 | 0; h2 = g2 + 12 | 0; i3 = g2 + 8 | 0; l2 = g2 + 4 | 0; j2 = g2; k[l2 >> 2] = k[b2 >> 2]; k[j2 >> 2] = k[c2 >> 2]; k[i3 >> 2] = k[l2 >> 2]; k[h2 >> 2] = k[j2 >> 2]; a2 = Lu(a2, i3, h2, d2, e2, f2) | 0; r = g2; return a2 | 0; } function _o(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; g2 = r; r = r + 16 | 0; h2 = g2 + 12 | 0; i3 = g2 + 8 | 0; l2 = g2 + 4 | 0; j2 = g2; k[l2 >> 2] = k[b2 >> 2]; k[j2 >> 2] = k[c2 >> 2]; k[i3 >> 2] = k[l2 >> 2]; k[h2 >> 2] = k[j2 >> 2]; a2 = Mu(a2, i3, h2, d2, e2, f2) | 0; r = g2; return a2 | 0; } function $o(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; g2 = r; r = r + 16 | 0; h2 = g2 + 12 | 0; i3 = g2 + 8 | 0; l2 = g2 + 4 | 0; j2 = g2; k[l2 >> 2] = k[b2 >> 2]; k[j2 >> 2] = k[c2 >> 2]; k[i3 >> 2] = k[l2 >> 2]; k[h2 >> 2] = k[j2 >> 2]; a2 = Nu(a2, i3, h2, d2, e2, f2) | 0; r = g2; return a2 | 0; } function ap(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; g2 = r; r = r + 16 | 0; h2 = g2 + 12 | 0; i3 = g2 + 8 | 0; l2 = g2 + 4 | 0; j2 = g2; k[l2 >> 2] = k[b2 >> 2]; k[j2 >> 2] = k[c2 >> 2]; k[i3 >> 2] = k[l2 >> 2]; k[h2 >> 2] = k[j2 >> 2]; a2 = Ou(a2, i3, h2, d2, e2, f2) | 0; r = g2; return a2 | 0; } function bp(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; g2 = r; r = r + 16 | 0; h2 = g2 + 12 | 0; i3 = g2 + 8 | 0; l2 = g2 + 4 | 0; j2 = g2; k[l2 >> 2] = k[b2 >> 2]; k[j2 >> 2] = k[c2 >> 2]; k[i3 >> 2] = k[l2 >> 2]; k[h2 >> 2] = k[j2 >> 2]; a2 = Pu(a2, i3, h2, d2, e2, f2) | 0; r = g2; return a2 | 0; } function cp(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; g2 = r; r = r + 16 | 0; h2 = g2 + 12 | 0; i3 = g2 + 8 | 0; l2 = g2 + 4 | 0; j2 = g2; k[l2 >> 2] = k[b2 >> 2]; k[j2 >> 2] = k[c2 >> 2]; k[i3 >> 2] = k[l2 >> 2]; k[h2 >> 2] = k[j2 >> 2]; a2 = Qu(a2, i3, h2, d2, e2, f2) | 0; r = g2; return a2 | 0; } function dp(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0; C2 = r; r = r + 240 | 0; w2 = C2; q2 = C2 + 208 | 0; E2 = C2 + 32 | 0; a2 = C2 + 28 | 0; D2 = C2 + 16 | 0; v2 = C2 + 12 | 0; t2 = C2 + 48 | 0; u2 = C2 + 8 | 0; s2 = C2 + 4 | 0; k[E2 >> 2] = 0; k[E2 + 4 >> 2] = 0; k[E2 + 8 >> 2] = 0; x = 0; d2 = ta(68, d2 | 0) | 0; p2 = x; x = 0; do if (p2 & 1) a2 = Wa() | 0; else { k[a2 >> 2] = d2; x = 0; a2 = Aa(37, a2 | 0, 44220) | 0; p2 = x; x = 0; if (!(p2 & 1) ? (x = 0, Ea(k[(k[a2 >> 2] | 0) + 32 >> 2] | 0, a2 | 0, 57498, 57524, q2 | 0) | 0, p2 = x, x = 0, !(p2 & 1)) : 0) { zm(d2) | 0; k[D2 >> 2] = 0; k[D2 + 4 >> 2] = 0; k[D2 + 8 >> 2] = 0; if (!(i2[D2 >> 0] & 1)) a2 = 10; else a2 = (k[D2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, D2 | 0, a2 | 0, 0); p2 = x; x = 0; a: do if (!(p2 & 1)) { o2 = D2 + 8 | 0; p2 = D2 + 1 | 0; d2 = (i2[D2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; k[v2 >> 2] = d2; k[u2 >> 2] = t2; k[s2 >> 2] = 0; n2 = D2 + 4 | 0; a2 = k[b2 >> 2] | 0; b: while (1) { if (a2) { if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { x = 0; g2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; m2 = x; x = 0; if (m2 & 1) { F2 = 29; break; } if ((g2 | 0) == -1) { k[b2 >> 2] = 0; a2 = 0; } } } else a2 = 0; h2 = (a2 | 0) == 0; g2 = k[c2 >> 2] | 0; do if (g2) { if ((k[g2 + 12 >> 2] | 0) != (k[g2 + 16 >> 2] | 0)) if (h2) break; else break b; x = 0; j2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; m2 = x; x = 0; if (m2 & 1) { F2 = 29; break b; } if ((j2 | 0) != -1) if (h2) break; else break b; else { k[c2 >> 2] = 0; F2 = 19; break; } } else F2 = 19; while (0); if ((F2 | 0) == 19) { F2 = 0; if (h2) { g2 = 0; break; } else g2 = 0; } h2 = i2[D2 >> 0] | 0; h2 = (h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[n2 >> 2] | 0; if ((k[v2 >> 2] | 0) == (d2 + h2 | 0)) { x = 0; Fa(8, D2 | 0, h2 << 1 | 0, 0); m2 = x; x = 0; if (m2 & 1) { F2 = 29; break; } if (!(i2[D2 >> 0] & 1)) d2 = 10; else d2 = (k[D2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, D2 | 0, d2 | 0, 0); m2 = x; x = 0; if (m2 & 1) { F2 = 29; break; } d2 = (i2[D2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; k[v2 >> 2] = d2 + h2; } j2 = a2 + 12 | 0; h2 = k[j2 >> 2] | 0; m2 = a2 + 16 | 0; if ((h2 | 0) == (k[m2 >> 2] | 0)) { x = 0; h2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; G2 = x; x = 0; if (G2 & 1) { F2 = 29; break; } } else h2 = l[h2 >> 0] | 0; if (ep(h2 & 255, 16, d2, v2, s2, 0, E2, t2, u2, q2) | 0) break; g2 = k[j2 >> 2] | 0; if ((g2 | 0) == (k[m2 >> 2] | 0)) { x = 0; ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; G2 = x; x = 0; if (G2 & 1) { F2 = 29; break; } else continue; } else { k[j2 >> 2] = g2 + 1; continue; } } if ((F2 | 0) == 29) { a2 = Wa() | 0; break; } x = 0; Fa(8, D2 | 0, (k[v2 >> 2] | 0) - d2 | 0, 0); G2 = x; x = 0; if ((!(G2 & 1) ? (y2 = i2[D2 >> 0] | 0, z2 = k[o2 >> 2] | 0, x = 0, A2 = Da(3) | 0, G2 = x, x = 0, !(G2 & 1)) : 0) ? (x = 0, k[w2 >> 2] = f2, B2 = Ea(16, ((y2 & 1) == 0 ? p2 : z2) | 0, A2 | 0, 58882, w2 | 0) | 0, G2 = x, x = 0, !(G2 & 1)) : 0) { if ((B2 | 0) != 1) k[e2 >> 2] = 4; if (a2) { if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { x = 0; d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; G2 = x; x = 0; if (G2 & 1) { F2 = 30; break; } if ((d2 | 0) == -1) { k[b2 >> 2] = 0; a2 = 0; } } } else a2 = 0; d2 = (a2 | 0) == 0; do if (g2) { if ((k[g2 + 12 >> 2] | 0) == (k[g2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; G2 = x; x = 0; if (G2 & 1) { F2 = 30; break a; } if ((a2 | 0) == -1) { k[c2 >> 2] = 0; F2 = 55; break; } } if (!d2) F2 = 56; } else F2 = 55; while (0); if ((F2 | 0) == 55 ? d2 : 0) F2 = 56; if ((F2 | 0) == 56) k[e2 >> 2] = k[e2 >> 2] | 2; G2 = k[b2 >> 2] | 0; Sm(D2); Sm(E2); r = C2; return G2 | 0; } else F2 = 30; } else F2 = 30; while (0); if ((F2 | 0) == 30) a2 = Wa() | 0; Sm(D2); break; } a2 = Wa() | 0; zm(d2) | 0; } while (0); Sm(E2); fb(a2 | 0); return 0; } function ep(a2, b2, c2, d2, e2, f2, g2, h2, j2, l2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; j2 = j2 | 0; l2 = l2 | 0; var m2 = 0, n2 = 0, o2 = 0, p2 = 0; o2 = k[d2 >> 2] | 0; p2 = (o2 | 0) == (c2 | 0); do if (p2) { m2 = (i2[l2 + 24 >> 0] | 0) == a2 << 24 >> 24; if (!m2 ? (i2[l2 + 25 >> 0] | 0) != a2 << 24 >> 24 : 0) { n2 = 5; break; } k[d2 >> 2] = c2 + 1; i2[c2 >> 0] = m2 ? 43 : 45; k[e2 >> 2] = 0; m2 = 0; } else n2 = 5; while (0); a: do if ((n2 | 0) == 5) { n2 = i2[g2 >> 0] | 0; if (a2 << 24 >> 24 == f2 << 24 >> 24 ? (((n2 & 1) == 0 ? (n2 & 255) >>> 1 : k[g2 + 4 >> 2] | 0) | 0) != 0 : 0) { m2 = k[j2 >> 2] | 0; if ((m2 - h2 | 0) >= 160) { m2 = 0; break; } b2 = k[e2 >> 2] | 0; k[j2 >> 2] = m2 + 4; k[m2 >> 2] = b2; k[e2 >> 2] = 0; m2 = 0; break; } g2 = l2 + 26 | 0; m2 = l2; while (1) { if ((i2[m2 >> 0] | 0) == a2 << 24 >> 24) break; m2 = m2 + 1 | 0; if ((m2 | 0) == (g2 | 0)) { m2 = g2; break; } } m2 = m2 - l2 | 0; if ((m2 | 0) > 23) m2 = -1; else { switch (b2 | 0) { case 10: case 8: { if ((m2 | 0) >= (b2 | 0)) { m2 = -1; break a; } break; } case 16: { if ((m2 | 0) >= 22) { if (p2) { m2 = -1; break a; } if ((o2 - c2 | 0) >= 3) { m2 = -1; break a; } if ((i2[o2 + -1 >> 0] | 0) != 48) { m2 = -1; break a; } k[e2 >> 2] = 0; m2 = i2[57498 + m2 >> 0] | 0; k[d2 >> 2] = o2 + 1; i2[o2 >> 0] = m2; m2 = 0; break a; } break; } default: { } } m2 = i2[57498 + m2 >> 0] | 0; k[d2 >> 2] = o2 + 1; i2[o2 >> 0] = m2; k[e2 >> 2] = (k[e2 >> 2] | 0) + 1; m2 = 0; } } while (0); return m2 | 0; } function fp() { var a2 = 0, b2 = 0; do if ((i2[1968] | 0) == 0 ? (Qa(1968) | 0) != 0 : 0) { x = 0; a2 = va(31, 2147483647, 58885, 0) | 0; b2 = x; x = 0; if (b2 & 1) { b2 = Wa() | 0; Bb(1968); fb(b2 | 0); } else { k[11196] = a2; Ya(1968); break; } } while (0); return k[11196] | 0; } function gp(a2) { a2 = a2 | 0; return; } function hp(a2) { a2 = a2 | 0; mj(a2); return; } function ip(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0; q2 = r; r = r + 64 | 0; o2 = q2 + 56 | 0; g2 = q2 + 52 | 0; m2 = q2 + 48 | 0; h2 = q2 + 44 | 0; j2 = q2 + 40 | 0; l2 = q2 + 36 | 0; n2 = q2 + 32 | 0; s2 = q2 + 8 | 0; p2 = q2; a: do if (!(k[d2 + 4 >> 2] & 1)) { k[m2 >> 2] = -1; s2 = k[(k[a2 >> 2] | 0) + 16 >> 2] | 0; k[h2 >> 2] = k[b2 >> 2]; k[j2 >> 2] = k[c2 >> 2]; k[g2 >> 2] = k[h2 >> 2]; k[o2 >> 2] = k[j2 >> 2]; g2 = Nb[s2 & 63](a2, g2, o2, d2, e2, m2) | 0; k[b2 >> 2] = g2; switch (k[m2 >> 2] | 0) { case 0: { i2[f2 >> 0] = 0; break a; } case 1: { i2[f2 >> 0] = 1; break a; } default: { i2[f2 >> 0] = 1; k[e2 >> 2] = 4; break a; } } } else { g2 = tn(d2) | 0; k[l2 >> 2] = g2; x = 0; a2 = Aa(37, l2 | 0, 44212) | 0; m2 = x; x = 0; do if (!(m2 & 1)) { zm(g2) | 0; g2 = tn(d2) | 0; k[n2 >> 2] = g2; x = 0; j2 = Aa(37, n2 | 0, 44368) | 0; n2 = x; x = 0; if (n2 & 1) { s2 = Wa() | 0; zm(g2) | 0; g2 = s2; break; } zm(g2) | 0; x = 0; ra(k[(k[j2 >> 2] | 0) + 24 >> 2] | 0, s2 | 0, j2 | 0); n2 = x; x = 0; if (!(n2 & 1)) { h2 = s2 + 12 | 0; x = 0; ra(k[(k[j2 >> 2] | 0) + 28 >> 2] | 0, h2 | 0, j2 | 0); n2 = x; x = 0; if (!(n2 & 1)) { k[p2 >> 2] = k[c2 >> 2]; x = 0; k[o2 >> 2] = k[p2 >> 2]; g2 = na(8, b2 | 0, o2 | 0, s2 | 0, s2 + 24 | 0, a2 | 0, e2 | 0, 1) | 0; e2 = x; x = 0; if (e2 & 1) { g2 = Wa() | 0; en(s2 + 12 | 0); en(s2); break; } else { i2[f2 >> 0] = (g2 | 0) == (s2 | 0) & 1; g2 = k[b2 >> 2] | 0; en(s2 + 12 | 0); en(s2); break a; } } } else h2 = s2; g2 = Wa() | 0; j2 = M; if ((s2 | 0) != (h2 | 0)) do { h2 = h2 + -12 | 0; en(h2); } while ((h2 | 0) != (s2 | 0)); } else { s2 = Wa() | 0; zm(g2) | 0; g2 = s2; } while (0); fb(g2 | 0); } while (0); r = q2; return g2 | 0; } function jp(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; g2 = r; r = r + 16 | 0; h2 = g2 + 12 | 0; i3 = g2 + 8 | 0; l2 = g2 + 4 | 0; j2 = g2; k[l2 >> 2] = k[b2 >> 2]; k[j2 >> 2] = k[c2 >> 2]; k[i3 >> 2] = k[l2 >> 2]; k[h2 >> 2] = k[j2 >> 2]; a2 = Tu(a2, i3, h2, d2, e2, f2) | 0; r = g2; return a2 | 0; } function kp(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; g2 = r; r = r + 16 | 0; h2 = g2 + 12 | 0; i3 = g2 + 8 | 0; l2 = g2 + 4 | 0; j2 = g2; k[l2 >> 2] = k[b2 >> 2]; k[j2 >> 2] = k[c2 >> 2]; k[i3 >> 2] = k[l2 >> 2]; k[h2 >> 2] = k[j2 >> 2]; a2 = Uu(a2, i3, h2, d2, e2, f2) | 0; r = g2; return a2 | 0; } function lp(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; g2 = r; r = r + 16 | 0; h2 = g2 + 12 | 0; i3 = g2 + 8 | 0; l2 = g2 + 4 | 0; j2 = g2; k[l2 >> 2] = k[b2 >> 2]; k[j2 >> 2] = k[c2 >> 2]; k[i3 >> 2] = k[l2 >> 2]; k[h2 >> 2] = k[j2 >> 2]; a2 = Vu(a2, i3, h2, d2, e2, f2) | 0; r = g2; return a2 | 0; } function mp(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; g2 = r; r = r + 16 | 0; h2 = g2 + 12 | 0; i3 = g2 + 8 | 0; l2 = g2 + 4 | 0; j2 = g2; k[l2 >> 2] = k[b2 >> 2]; k[j2 >> 2] = k[c2 >> 2]; k[i3 >> 2] = k[l2 >> 2]; k[h2 >> 2] = k[j2 >> 2]; a2 = Wu(a2, i3, h2, d2, e2, f2) | 0; r = g2; return a2 | 0; } function np(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; g2 = r; r = r + 16 | 0; h2 = g2 + 12 | 0; i3 = g2 + 8 | 0; l2 = g2 + 4 | 0; j2 = g2; k[l2 >> 2] = k[b2 >> 2]; k[j2 >> 2] = k[c2 >> 2]; k[i3 >> 2] = k[l2 >> 2]; k[h2 >> 2] = k[j2 >> 2]; a2 = Xu(a2, i3, h2, d2, e2, f2) | 0; r = g2; return a2 | 0; } function op(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; g2 = r; r = r + 16 | 0; h2 = g2 + 12 | 0; i3 = g2 + 8 | 0; l2 = g2 + 4 | 0; j2 = g2; k[l2 >> 2] = k[b2 >> 2]; k[j2 >> 2] = k[c2 >> 2]; k[i3 >> 2] = k[l2 >> 2]; k[h2 >> 2] = k[j2 >> 2]; a2 = Yu(a2, i3, h2, d2, e2, f2) | 0; r = g2; return a2 | 0; } function pp(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; g2 = r; r = r + 16 | 0; h2 = g2 + 12 | 0; i3 = g2 + 8 | 0; l2 = g2 + 4 | 0; j2 = g2; k[l2 >> 2] = k[b2 >> 2]; k[j2 >> 2] = k[c2 >> 2]; k[i3 >> 2] = k[l2 >> 2]; k[h2 >> 2] = k[j2 >> 2]; a2 = Zu(a2, i3, h2, d2, e2, f2) | 0; r = g2; return a2 | 0; } function qp(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; g2 = r; r = r + 16 | 0; h2 = g2 + 12 | 0; i3 = g2 + 8 | 0; l2 = g2 + 4 | 0; j2 = g2; k[l2 >> 2] = k[b2 >> 2]; k[j2 >> 2] = k[c2 >> 2]; k[i3 >> 2] = k[l2 >> 2]; k[h2 >> 2] = k[j2 >> 2]; a2 = _u(a2, i3, h2, d2, e2, f2) | 0; r = g2; return a2 | 0; } function rp(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0; g2 = r; r = r + 16 | 0; h2 = g2 + 12 | 0; i3 = g2 + 8 | 0; l2 = g2 + 4 | 0; j2 = g2; k[l2 >> 2] = k[b2 >> 2]; k[j2 >> 2] = k[c2 >> 2]; k[i3 >> 2] = k[l2 >> 2]; k[h2 >> 2] = k[j2 >> 2]; a2 = $u(a2, i3, h2, d2, e2, f2) | 0; r = g2; return a2 | 0; } function sp(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0; B2 = r; r = r + 320 | 0; v2 = B2; p2 = B2 + 208 | 0; D2 = B2 + 32 | 0; a2 = B2 + 28 | 0; C2 = B2 + 16 | 0; u2 = B2 + 12 | 0; s2 = B2 + 48 | 0; t2 = B2 + 8 | 0; q2 = B2 + 4 | 0; k[D2 >> 2] = 0; k[D2 + 4 >> 2] = 0; k[D2 + 8 >> 2] = 0; x = 0; d2 = ta(68, d2 | 0) | 0; o2 = x; x = 0; do if (o2 & 1) a2 = Wa() | 0; else { k[a2 >> 2] = d2; x = 0; a2 = Aa(37, a2 | 0, 44212) | 0; o2 = x; x = 0; if (!(o2 & 1) ? (x = 0, Ea(k[(k[a2 >> 2] | 0) + 48 >> 2] | 0, a2 | 0, 57498, 57524, p2 | 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) { zm(d2) | 0; k[C2 >> 2] = 0; k[C2 + 4 >> 2] = 0; k[C2 + 8 >> 2] = 0; if (!(i2[C2 >> 0] & 1)) a2 = 10; else a2 = (k[C2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, C2 | 0, a2 | 0, 0); o2 = x; x = 0; a: do if (!(o2 & 1)) { n2 = C2 + 8 | 0; o2 = C2 + 1 | 0; a2 = (i2[C2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; k[u2 >> 2] = a2; k[t2 >> 2] = s2; k[q2 >> 2] = 0; m2 = C2 + 4 | 0; g2 = k[b2 >> 2] | 0; b: while (1) { if (g2) { d2 = k[g2 + 12 >> 2] | 0; if ((d2 | 0) == (k[g2 + 16 >> 2] | 0)) { x = 0; d2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; l2 = x; x = 0; if (l2 & 1) { E2 = 30; break; } } else d2 = k[d2 >> 2] | 0; if ((d2 | 0) == -1) { k[b2 >> 2] = 0; d2 = 0; h2 = 1; } else { d2 = g2; h2 = 0; } } else { d2 = 0; h2 = 1; } j2 = k[c2 >> 2] | 0; do if (j2) { g2 = k[j2 + 12 >> 2] | 0; if ((g2 | 0) == (k[j2 + 16 >> 2] | 0)) { x = 0; g2 = ta(k[(k[j2 >> 2] | 0) + 36 >> 2] | 0, j2 | 0) | 0; l2 = x; x = 0; if (l2 & 1) { E2 = 30; break b; } } else g2 = k[g2 >> 2] | 0; if ((g2 | 0) != -1) if (h2) { g2 = j2; break; } else { g2 = j2; break b; } else { k[c2 >> 2] = 0; E2 = 20; break; } } else E2 = 20; while (0); if ((E2 | 0) == 20) { E2 = 0; if (h2) { g2 = 0; break; } else g2 = 0; } h2 = i2[C2 >> 0] | 0; h2 = (h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[m2 >> 2] | 0; if ((k[u2 >> 2] | 0) == (a2 + h2 | 0)) { x = 0; Fa(8, C2 | 0, h2 << 1 | 0, 0); l2 = x; x = 0; if (l2 & 1) { E2 = 30; break; } if (!(i2[C2 >> 0] & 1)) a2 = 10; else a2 = (k[C2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, C2 | 0, a2 | 0, 0); l2 = x; x = 0; if (l2 & 1) { E2 = 30; break; } a2 = (i2[C2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; k[u2 >> 2] = a2 + h2; } j2 = d2 + 12 | 0; h2 = k[j2 >> 2] | 0; l2 = d2 + 16 | 0; if ((h2 | 0) == (k[l2 >> 2] | 0)) { x = 0; h2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; F2 = x; x = 0; if (F2 & 1) { E2 = 30; break; } } else h2 = k[h2 >> 2] | 0; if (tp(h2, 16, a2, u2, q2, 0, D2, s2, t2, p2) | 0) break; g2 = k[j2 >> 2] | 0; if ((g2 | 0) == (k[l2 >> 2] | 0)) { x = 0; ta(k[(k[d2 >> 2] | 0) + 40 >> 2] | 0, d2 | 0) | 0; F2 = x; x = 0; if (F2 & 1) { E2 = 30; break; } else { g2 = d2; continue; } } else { k[j2 >> 2] = g2 + 4; g2 = d2; continue; } } if ((E2 | 0) == 30) { a2 = Wa() | 0; break; } x = 0; Fa(8, C2 | 0, (k[u2 >> 2] | 0) - a2 | 0, 0); F2 = x; x = 0; if ((!(F2 & 1) ? (w2 = i2[C2 >> 0] | 0, y2 = k[n2 >> 2] | 0, x = 0, z2 = Da(3) | 0, F2 = x, x = 0, !(F2 & 1)) : 0) ? (x = 0, k[v2 >> 2] = f2, A2 = Ea(16, ((w2 & 1) == 0 ? o2 : y2) | 0, z2 | 0, 58882, v2 | 0) | 0, F2 = x, x = 0, !(F2 & 1)) : 0) { if ((A2 | 0) != 1) k[e2 >> 2] = 4; if (d2) { a2 = k[d2 + 12 >> 2] | 0; if ((a2 | 0) == (k[d2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; F2 = x; x = 0; if (F2 & 1) { E2 = 31; break; } } else a2 = k[a2 >> 2] | 0; if ((a2 | 0) == -1) { k[b2 >> 2] = 0; d2 = 1; } else d2 = 0; } else d2 = 1; do if (g2) { a2 = k[g2 + 12 >> 2] | 0; if ((a2 | 0) == (k[g2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; F2 = x; x = 0; if (F2 & 1) { E2 = 31; break a; } } else a2 = k[a2 >> 2] | 0; if ((a2 | 0) != -1) if (d2) break; else { E2 = 59; break; } else { k[c2 >> 2] = 0; E2 = 57; break; } } else E2 = 57; while (0); if ((E2 | 0) == 57 ? d2 : 0) E2 = 59; if ((E2 | 0) == 59) k[e2 >> 2] = k[e2 >> 2] | 2; F2 = k[b2 >> 2] | 0; Sm(C2); Sm(D2); r = B2; return F2 | 0; } else E2 = 31; } else E2 = 31; while (0); if ((E2 | 0) == 31) a2 = Wa() | 0; Sm(C2); break; } a2 = Wa() | 0; zm(d2) | 0; } while (0); Sm(D2); fb(a2 | 0); return 0; } function tp(a2, b2, c2, d2, e2, f2, g2, h2, j2, l2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; j2 = j2 | 0; l2 = l2 | 0; var m2 = 0, n2 = 0, o2 = 0, p2 = 0; o2 = k[d2 >> 2] | 0; p2 = (o2 | 0) == (c2 | 0); do if (p2) { m2 = (k[l2 + 96 >> 2] | 0) == (a2 | 0); if (!m2 ? (k[l2 + 100 >> 2] | 0) != (a2 | 0) : 0) { n2 = 5; break; } k[d2 >> 2] = c2 + 1; i2[c2 >> 0] = m2 ? 43 : 45; k[e2 >> 2] = 0; m2 = 0; } else n2 = 5; while (0); a: do if ((n2 | 0) == 5) { n2 = i2[g2 >> 0] | 0; if ((a2 | 0) == (f2 | 0) ? (((n2 & 1) == 0 ? (n2 & 255) >>> 1 : k[g2 + 4 >> 2] | 0) | 0) != 0 : 0) { m2 = k[j2 >> 2] | 0; if ((m2 - h2 | 0) >= 160) { m2 = 0; break; } b2 = k[e2 >> 2] | 0; k[j2 >> 2] = m2 + 4; k[m2 >> 2] = b2; k[e2 >> 2] = 0; m2 = 0; break; } g2 = l2 + 104 | 0; m2 = l2; while (1) { if ((k[m2 >> 2] | 0) == (a2 | 0)) break; m2 = m2 + 4 | 0; if ((m2 | 0) == (g2 | 0)) { m2 = g2; break; } } m2 = m2 - l2 | 0; g2 = m2 >> 2; if ((m2 | 0) > 92) m2 = -1; else { switch (b2 | 0) { case 10: case 8: { if ((g2 | 0) >= (b2 | 0)) { m2 = -1; break a; } break; } case 16: { if ((m2 | 0) >= 88) { if (p2) { m2 = -1; break a; } if ((o2 - c2 | 0) >= 3) { m2 = -1; break a; } if ((i2[o2 + -1 >> 0] | 0) != 48) { m2 = -1; break a; } k[e2 >> 2] = 0; m2 = i2[57498 + g2 >> 0] | 0; k[d2 >> 2] = o2 + 1; i2[o2 >> 0] = m2; m2 = 0; break a; } break; } default: { } } m2 = i2[57498 + g2 >> 0] | 0; k[d2 >> 2] = o2 + 1; i2[o2 >> 0] = m2; k[e2 >> 2] = (k[e2 >> 2] | 0) + 1; m2 = 0; } } while (0); return m2 | 0; } function up(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; j2 = r; r = r + 16 | 0; h2 = j2; b2 = tn(b2) | 0; k[h2 >> 2] = b2; x = 0; e2 = Aa(37, h2 | 0, 44220) | 0; l2 = x; x = 0; if ((((!(l2 & 1) ? (x = 0, Ea(k[(k[e2 >> 2] | 0) + 32 >> 2] | 0, e2 | 0, 57498, 57524, c2 | 0) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) ? (x = 0, g2 = Aa(37, h2 | 0, 44360) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) ? (x = 0, f2 = ta(k[(k[g2 >> 2] | 0) + 16 >> 2] | 0, g2 | 0) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) ? (i2[d2 >> 0] = f2, x = 0, ra(k[(k[g2 >> 2] | 0) + 20 >> 2] | 0, a2 | 0, g2 | 0), l2 = x, x = 0, !(l2 & 1)) : 0) { zm(b2) | 0; r = j2; return; } l2 = Wa() | 0; zm(b2) | 0; fb(l2 | 0); } function vp(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; m2 = r; r = r + 16 | 0; l2 = m2; b2 = tn(b2) | 0; k[l2 >> 2] = b2; x = 0; f2 = Aa(37, l2 | 0, 44220) | 0; n2 = x; x = 0; if (((((!(n2 & 1) ? (x = 0, Ea(k[(k[f2 >> 2] | 0) + 32 >> 2] | 0, f2 | 0, 57498, 57530, c2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) ? (x = 0, j2 = Aa(37, l2 | 0, 44360) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) ? (x = 0, g2 = ta(k[(k[j2 >> 2] | 0) + 12 >> 2] | 0, j2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) ? (i2[d2 >> 0] = g2, x = 0, h2 = ta(k[(k[j2 >> 2] | 0) + 16 >> 2] | 0, j2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) ? (i2[e2 >> 0] = h2, x = 0, ra(k[(k[j2 >> 2] | 0) + 20 >> 2] | 0, a2 | 0, j2 | 0), n2 = x, x = 0, !(n2 & 1)) : 0) { zm(b2) | 0; r = m2; return; } n2 = Wa() | 0; zm(b2) | 0; fb(n2 | 0); } function wp(a2, b2, c2, d2, e2, f2, g2, h2, j2, m2, n2, o2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; j2 = j2 | 0; m2 = m2 | 0; n2 = n2 | 0; o2 = o2 | 0; var p2 = 0, q2 = 0; a: do if (a2 << 24 >> 24 == f2 << 24 >> 24) if (i2[b2 >> 0] | 0) { i2[b2 >> 0] = 0; c2 = k[e2 >> 2] | 0; k[e2 >> 2] = c2 + 1; i2[c2 >> 0] = 46; c2 = i2[h2 >> 0] | 0; if ((((c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[h2 + 4 >> 2] | 0) | 0) != 0 ? (p2 = k[m2 >> 2] | 0, (p2 - j2 | 0) < 160) : 0) { j2 = k[n2 >> 2] | 0; k[m2 >> 2] = p2 + 4; k[p2 >> 2] = j2; p2 = 0; } else p2 = 0; } else p2 = -1; else { if (a2 << 24 >> 24 == g2 << 24 >> 24 ? (g2 = i2[h2 >> 0] | 0, (((g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[h2 + 4 >> 2] | 0) | 0) != 0) : 0) { if (!(i2[b2 >> 0] | 0)) { p2 = -1; break; } p2 = k[m2 >> 2] | 0; if ((p2 - j2 | 0) >= 160) { p2 = 0; break; } j2 = k[n2 >> 2] | 0; k[m2 >> 2] = p2 + 4; k[p2 >> 2] = j2; k[n2 >> 2] = 0; p2 = 0; break; } f2 = o2 + 32 | 0; p2 = o2; while (1) { if ((i2[p2 >> 0] | 0) == a2 << 24 >> 24) break; p2 = p2 + 1 | 0; if ((p2 | 0) == (f2 | 0)) { p2 = f2; break; } } f2 = p2 - o2 | 0; if ((f2 | 0) > 31) p2 = -1; else { g2 = i2[57498 + f2 >> 0] | 0; switch (f2 | 0) { case 24: case 25: { p2 = k[e2 >> 2] | 0; if ((p2 | 0) != (d2 | 0) ? (l[p2 + -1 >> 0] & 95 | 0) != (l[c2 >> 0] & 127 | 0) : 0) { p2 = -1; break a; } k[e2 >> 2] = p2 + 1; i2[p2 >> 0] = g2; p2 = 0; break a; } case 23: case 22: { i2[c2 >> 0] = 80; p2 = k[e2 >> 2] | 0; k[e2 >> 2] = p2 + 1; i2[p2 >> 0] = g2; p2 = 0; break a; } default: { p2 = g2 & 95; if ((((p2 | 0) == (i2[c2 >> 0] | 0) ? (i2[c2 >> 0] = p2 | 128, (i2[b2 >> 0] | 0) != 0) : 0) ? (i2[b2 >> 0] = 0, c2 = i2[h2 >> 0] | 0, (((c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[h2 + 4 >> 2] | 0) | 0) != 0) : 0) ? (q2 = k[m2 >> 2] | 0, (q2 - j2 | 0) < 160) : 0) { j2 = k[n2 >> 2] | 0; k[m2 >> 2] = q2 + 4; k[q2 >> 2] = j2; } m2 = k[e2 >> 2] | 0; k[e2 >> 2] = m2 + 1; i2[m2 >> 0] = g2; if ((f2 | 0) > 21) { p2 = 0; break a; } k[n2 >> 2] = (k[n2 >> 2] | 0) + 1; p2 = 0; break a; } } } } while (0); return p2 | 0; } function xp(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0; i3 = r; r = r + 16 | 0; h2 = i3; b2 = tn(b2) | 0; k[h2 >> 2] = b2; x = 0; e2 = Aa(37, h2 | 0, 44212) | 0; j2 = x; x = 0; if ((((!(j2 & 1) ? (x = 0, Ea(k[(k[e2 >> 2] | 0) + 48 >> 2] | 0, e2 | 0, 57498, 57524, c2 | 0) | 0, j2 = x, x = 0, !(j2 & 1)) : 0) ? (x = 0, g2 = Aa(37, h2 | 0, 44368) | 0, j2 = x, x = 0, !(j2 & 1)) : 0) ? (x = 0, f2 = ta(k[(k[g2 >> 2] | 0) + 16 >> 2] | 0, g2 | 0) | 0, j2 = x, x = 0, !(j2 & 1)) : 0) ? (k[d2 >> 2] = f2, x = 0, ra(k[(k[g2 >> 2] | 0) + 20 >> 2] | 0, a2 | 0, g2 | 0), j2 = x, x = 0, !(j2 & 1)) : 0) { zm(b2) | 0; r = i3; return; } j2 = Wa() | 0; zm(b2) | 0; fb(j2 | 0); } function yp(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0; l2 = r; r = r + 16 | 0; j2 = l2; b2 = tn(b2) | 0; k[j2 >> 2] = b2; x = 0; f2 = Aa(37, j2 | 0, 44212) | 0; m2 = x; x = 0; if (((((!(m2 & 1) ? (x = 0, Ea(k[(k[f2 >> 2] | 0) + 48 >> 2] | 0, f2 | 0, 57498, 57530, c2 | 0) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) ? (x = 0, i3 = Aa(37, j2 | 0, 44368) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) ? (x = 0, g2 = ta(k[(k[i3 >> 2] | 0) + 12 >> 2] | 0, i3 | 0) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) ? (k[d2 >> 2] = g2, x = 0, h2 = ta(k[(k[i3 >> 2] | 0) + 16 >> 2] | 0, i3 | 0) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) ? (k[e2 >> 2] = h2, x = 0, ra(k[(k[i3 >> 2] | 0) + 20 >> 2] | 0, a2 | 0, i3 | 0), m2 = x, x = 0, !(m2 & 1)) : 0) { zm(b2) | 0; r = l2; return; } m2 = Wa() | 0; zm(b2) | 0; fb(m2 | 0); } function zp(a2, b2, c2, d2, e2, f2, g2, h2, j2, m2, n2, o2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; j2 = j2 | 0; m2 = m2 | 0; n2 = n2 | 0; o2 = o2 | 0; var p2 = 0, q2 = 0; a: do if ((a2 | 0) == (f2 | 0)) if (i2[b2 >> 0] | 0) { i2[b2 >> 0] = 0; c2 = k[e2 >> 2] | 0; k[e2 >> 2] = c2 + 1; i2[c2 >> 0] = 46; c2 = i2[h2 >> 0] | 0; if ((((c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[h2 + 4 >> 2] | 0) | 0) != 0 ? (p2 = k[m2 >> 2] | 0, (p2 - j2 | 0) < 160) : 0) { j2 = k[n2 >> 2] | 0; k[m2 >> 2] = p2 + 4; k[p2 >> 2] = j2; p2 = 0; } else p2 = 0; } else p2 = -1; else { if ((a2 | 0) == (g2 | 0) ? (g2 = i2[h2 >> 0] | 0, (((g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[h2 + 4 >> 2] | 0) | 0) != 0) : 0) { if (!(i2[b2 >> 0] | 0)) { p2 = -1; break; } p2 = k[m2 >> 2] | 0; if ((p2 - j2 | 0) >= 160) { p2 = 0; break; } j2 = k[n2 >> 2] | 0; k[m2 >> 2] = p2 + 4; k[p2 >> 2] = j2; k[n2 >> 2] = 0; p2 = 0; break; } f2 = o2 + 128 | 0; p2 = o2; while (1) { if ((k[p2 >> 2] | 0) == (a2 | 0)) break; p2 = p2 + 4 | 0; if ((p2 | 0) == (f2 | 0)) { p2 = f2; break; } } f2 = p2 - o2 | 0; p2 = f2 >> 2; if ((f2 | 0) <= 124) { g2 = i2[57498 + p2 >> 0] | 0; switch (p2 | 0) { case 24: case 25: { p2 = k[e2 >> 2] | 0; if ((p2 | 0) != (d2 | 0) ? (l[p2 + -1 >> 0] & 95 | 0) != (l[c2 >> 0] & 127 | 0) : 0) { p2 = -1; break a; } k[e2 >> 2] = p2 + 1; i2[p2 >> 0] = g2; p2 = 0; break a; } case 23: case 22: { i2[c2 >> 0] = 80; break; } default: { p2 = g2 & 95; if ((((p2 | 0) == (i2[c2 >> 0] | 0) ? (i2[c2 >> 0] = p2 | 128, (i2[b2 >> 0] | 0) != 0) : 0) ? (i2[b2 >> 0] = 0, c2 = i2[h2 >> 0] | 0, (((c2 & 1) == 0 ? (c2 & 255) >>> 1 : k[h2 + 4 >> 2] | 0) | 0) != 0) : 0) ? (q2 = k[m2 >> 2] | 0, (q2 - j2 | 0) < 160) : 0) { j2 = k[n2 >> 2] | 0; k[m2 >> 2] = q2 + 4; k[q2 >> 2] = j2; } } } m2 = k[e2 >> 2] | 0; k[e2 >> 2] = m2 + 1; i2[m2 >> 0] = g2; if ((f2 | 0) > 84) p2 = 0; else { k[n2 >> 2] = (k[n2 >> 2] | 0) + 1; p2 = 0; } } else p2 = -1; } while (0); return p2 | 0; } function Ap(a2) { a2 = a2 | 0; return; } function Bp(a2) { a2 = a2 | 0; mj(a2); return; } function Cp(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; m2 = r; r = r + 32 | 0; f2 = m2 + 20 | 0; g2 = m2 + 16 | 0; h2 = m2 + 12 | 0; l2 = m2; a: do if (!(k[c2 + 4 >> 2] & 1)) { l2 = k[(k[a2 >> 2] | 0) + 24 >> 2] | 0; k[g2 >> 2] = k[b2 >> 2]; k[f2 >> 2] = k[g2 >> 2]; f2 = Wb[l2 & 31](a2, f2, c2, d2, e2 & 1) | 0; } else { f2 = tn(c2) | 0; k[h2 >> 2] = f2; x = 0; g2 = Aa(37, h2 | 0, 44360) | 0; j2 = x; x = 0; b: do if (j2 & 1) { m2 = Wa() | 0; zm(f2) | 0; f2 = m2; } else { zm(f2) | 0; f2 = k[g2 >> 2] | 0; if (e2) Mb[k[f2 + 24 >> 2] & 127](l2, g2); else Mb[k[f2 + 28 >> 2] & 127](l2, g2); a2 = i2[l2 >> 0] | 0; j2 = (a2 & 1) == 0; f2 = l2 + 1 | 0; e2 = l2 + 8 | 0; h2 = j2 ? f2 : l2 + 1 | 0; f2 = j2 ? f2 : k[l2 + 8 >> 2] | 0; j2 = l2 + 4 | 0; c2 = (a2 & 1) == 0; c: do if ((f2 | 0) != ((c2 ? h2 : k[e2 >> 2] | 0) + (c2 ? (a2 & 255) >>> 1 : k[j2 >> 2] | 0) | 0)) { d: while (1) { g2 = i2[f2 >> 0] | 0; d2 = k[b2 >> 2] | 0; do if (d2) { c2 = d2 + 24 | 0; a2 = k[c2 >> 2] | 0; if ((a2 | 0) != (k[d2 + 28 >> 2] | 0)) { k[c2 >> 2] = a2 + 1; i2[a2 >> 0] = g2; break; } x = 0; g2 = Aa(k[(k[d2 >> 2] | 0) + 52 >> 2] | 0, d2 | 0, g2 & 255 | 0) | 0; a2 = x; x = 0; if (a2 & 1) break d; if ((g2 | 0) == -1) k[b2 >> 2] = 0; } while (0); f2 = f2 + 1 | 0; a2 = i2[l2 >> 0] | 0; c2 = (a2 & 1) == 0; if ((f2 | 0) == ((c2 ? h2 : k[e2 >> 2] | 0) + (c2 ? (a2 & 255) >>> 1 : k[j2 >> 2] | 0) | 0)) break c; } f2 = Wa() | 0; Sm(l2); break b; } while (0); f2 = k[b2 >> 2] | 0; Sm(l2); break a; } while (0); fb(f2 | 0); } while (0); r = m2; return f2 | 0; } function Dp(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; m2 = r; r = r + 64 | 0; f2 = m2; o2 = m2 + 56 | 0; p2 = m2 + 44 | 0; h2 = m2 + 20 | 0; l2 = m2 + 16 | 0; j2 = m2 + 12 | 0; n2 = m2 + 8 | 0; g2 = m2 + 4 | 0; i2[o2 >> 0] = i2[58887] | 0; i2[o2 + 1 >> 0] = i2[58888] | 0; i2[o2 + 2 >> 0] = i2[58889] | 0; i2[o2 + 3 >> 0] = i2[58890] | 0; i2[o2 + 4 >> 0] = i2[58891] | 0; i2[o2 + 5 >> 0] = i2[58892] | 0; Ep(o2 + 1 | 0, 58893, 1, k[c2 + 4 >> 2] | 0); a2 = fp() | 0; k[f2 >> 2] = e2; e2 = p2 + (av(p2, 12, a2, o2, f2) | 0) | 0; o2 = Fp(p2, e2, c2) | 0; a2 = tn(c2) | 0; k[n2 >> 2] = a2; x = 0; ya(1, p2 | 0, o2 | 0, e2 | 0, h2 | 0, l2 | 0, j2 | 0, n2 | 0); e2 = x; x = 0; if (e2 & 1) { p2 = Wa() | 0; zm(a2) | 0; fb(p2 | 0); } else { zm(a2) | 0; k[g2 >> 2] = k[b2 >> 2]; o2 = k[l2 >> 2] | 0; p2 = k[j2 >> 2] | 0; k[f2 >> 2] = k[g2 >> 2]; p2 = md(f2, h2, o2, p2, c2, d2) | 0; r = m2; return p2 | 0; } return 0; } function Ep(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0; if (d2 & 2048) { i2[a2 >> 0] = 43; a2 = a2 + 1 | 0; } if (d2 & 512) { i2[a2 >> 0] = 35; a2 = a2 + 1 | 0; } e2 = i2[b2 >> 0] | 0; if (e2 << 24 >> 24) { f2 = b2; while (1) { f2 = f2 + 1 | 0; b2 = a2 + 1 | 0; i2[a2 >> 0] = e2; e2 = i2[f2 >> 0] | 0; if (!(e2 << 24 >> 24)) { a2 = b2; break; } else a2 = b2; } } a: do switch (d2 & 74 | 0) { case 64: { i2[a2 >> 0] = 111; break; } case 8: if (!(d2 & 16384)) { i2[a2 >> 0] = 120; break a; } else { i2[a2 >> 0] = 88; break a; } default: if (c2) { i2[a2 >> 0] = 100; break a; } else { i2[a2 >> 0] = 117; break a; } } while (0); return; } function Fp(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0; a: do switch (k[c2 + 4 >> 2] & 176 | 0) { case 16: { c2 = i2[a2 >> 0] | 0; switch (c2 << 24 >> 24) { case 43: case 45: { a2 = a2 + 1 | 0; break a; } default: { } } if ((b2 - a2 | 0) > 1 & c2 << 24 >> 24 == 48) { switch (i2[a2 + 1 >> 0] | 0) { case 88: case 120: break; default: { d2 = 7; break a; } } a2 = a2 + 2 | 0; } else d2 = 7; break; } case 32: { a2 = b2; break; } default: d2 = 7; } while (0); return a2 | 0; } function Gp(a2, b2, c2, d2, e2, f2, g2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; var h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; u2 = r; r = r + 16 | 0; v2 = u2; s2 = Ss(g2, 44220) | 0; l2 = Ss(g2, 44360) | 0; Mb[k[(k[l2 >> 2] | 0) + 20 >> 2] & 127](v2, l2); p2 = i2[v2 >> 0] | 0; q2 = v2 + 4 | 0; a: do if (!(((p2 & 1) == 0 ? (p2 & 255) >>> 1 : k[q2 >> 2] | 0) | 0)) { x = 0; Ea(k[(k[s2 >> 2] | 0) + 32 >> 2] | 0, s2 | 0, a2 | 0, c2 | 0, d2 | 0) | 0; t2 = x; x = 0; if (t2 & 1) t2 = 5; else { g2 = d2 + (c2 - a2) | 0; k[f2 >> 2] = g2; t2 = 29; } } else { k[f2 >> 2] = d2; g2 = i2[a2 >> 0] | 0; switch (g2 << 24 >> 24) { case 43: case 45: { x = 0; g2 = Aa(k[(k[s2 >> 2] | 0) + 28 >> 2] | 0, s2 | 0, g2 | 0) | 0; p2 = x; x = 0; if (p2 & 1) { t2 = 5; break a; } j2 = k[f2 >> 2] | 0; k[f2 >> 2] = j2 + 1; i2[j2 >> 0] = g2; j2 = a2 + 1 | 0; break; } default: j2 = a2; } b: do if ((c2 - j2 | 0) > 1 ? (i2[j2 >> 0] | 0) == 48 : 0) { g2 = j2 + 1 | 0; switch (i2[g2 >> 0] | 0) { case 88: case 120: break; default: break b; } x = 0; h2 = Aa(k[(k[s2 >> 2] | 0) + 28 >> 2] | 0, s2 | 0, 48) | 0; p2 = x; x = 0; if (p2 & 1) { t2 = 5; break a; } p2 = k[f2 >> 2] | 0; k[f2 >> 2] = p2 + 1; i2[p2 >> 0] = h2; x = 0; g2 = Aa(k[(k[s2 >> 2] | 0) + 28 >> 2] | 0, s2 | 0, i2[g2 >> 0] | 0) | 0; p2 = x; x = 0; if (p2 & 1) { t2 = 5; break a; } p2 = k[f2 >> 2] | 0; k[f2 >> 2] = p2 + 1; i2[p2 >> 0] = g2; j2 = j2 + 2 | 0; } while (0); if ((j2 | 0) != (c2 | 0) ? (m2 = c2 + -1 | 0, j2 >>> 0 < m2 >>> 0) : 0) { h2 = j2; g2 = m2; do { p2 = i2[h2 >> 0] | 0; i2[h2 >> 0] = i2[g2 >> 0] | 0; i2[g2 >> 0] = p2; h2 = h2 + 1 | 0; g2 = g2 + -1 | 0; } while (h2 >>> 0 < g2 >>> 0); } x = 0; m2 = ta(k[(k[l2 >> 2] | 0) + 16 >> 2] | 0, l2 | 0) | 0; p2 = x; x = 0; if (!(p2 & 1)) { n2 = v2 + 8 | 0; o2 = v2 + 1 | 0; c: do if (j2 >>> 0 < c2 >>> 0) { g2 = 0; h2 = 0; p2 = j2; while (1) { l2 = i2[((i2[v2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0) + h2 >> 0] | 0; if (l2 << 24 >> 24 != 0 & (g2 | 0) == (l2 << 24 >> 24 | 0)) { g2 = k[f2 >> 2] | 0; k[f2 >> 2] = g2 + 1; i2[g2 >> 0] = m2; g2 = i2[v2 >> 0] | 0; l2 = 0; h2 = (h2 >>> 0 < (((g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[q2 >> 2] | 0) + -1 | 0) >>> 0 & 1) + h2 | 0; } else l2 = g2; x = 0; g2 = Aa(k[(k[s2 >> 2] | 0) + 28 >> 2] | 0, s2 | 0, i2[p2 >> 0] | 0) | 0; w2 = x; x = 0; if (w2 & 1) break; w2 = k[f2 >> 2] | 0; k[f2 >> 2] = w2 + 1; i2[w2 >> 0] = g2; p2 = p2 + 1 | 0; if (p2 >>> 0 >= c2 >>> 0) break c; else g2 = l2 + 1 | 0; } g2 = Wa() | 0; break a; } while (0); h2 = a2; g2 = d2 + (j2 - h2) | 0; a2 = k[f2 >> 2] | 0; if ((g2 | 0) == (a2 | 0)) { a2 = h2; t2 = 29; } else { a2 = a2 + -1 | 0; if (g2 >>> 0 < a2 >>> 0) do { w2 = i2[g2 >> 0] | 0; i2[g2 >> 0] = i2[a2 >> 0] | 0; i2[a2 >> 0] = w2; g2 = g2 + 1 | 0; a2 = a2 + -1 | 0; } while (g2 >>> 0 < a2 >>> 0); a2 = h2; g2 = k[f2 >> 2] | 0; t2 = 29; } } else t2 = 5; } while (0); if ((t2 | 0) == 5) g2 = Wa() | 0; else if ((t2 | 0) == 29) { k[e2 >> 2] = (b2 | 0) == (c2 | 0) ? g2 : d2 + (b2 - a2) | 0; Sm(v2); r = u2; return; } Sm(v2); fb(g2 | 0); } function Hp(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; m2 = r; r = r + 96 | 0; g2 = m2 + 8 | 0; a2 = m2; o2 = m2 + 74 | 0; i3 = m2 + 32 | 0; l2 = m2 + 28 | 0; j2 = m2 + 24 | 0; n2 = m2 + 20 | 0; h2 = m2 + 16 | 0; p2 = a2; k[p2 >> 2] = 37; k[p2 + 4 >> 2] = 0; Ep(a2 + 1 | 0, 58895, 1, k[c2 + 4 >> 2] | 0); p2 = fp() | 0; q2 = g2; k[q2 >> 2] = e2; k[q2 + 4 >> 2] = f2; f2 = o2 + (av(o2, 22, p2, a2, g2) | 0) | 0; e2 = Fp(o2, f2, c2) | 0; a2 = tn(c2) | 0; k[n2 >> 2] = a2; x = 0; ya(1, o2 | 0, e2 | 0, f2 | 0, i3 | 0, l2 | 0, j2 | 0, n2 | 0); f2 = x; x = 0; if (f2 & 1) { q2 = Wa() | 0; zm(a2) | 0; fb(q2 | 0); } else { zm(a2) | 0; k[h2 >> 2] = k[b2 >> 2]; p2 = k[l2 >> 2] | 0; q2 = k[j2 >> 2] | 0; k[g2 >> 2] = k[h2 >> 2]; q2 = md(g2, i3, p2, q2, c2, d2) | 0; r = m2; return q2 | 0; } return 0; } function Ip(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; m2 = r; r = r + 64 | 0; f2 = m2; o2 = m2 + 56 | 0; p2 = m2 + 44 | 0; h2 = m2 + 20 | 0; l2 = m2 + 16 | 0; j2 = m2 + 12 | 0; n2 = m2 + 8 | 0; g2 = m2 + 4 | 0; i2[o2 >> 0] = i2[58887] | 0; i2[o2 + 1 >> 0] = i2[58888] | 0; i2[o2 + 2 >> 0] = i2[58889] | 0; i2[o2 + 3 >> 0] = i2[58890] | 0; i2[o2 + 4 >> 0] = i2[58891] | 0; i2[o2 + 5 >> 0] = i2[58892] | 0; Ep(o2 + 1 | 0, 58893, 0, k[c2 + 4 >> 2] | 0); a2 = fp() | 0; k[f2 >> 2] = e2; e2 = p2 + (av(p2, 12, a2, o2, f2) | 0) | 0; o2 = Fp(p2, e2, c2) | 0; a2 = tn(c2) | 0; k[n2 >> 2] = a2; x = 0; ya(1, p2 | 0, o2 | 0, e2 | 0, h2 | 0, l2 | 0, j2 | 0, n2 | 0); e2 = x; x = 0; if (e2 & 1) { p2 = Wa() | 0; zm(a2) | 0; fb(p2 | 0); } else { zm(a2) | 0; k[g2 >> 2] = k[b2 >> 2]; o2 = k[l2 >> 2] | 0; p2 = k[j2 >> 2] | 0; k[f2 >> 2] = k[g2 >> 2]; p2 = md(f2, h2, o2, p2, c2, d2) | 0; r = m2; return p2 | 0; } return 0; } function Jp(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; m2 = r; r = r + 112 | 0; g2 = m2 + 8 | 0; a2 = m2; o2 = m2 + 75 | 0; i3 = m2 + 32 | 0; l2 = m2 + 28 | 0; j2 = m2 + 24 | 0; n2 = m2 + 20 | 0; h2 = m2 + 16 | 0; p2 = a2; k[p2 >> 2] = 37; k[p2 + 4 >> 2] = 0; Ep(a2 + 1 | 0, 58895, 0, k[c2 + 4 >> 2] | 0); p2 = fp() | 0; q2 = g2; k[q2 >> 2] = e2; k[q2 + 4 >> 2] = f2; f2 = o2 + (av(o2, 23, p2, a2, g2) | 0) | 0; e2 = Fp(o2, f2, c2) | 0; a2 = tn(c2) | 0; k[n2 >> 2] = a2; x = 0; ya(1, o2 | 0, e2 | 0, f2 | 0, i3 | 0, l2 | 0, j2 | 0, n2 | 0); f2 = x; x = 0; if (f2 & 1) { q2 = Wa() | 0; zm(a2) | 0; fb(q2 | 0); } else { zm(a2) | 0; k[h2 >> 2] = k[b2 >> 2]; p2 = k[l2 >> 2] | 0; q2 = k[j2 >> 2] | 0; k[g2 >> 2] = k[h2 >> 2]; q2 = md(g2, i3, p2, q2, c2, d2) | 0; r = m2; return q2 | 0; } return 0; } function Kp(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = +e2; var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0; z2 = r; r = r + 176 | 0; t2 = z2 + 84 | 0; n2 = z2 + 48 | 0; m2 = z2 + 32 | 0; i3 = z2 + 24 | 0; f2 = z2 + 8 | 0; l2 = z2; q2 = z2 + 88 | 0; s2 = z2 + 80 | 0; h2 = z2 + 118 | 0; y2 = z2 + 76 | 0; w2 = z2 + 72 | 0; u2 = z2 + 68 | 0; v2 = z2 + 64 | 0; j2 = l2; k[j2 >> 2] = 37; k[j2 + 4 >> 2] = 0; j2 = Lp(l2 + 1 | 0, 58898, k[c2 + 4 >> 2] | 0) | 0; k[s2 >> 2] = q2; a2 = fp() | 0; if (j2) { k[f2 >> 2] = k[c2 + 8 >> 2]; p[f2 + 8 >> 3] = e2; f2 = av(q2, 30, a2, l2, f2) | 0; } else { p[i3 >> 3] = e2; f2 = av(q2, 30, a2, l2, i3) | 0; } a: do if ((f2 | 0) > 29) { x = 0; a2 = Da(3) | 0; f2 = x; x = 0; f2 = f2 & 1; if (j2) { if (!f2 ? (x = 0, k[m2 >> 2] = k[c2 + 8 >> 2], p[m2 + 8 >> 3] = e2, g2 = Ea(17, s2 | 0, a2 | 0, l2 | 0, m2 | 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) A2 = 12; } else if (!f2 ? (x = 0, k[n2 >> 2] = k[c2 + 8 >> 2], p[n2 + 8 >> 3] = e2, o2 = Ea(17, s2 | 0, a2 | 0, l2 | 0, n2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { g2 = o2; A2 = 12; } do if ((A2 | 0) == 12) { a2 = k[s2 >> 2] | 0; if (!a2) { x = 0; Ga(6); o2 = x; x = 0; if (o2 & 1) break; f2 = k[s2 >> 2] | 0; } else f2 = a2; a2 = f2; l2 = f2; A2 = 16; break a; } while (0); a2 = Wa() | 0; } else { a2 = k[s2 >> 2] | 0; l2 = 0; g2 = f2; A2 = 16; } while (0); if ((A2 | 0) == 16) { i3 = a2 + g2 | 0; j2 = Fp(a2, i3, c2) | 0; do if ((a2 | 0) == (q2 | 0)) { a2 = q2; f2 = 0; A2 = 22; } else { g2 = Pl(g2 << 1) | 0; if (!g2) { x = 0; Ga(6); A2 = x; x = 0; if (A2 & 1) { f2 = 0; A2 = 20; break; } a2 = k[s2 >> 2] | 0; } f2 = g2; h2 = g2; A2 = 22; } while (0); do if ((A2 | 0) == 22) { x = 0; g2 = ta(68, c2 | 0) | 0; s2 = x; x = 0; if (!(s2 & 1)) { k[u2 >> 2] = g2; x = 0; ya(2, a2 | 0, j2 | 0, i3 | 0, h2 | 0, y2 | 0, w2 | 0, u2 | 0); u2 = x; x = 0; if (u2 & 1) { a2 = Wa() | 0; zm(g2) | 0; break; } zm(g2) | 0; k[v2 >> 2] = k[b2 >> 2]; A2 = k[y2 >> 2] | 0; a2 = k[w2 >> 2] | 0; x = 0; k[t2 >> 2] = k[v2 >> 2]; a2 = sa(39, t2 | 0, h2 | 0, A2 | 0, a2 | 0, c2 | 0, d2 | 0) | 0; A2 = x; x = 0; if (!(A2 & 1)) { k[b2 >> 2] = a2; if (f2) Ql(f2); if (l2) Ql(l2); r = z2; return a2 | 0; } else A2 = 20; } else A2 = 20; } while (0); if ((A2 | 0) == 20) a2 = Wa() | 0; if (f2) Ql(f2); if (l2) Ql(l2); } fb(a2 | 0); return 0; } function Lp(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; if (c2 & 2048) { i2[a2 >> 0] = 43; a2 = a2 + 1 | 0; } if (c2 & 1024) { i2[a2 >> 0] = 35; a2 = a2 + 1 | 0; } g2 = c2 & 260; e2 = c2 >>> 14; h2 = (g2 | 0) == 260; if (h2) f2 = 0; else { i2[a2 >> 0] = 46; i2[a2 + 1 >> 0] = 42; a2 = a2 + 2 | 0; f2 = 1; } c2 = i2[b2 >> 0] | 0; if (c2 << 24 >> 24) { d2 = a2; while (1) { b2 = b2 + 1 | 0; a2 = d2 + 1 | 0; i2[d2 >> 0] = c2; c2 = i2[b2 >> 0] | 0; if (!(c2 << 24 >> 24)) break; else d2 = a2; } } a: do switch (g2 | 0) { case 4: if (!(e2 & 1)) { i2[a2 >> 0] = 102; break a; } else { i2[a2 >> 0] = 70; break a; } case 256: if (!(e2 & 1)) { i2[a2 >> 0] = 101; break a; } else { i2[a2 >> 0] = 69; break a; } default: { c2 = (e2 & 1 | 0) != 0; if (h2) if (c2) { i2[a2 >> 0] = 65; break a; } else { i2[a2 >> 0] = 97; break a; } else if (c2) { i2[a2 >> 0] = 71; break a; } else { i2[a2 >> 0] = 103; break a; } } } while (0); return f2 | 0; } function Mp(a2, b2, c2, d2, e2, f2, g2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; var h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0; z2 = r; r = r + 16 | 0; A2 = z2; y2 = Ss(g2, 44220) | 0; v2 = Ss(g2, 44360) | 0; Mb[k[(k[v2 >> 2] | 0) + 20 >> 2] & 127](A2, v2); k[f2 >> 2] = d2; g2 = i2[a2 >> 0] | 0; switch (g2 << 24 >> 24) { case 43: case 45: { x = 0; g2 = Aa(k[(k[y2 >> 2] | 0) + 28 >> 2] | 0, y2 | 0, g2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) u2 = 8; else { m2 = k[f2 >> 2] | 0; k[f2 >> 2] = m2 + 1; i2[m2 >> 0] = g2; m2 = a2 + 1 | 0; u2 = 10; } break; } default: { m2 = a2; u2 = 10; } } a: do if ((u2 | 0) == 10) { w2 = c2; b: do if ((w2 - m2 | 0) > 1 ? (i2[m2 >> 0] | 0) == 48 : 0) { j2 = m2 + 1 | 0; switch (i2[j2 >> 0] | 0) { case 88: case 120: break; default: { u2 = 11; break b; } } x = 0; g2 = Aa(k[(k[y2 >> 2] | 0) + 28 >> 2] | 0, y2 | 0, 48) | 0; t2 = x; x = 0; if (t2 & 1) { u2 = 8; break a; } t2 = k[f2 >> 2] | 0; k[f2 >> 2] = t2 + 1; i2[t2 >> 0] = g2; m2 = m2 + 2 | 0; x = 0; g2 = Aa(k[(k[y2 >> 2] | 0) + 28 >> 2] | 0, y2 | 0, i2[j2 >> 0] | 0) | 0; t2 = x; x = 0; if (t2 & 1) { u2 = 8; break a; } t2 = k[f2 >> 2] | 0; k[f2 >> 2] = t2 + 1; i2[t2 >> 0] = g2; if (m2 >>> 0 < c2 >>> 0) { g2 = m2; while (1) { j2 = i2[g2 >> 0] | 0; x = 0; l2 = Da(3) | 0; t2 = x; x = 0; if (t2 & 1) break; x = 0; j2 = Aa(39, j2 << 24 >> 24 | 0, l2 | 0) | 0; t2 = x; x = 0; if (t2 & 1) break; if (!j2) { t2 = m2; break b; } g2 = g2 + 1 | 0; if (g2 >>> 0 >= c2 >>> 0) { t2 = m2; break b; } } g2 = Wa() | 0; break a; } else { t2 = m2; g2 = m2; } } else u2 = 11; while (0); c: do if ((u2 | 0) == 11) if (m2 >>> 0 < c2 >>> 0) { g2 = m2; while (1) { j2 = i2[g2 >> 0] | 0; x = 0; l2 = Da(3) | 0; t2 = x; x = 0; if (t2 & 1) break; x = 0; j2 = Aa(40, j2 << 24 >> 24 | 0, l2 | 0) | 0; t2 = x; x = 0; if (t2 & 1) break; if (!j2) { t2 = m2; break c; } g2 = g2 + 1 | 0; if (g2 >>> 0 >= c2 >>> 0) { t2 = m2; break c; } } g2 = Wa() | 0; break a; } else { t2 = m2; g2 = m2; } while (0); q2 = i2[A2 >> 0] | 0; s2 = A2 + 4 | 0; if (((q2 & 1) == 0 ? (q2 & 255) >>> 1 : k[s2 >> 2] | 0) | 0) { if ((t2 | 0) != (g2 | 0) ? (n2 = g2 + -1 | 0, t2 >>> 0 < n2 >>> 0) : 0) { l2 = t2; j2 = n2; do { q2 = i2[l2 >> 0] | 0; i2[l2 >> 0] = i2[j2 >> 0] | 0; i2[j2 >> 0] = q2; l2 = l2 + 1 | 0; j2 = j2 + -1 | 0; } while (l2 >>> 0 < j2 >>> 0); } x = 0; n2 = ta(k[(k[v2 >> 2] | 0) + 16 >> 2] | 0, v2 | 0) | 0; q2 = x; x = 0; if (q2 & 1) { u2 = 8; break; } o2 = A2 + 8 | 0; p2 = A2 + 1 | 0; d: do if (t2 >>> 0 < g2 >>> 0) { j2 = 0; l2 = 0; q2 = t2; while (1) { m2 = i2[((i2[A2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0) + l2 >> 0] | 0; if (m2 << 24 >> 24 > 0 & (j2 | 0) == (m2 << 24 >> 24 | 0)) { j2 = k[f2 >> 2] | 0; k[f2 >> 2] = j2 + 1; i2[j2 >> 0] = n2; j2 = i2[A2 >> 0] | 0; m2 = 0; l2 = (l2 >>> 0 < (((j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[s2 >> 2] | 0) + -1 | 0) >>> 0 & 1) + l2 | 0; } else m2 = j2; x = 0; j2 = Aa(k[(k[y2 >> 2] | 0) + 28 >> 2] | 0, y2 | 0, i2[q2 >> 0] | 0) | 0; B2 = x; x = 0; if (B2 & 1) break; B2 = k[f2 >> 2] | 0; k[f2 >> 2] = B2 + 1; i2[B2 >> 0] = j2; q2 = q2 + 1 | 0; if (q2 >>> 0 >= g2 >>> 0) break d; else j2 = m2 + 1 | 0; } g2 = Wa() | 0; break a; } while (0); j2 = d2 + (t2 - a2) | 0; l2 = k[f2 >> 2] | 0; if ((j2 | 0) != (l2 | 0) ? (h2 = l2 + -1 | 0, j2 >>> 0 < h2 >>> 0) : 0) { do { B2 = i2[j2 >> 0] | 0; i2[j2 >> 0] = i2[h2 >> 0] | 0; i2[h2 >> 0] = B2; j2 = j2 + 1 | 0; h2 = h2 + -1 | 0; } while (j2 >>> 0 < h2 >>> 0); j2 = y2; } else j2 = y2; } else { x = 0; Ea(k[(k[y2 >> 2] | 0) + 32 >> 2] | 0, y2 | 0, t2 | 0, g2 | 0, k[f2 >> 2] | 0) | 0; B2 = x; x = 0; if (B2 & 1) { u2 = 8; break; } k[f2 >> 2] = (k[f2 >> 2] | 0) + (g2 - t2); j2 = y2; } e: do if (g2 >>> 0 < c2 >>> 0) { while (1) { h2 = i2[g2 >> 0] | 0; if (h2 << 24 >> 24 == 46) break; x = 0; h2 = Aa(k[(k[j2 >> 2] | 0) + 28 >> 2] | 0, y2 | 0, h2 | 0) | 0; B2 = x; x = 0; if (B2 & 1) { u2 = 4; break; } B2 = k[f2 >> 2] | 0; k[f2 >> 2] = B2 + 1; i2[B2 >> 0] = h2; g2 = g2 + 1 | 0; if (g2 >>> 0 >= c2 >>> 0) break e; } if ((u2 | 0) == 4) { g2 = Wa() | 0; break a; } x = 0; h2 = ta(k[(k[v2 >> 2] | 0) + 12 >> 2] | 0, v2 | 0) | 0; B2 = x; x = 0; if (B2 & 1) { u2 = 8; break a; } B2 = k[f2 >> 2] | 0; k[f2 >> 2] = B2 + 1; i2[B2 >> 0] = h2; g2 = g2 + 1 | 0; } while (0); x = 0; Ea(k[(k[y2 >> 2] | 0) + 32 >> 2] | 0, y2 | 0, g2 | 0, c2 | 0, k[f2 >> 2] | 0) | 0; B2 = x; x = 0; if (B2 & 1) u2 = 8; else { B2 = (k[f2 >> 2] | 0) + (w2 - g2) | 0; k[f2 >> 2] = B2; k[e2 >> 2] = (b2 | 0) == (c2 | 0) ? B2 : d2 + (b2 - a2) | 0; Sm(A2); r = z2; return; } } while (0); if ((u2 | 0) == 8) g2 = Wa() | 0; Sm(A2); fb(g2 | 0); } function Np(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = +e2; var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0; z2 = r; r = r + 176 | 0; t2 = z2 + 76 | 0; n2 = z2 + 48 | 0; m2 = z2 + 32 | 0; i3 = z2 + 24 | 0; f2 = z2 + 8 | 0; l2 = z2; q2 = z2 + 80 | 0; s2 = z2 + 72 | 0; h2 = z2 + 110 | 0; y2 = z2 + 68 | 0; w2 = z2 + 64 | 0; u2 = z2 + 60 | 0; v2 = z2 + 56 | 0; j2 = l2; k[j2 >> 2] = 37; k[j2 + 4 >> 2] = 0; j2 = Lp(l2 + 1 | 0, 58899, k[c2 + 4 >> 2] | 0) | 0; k[s2 >> 2] = q2; a2 = fp() | 0; if (j2) { k[f2 >> 2] = k[c2 + 8 >> 2]; p[f2 + 8 >> 3] = e2; f2 = av(q2, 30, a2, l2, f2) | 0; } else { p[i3 >> 3] = e2; f2 = av(q2, 30, a2, l2, i3) | 0; } a: do if ((f2 | 0) > 29) { x = 0; a2 = Da(3) | 0; f2 = x; x = 0; f2 = f2 & 1; if (j2) { if (!f2 ? (x = 0, k[m2 >> 2] = k[c2 + 8 >> 2], p[m2 + 8 >> 3] = e2, g2 = Ea(17, s2 | 0, a2 | 0, l2 | 0, m2 | 0) | 0, o2 = x, x = 0, !(o2 & 1)) : 0) A2 = 12; } else if (!f2 ? (x = 0, p[n2 >> 3] = e2, o2 = Ea(17, s2 | 0, a2 | 0, l2 | 0, n2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { g2 = o2; A2 = 12; } do if ((A2 | 0) == 12) { a2 = k[s2 >> 2] | 0; if (!a2) { x = 0; Ga(6); o2 = x; x = 0; if (o2 & 1) break; f2 = k[s2 >> 2] | 0; } else f2 = a2; a2 = f2; l2 = f2; A2 = 16; break a; } while (0); a2 = Wa() | 0; } else { a2 = k[s2 >> 2] | 0; l2 = 0; g2 = f2; A2 = 16; } while (0); if ((A2 | 0) == 16) { i3 = a2 + g2 | 0; j2 = Fp(a2, i3, c2) | 0; do if ((a2 | 0) == (q2 | 0)) { a2 = q2; f2 = 0; A2 = 22; } else { g2 = Pl(g2 << 1) | 0; if (!g2) { x = 0; Ga(6); A2 = x; x = 0; if (A2 & 1) { f2 = 0; A2 = 20; break; } a2 = k[s2 >> 2] | 0; } f2 = g2; h2 = g2; A2 = 22; } while (0); do if ((A2 | 0) == 22) { x = 0; g2 = ta(68, c2 | 0) | 0; s2 = x; x = 0; if (!(s2 & 1)) { k[u2 >> 2] = g2; x = 0; ya(2, a2 | 0, j2 | 0, i3 | 0, h2 | 0, y2 | 0, w2 | 0, u2 | 0); u2 = x; x = 0; if (u2 & 1) { a2 = Wa() | 0; zm(g2) | 0; break; } zm(g2) | 0; k[v2 >> 2] = k[b2 >> 2]; A2 = k[y2 >> 2] | 0; a2 = k[w2 >> 2] | 0; x = 0; k[t2 >> 2] = k[v2 >> 2]; a2 = sa(39, t2 | 0, h2 | 0, A2 | 0, a2 | 0, c2 | 0, d2 | 0) | 0; A2 = x; x = 0; if (!(A2 & 1)) { k[b2 >> 2] = a2; if (f2) Ql(f2); if (l2) Ql(l2); r = z2; return a2 | 0; } else A2 = 20; } else A2 = 20; } while (0); if ((A2 | 0) == 20) a2 = Wa() | 0; if (f2) Ql(f2); if (l2) Ql(l2); } fb(a2 | 0); return 0; } function Op(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; o2 = r; r = r + 80 | 0; j2 = o2; a2 = o2 + 70 | 0; m2 = o2 + 12 | 0; n2 = o2 + 32 | 0; h2 = o2 + 8 | 0; l2 = o2 + 4 | 0; i2[a2 >> 0] = i2[58901] | 0; i2[a2 + 1 >> 0] = i2[58902] | 0; i2[a2 + 2 >> 0] = i2[58903] | 0; i2[a2 + 3 >> 0] = i2[58904] | 0; i2[a2 + 4 >> 0] = i2[58905] | 0; i2[a2 + 5 >> 0] = i2[58906] | 0; f2 = fp() | 0; k[j2 >> 2] = e2; a2 = av(m2, 20, f2, a2, j2) | 0; e2 = m2 + a2 | 0; f2 = Fp(m2, e2, c2) | 0; g2 = tn(c2) | 0; k[h2 >> 2] = g2; x = 0; h2 = Aa(37, h2 | 0, 44220) | 0; p2 = x; x = 0; if (p2 & 1) { p2 = Wa() | 0; zm(g2) | 0; fb(p2 | 0); } else { zm(g2) | 0; Zb[k[(k[h2 >> 2] | 0) + 32 >> 2] & 31](h2, m2, e2, n2) | 0; p2 = n2 + a2 | 0; k[l2 >> 2] = k[b2 >> 2]; k[j2 >> 2] = k[l2 >> 2]; p2 = md(j2, n2, (f2 | 0) == (e2 | 0) ? p2 : n2 + (f2 - m2) | 0, p2, c2, d2) | 0; r = o2; return p2 | 0; } return 0; } function Pp(a2) { a2 = a2 | 0; return; } function Qp(a2) { a2 = a2 | 0; mj(a2); return; } function Rp(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; l2 = r; r = r + 32 | 0; f2 = l2 + 20 | 0; g2 = l2 + 16 | 0; h2 = l2 + 12 | 0; j2 = l2; a: do if (!(k[c2 + 4 >> 2] & 1)) { j2 = k[(k[a2 >> 2] | 0) + 24 >> 2] | 0; k[g2 >> 2] = k[b2 >> 2]; k[f2 >> 2] = k[g2 >> 2]; f2 = Wb[j2 & 31](a2, f2, c2, d2, e2 & 1) | 0; } else { f2 = tn(c2) | 0; k[h2 >> 2] = f2; x = 0; g2 = Aa(37, h2 | 0, 44368) | 0; h2 = x; x = 0; b: do if (h2 & 1) { l2 = Wa() | 0; zm(f2) | 0; f2 = l2; } else { zm(f2) | 0; f2 = k[g2 >> 2] | 0; if (e2) Mb[k[f2 + 24 >> 2] & 127](j2, g2); else Mb[k[f2 + 28 >> 2] & 127](j2, g2); a2 = i2[j2 >> 0] | 0; c2 = (a2 & 1) == 0; f2 = j2 + 4 | 0; e2 = j2 + 8 | 0; h2 = c2 ? f2 : j2 + 4 | 0; f2 = c2 ? f2 : k[j2 + 8 >> 2] | 0; c2 = (a2 & 1) == 0; c: do if ((f2 | 0) != ((c2 ? h2 : k[e2 >> 2] | 0) + ((c2 ? (a2 & 255) >>> 1 : k[h2 >> 2] | 0) << 2) | 0)) { while (1) { g2 = k[f2 >> 2] | 0; d2 = k[b2 >> 2] | 0; if (d2) { c2 = d2 + 24 | 0; a2 = k[c2 >> 2] | 0; if ((a2 | 0) == (k[d2 + 28 >> 2] | 0)) { x = 0; g2 = Aa(k[(k[d2 >> 2] | 0) + 52 >> 2] | 0, d2 | 0, g2 | 0) | 0; a2 = x; x = 0; if (a2 & 1) break; } else { k[c2 >> 2] = a2 + 4; k[a2 >> 2] = g2; } if ((g2 | 0) == -1) k[b2 >> 2] = 0; } f2 = f2 + 4 | 0; a2 = i2[j2 >> 0] | 0; c2 = (a2 & 1) == 0; if ((f2 | 0) == ((c2 ? h2 : k[e2 >> 2] | 0) + ((c2 ? (a2 & 255) >>> 1 : k[h2 >> 2] | 0) << 2) | 0)) break c; } f2 = Wa() | 0; en(j2); break b; } while (0); f2 = k[b2 >> 2] | 0; en(j2); break a; } while (0); fb(f2 | 0); } while (0); r = l2; return f2 | 0; } function Sp(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; m2 = r; r = r + 128 | 0; f2 = m2; o2 = m2 + 116 | 0; p2 = m2 + 104 | 0; h2 = m2 + 20 | 0; l2 = m2 + 16 | 0; j2 = m2 + 12 | 0; n2 = m2 + 8 | 0; g2 = m2 + 4 | 0; i2[o2 >> 0] = i2[58887] | 0; i2[o2 + 1 >> 0] = i2[58888] | 0; i2[o2 + 2 >> 0] = i2[58889] | 0; i2[o2 + 3 >> 0] = i2[58890] | 0; i2[o2 + 4 >> 0] = i2[58891] | 0; i2[o2 + 5 >> 0] = i2[58892] | 0; Ep(o2 + 1 | 0, 58893, 1, k[c2 + 4 >> 2] | 0); a2 = fp() | 0; k[f2 >> 2] = e2; e2 = p2 + (av(p2, 12, a2, o2, f2) | 0) | 0; o2 = Fp(p2, e2, c2) | 0; a2 = tn(c2) | 0; k[n2 >> 2] = a2; x = 0; ya(3, p2 | 0, o2 | 0, e2 | 0, h2 | 0, l2 | 0, j2 | 0, n2 | 0); e2 = x; x = 0; if (e2 & 1) { p2 = Wa() | 0; zm(a2) | 0; fb(p2 | 0); } else { zm(a2) | 0; k[g2 >> 2] = k[b2 >> 2]; o2 = k[l2 >> 2] | 0; p2 = k[j2 >> 2] | 0; k[f2 >> 2] = k[g2 >> 2]; p2 = cv(f2, h2, o2, p2, c2, d2) | 0; r = m2; return p2 | 0; } return 0; } function Tp(a2, b2, c2, d2, e2, f2, g2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; var h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; u2 = r; r = r + 16 | 0; v2 = u2; s2 = Ss(g2, 44212) | 0; l2 = Ss(g2, 44368) | 0; Mb[k[(k[l2 >> 2] | 0) + 20 >> 2] & 127](v2, l2); p2 = i2[v2 >> 0] | 0; q2 = v2 + 4 | 0; a: do if (!(((p2 & 1) == 0 ? (p2 & 255) >>> 1 : k[q2 >> 2] | 0) | 0)) { x = 0; Ea(k[(k[s2 >> 2] | 0) + 48 >> 2] | 0, s2 | 0, a2 | 0, c2 | 0, d2 | 0) | 0; t2 = x; x = 0; if (t2 & 1) t2 = 5; else { g2 = d2 + (c2 - a2 << 2) | 0; k[f2 >> 2] = g2; t2 = 28; } } else { k[f2 >> 2] = d2; g2 = i2[a2 >> 0] | 0; switch (g2 << 24 >> 24) { case 43: case 45: { x = 0; g2 = Aa(k[(k[s2 >> 2] | 0) + 44 >> 2] | 0, s2 | 0, g2 | 0) | 0; p2 = x; x = 0; if (p2 & 1) { t2 = 5; break a; } j2 = k[f2 >> 2] | 0; k[f2 >> 2] = j2 + 4; k[j2 >> 2] = g2; j2 = a2 + 1 | 0; break; } default: j2 = a2; } b: do if ((c2 - j2 | 0) > 1 ? (i2[j2 >> 0] | 0) == 48 : 0) { g2 = j2 + 1 | 0; switch (i2[g2 >> 0] | 0) { case 88: case 120: break; default: { p2 = j2; break b; } } x = 0; h2 = Aa(k[(k[s2 >> 2] | 0) + 44 >> 2] | 0, s2 | 0, 48) | 0; p2 = x; x = 0; if (p2 & 1) { t2 = 5; break a; } p2 = k[f2 >> 2] | 0; k[f2 >> 2] = p2 + 4; k[p2 >> 2] = h2; x = 0; g2 = Aa(k[(k[s2 >> 2] | 0) + 44 >> 2] | 0, s2 | 0, i2[g2 >> 0] | 0) | 0; p2 = x; x = 0; if (p2 & 1) { t2 = 5; break a; } p2 = k[f2 >> 2] | 0; k[f2 >> 2] = p2 + 4; k[p2 >> 2] = g2; p2 = j2 + 2 | 0; } else p2 = j2; while (0); if ((p2 | 0) != (c2 | 0) ? (m2 = c2 + -1 | 0, p2 >>> 0 < m2 >>> 0) : 0) { h2 = p2; g2 = m2; do { o2 = i2[h2 >> 0] | 0; i2[h2 >> 0] = i2[g2 >> 0] | 0; i2[g2 >> 0] = o2; h2 = h2 + 1 | 0; g2 = g2 + -1 | 0; } while (h2 >>> 0 < g2 >>> 0); } x = 0; l2 = ta(k[(k[l2 >> 2] | 0) + 16 >> 2] | 0, l2 | 0) | 0; o2 = x; x = 0; if (!(o2 & 1)) { m2 = v2 + 8 | 0; n2 = v2 + 1 | 0; c: do if (p2 >>> 0 < c2 >>> 0) { g2 = 0; h2 = 0; o2 = p2; while (1) { j2 = i2[((i2[v2 >> 0] & 1) == 0 ? n2 : k[m2 >> 2] | 0) + h2 >> 0] | 0; if (j2 << 24 >> 24 != 0 & (g2 | 0) == (j2 << 24 >> 24 | 0)) { g2 = k[f2 >> 2] | 0; k[f2 >> 2] = g2 + 4; k[g2 >> 2] = l2; g2 = i2[v2 >> 0] | 0; j2 = 0; h2 = (h2 >>> 0 < (((g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[q2 >> 2] | 0) + -1 | 0) >>> 0 & 1) + h2 | 0; } else j2 = g2; x = 0; g2 = Aa(k[(k[s2 >> 2] | 0) + 44 >> 2] | 0, s2 | 0, i2[o2 >> 0] | 0) | 0; w2 = x; x = 0; if (w2 & 1) break; w2 = k[f2 >> 2] | 0; k[f2 >> 2] = w2 + 4; k[w2 >> 2] = g2; o2 = o2 + 1 | 0; if (o2 >>> 0 >= c2 >>> 0) break c; else g2 = j2 + 1 | 0; } g2 = Wa() | 0; break a; } while (0); j2 = a2; g2 = d2 + (p2 - j2 << 2) | 0; h2 = k[f2 >> 2] | 0; if ((g2 | 0) != (h2 | 0)) { a2 = h2 + -4 | 0; if (g2 >>> 0 < a2 >>> 0) { do { w2 = k[g2 >> 2] | 0; k[g2 >> 2] = k[a2 >> 2]; k[a2 >> 2] = w2; g2 = g2 + 4 | 0; a2 = a2 + -4 | 0; } while (g2 >>> 0 < a2 >>> 0); a2 = j2; g2 = h2; t2 = 28; } else { a2 = j2; g2 = h2; t2 = 28; } } else { a2 = j2; t2 = 28; } } else t2 = 5; } while (0); if ((t2 | 0) == 5) g2 = Wa() | 0; else if ((t2 | 0) == 28) { k[e2 >> 2] = (b2 | 0) == (c2 | 0) ? g2 : d2 + (b2 - a2 << 2) | 0; Sm(v2); r = u2; return; } Sm(v2); fb(g2 | 0); } function Up(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; m2 = r; r = r + 224 | 0; g2 = m2 + 8 | 0; a2 = m2; o2 = m2 + 196 | 0; i3 = m2 + 32 | 0; l2 = m2 + 28 | 0; j2 = m2 + 24 | 0; n2 = m2 + 20 | 0; h2 = m2 + 16 | 0; p2 = a2; k[p2 >> 2] = 37; k[p2 + 4 >> 2] = 0; Ep(a2 + 1 | 0, 58895, 1, k[c2 + 4 >> 2] | 0); p2 = fp() | 0; q2 = g2; k[q2 >> 2] = e2; k[q2 + 4 >> 2] = f2; f2 = o2 + (av(o2, 22, p2, a2, g2) | 0) | 0; e2 = Fp(o2, f2, c2) | 0; a2 = tn(c2) | 0; k[n2 >> 2] = a2; x = 0; ya(3, o2 | 0, e2 | 0, f2 | 0, i3 | 0, l2 | 0, j2 | 0, n2 | 0); f2 = x; x = 0; if (f2 & 1) { q2 = Wa() | 0; zm(a2) | 0; fb(q2 | 0); } else { zm(a2) | 0; k[h2 >> 2] = k[b2 >> 2]; p2 = k[l2 >> 2] | 0; q2 = k[j2 >> 2] | 0; k[g2 >> 2] = k[h2 >> 2]; q2 = cv(g2, i3, p2, q2, c2, d2) | 0; r = m2; return q2 | 0; } return 0; } function Et(a2, b2, c2, d2, e2, f2, g2, h2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; var j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0; t2 = r; r = r + 16 | 0; q2 = t2; o2 = t2 + 8 | 0; a: do if ((c2 | 0) == (d2 | 0)) j2 = d2; else { j2 = c2; while (1) { if (!(k[j2 >> 2] | 0)) break a; j2 = j2 + 4 | 0; if ((j2 | 0) == (d2 | 0)) { j2 = d2; break; } } } while (0); k[h2 >> 2] = f2; k[e2 >> 2] = c2; m2 = g2; p2 = a2 + 8 | 0; b: do if (!((f2 | 0) == (g2 | 0) | (c2 | 0) == (d2 | 0))) { a2 = f2; l2 = j2; c: while (1) { v2 = b2; f2 = k[v2 + 4 >> 2] | 0; j2 = q2; k[j2 >> 2] = k[v2 >> 2]; k[j2 + 4 >> 2] = f2; j2 = Ak(k[p2 >> 2] | 0) | 0; x = 0; f2 = Ba(21, a2 | 0, e2 | 0, l2 - c2 >> 2 | 0, m2 - a2 | 0, b2 | 0) | 0; v2 = x; x = 0; if (v2 & 1) { u2 = 9; break; } if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { u2 = 8; break; } switch (f2 | 0) { case 0: { n2 = 1; break b; } case -1: { j2 = a2; u2 = 14; break c; } default: { } } j2 = (k[h2 >> 2] | 0) + f2 | 0; k[h2 >> 2] = j2; if ((j2 | 0) == (g2 | 0)) { u2 = 27; break; } if ((l2 | 0) == (d2 | 0)) { c2 = k[e2 >> 2] | 0; a2 = j2; j2 = d2; } else { j2 = Ak(k[p2 >> 2] | 0) | 0; x = 0; c2 = va(34, o2 | 0, 0, b2 | 0) | 0; v2 = x; x = 0; if (v2 & 1) { u2 = 35; break; } if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { u2 = 34; break; } if ((c2 | 0) == -1) { n2 = 2; break b; } if (c2 >>> 0 > (m2 - (k[h2 >> 2] | 0) | 0) >>> 0) { n2 = 1; break b; } if (c2) { j2 = o2; while (1) { l2 = i2[j2 >> 0] | 0; v2 = k[h2 >> 2] | 0; k[h2 >> 2] = v2 + 1; i2[v2 >> 0] = l2; c2 = c2 + -1 | 0; if (!c2) break; else j2 = j2 + 1 | 0; } } c2 = (k[e2 >> 2] | 0) + 4 | 0; k[e2 >> 2] = c2; d: do if ((c2 | 0) == (d2 | 0)) j2 = d2; else { j2 = c2; while (1) { if (!(k[j2 >> 2] | 0)) break d; j2 = j2 + 4 | 0; if ((j2 | 0) == (d2 | 0)) { j2 = d2; break; } } } while (0); a2 = k[h2 >> 2] | 0; } if ((a2 | 0) == (g2 | 0) | (c2 | 0) == (d2 | 0)) { u2 = 47; break b; } else l2 = j2; } if ((u2 | 0) == 8) { v2 = Wa(0) | 0; oc(v2); } else if ((u2 | 0) == 9) { c2 = Wa() | 0; if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { v2 = Wa(0) | 0; oc(v2); } fb(c2 | 0); } else if ((u2 | 0) == 14) { k[h2 >> 2] = j2; e: do if ((c2 | 0) != (k[e2 >> 2] | 0)) { while (1) { v2 = k[c2 >> 2] | 0; a2 = Ak(k[p2 >> 2] | 0) | 0; x = 0; j2 = va(34, j2 | 0, v2 | 0, q2 | 0) | 0; v2 = x; x = 0; if (v2 & 1) { s2 = a2; break; } if ((a2 | 0) != 0 ? (x = 0, ta(75, a2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { u2 = 18; break; } if ((j2 | 0) == -1) break e; j2 = (k[h2 >> 2] | 0) + j2 | 0; k[h2 >> 2] = j2; c2 = c2 + 4 | 0; if ((c2 | 0) == (k[e2 >> 2] | 0)) break e; } if ((u2 | 0) == 18) { v2 = Wa(0) | 0; oc(v2); } c2 = Wa() | 0; if ((s2 | 0) != 0 ? (x = 0, ta(75, s2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { v2 = Wa(0) | 0; oc(v2); } fb(c2 | 0); } while (0); k[e2 >> 2] = c2; n2 = 2; break; } else if ((u2 | 0) == 27) { c2 = k[e2 >> 2] | 0; u2 = 47; break; } else if ((u2 | 0) == 34) { v2 = Wa(0) | 0; oc(v2); } else if ((u2 | 0) == 35) { c2 = Wa() | 0; if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { v2 = Wa(0) | 0; oc(v2); } fb(c2 | 0); } } else u2 = 47; while (0); if ((u2 | 0) == 47) n2 = (c2 | 0) != (d2 | 0) & 1; r = t2; return n2 | 0; } function Ft(a2, b2, c2, d2, e2, f2, g2, h2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; var j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0; t2 = r; r = r + 16 | 0; s2 = t2; a: do if ((c2 | 0) == (d2 | 0)) j2 = d2; else { j2 = c2; while (1) { if (!(i2[j2 >> 0] | 0)) break a; j2 = j2 + 1 | 0; if ((j2 | 0) == (d2 | 0)) { j2 = d2; break; } } } while (0); k[h2 >> 2] = f2; k[e2 >> 2] = c2; n2 = g2; p2 = a2 + 8 | 0; b: do if (!((f2 | 0) == (g2 | 0) | (c2 | 0) == (d2 | 0))) { a2 = f2; m2 = j2; c: while (1) { l2 = b2; j2 = k[l2 + 4 >> 2] | 0; f2 = s2; k[f2 >> 2] = k[l2 >> 2]; k[f2 + 4 >> 2] = j2; f2 = m2; j2 = Ak(k[p2 >> 2] | 0) | 0; x = 0; l2 = Ba(22, a2 | 0, e2 | 0, f2 - c2 | 0, n2 - a2 >> 2 | 0, b2 | 0) | 0; v2 = x; x = 0; if (v2 & 1) { u2 = 9; break; } if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { u2 = 8; break; } switch (l2 | 0) { case 0: { o2 = 2; break b; } case -1: { j2 = a2; u2 = 14; break c; } default: { } } a2 = (k[h2 >> 2] | 0) + (l2 << 2) | 0; k[h2 >> 2] = a2; if ((a2 | 0) == (g2 | 0)) { u2 = 31; break; } c2 = k[e2 >> 2] | 0; if ((m2 | 0) == (d2 | 0)) j2 = d2; else { j2 = Ak(k[p2 >> 2] | 0) | 0; x = 0; c2 = Ea(20, a2 | 0, c2 | 0, 1, b2 | 0) | 0; v2 = x; x = 0; if (v2 & 1) { u2 = 38; break; } if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { u2 = 37; break; } if (c2) { o2 = 2; break b; } k[h2 >> 2] = (k[h2 >> 2] | 0) + 4; c2 = (k[e2 >> 2] | 0) + 1 | 0; k[e2 >> 2] = c2; d: do if ((c2 | 0) == (d2 | 0)) j2 = d2; else { j2 = c2; while (1) { if (!(i2[j2 >> 0] | 0)) break d; j2 = j2 + 1 | 0; if ((j2 | 0) == (d2 | 0)) { j2 = d2; break; } } } while (0); a2 = k[h2 >> 2] | 0; } if ((a2 | 0) == (g2 | 0) | (c2 | 0) == (d2 | 0)) { u2 = 47; break b; } else m2 = j2; } if ((u2 | 0) == 8) { v2 = Wa(0) | 0; oc(v2); } else if ((u2 | 0) == 9) { c2 = Wa() | 0; if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { v2 = Wa(0) | 0; oc(v2); } fb(c2 | 0); } else if ((u2 | 0) == 14) { k[h2 >> 2] = j2; e: do if ((c2 | 0) != (k[e2 >> 2] | 0)) { a2 = j2; f: while (1) { j2 = Ak(k[p2 >> 2] | 0) | 0; x = 0; a2 = Ea(20, a2 | 0, c2 | 0, f2 - c2 | 0, s2 | 0) | 0; v2 = x; x = 0; if (v2 & 1) { u2 = 19; break; } if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { u2 = 18; break; } switch (a2 | 0) { case -1: { u2 = 25; break f; } case -2: { u2 = 26; break f; } case 0: { c2 = c2 + 1 | 0; break; } default: c2 = c2 + a2 | 0; } a2 = (k[h2 >> 2] | 0) + 4 | 0; k[h2 >> 2] = a2; if ((c2 | 0) == (k[e2 >> 2] | 0)) { q2 = c2; break e; } } if ((u2 | 0) == 18) { v2 = Wa(0) | 0; oc(v2); } else if ((u2 | 0) == 19) { c2 = Wa() | 0; if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { v2 = Wa(0) | 0; oc(v2); } fb(c2 | 0); } else if ((u2 | 0) == 25) { k[e2 >> 2] = c2; o2 = 2; break b; } else if ((u2 | 0) == 26) { k[e2 >> 2] = c2; o2 = 1; break b; } } else q2 = c2; while (0); k[e2 >> 2] = q2; o2 = (q2 | 0) != (d2 | 0) & 1; break; } else if ((u2 | 0) == 31) { c2 = k[e2 >> 2] | 0; u2 = 47; break; } else if ((u2 | 0) == 37) { v2 = Wa(0) | 0; oc(v2); } else if ((u2 | 0) == 38) { c2 = Wa() | 0; if ((j2 | 0) != 0 ? (x = 0, ta(75, j2 | 0) | 0, v2 = x, x = 0, v2 & 1) : 0) { v2 = Wa(0) | 0; oc(v2); } fb(c2 | 0); } } else u2 = 47; while (0); if ((u2 | 0) == 47) o2 = (c2 | 0) != (d2 | 0) & 1; r = t2; return o2 | 0; } function Gt(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0; g2 = r; r = r + 16 | 0; f2 = g2; k[e2 >> 2] = c2; c2 = Ak(k[a2 + 8 >> 2] | 0) | 0; x = 0; a2 = va(34, f2 | 0, 0, b2 | 0) | 0; b2 = x; x = 0; if (b2 & 1) { f2 = Wa() | 0; if ((c2 | 0) != 0 ? (x = 0, ta(75, c2 | 0) | 0, g2 = x, x = 0, g2 & 1) : 0) { g2 = Wa(0) | 0; oc(g2); } fb(f2 | 0); } if ((c2 | 0) != 0 ? (x = 0, ta(75, c2 | 0) | 0, b2 = x, x = 0, b2 & 1) : 0) { b2 = Wa(0) | 0; oc(b2); } switch (a2 | 0) { case 0: case -1: { f2 = 2; break; } default: { a2 = a2 + -1 | 0; if (a2 >>> 0 <= (d2 - (k[e2 >> 2] | 0) | 0) >>> 0) if (!a2) f2 = 0; else while (1) { b2 = i2[f2 >> 0] | 0; d2 = k[e2 >> 2] | 0; k[e2 >> 2] = d2 + 1; i2[d2 >> 0] = b2; a2 = a2 + -1 | 0; if (!a2) { f2 = 0; break; } else f2 = f2 + 1 | 0; } else f2 = 1; } } r = g2; return f2 | 0; } function Ht(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; b2 = a2 + 8 | 0; x = 0; c2 = ta(75, k[b2 >> 2] | 0) | 0; d2 = x; x = 0; do if (d2 & 1) e2 = 16; else { x = 0; d2 = va(35, 0, 0, 4) | 0; a2 = x; x = 0; if (a2 & 1) { a2 = Wa(0) | 0; if (!c2) break; x = 0; ta(75, c2 | 0) | 0; g2 = x; x = 0; if (!(g2 & 1)) break; g2 = Wa(0) | 0; oc(g2); } if ((c2 | 0) != 0 ? (x = 0, ta(75, c2 | 0) | 0, g2 = x, x = 0, g2 & 1) : 0) { g2 = Wa(0) | 0; oc(g2); } if (!d2) { a2 = k[b2 >> 2] | 0; if (a2) { x = 0; a2 = ta(75, a2 | 0) | 0; g2 = x; x = 0; if (g2 & 1) { e2 = 16; break; } if ((a2 | 0) != 0 ? (x = 0, ta(75, a2 | 0) | 0, g2 = x, x = 0, g2 & 1) : 0) { g2 = Wa(0) | 0; oc(g2); } else f2 = 0; } else f2 = 1; } else f2 = -1; return f2 | 0; } while (0); if ((e2 | 0) == 16) a2 = Wa(0) | 0; oc(a2); return 0; } function It(a2) { a2 = a2 | 0; return 0; } function Jt(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; j2 = d2; i3 = a2 + 8 | 0; a: do if ((c2 | 0) == (d2 | 0) | (e2 | 0) == 0) a2 = 0; else { a2 = 0; h2 = 0; while (1) { g2 = Ak(k[i3 >> 2] | 0) | 0; x = 0; f2 = va(36, c2 | 0, j2 - c2 | 0, b2 | 0) | 0; n2 = x; x = 0; if (n2 & 1) { m2 = g2; break; } if ((g2 | 0) != 0 ? (x = 0, ta(75, g2 | 0) | 0, n2 = x, x = 0, n2 & 1) : 0) { l2 = 5; break; } switch (f2 | 0) { case -2: case -1: break a; case 0: { c2 = c2 + 1 | 0; f2 = 1; break; } default: c2 = c2 + f2 | 0; } a2 = f2 + a2 | 0; h2 = h2 + 1 | 0; if ((c2 | 0) == (d2 | 0) | h2 >>> 0 >= e2 >>> 0) break a; } if ((l2 | 0) == 5) { n2 = Wa(0) | 0; oc(n2); } a2 = Wa() | 0; if ((m2 | 0) != 0 ? (x = 0, ta(75, m2 | 0) | 0, n2 = x, x = 0, n2 & 1) : 0) { n2 = Wa(0) | 0; oc(n2); } fb(a2 | 0); } while (0); return a2 | 0; } function Kt(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; a2 = k[a2 + 8 >> 2] | 0; if (a2) { x = 0; a2 = ta(75, a2 | 0) | 0; c2 = x; x = 0; if (c2 & 1) { c2 = Wa(0) | 0; oc(c2); } if ((a2 | 0) != 0 ? (x = 0, ta(75, a2 | 0) | 0, c2 = x, x = 0, c2 & 1) : 0) { c2 = Wa(0) | 0; oc(c2); } else b2 = 4; } else b2 = 1; return b2 | 0; } function Lt(a2) { a2 = a2 | 0; mj(a2); return; } function Mt(a2, b2, c2, d2, e2, f2, g2, h2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; var i3 = 0; a2 = r; r = r + 16 | 0; i3 = a2 + 4 | 0; b2 = a2; k[i3 >> 2] = c2; k[b2 >> 2] = f2; g2 = Rv(c2, d2, i3, f2, g2, b2, 1114111, 0) | 0; k[e2 >> 2] = k[i3 >> 2]; k[h2 >> 2] = k[b2 >> 2]; r = a2; return g2 | 0; } function Nt(a2, b2, c2, d2, e2, f2, g2, h2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; var i3 = 0; a2 = r; r = r + 16 | 0; i3 = a2 + 4 | 0; b2 = a2; k[i3 >> 2] = c2; k[b2 >> 2] = f2; g2 = Sv(c2, d2, i3, f2, g2, b2, 1114111, 0) | 0; k[e2 >> 2] = k[i3 >> 2]; k[h2 >> 2] = k[b2 >> 2]; r = a2; return g2 | 0; } function Ot(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; k[e2 >> 2] = c2; return 3; } function Pt(a2) { a2 = a2 | 0; return 0; } function Qt(a2) { a2 = a2 | 0; return 0; } function Rt(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; return Tv(c2, d2, e2, 1114111, 0) | 0; } function St(a2) { a2 = a2 | 0; return 4; } function Tt(a2) { a2 = a2 | 0; mj(a2); return; } function Ut(a2, b2, c2, d2, e2, f2, g2, h2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; var i3 = 0; a2 = r; r = r + 16 | 0; i3 = a2 + 4 | 0; b2 = a2; k[i3 >> 2] = c2; k[b2 >> 2] = f2; g2 = Uv(c2, d2, i3, f2, g2, b2, 1114111, 0) | 0; k[e2 >> 2] = k[i3 >> 2]; k[h2 >> 2] = k[b2 >> 2]; r = a2; return g2 | 0; } function Vt(a2, b2, c2, d2, e2, f2, g2, h2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; var i3 = 0; a2 = r; r = r + 16 | 0; i3 = a2 + 4 | 0; b2 = a2; k[i3 >> 2] = c2; k[b2 >> 2] = f2; g2 = Vv(c2, d2, i3, f2, g2, b2, 1114111, 0) | 0; k[e2 >> 2] = k[i3 >> 2]; k[h2 >> 2] = k[b2 >> 2]; r = a2; return g2 | 0; } function Wt(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; k[e2 >> 2] = c2; return 3; } function Xt(a2) { a2 = a2 | 0; return 0; } function Yt(a2) { a2 = a2 | 0; return 0; } function Zt(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; return Wv(c2, d2, e2, 1114111, 0) | 0; } function _t(a2) { a2 = a2 | 0; return 4; } function $t(a2) { a2 = a2 | 0; mj(a2); return; } function au(a2) { a2 = a2 | 0; mj(a2); return; } function bu(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; k[a2 + 4 >> 2] = b2 + -1; k[a2 >> 2] = 44384; i2[a2 + 8 >> 0] = 46; i2[a2 + 9 >> 0] = 44; a2 = a2 + 12 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; return; } function cu(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; k[a2 + 4 >> 2] = b2 + -1; k[a2 >> 2] = 44424; k[a2 + 8 >> 2] = 46; k[a2 + 12 >> 2] = 44; a2 = a2 + 16 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; return; } function du(a2) { a2 = a2 | 0; k[a2 >> 2] = 44384; Sm(a2 + 12 | 0); return; } function eu(a2) { a2 = a2 | 0; du(a2); mj(a2); return; } function fu(a2) { a2 = a2 | 0; k[a2 >> 2] = 44424; Sm(a2 + 16 | 0); return; } function gu(a2) { a2 = a2 | 0; fu(a2); mj(a2); return; } function hu(a2) { a2 = a2 | 0; return i2[a2 + 8 >> 0] | 0; } function iu(a2) { a2 = a2 | 0; return k[a2 + 8 >> 2] | 0; } function ju(a2) { a2 = a2 | 0; return i2[a2 + 9 >> 0] | 0; } function ku(a2) { a2 = a2 | 0; return k[a2 + 12 >> 2] | 0; } function lu(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Pm(a2, b2 + 12 | 0); return; } function mu(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Pm(a2, b2 + 16 | 0); return; } function nu(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Qm(a2, 59024, 4); return; } function ou(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; cn(a2, 44996, zl(44996) | 0); return; } function pu(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Qm(a2, 59029, 5); return; } function qu(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; cn(a2, 45016, zl(45016) | 0); return; } function ru(a2) { a2 = a2 | 0; switch (k[a2 + 4 >> 2] & 74 | 0) { case 64: { a2 = 8; break; } case 8: { a2 = 16; break; } case 0: { a2 = 0; break; } default: a2 = 10; } return a2 | 0; } function su(a2) { a2 = a2 | 0; do if ((i2[2464] | 0) == 0 ? (Qa(2464) | 0) != 0 : 0) { if ((i2[2472] | 0) == 0 ? (Qa(2472) | 0) != 0 : 0) { a2 = 45040; do { k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; a2 = a2 + 12 | 0; } while ((a2 | 0) != 45208); tb(193, 0, w | 0) | 0; Ya(2472); } x = 0; Aa(41, 45040, 59035) | 0; a2 = x; x = 0; if (((((((((((((!(a2 & 1) ? (x = 0, Aa(41, 45052, 59042) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45064, 59049) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45076, 59057) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45088, 59067) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45100, 59076) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45112, 59083) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45124, 59092) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45136, 59096) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45148, 59100) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45160, 59104) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45172, 59108) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45184, 59112) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45196, 59116) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) { k[11302] = 45040; Ya(2464); break; } a2 = Wa() | 0; Bb(2464); fb(a2 | 0); } while (0); return k[11302] | 0; } function tu(a2) { a2 = a2 | 0; do if ((i2[2480] | 0) == 0 ? (Qa(2480) | 0) != 0 : 0) { if ((i2[2488] | 0) == 0 ? (Qa(2488) | 0) != 0 : 0) { a2 = 45212; do { k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; a2 = a2 + 12 | 0; } while ((a2 | 0) != 45380); tb(194, 0, w | 0) | 0; Ya(2488); } x = 0; Aa(42, 45212, 45380) | 0; a2 = x; x = 0; if (((((((((((((!(a2 & 1) ? (x = 0, Aa(42, 45224, 45408) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45236, 45436) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45248, 45468) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45260, 45508) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45272, 45544) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45284, 45572) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45296, 45608) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45308, 45624) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45320, 45640) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45332, 45656) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45344, 45672) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45356, 45688) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 45368, 45704) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) { k[11430] = 45212; Ya(2480); break; } a2 = Wa() | 0; Bb(2480); fb(a2 | 0); } while (0); return k[11430] | 0; } function uu(a2) { a2 = a2 | 0; a: do if ((i2[2496] | 0) == 0 ? (Qa(2496) | 0) != 0 : 0) { if ((i2[2504] | 0) == 0 ? (Qa(2504) | 0) != 0 : 0) { a2 = 45724; do { k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; a2 = a2 + 12 | 0; } while ((a2 | 0) != 46012); tb(195, 0, w | 0) | 0; Ya(2504); } x = 0; Aa(41, 45724, 59120) | 0; a2 = x; x = 0; do if ((((((((((((((!(a2 & 1) ? (x = 0, Aa(41, 45736, 59128) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45748, 59137) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45760, 59143) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45772, 59149) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45784, 59153) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45796, 59158) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45808, 59163) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45820, 59170) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45832, 59180) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45844, 59188) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45856, 59197) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45868, 59206) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45880, 59210) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(41, 45892, 59214) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) { x = 0; Aa(41, 45904, 59218) | 0; a2 = x; x = 0; if (a2 & 1) break; x = 0; Aa(41, 45916, 59149) | 0; a2 = x; x = 0; if (a2 & 1) break; x = 0; Aa(41, 45928, 59222) | 0; a2 = x; x = 0; if (a2 & 1) break; x = 0; Aa(41, 45940, 59226) | 0; a2 = x; x = 0; if (a2 & 1) break; x = 0; Aa(41, 45952, 59230) | 0; a2 = x; x = 0; if (a2 & 1) break; x = 0; Aa(41, 45964, 59234) | 0; a2 = x; x = 0; if (a2 & 1) break; x = 0; Aa(41, 45976, 59238) | 0; a2 = x; x = 0; if (a2 & 1) break; x = 0; Aa(41, 45988, 59242) | 0; a2 = x; x = 0; if (a2 & 1) break; x = 0; Aa(41, 46e3, 59246) | 0; a2 = x; x = 0; if (a2 & 1) break; k[11503] = 45724; Ya(2496); break a; } while (0); a2 = Wa() | 0; Bb(2496); fb(a2 | 0); } while (0); return k[11503] | 0; } function vu(a2) { a2 = a2 | 0; a: do if ((i2[2512] | 0) == 0 ? (Qa(2512) | 0) != 0 : 0) { if ((i2[2520] | 0) == 0 ? (Qa(2520) | 0) != 0 : 0) { a2 = 46016; do { k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; a2 = a2 + 12 | 0; } while ((a2 | 0) != 46304); tb(196, 0, w | 0) | 0; Ya(2520); } x = 0; Aa(42, 46016, 46304) | 0; a2 = x; x = 0; do if ((((((((((((((!(a2 & 1) ? (x = 0, Aa(42, 46028, 46336) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46040, 46372) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46052, 46396) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46064, 46420) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46076, 46436) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46088, 46456) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46100, 46476) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46112, 46504) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46124, 46544) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46136, 46576) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46148, 46612) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46160, 46648) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46172, 46664) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) ? (x = 0, Aa(42, 46184, 46680) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) { x = 0; Aa(42, 46196, 46696) | 0; a2 = x; x = 0; if (a2 & 1) break; x = 0; Aa(42, 46208, 46420) | 0; a2 = x; x = 0; if (a2 & 1) break; x = 0; Aa(42, 46220, 46712) | 0; a2 = x; x = 0; if (a2 & 1) break; x = 0; Aa(42, 46232, 46728) | 0; a2 = x; x = 0; if (a2 & 1) break; x = 0; Aa(42, 46244, 46744) | 0; a2 = x; x = 0; if (a2 & 1) break; x = 0; Aa(42, 46256, 46760) | 0; a2 = x; x = 0; if (a2 & 1) break; x = 0; Aa(42, 46268, 46776) | 0; a2 = x; x = 0; if (a2 & 1) break; x = 0; Aa(42, 46280, 46792) | 0; a2 = x; x = 0; if (a2 & 1) break; x = 0; Aa(42, 46292, 46808) | 0; a2 = x; x = 0; if (a2 & 1) break; k[11706] = 46016; Ya(2512); break a; } while (0); a2 = Wa() | 0; Bb(2512); fb(a2 | 0); } while (0); return k[11706] | 0; } function wu(a2) { a2 = a2 | 0; do if ((i2[2528] | 0) == 0 ? (Qa(2528) | 0) != 0 : 0) { if ((i2[2536] | 0) == 0 ? (Qa(2536) | 0) != 0 : 0) { a2 = 46828; do { k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; a2 = a2 + 12 | 0; } while ((a2 | 0) != 47116); tb(197, 0, w | 0) | 0; Ya(2536); } x = 0; Aa(41, 46828, 59250) | 0; a2 = x; x = 0; if (!(a2 & 1) ? (x = 0, Aa(41, 46840, 59253) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) { k[11779] = 46828; Ya(2528); break; } a2 = Wa() | 0; Bb(2528); fb(a2 | 0); } while (0); return k[11779] | 0; } function xu(a2) { a2 = a2 | 0; do if ((i2[2544] | 0) == 0 ? (Qa(2544) | 0) != 0 : 0) { if ((i2[2552] | 0) == 0 ? (Qa(2552) | 0) != 0 : 0) { a2 = 47120; do { k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; a2 = a2 + 12 | 0; } while ((a2 | 0) != 47408); tb(198, 0, w | 0) | 0; Ya(2552); } x = 0; Aa(42, 47120, 47408) | 0; a2 = x; x = 0; if (!(a2 & 1) ? (x = 0, Aa(42, 47132, 47420) | 0, a2 = x, x = 0, !(a2 & 1)) : 0) { k[11858] = 47120; Ya(2544); break; } a2 = Wa() | 0; Bb(2544); fb(a2 | 0); } while (0); return k[11858] | 0; } function yu(a2) { a2 = a2 | 0; do if ((i2[2560] | 0) == 0 ? (Qa(2560) | 0) != 0 : 0) { x = 0; Fa(5, 47436, 59256, 8); a2 = x; x = 0; if (a2 & 1) { a2 = Wa() | 0; Bb(2560); fb(a2 | 0); } else { tb(199, 47436, w | 0) | 0; Ya(2560); break; } } while (0); return 47436; } function zu(a2) { a2 = a2 | 0; var b2 = 0; do if ((i2[2568] | 0) == 0 ? (Qa(2568) | 0) != 0 : 0) { x = 0; a2 = ta(76, 47448) | 0; b2 = x; x = 0; if (!(b2 & 1) ? (x = 0, Fa(15, 47484, 47448, a2 | 0), b2 = x, x = 0, !(b2 & 1)) : 0) { tb(200, 47484, w | 0) | 0; Ya(2568); break; } b2 = Wa() | 0; Bb(2568); fb(b2 | 0); } while (0); return 47484; } function Au(a2) { a2 = a2 | 0; do if ((i2[2576] | 0) == 0 ? (Qa(2576) | 0) != 0 : 0) { x = 0; Fa(5, 47496, 59265, 8); a2 = x; x = 0; if (a2 & 1) { a2 = Wa() | 0; Bb(2576); fb(a2 | 0); } else { tb(199, 47496, w | 0) | 0; Ya(2576); break; } } while (0); return 47496; } function Bu(a2) { a2 = a2 | 0; var b2 = 0; do if ((i2[2584] | 0) == 0 ? (Qa(2584) | 0) != 0 : 0) { x = 0; a2 = ta(76, 47508) | 0; b2 = x; x = 0; if (!(b2 & 1) ? (x = 0, Fa(15, 47544, 47508, a2 | 0), b2 = x, x = 0, !(b2 & 1)) : 0) { tb(200, 47544, w | 0) | 0; Ya(2584); break; } b2 = Wa() | 0; Bb(2584); fb(b2 | 0); } while (0); return 47544; } function Cu(a2) { a2 = a2 | 0; do if ((i2[2592] | 0) == 0 ? (Qa(2592) | 0) != 0 : 0) { x = 0; Fa(5, 47556, 59274, 20); a2 = x; x = 0; if (a2 & 1) { a2 = Wa() | 0; Bb(2592); fb(a2 | 0); } else { tb(199, 47556, w | 0) | 0; Ya(2592); break; } } while (0); return 47556; } function Du(a2) { a2 = a2 | 0; var b2 = 0; do if ((i2[2600] | 0) == 0 ? (Qa(2600) | 0) != 0 : 0) { x = 0; a2 = ta(76, 47568) | 0; b2 = x; x = 0; if (!(b2 & 1) ? (x = 0, Fa(15, 47652, 47568, a2 | 0), b2 = x, x = 0, !(b2 & 1)) : 0) { tb(200, 47652, w | 0) | 0; Ya(2600); break; } b2 = Wa() | 0; Bb(2600); fb(b2 | 0); } while (0); return 47652; } function Eu(a2) { a2 = a2 | 0; do if ((i2[2608] | 0) == 0 ? (Qa(2608) | 0) != 0 : 0) { x = 0; Fa(5, 47664, 59295, 11); a2 = x; x = 0; if (a2 & 1) { a2 = Wa() | 0; Bb(2608); fb(a2 | 0); } else { tb(199, 47664, w | 0) | 0; Ya(2608); break; } } while (0); return 47664; } function Fu(a2) { a2 = a2 | 0; var b2 = 0; do if ((i2[2616] | 0) == 0 ? (Qa(2616) | 0) != 0 : 0) { x = 0; a2 = ta(76, 47676) | 0; b2 = x; x = 0; if (!(b2 & 1) ? (x = 0, Fa(15, 47724, 47676, a2 | 0), b2 = x, x = 0, !(b2 & 1)) : 0) { tb(200, 47724, w | 0) | 0; Ya(2616); break; } b2 = Wa() | 0; Bb(2616); fb(b2 | 0); } while (0); return 47724; } function Gu(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0; k[a2 >> 2] = 44304; a2 = a2 + 8 | 0; b2 = k[a2 >> 2] | 0; x = 0; c2 = Da(3) | 0; d2 = x; x = 0; do if (!(d2 & 1)) { if ((b2 | 0) != (c2 | 0) ? (x = 0, qa(188, k[a2 >> 2] | 0), d2 = x, x = 0, d2 & 1) : 0) break; return; } while (0); d2 = Wa(0) | 0; oc(d2); } function Hu(a2, b2, c2, d2, e2, f2, g2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; var h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0; z2 = r; r = r + 112 | 0; j2 = z2; n2 = (d2 - c2 | 0) / 12 | 0; do if (n2 >>> 0 > 100) { j2 = Pl(n2) | 0; if ((j2 | 0) == 0 ? (x = 0, Ga(6), y2 = x, x = 0, y2 & 1) : 0) { h2 = 0; q2 = 6; break; } h2 = j2; q2 = 11; } else { h2 = 0; q2 = 11; } while (0); a: do if ((q2 | 0) == 11) { if ((c2 | 0) == (d2 | 0)) m2 = 0; else { q2 = c2; o2 = 0; p2 = j2; while (1) { m2 = i2[q2 >> 0] | 0; if (!(m2 & 1)) m2 = (m2 & 255) >>> 1; else m2 = k[q2 + 4 >> 2] | 0; if (!m2) { i2[p2 >> 0] = 2; m2 = o2 + 1 | 0; n2 = n2 + -1 | 0; } else { i2[p2 >> 0] = 1; m2 = o2; } q2 = q2 + 12 | 0; if ((q2 | 0) == (d2 | 0)) break; else { o2 = m2; p2 = p2 + 1 | 0; } } } w2 = (c2 | 0) == (d2 | 0); y2 = (c2 | 0) == (d2 | 0); v2 = 0; s2 = m2; b: while (1) { m2 = k[a2 >> 2] | 0; do if (m2) { if ((k[m2 + 12 >> 2] | 0) == (k[m2 + 16 >> 2] | 0)) { x = 0; m2 = ta(k[(k[m2 >> 2] | 0) + 36 >> 2] | 0, m2 | 0) | 0; u2 = x; x = 0; if (u2 & 1) { q2 = 5; break b; } if ((m2 | 0) == -1) { k[a2 >> 2] = 0; m2 = 0; break; } else { m2 = k[a2 >> 2] | 0; break; } } } else m2 = 0; while (0); q2 = (m2 | 0) == 0; o2 = k[b2 >> 2] | 0; if (o2) { if ((k[o2 + 12 >> 2] | 0) == (k[o2 + 16 >> 2] | 0)) { x = 0; m2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; u2 = x; x = 0; if (u2 & 1) { q2 = 5; break; } if ((m2 | 0) == -1) { k[b2 >> 2] = 0; o2 = 0; } } } else o2 = 0; p2 = (o2 | 0) == 0; m2 = k[a2 >> 2] | 0; if (!((n2 | 0) != 0 & (q2 ^ p2))) { q2 = 64; break; } o2 = k[m2 + 12 >> 2] | 0; if ((o2 | 0) == (k[m2 + 16 >> 2] | 0)) { x = 0; m2 = ta(k[(k[m2 >> 2] | 0) + 36 >> 2] | 0, m2 | 0) | 0; u2 = x; x = 0; if (u2 & 1) { q2 = 5; break; } } else m2 = l[o2 >> 0] | 0; m2 = m2 & 255; if (!g2) { x = 0; m2 = Aa(k[(k[e2 >> 2] | 0) + 12 >> 2] | 0, e2 | 0, m2 | 0) | 0; u2 = x; x = 0; if (u2 & 1) { q2 = 5; break; } } u2 = v2 + 1 | 0; if (w2) { m2 = 0; q2 = s2; } else { p2 = 0; t2 = c2; q2 = s2; s2 = j2; while (1) { do if ((i2[s2 >> 0] | 0) == 1) { if (!(i2[t2 >> 0] & 1)) o2 = t2 + 1 | 0; else o2 = k[t2 + 8 >> 2] | 0; o2 = i2[o2 + v2 >> 0] | 0; if (!g2) { x = 0; o2 = Aa(k[(k[e2 >> 2] | 0) + 12 >> 2] | 0, e2 | 0, o2 | 0) | 0; A2 = x; x = 0; if (A2 & 1) { q2 = 4; break b; } } if (m2 << 24 >> 24 != o2 << 24 >> 24) { i2[s2 >> 0] = 0; o2 = p2; n2 = n2 + -1 | 0; break; } o2 = i2[t2 >> 0] | 0; if (!(o2 & 1)) o2 = (o2 & 255) >>> 1; else o2 = k[t2 + 4 >> 2] | 0; if ((o2 | 0) == (u2 | 0)) { i2[s2 >> 0] = 2; o2 = 1; q2 = q2 + 1 | 0; n2 = n2 + -1 | 0; } else o2 = 1; } else o2 = p2; while (0); t2 = t2 + 12 | 0; if ((t2 | 0) == (d2 | 0)) { m2 = o2; break; } else { p2 = o2; s2 = s2 + 1 | 0; } } } if (!m2) { v2 = u2; s2 = q2; continue; } m2 = k[a2 >> 2] | 0; o2 = m2 + 12 | 0; p2 = k[o2 >> 2] | 0; if ((p2 | 0) == (k[m2 + 16 >> 2] | 0)) { x = 0; ta(k[(k[m2 >> 2] | 0) + 40 >> 2] | 0, m2 | 0) | 0; A2 = x; x = 0; if (A2 & 1) { q2 = 5; break; } } else k[o2 >> 2] = p2 + 1; if ((q2 + n2 | 0) >>> 0 < 2 | y2) { v2 = u2; s2 = q2; continue; } else { m2 = c2; p2 = q2; q2 = j2; } while (1) { if ((i2[q2 >> 0] | 0) == 2) { o2 = i2[m2 >> 0] | 0; if (!(o2 & 1)) o2 = (o2 & 255) >>> 1; else o2 = k[m2 + 4 >> 2] | 0; if ((o2 | 0) != (u2 | 0)) { i2[q2 >> 0] = 0; p2 = p2 + -1 | 0; } } m2 = m2 + 12 | 0; if ((m2 | 0) == (d2 | 0)) { v2 = u2; s2 = p2; continue b; } else q2 = q2 + 1 | 0; } } if ((q2 | 0) == 4) { c2 = Wa() | 0; break; } else if ((q2 | 0) == 5) { c2 = Wa() | 0; break; } else if ((q2 | 0) == 64) { do if (m2) { if ((k[m2 + 12 >> 2] | 0) == (k[m2 + 16 >> 2] | 0)) { x = 0; m2 = ta(k[(k[m2 >> 2] | 0) + 36 >> 2] | 0, m2 | 0) | 0; A2 = x; x = 0; if (A2 & 1) { q2 = 6; break a; } if ((m2 | 0) == -1) { k[a2 >> 2] = 0; m2 = 0; break; } else { m2 = k[a2 >> 2] | 0; break; } } } else m2 = 0; while (0); n2 = (m2 | 0) == 0; do if (!p2) { if ((k[o2 + 12 >> 2] | 0) == (k[o2 + 16 >> 2] | 0)) { x = 0; m2 = ta(k[(k[o2 >> 2] | 0) + 36 >> 2] | 0, o2 | 0) | 0; A2 = x; x = 0; if (A2 & 1) { q2 = 6; break a; } if ((m2 | 0) == -1) { k[b2 >> 2] = 0; q2 = 76; break; } } if (!n2) q2 = 77; } else q2 = 76; while (0); if ((q2 | 0) == 76 ? n2 : 0) q2 = 77; if ((q2 | 0) == 77) k[f2 >> 2] = k[f2 >> 2] | 2; c: do if ((c2 | 0) == (d2 | 0)) q2 = 81; else while (1) { if ((i2[j2 >> 0] | 0) == 2) break c; c2 = c2 + 12 | 0; if ((c2 | 0) == (d2 | 0)) { q2 = 81; break; } else j2 = j2 + 1 | 0; } while (0); if ((q2 | 0) == 81) { k[f2 >> 2] = k[f2 >> 2] | 4; c2 = d2; } if (h2) Ql(h2); r = z2; return c2 | 0; } } while (0); if ((q2 | 0) == 6) c2 = Wa() | 0; if (h2) Ql(h2); fb(c2 | 0); return 0; } function Iu(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0; A2 = r; r = r + 240 | 0; s2 = A2 + 202 | 0; g2 = A2 + 200 | 0; C2 = A2 + 24 | 0; B2 = A2 + 12 | 0; u2 = A2 + 8 | 0; y2 = A2 + 40 | 0; z2 = A2 + 4 | 0; v2 = A2; t2 = ru(d2) | 0; up(C2, d2, s2, g2); k[B2 >> 2] = 0; k[B2 + 4 >> 2] = 0; k[B2 + 8 >> 2] = 0; if (!(i2[B2 >> 0] & 1)) a2 = 10; else a2 = (k[B2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, B2 | 0, a2 | 0, 0); q2 = x; x = 0; a: do if (!(q2 & 1)) { o2 = B2 + 8 | 0; p2 = B2 + 1 | 0; d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; k[u2 >> 2] = d2; k[z2 >> 2] = y2; k[v2 >> 2] = 0; q2 = B2 + 4 | 0; n2 = i2[g2 >> 0] | 0; a2 = k[b2 >> 2] | 0; b: while (1) { if (a2) { if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { x = 0; g2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; m2 = x; x = 0; if (m2 & 1) { D2 = 24; break; } if ((g2 | 0) == -1) { k[b2 >> 2] = 0; a2 = 0; } } } else a2 = 0; h2 = (a2 | 0) == 0; g2 = k[c2 >> 2] | 0; do if (g2) { if ((k[g2 + 12 >> 2] | 0) != (k[g2 + 16 >> 2] | 0)) if (h2) break; else break b; x = 0; j2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; m2 = x; x = 0; if (m2 & 1) { D2 = 24; break b; } if ((j2 | 0) != -1) if (h2) break; else break b; else { k[c2 >> 2] = 0; D2 = 16; break; } } else D2 = 16; while (0); if ((D2 | 0) == 16) { D2 = 0; if (h2) { g2 = 0; break; } else g2 = 0; } h2 = i2[B2 >> 0] | 0; h2 = (h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[q2 >> 2] | 0; if ((k[u2 >> 2] | 0) == (d2 + h2 | 0)) { x = 0; Fa(8, B2 | 0, h2 << 1 | 0, 0); m2 = x; x = 0; if (m2 & 1) { D2 = 24; break; } if (!(i2[B2 >> 0] & 1)) d2 = 10; else d2 = (k[B2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, B2 | 0, d2 | 0, 0); m2 = x; x = 0; if (m2 & 1) { D2 = 24; break; } d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; k[u2 >> 2] = d2 + h2; } j2 = a2 + 12 | 0; h2 = k[j2 >> 2] | 0; m2 = a2 + 16 | 0; if ((h2 | 0) == (k[m2 >> 2] | 0)) { x = 0; h2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; E2 = x; x = 0; if (E2 & 1) { D2 = 24; break; } } else h2 = l[h2 >> 0] | 0; if (ep(h2 & 255, t2, d2, u2, v2, n2, C2, y2, z2, s2) | 0) break; g2 = k[j2 >> 2] | 0; if ((g2 | 0) == (k[m2 >> 2] | 0)) { x = 0; ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; E2 = x; x = 0; if (E2 & 1) { D2 = 24; break; } else continue; } else { k[j2 >> 2] = g2 + 1; continue; } } if ((D2 | 0) == 24) { a2 = Wa() | 0; break; } E2 = i2[C2 >> 0] | 0; if ((((E2 & 1) == 0 ? (E2 & 255) >>> 1 : k[C2 + 4 >> 2] | 0) | 0) != 0 ? (w2 = k[z2 >> 2] | 0, (w2 - y2 | 0) < 160) : 0) { E2 = k[v2 >> 2] | 0; k[z2 >> 2] = w2 + 4; k[w2 >> 2] = E2; } x = 0; d2 = Ea(21, d2 | 0, k[u2 >> 2] | 0, e2 | 0, t2 | 0) | 0; E2 = x; x = 0; if (!(E2 & 1)) { k[f2 >> 2] = d2; cs(C2, y2, k[z2 >> 2] | 0, e2); if (a2) { if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { x = 0; d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; E2 = x; x = 0; if (E2 & 1) { D2 = 25; break; } if ((d2 | 0) == -1) { k[b2 >> 2] = 0; a2 = 0; } } } else a2 = 0; d2 = (a2 | 0) == 0; do if (g2) { if ((k[g2 + 12 >> 2] | 0) == (k[g2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; E2 = x; x = 0; if (E2 & 1) { D2 = 25; break a; } if ((a2 | 0) == -1) { k[c2 >> 2] = 0; D2 = 49; break; } } if (!d2) D2 = 50; } else D2 = 49; while (0); if ((D2 | 0) == 49 ? d2 : 0) D2 = 50; if ((D2 | 0) == 50) k[e2 >> 2] = k[e2 >> 2] | 2; E2 = k[b2 >> 2] | 0; Sm(B2); Sm(C2); r = A2; return E2 | 0; } else D2 = 25; } else D2 = 25; while (0); if ((D2 | 0) == 25) a2 = Wa() | 0; Sm(B2); Sm(C2); fb(a2 | 0); return 0; } function Ju(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0; A2 = r; r = r + 240 | 0; s2 = A2 + 202 | 0; g2 = A2 + 200 | 0; C2 = A2 + 24 | 0; B2 = A2 + 12 | 0; u2 = A2 + 8 | 0; y2 = A2 + 40 | 0; z2 = A2 + 4 | 0; v2 = A2; t2 = ru(d2) | 0; up(C2, d2, s2, g2); k[B2 >> 2] = 0; k[B2 + 4 >> 2] = 0; k[B2 + 8 >> 2] = 0; if (!(i2[B2 >> 0] & 1)) a2 = 10; else a2 = (k[B2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, B2 | 0, a2 | 0, 0); q2 = x; x = 0; a: do if (!(q2 & 1)) { o2 = B2 + 8 | 0; p2 = B2 + 1 | 0; d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; k[u2 >> 2] = d2; k[z2 >> 2] = y2; k[v2 >> 2] = 0; q2 = B2 + 4 | 0; n2 = i2[g2 >> 0] | 0; a2 = k[b2 >> 2] | 0; b: while (1) { if (a2) { if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { x = 0; g2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; m2 = x; x = 0; if (m2 & 1) { D2 = 24; break; } if ((g2 | 0) == -1) { k[b2 >> 2] = 0; a2 = 0; } } } else a2 = 0; g2 = (a2 | 0) == 0; h2 = k[c2 >> 2] | 0; do if (h2) { if ((k[h2 + 12 >> 2] | 0) != (k[h2 + 16 >> 2] | 0)) if (g2) break; else break b; x = 0; j2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; m2 = x; x = 0; if (m2 & 1) { D2 = 24; break b; } if ((j2 | 0) != -1) if (g2) break; else break b; else { k[c2 >> 2] = 0; D2 = 16; break; } } else D2 = 16; while (0); if ((D2 | 0) == 16) { D2 = 0; if (g2) { h2 = 0; break; } else h2 = 0; } g2 = i2[B2 >> 0] | 0; g2 = (g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[q2 >> 2] | 0; if ((k[u2 >> 2] | 0) == (d2 + g2 | 0)) { x = 0; Fa(8, B2 | 0, g2 << 1 | 0, 0); m2 = x; x = 0; if (m2 & 1) { D2 = 24; break; } if (!(i2[B2 >> 0] & 1)) d2 = 10; else d2 = (k[B2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, B2 | 0, d2 | 0, 0); m2 = x; x = 0; if (m2 & 1) { D2 = 24; break; } d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; k[u2 >> 2] = d2 + g2; } j2 = a2 + 12 | 0; g2 = k[j2 >> 2] | 0; m2 = a2 + 16 | 0; if ((g2 | 0) == (k[m2 >> 2] | 0)) { x = 0; g2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; E2 = x; x = 0; if (E2 & 1) { D2 = 24; break; } } else g2 = l[g2 >> 0] | 0; if (ep(g2 & 255, t2, d2, u2, v2, n2, C2, y2, z2, s2) | 0) break; g2 = k[j2 >> 2] | 0; if ((g2 | 0) == (k[m2 >> 2] | 0)) { x = 0; ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; E2 = x; x = 0; if (E2 & 1) { D2 = 24; break; } else continue; } else { k[j2 >> 2] = g2 + 1; continue; } } if ((D2 | 0) == 24) { a2 = Wa() | 0; break; } E2 = i2[C2 >> 0] | 0; if ((((E2 & 1) == 0 ? (E2 & 255) >>> 1 : k[C2 + 4 >> 2] | 0) | 0) != 0 ? (w2 = k[z2 >> 2] | 0, (w2 - y2 | 0) < 160) : 0) { E2 = k[v2 >> 2] | 0; k[z2 >> 2] = w2 + 4; k[w2 >> 2] = E2; } x = 0; d2 = Ea(22, d2 | 0, k[u2 >> 2] | 0, e2 | 0, t2 | 0) | 0; g2 = M; E2 = x; x = 0; if (!(E2 & 1)) { E2 = f2; k[E2 >> 2] = d2; k[E2 + 4 >> 2] = g2; cs(C2, y2, k[z2 >> 2] | 0, e2); if (a2) { if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { x = 0; d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; E2 = x; x = 0; if (E2 & 1) { D2 = 25; break; } if ((d2 | 0) == -1) { k[b2 >> 2] = 0; a2 = 0; } } } else a2 = 0; d2 = (a2 | 0) == 0; do if (h2) { if ((k[h2 + 12 >> 2] | 0) == (k[h2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; E2 = x; x = 0; if (E2 & 1) { D2 = 25; break a; } if ((a2 | 0) == -1) { k[c2 >> 2] = 0; D2 = 49; break; } } if (!d2) D2 = 50; } else D2 = 49; while (0); if ((D2 | 0) == 49 ? d2 : 0) D2 = 50; if ((D2 | 0) == 50) k[e2 >> 2] = k[e2 >> 2] | 2; E2 = k[b2 >> 2] | 0; Sm(B2); Sm(C2); r = A2; return E2 | 0; } else D2 = 25; } else D2 = 25; while (0); if ((D2 | 0) == 25) a2 = Wa() | 0; Sm(B2); Sm(C2); fb(a2 | 0); return 0; } function Ku(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0; B2 = r; r = r + 240 | 0; t2 = B2 + 202 | 0; g2 = B2 + 200 | 0; D2 = B2 + 24 | 0; C2 = B2 + 12 | 0; v2 = B2 + 8 | 0; z2 = B2 + 40 | 0; A2 = B2 + 4 | 0; w2 = B2; u2 = ru(d2) | 0; up(D2, d2, t2, g2); k[C2 >> 2] = 0; k[C2 + 4 >> 2] = 0; k[C2 + 8 >> 2] = 0; if (!(i2[C2 >> 0] & 1)) a2 = 10; else a2 = (k[C2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, C2 | 0, a2 | 0, 0); s2 = x; x = 0; a: do if (!(s2 & 1)) { p2 = C2 + 8 | 0; q2 = C2 + 1 | 0; d2 = (i2[C2 >> 0] & 1) == 0 ? q2 : k[p2 >> 2] | 0; k[v2 >> 2] = d2; k[A2 >> 2] = z2; k[w2 >> 2] = 0; s2 = C2 + 4 | 0; o2 = i2[g2 >> 0] | 0; a2 = k[b2 >> 2] | 0; b: while (1) { if (a2) { if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { x = 0; g2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; n2 = x; x = 0; if (n2 & 1) { E2 = 24; break; } if ((g2 | 0) == -1) { k[b2 >> 2] = 0; a2 = 0; } } } else a2 = 0; h2 = (a2 | 0) == 0; g2 = k[c2 >> 2] | 0; do if (g2) { if ((k[g2 + 12 >> 2] | 0) != (k[g2 + 16 >> 2] | 0)) if (h2) break; else break b; x = 0; m2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; n2 = x; x = 0; if (n2 & 1) { E2 = 24; break b; } if ((m2 | 0) != -1) if (h2) break; else break b; else { k[c2 >> 2] = 0; E2 = 16; break; } } else E2 = 16; while (0); if ((E2 | 0) == 16) { E2 = 0; if (h2) { g2 = 0; break; } else g2 = 0; } h2 = i2[C2 >> 0] | 0; h2 = (h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[s2 >> 2] | 0; if ((k[v2 >> 2] | 0) == (d2 + h2 | 0)) { x = 0; Fa(8, C2 | 0, h2 << 1 | 0, 0); n2 = x; x = 0; if (n2 & 1) { E2 = 24; break; } if (!(i2[C2 >> 0] & 1)) d2 = 10; else d2 = (k[C2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, C2 | 0, d2 | 0, 0); n2 = x; x = 0; if (n2 & 1) { E2 = 24; break; } d2 = (i2[C2 >> 0] & 1) == 0 ? q2 : k[p2 >> 2] | 0; k[v2 >> 2] = d2 + h2; } m2 = a2 + 12 | 0; h2 = k[m2 >> 2] | 0; n2 = a2 + 16 | 0; if ((h2 | 0) == (k[n2 >> 2] | 0)) { x = 0; h2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; F2 = x; x = 0; if (F2 & 1) { E2 = 24; break; } } else h2 = l[h2 >> 0] | 0; if (ep(h2 & 255, u2, d2, v2, w2, o2, D2, z2, A2, t2) | 0) break; g2 = k[m2 >> 2] | 0; if ((g2 | 0) == (k[n2 >> 2] | 0)) { x = 0; ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; F2 = x; x = 0; if (F2 & 1) { E2 = 24; break; } else continue; } else { k[m2 >> 2] = g2 + 1; continue; } } if ((E2 | 0) == 24) { a2 = Wa() | 0; break; } F2 = i2[D2 >> 0] | 0; if ((((F2 & 1) == 0 ? (F2 & 255) >>> 1 : k[D2 + 4 >> 2] | 0) | 0) != 0 ? (y2 = k[A2 >> 2] | 0, (y2 - z2 | 0) < 160) : 0) { F2 = k[w2 >> 2] | 0; k[A2 >> 2] = y2 + 4; k[y2 >> 2] = F2; } x = 0; d2 = Ea(23, d2 | 0, k[v2 >> 2] | 0, e2 | 0, u2 | 0) | 0; F2 = x; x = 0; if (!(F2 & 1)) { j[f2 >> 1] = d2; cs(D2, z2, k[A2 >> 2] | 0, e2); if (a2) { if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { x = 0; d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; F2 = x; x = 0; if (F2 & 1) { E2 = 25; break; } if ((d2 | 0) == -1) { k[b2 >> 2] = 0; a2 = 0; } } } else a2 = 0; d2 = (a2 | 0) == 0; do if (g2) { if ((k[g2 + 12 >> 2] | 0) == (k[g2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; F2 = x; x = 0; if (F2 & 1) { E2 = 25; break a; } if ((a2 | 0) == -1) { k[c2 >> 2] = 0; E2 = 49; break; } } if (!d2) E2 = 50; } else E2 = 49; while (0); if ((E2 | 0) == 49 ? d2 : 0) E2 = 50; if ((E2 | 0) == 50) k[e2 >> 2] = k[e2 >> 2] | 2; F2 = k[b2 >> 2] | 0; Sm(C2); Sm(D2); r = B2; return F2 | 0; } else E2 = 25; } else E2 = 25; while (0); if ((E2 | 0) == 25) a2 = Wa() | 0; Sm(C2); Sm(D2); fb(a2 | 0); return 0; } function Lu(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0; A2 = r; r = r + 240 | 0; s2 = A2 + 202 | 0; g2 = A2 + 200 | 0; C2 = A2 + 24 | 0; B2 = A2 + 12 | 0; u2 = A2 + 8 | 0; y2 = A2 + 40 | 0; z2 = A2 + 4 | 0; v2 = A2; t2 = ru(d2) | 0; up(C2, d2, s2, g2); k[B2 >> 2] = 0; k[B2 + 4 >> 2] = 0; k[B2 + 8 >> 2] = 0; if (!(i2[B2 >> 0] & 1)) a2 = 10; else a2 = (k[B2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, B2 | 0, a2 | 0, 0); q2 = x; x = 0; a: do if (!(q2 & 1)) { o2 = B2 + 8 | 0; p2 = B2 + 1 | 0; d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; k[u2 >> 2] = d2; k[z2 >> 2] = y2; k[v2 >> 2] = 0; q2 = B2 + 4 | 0; n2 = i2[g2 >> 0] | 0; a2 = k[b2 >> 2] | 0; b: while (1) { if (a2) { if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { x = 0; g2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; m2 = x; x = 0; if (m2 & 1) { D2 = 24; break; } if ((g2 | 0) == -1) { k[b2 >> 2] = 0; a2 = 0; } } } else a2 = 0; h2 = (a2 | 0) == 0; g2 = k[c2 >> 2] | 0; do if (g2) { if ((k[g2 + 12 >> 2] | 0) != (k[g2 + 16 >> 2] | 0)) if (h2) break; else break b; x = 0; j2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; m2 = x; x = 0; if (m2 & 1) { D2 = 24; break b; } if ((j2 | 0) != -1) if (h2) break; else break b; else { k[c2 >> 2] = 0; D2 = 16; break; } } else D2 = 16; while (0); if ((D2 | 0) == 16) { D2 = 0; if (h2) { g2 = 0; break; } else g2 = 0; } h2 = i2[B2 >> 0] | 0; h2 = (h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[q2 >> 2] | 0; if ((k[u2 >> 2] | 0) == (d2 + h2 | 0)) { x = 0; Fa(8, B2 | 0, h2 << 1 | 0, 0); m2 = x; x = 0; if (m2 & 1) { D2 = 24; break; } if (!(i2[B2 >> 0] & 1)) d2 = 10; else d2 = (k[B2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, B2 | 0, d2 | 0, 0); m2 = x; x = 0; if (m2 & 1) { D2 = 24; break; } d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; k[u2 >> 2] = d2 + h2; } j2 = a2 + 12 | 0; h2 = k[j2 >> 2] | 0; m2 = a2 + 16 | 0; if ((h2 | 0) == (k[m2 >> 2] | 0)) { x = 0; h2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; E2 = x; x = 0; if (E2 & 1) { D2 = 24; break; } } else h2 = l[h2 >> 0] | 0; if (ep(h2 & 255, t2, d2, u2, v2, n2, C2, y2, z2, s2) | 0) break; g2 = k[j2 >> 2] | 0; if ((g2 | 0) == (k[m2 >> 2] | 0)) { x = 0; ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; E2 = x; x = 0; if (E2 & 1) { D2 = 24; break; } else continue; } else { k[j2 >> 2] = g2 + 1; continue; } } if ((D2 | 0) == 24) { a2 = Wa() | 0; break; } E2 = i2[C2 >> 0] | 0; if ((((E2 & 1) == 0 ? (E2 & 255) >>> 1 : k[C2 + 4 >> 2] | 0) | 0) != 0 ? (w2 = k[z2 >> 2] | 0, (w2 - y2 | 0) < 160) : 0) { E2 = k[v2 >> 2] | 0; k[z2 >> 2] = w2 + 4; k[w2 >> 2] = E2; } x = 0; d2 = Ea(24, d2 | 0, k[u2 >> 2] | 0, e2 | 0, t2 | 0) | 0; E2 = x; x = 0; if (!(E2 & 1)) { k[f2 >> 2] = d2; cs(C2, y2, k[z2 >> 2] | 0, e2); if (a2) { if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { x = 0; d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; E2 = x; x = 0; if (E2 & 1) { D2 = 25; break; } if ((d2 | 0) == -1) { k[b2 >> 2] = 0; a2 = 0; } } } else a2 = 0; d2 = (a2 | 0) == 0; do if (g2) { if ((k[g2 + 12 >> 2] | 0) == (k[g2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; E2 = x; x = 0; if (E2 & 1) { D2 = 25; break a; } if ((a2 | 0) == -1) { k[c2 >> 2] = 0; D2 = 49; break; } } if (!d2) D2 = 50; } else D2 = 49; while (0); if ((D2 | 0) == 49 ? d2 : 0) D2 = 50; if ((D2 | 0) == 50) k[e2 >> 2] = k[e2 >> 2] | 2; E2 = k[b2 >> 2] | 0; Sm(B2); Sm(C2); r = A2; return E2 | 0; } else D2 = 25; } else D2 = 25; while (0); if ((D2 | 0) == 25) a2 = Wa() | 0; Sm(B2); Sm(C2); fb(a2 | 0); return 0; } function Mu(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0; A2 = r; r = r + 240 | 0; s2 = A2 + 202 | 0; g2 = A2 + 200 | 0; C2 = A2 + 24 | 0; B2 = A2 + 12 | 0; u2 = A2 + 8 | 0; y2 = A2 + 40 | 0; z2 = A2 + 4 | 0; v2 = A2; t2 = ru(d2) | 0; up(C2, d2, s2, g2); k[B2 >> 2] = 0; k[B2 + 4 >> 2] = 0; k[B2 + 8 >> 2] = 0; if (!(i2[B2 >> 0] & 1)) a2 = 10; else a2 = (k[B2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, B2 | 0, a2 | 0, 0); q2 = x; x = 0; a: do if (!(q2 & 1)) { o2 = B2 + 8 | 0; p2 = B2 + 1 | 0; d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; k[u2 >> 2] = d2; k[z2 >> 2] = y2; k[v2 >> 2] = 0; q2 = B2 + 4 | 0; n2 = i2[g2 >> 0] | 0; a2 = k[b2 >> 2] | 0; b: while (1) { if (a2) { if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { x = 0; g2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; m2 = x; x = 0; if (m2 & 1) { D2 = 24; break; } if ((g2 | 0) == -1) { k[b2 >> 2] = 0; a2 = 0; } } } else a2 = 0; h2 = (a2 | 0) == 0; g2 = k[c2 >> 2] | 0; do if (g2) { if ((k[g2 + 12 >> 2] | 0) != (k[g2 + 16 >> 2] | 0)) if (h2) break; else break b; x = 0; j2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; m2 = x; x = 0; if (m2 & 1) { D2 = 24; break b; } if ((j2 | 0) != -1) if (h2) break; else break b; else { k[c2 >> 2] = 0; D2 = 16; break; } } else D2 = 16; while (0); if ((D2 | 0) == 16) { D2 = 0; if (h2) { g2 = 0; break; } else g2 = 0; } h2 = i2[B2 >> 0] | 0; h2 = (h2 & 1) == 0 ? (h2 & 255) >>> 1 : k[q2 >> 2] | 0; if ((k[u2 >> 2] | 0) == (d2 + h2 | 0)) { x = 0; Fa(8, B2 | 0, h2 << 1 | 0, 0); m2 = x; x = 0; if (m2 & 1) { D2 = 24; break; } if (!(i2[B2 >> 0] & 1)) d2 = 10; else d2 = (k[B2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, B2 | 0, d2 | 0, 0); m2 = x; x = 0; if (m2 & 1) { D2 = 24; break; } d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; k[u2 >> 2] = d2 + h2; } j2 = a2 + 12 | 0; h2 = k[j2 >> 2] | 0; m2 = a2 + 16 | 0; if ((h2 | 0) == (k[m2 >> 2] | 0)) { x = 0; h2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; E2 = x; x = 0; if (E2 & 1) { D2 = 24; break; } } else h2 = l[h2 >> 0] | 0; if (ep(h2 & 255, t2, d2, u2, v2, n2, C2, y2, z2, s2) | 0) break; g2 = k[j2 >> 2] | 0; if ((g2 | 0) == (k[m2 >> 2] | 0)) { x = 0; ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; E2 = x; x = 0; if (E2 & 1) { D2 = 24; break; } else continue; } else { k[j2 >> 2] = g2 + 1; continue; } } if ((D2 | 0) == 24) { a2 = Wa() | 0; break; } E2 = i2[C2 >> 0] | 0; if ((((E2 & 1) == 0 ? (E2 & 255) >>> 1 : k[C2 + 4 >> 2] | 0) | 0) != 0 ? (w2 = k[z2 >> 2] | 0, (w2 - y2 | 0) < 160) : 0) { E2 = k[v2 >> 2] | 0; k[z2 >> 2] = w2 + 4; k[w2 >> 2] = E2; } x = 0; d2 = Ea(25, d2 | 0, k[u2 >> 2] | 0, e2 | 0, t2 | 0) | 0; E2 = x; x = 0; if (!(E2 & 1)) { k[f2 >> 2] = d2; cs(C2, y2, k[z2 >> 2] | 0, e2); if (a2) { if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { x = 0; d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; E2 = x; x = 0; if (E2 & 1) { D2 = 25; break; } if ((d2 | 0) == -1) { k[b2 >> 2] = 0; a2 = 0; } } } else a2 = 0; d2 = (a2 | 0) == 0; do if (g2) { if ((k[g2 + 12 >> 2] | 0) == (k[g2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; E2 = x; x = 0; if (E2 & 1) { D2 = 25; break a; } if ((a2 | 0) == -1) { k[c2 >> 2] = 0; D2 = 49; break; } } if (!d2) D2 = 50; } else D2 = 49; while (0); if ((D2 | 0) == 49 ? d2 : 0) D2 = 50; if ((D2 | 0) == 50) k[e2 >> 2] = k[e2 >> 2] | 2; E2 = k[b2 >> 2] | 0; Sm(B2); Sm(C2); r = A2; return E2 | 0; } else D2 = 25; } else D2 = 25; while (0); if ((D2 | 0) == 25) a2 = Wa() | 0; Sm(B2); Sm(C2); fb(a2 | 0); return 0; } function Nu(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0; A2 = r; r = r + 240 | 0; s2 = A2 + 202 | 0; g2 = A2 + 200 | 0; C2 = A2 + 24 | 0; B2 = A2 + 12 | 0; u2 = A2 + 8 | 0; y2 = A2 + 40 | 0; z2 = A2 + 4 | 0; v2 = A2; t2 = ru(d2) | 0; up(C2, d2, s2, g2); k[B2 >> 2] = 0; k[B2 + 4 >> 2] = 0; k[B2 + 8 >> 2] = 0; if (!(i2[B2 >> 0] & 1)) a2 = 10; else a2 = (k[B2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, B2 | 0, a2 | 0, 0); q2 = x; x = 0; a: do if (!(q2 & 1)) { o2 = B2 + 8 | 0; p2 = B2 + 1 | 0; d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; k[u2 >> 2] = d2; k[z2 >> 2] = y2; k[v2 >> 2] = 0; q2 = B2 + 4 | 0; n2 = i2[g2 >> 0] | 0; a2 = k[b2 >> 2] | 0; b: while (1) { if (a2) { if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { x = 0; g2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; m2 = x; x = 0; if (m2 & 1) { D2 = 24; break; } if ((g2 | 0) == -1) { k[b2 >> 2] = 0; a2 = 0; } } } else a2 = 0; g2 = (a2 | 0) == 0; h2 = k[c2 >> 2] | 0; do if (h2) { if ((k[h2 + 12 >> 2] | 0) != (k[h2 + 16 >> 2] | 0)) if (g2) break; else break b; x = 0; j2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; m2 = x; x = 0; if (m2 & 1) { D2 = 24; break b; } if ((j2 | 0) != -1) if (g2) break; else break b; else { k[c2 >> 2] = 0; D2 = 16; break; } } else D2 = 16; while (0); if ((D2 | 0) == 16) { D2 = 0; if (g2) { h2 = 0; break; } else h2 = 0; } g2 = i2[B2 >> 0] | 0; g2 = (g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[q2 >> 2] | 0; if ((k[u2 >> 2] | 0) == (d2 + g2 | 0)) { x = 0; Fa(8, B2 | 0, g2 << 1 | 0, 0); m2 = x; x = 0; if (m2 & 1) { D2 = 24; break; } if (!(i2[B2 >> 0] & 1)) d2 = 10; else d2 = (k[B2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, B2 | 0, d2 | 0, 0); m2 = x; x = 0; if (m2 & 1) { D2 = 24; break; } d2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; k[u2 >> 2] = d2 + g2; } j2 = a2 + 12 | 0; g2 = k[j2 >> 2] | 0; m2 = a2 + 16 | 0; if ((g2 | 0) == (k[m2 >> 2] | 0)) { x = 0; g2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; E2 = x; x = 0; if (E2 & 1) { D2 = 24; break; } } else g2 = l[g2 >> 0] | 0; if (ep(g2 & 255, t2, d2, u2, v2, n2, C2, y2, z2, s2) | 0) break; g2 = k[j2 >> 2] | 0; if ((g2 | 0) == (k[m2 >> 2] | 0)) { x = 0; ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; E2 = x; x = 0; if (E2 & 1) { D2 = 24; break; } else continue; } else { k[j2 >> 2] = g2 + 1; continue; } } if ((D2 | 0) == 24) { a2 = Wa() | 0; break; } E2 = i2[C2 >> 0] | 0; if ((((E2 & 1) == 0 ? (E2 & 255) >>> 1 : k[C2 + 4 >> 2] | 0) | 0) != 0 ? (w2 = k[z2 >> 2] | 0, (w2 - y2 | 0) < 160) : 0) { E2 = k[v2 >> 2] | 0; k[z2 >> 2] = w2 + 4; k[w2 >> 2] = E2; } x = 0; d2 = Ea(26, d2 | 0, k[u2 >> 2] | 0, e2 | 0, t2 | 0) | 0; g2 = M; E2 = x; x = 0; if (!(E2 & 1)) { E2 = f2; k[E2 >> 2] = d2; k[E2 + 4 >> 2] = g2; cs(C2, y2, k[z2 >> 2] | 0, e2); if (a2) { if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { x = 0; d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; E2 = x; x = 0; if (E2 & 1) { D2 = 25; break; } if ((d2 | 0) == -1) { k[b2 >> 2] = 0; a2 = 0; } } } else a2 = 0; d2 = (a2 | 0) == 0; do if (h2) { if ((k[h2 + 12 >> 2] | 0) == (k[h2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; E2 = x; x = 0; if (E2 & 1) { D2 = 25; break a; } if ((a2 | 0) == -1) { k[c2 >> 2] = 0; D2 = 49; break; } } if (!d2) D2 = 50; } else D2 = 49; while (0); if ((D2 | 0) == 49 ? d2 : 0) D2 = 50; if ((D2 | 0) == 50) k[e2 >> 2] = k[e2 >> 2] | 2; E2 = k[b2 >> 2] | 0; Sm(B2); Sm(C2); r = A2; return E2 | 0; } else D2 = 25; } else D2 = 25; while (0); if ((D2 | 0) == 25) a2 = Wa() | 0; Sm(B2); Sm(C2); fb(a2 | 0); return 0; } function Ou(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0; E2 = r; r = r + 240 | 0; v2 = E2 + 208 | 0; h2 = E2 + 203 | 0; j2 = E2 + 202 | 0; G2 = E2 + 24 | 0; F2 = E2 + 12 | 0; y2 = E2 + 8 | 0; C2 = E2 + 40 | 0; D2 = E2 + 4 | 0; z2 = E2; A2 = E2 + 201 | 0; w2 = E2 + 200 | 0; vp(G2, d2, v2, h2, j2); k[F2 >> 2] = 0; k[F2 + 4 >> 2] = 0; k[F2 + 8 >> 2] = 0; if (!(i2[F2 >> 0] & 1)) a2 = 10; else a2 = (k[F2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, F2 | 0, a2 | 0, 0); u2 = x; x = 0; a: do if (!(u2 & 1)) { s2 = F2 + 8 | 0; t2 = F2 + 1 | 0; d2 = (i2[F2 >> 0] & 1) == 0 ? t2 : k[s2 >> 2] | 0; k[y2 >> 2] = d2; k[D2 >> 2] = C2; k[z2 >> 2] = 0; i2[A2 >> 0] = 1; i2[w2 >> 0] = 69; u2 = F2 + 4 | 0; q2 = i2[h2 >> 0] | 0; p2 = i2[j2 >> 0] | 0; a2 = k[b2 >> 2] | 0; b: while (1) { if (a2) { if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { x = 0; h2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; n2 = x; x = 0; if (n2 & 1) { H2 = 24; break; } if ((h2 | 0) == -1) { k[b2 >> 2] = 0; a2 = 0; } } } else a2 = 0; j2 = (a2 | 0) == 0; h2 = k[c2 >> 2] | 0; do if (h2) { if ((k[h2 + 12 >> 2] | 0) != (k[h2 + 16 >> 2] | 0)) if (j2) break; else break b; x = 0; m2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; n2 = x; x = 0; if (n2 & 1) { H2 = 24; break b; } if ((m2 | 0) != -1) if (j2) break; else break b; else { k[c2 >> 2] = 0; H2 = 16; break; } } else H2 = 16; while (0); if ((H2 | 0) == 16) { H2 = 0; if (j2) { h2 = 0; break; } else h2 = 0; } j2 = i2[F2 >> 0] | 0; j2 = (j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[u2 >> 2] | 0; if ((k[y2 >> 2] | 0) == (d2 + j2 | 0)) { x = 0; Fa(8, F2 | 0, j2 << 1 | 0, 0); n2 = x; x = 0; if (n2 & 1) { H2 = 24; break; } if (!(i2[F2 >> 0] & 1)) d2 = 10; else d2 = (k[F2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, F2 | 0, d2 | 0, 0); n2 = x; x = 0; if (n2 & 1) { H2 = 24; break; } d2 = (i2[F2 >> 0] & 1) == 0 ? t2 : k[s2 >> 2] | 0; k[y2 >> 2] = d2 + j2; } m2 = a2 + 12 | 0; j2 = k[m2 >> 2] | 0; n2 = a2 + 16 | 0; if ((j2 | 0) == (k[n2 >> 2] | 0)) { x = 0; j2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; I2 = x; x = 0; if (I2 & 1) { H2 = 24; break; } } else j2 = l[j2 >> 0] | 0; if (wp(j2 & 255, A2, w2, d2, y2, q2, p2, G2, C2, D2, z2, v2) | 0) break; h2 = k[m2 >> 2] | 0; if ((h2 | 0) == (k[n2 >> 2] | 0)) { x = 0; ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; I2 = x; x = 0; if (I2 & 1) { H2 = 24; break; } else continue; } else { k[m2 >> 2] = h2 + 1; continue; } } if ((H2 | 0) == 24) { a2 = Wa() | 0; break; } I2 = i2[G2 >> 0] | 0; if (!((i2[A2 >> 0] | 0) == 0 ? 1 : (((I2 & 1) == 0 ? (I2 & 255) >>> 1 : k[G2 + 4 >> 2] | 0) | 0) == 0) ? (B2 = k[D2 >> 2] | 0, (B2 - C2 | 0) < 160) : 0) { I2 = k[z2 >> 2] | 0; k[D2 >> 2] = B2 + 4; k[B2 >> 2] = I2; } x = 0; g2 = +Ca(1, d2 | 0, k[y2 >> 2] | 0, e2 | 0); I2 = x; x = 0; if (!(I2 & 1)) { o[f2 >> 2] = g2; cs(G2, C2, k[D2 >> 2] | 0, e2); if (a2) { if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { x = 0; d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; I2 = x; x = 0; if (I2 & 1) { H2 = 25; break; } if ((d2 | 0) == -1) { k[b2 >> 2] = 0; a2 = 0; } } } else a2 = 0; d2 = (a2 | 0) == 0; do if (h2) { if ((k[h2 + 12 >> 2] | 0) == (k[h2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; I2 = x; x = 0; if (I2 & 1) { H2 = 25; break a; } if ((a2 | 0) == -1) { k[c2 >> 2] = 0; H2 = 49; break; } } if (!d2) H2 = 50; } else H2 = 49; while (0); if ((H2 | 0) == 49 ? d2 : 0) H2 = 50; if ((H2 | 0) == 50) k[e2 >> 2] = k[e2 >> 2] | 2; I2 = k[b2 >> 2] | 0; Sm(F2); Sm(G2); r = E2; return I2 | 0; } else H2 = 25; } else H2 = 25; while (0); if ((H2 | 0) == 25) a2 = Wa() | 0; Sm(F2); Sm(G2); fb(a2 | 0); return 0; } function Pu(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0; E2 = r; r = r + 240 | 0; v2 = E2 + 208 | 0; h2 = E2 + 203 | 0; j2 = E2 + 202 | 0; G2 = E2 + 24 | 0; F2 = E2 + 12 | 0; y2 = E2 + 8 | 0; C2 = E2 + 40 | 0; D2 = E2 + 4 | 0; z2 = E2; A2 = E2 + 201 | 0; w2 = E2 + 200 | 0; vp(G2, d2, v2, h2, j2); k[F2 >> 2] = 0; k[F2 + 4 >> 2] = 0; k[F2 + 8 >> 2] = 0; if (!(i2[F2 >> 0] & 1)) a2 = 10; else a2 = (k[F2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, F2 | 0, a2 | 0, 0); u2 = x; x = 0; a: do if (!(u2 & 1)) { s2 = F2 + 8 | 0; t2 = F2 + 1 | 0; d2 = (i2[F2 >> 0] & 1) == 0 ? t2 : k[s2 >> 2] | 0; k[y2 >> 2] = d2; k[D2 >> 2] = C2; k[z2 >> 2] = 0; i2[A2 >> 0] = 1; i2[w2 >> 0] = 69; u2 = F2 + 4 | 0; q2 = i2[h2 >> 0] | 0; o2 = i2[j2 >> 0] | 0; a2 = k[b2 >> 2] | 0; b: while (1) { if (a2) { if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { x = 0; h2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; n2 = x; x = 0; if (n2 & 1) { H2 = 24; break; } if ((h2 | 0) == -1) { k[b2 >> 2] = 0; a2 = 0; } } } else a2 = 0; j2 = (a2 | 0) == 0; h2 = k[c2 >> 2] | 0; do if (h2) { if ((k[h2 + 12 >> 2] | 0) != (k[h2 + 16 >> 2] | 0)) if (j2) break; else break b; x = 0; m2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; n2 = x; x = 0; if (n2 & 1) { H2 = 24; break b; } if ((m2 | 0) != -1) if (j2) break; else break b; else { k[c2 >> 2] = 0; H2 = 16; break; } } else H2 = 16; while (0); if ((H2 | 0) == 16) { H2 = 0; if (j2) { h2 = 0; break; } else h2 = 0; } j2 = i2[F2 >> 0] | 0; j2 = (j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[u2 >> 2] | 0; if ((k[y2 >> 2] | 0) == (d2 + j2 | 0)) { x = 0; Fa(8, F2 | 0, j2 << 1 | 0, 0); n2 = x; x = 0; if (n2 & 1) { H2 = 24; break; } if (!(i2[F2 >> 0] & 1)) d2 = 10; else d2 = (k[F2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, F2 | 0, d2 | 0, 0); n2 = x; x = 0; if (n2 & 1) { H2 = 24; break; } d2 = (i2[F2 >> 0] & 1) == 0 ? t2 : k[s2 >> 2] | 0; k[y2 >> 2] = d2 + j2; } m2 = a2 + 12 | 0; j2 = k[m2 >> 2] | 0; n2 = a2 + 16 | 0; if ((j2 | 0) == (k[n2 >> 2] | 0)) { x = 0; j2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; I2 = x; x = 0; if (I2 & 1) { H2 = 24; break; } } else j2 = l[j2 >> 0] | 0; if (wp(j2 & 255, A2, w2, d2, y2, q2, o2, G2, C2, D2, z2, v2) | 0) break; h2 = k[m2 >> 2] | 0; if ((h2 | 0) == (k[n2 >> 2] | 0)) { x = 0; ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; I2 = x; x = 0; if (I2 & 1) { H2 = 24; break; } else continue; } else { k[m2 >> 2] = h2 + 1; continue; } } if ((H2 | 0) == 24) { a2 = Wa() | 0; break; } I2 = i2[G2 >> 0] | 0; if (!((i2[A2 >> 0] | 0) == 0 ? 1 : (((I2 & 1) == 0 ? (I2 & 255) >>> 1 : k[G2 + 4 >> 2] | 0) | 0) == 0) ? (B2 = k[D2 >> 2] | 0, (B2 - C2 | 0) < 160) : 0) { I2 = k[z2 >> 2] | 0; k[D2 >> 2] = B2 + 4; k[B2 >> 2] = I2; } x = 0; g2 = +Ca(2, d2 | 0, k[y2 >> 2] | 0, e2 | 0); I2 = x; x = 0; if (!(I2 & 1)) { p[f2 >> 3] = g2; cs(G2, C2, k[D2 >> 2] | 0, e2); if (a2) { if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { x = 0; d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; I2 = x; x = 0; if (I2 & 1) { H2 = 25; break; } if ((d2 | 0) == -1) { k[b2 >> 2] = 0; a2 = 0; } } } else a2 = 0; d2 = (a2 | 0) == 0; do if (h2) { if ((k[h2 + 12 >> 2] | 0) == (k[h2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; I2 = x; x = 0; if (I2 & 1) { H2 = 25; break a; } if ((a2 | 0) == -1) { k[c2 >> 2] = 0; H2 = 49; break; } } if (!d2) H2 = 50; } else H2 = 49; while (0); if ((H2 | 0) == 49 ? d2 : 0) H2 = 50; if ((H2 | 0) == 50) k[e2 >> 2] = k[e2 >> 2] | 2; I2 = k[b2 >> 2] | 0; Sm(F2); Sm(G2); r = E2; return I2 | 0; } else H2 = 25; } else H2 = 25; while (0); if ((H2 | 0) == 25) a2 = Wa() | 0; Sm(F2); Sm(G2); fb(a2 | 0); return 0; } function Qu(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0; E2 = r; r = r + 240 | 0; v2 = E2 + 208 | 0; h2 = E2 + 203 | 0; j2 = E2 + 202 | 0; G2 = E2 + 24 | 0; F2 = E2 + 12 | 0; y2 = E2 + 8 | 0; C2 = E2 + 40 | 0; D2 = E2 + 4 | 0; z2 = E2; A2 = E2 + 201 | 0; w2 = E2 + 200 | 0; vp(G2, d2, v2, h2, j2); k[F2 >> 2] = 0; k[F2 + 4 >> 2] = 0; k[F2 + 8 >> 2] = 0; if (!(i2[F2 >> 0] & 1)) a2 = 10; else a2 = (k[F2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, F2 | 0, a2 | 0, 0); u2 = x; x = 0; a: do if (!(u2 & 1)) { s2 = F2 + 8 | 0; t2 = F2 + 1 | 0; d2 = (i2[F2 >> 0] & 1) == 0 ? t2 : k[s2 >> 2] | 0; k[y2 >> 2] = d2; k[D2 >> 2] = C2; k[z2 >> 2] = 0; i2[A2 >> 0] = 1; i2[w2 >> 0] = 69; u2 = F2 + 4 | 0; q2 = i2[h2 >> 0] | 0; o2 = i2[j2 >> 0] | 0; a2 = k[b2 >> 2] | 0; b: while (1) { if (a2) { if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { x = 0; h2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; n2 = x; x = 0; if (n2 & 1) { H2 = 24; break; } if ((h2 | 0) == -1) { k[b2 >> 2] = 0; a2 = 0; } } } else a2 = 0; j2 = (a2 | 0) == 0; h2 = k[c2 >> 2] | 0; do if (h2) { if ((k[h2 + 12 >> 2] | 0) != (k[h2 + 16 >> 2] | 0)) if (j2) break; else break b; x = 0; m2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; n2 = x; x = 0; if (n2 & 1) { H2 = 24; break b; } if ((m2 | 0) != -1) if (j2) break; else break b; else { k[c2 >> 2] = 0; H2 = 16; break; } } else H2 = 16; while (0); if ((H2 | 0) == 16) { H2 = 0; if (j2) { h2 = 0; break; } else h2 = 0; } j2 = i2[F2 >> 0] | 0; j2 = (j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[u2 >> 2] | 0; if ((k[y2 >> 2] | 0) == (d2 + j2 | 0)) { x = 0; Fa(8, F2 | 0, j2 << 1 | 0, 0); n2 = x; x = 0; if (n2 & 1) { H2 = 24; break; } if (!(i2[F2 >> 0] & 1)) d2 = 10; else d2 = (k[F2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, F2 | 0, d2 | 0, 0); n2 = x; x = 0; if (n2 & 1) { H2 = 24; break; } d2 = (i2[F2 >> 0] & 1) == 0 ? t2 : k[s2 >> 2] | 0; k[y2 >> 2] = d2 + j2; } m2 = a2 + 12 | 0; j2 = k[m2 >> 2] | 0; n2 = a2 + 16 | 0; if ((j2 | 0) == (k[n2 >> 2] | 0)) { x = 0; j2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; I2 = x; x = 0; if (I2 & 1) { H2 = 24; break; } } else j2 = l[j2 >> 0] | 0; if (wp(j2 & 255, A2, w2, d2, y2, q2, o2, G2, C2, D2, z2, v2) | 0) break; h2 = k[m2 >> 2] | 0; if ((h2 | 0) == (k[n2 >> 2] | 0)) { x = 0; ta(k[(k[a2 >> 2] | 0) + 40 >> 2] | 0, a2 | 0) | 0; I2 = x; x = 0; if (I2 & 1) { H2 = 24; break; } else continue; } else { k[m2 >> 2] = h2 + 1; continue; } } if ((H2 | 0) == 24) { a2 = Wa() | 0; break; } I2 = i2[G2 >> 0] | 0; if (!((i2[A2 >> 0] | 0) == 0 ? 1 : (((I2 & 1) == 0 ? (I2 & 255) >>> 1 : k[G2 + 4 >> 2] | 0) | 0) == 0) ? (B2 = k[D2 >> 2] | 0, (B2 - C2 | 0) < 160) : 0) { I2 = k[z2 >> 2] | 0; k[D2 >> 2] = B2 + 4; k[B2 >> 2] = I2; } x = 0; g2 = +Ca(3, d2 | 0, k[y2 >> 2] | 0, e2 | 0); I2 = x; x = 0; if (!(I2 & 1)) { p[f2 >> 3] = g2; cs(G2, C2, k[D2 >> 2] | 0, e2); if (a2) { if ((k[a2 + 12 >> 2] | 0) == (k[a2 + 16 >> 2] | 0)) { x = 0; d2 = ta(k[(k[a2 >> 2] | 0) + 36 >> 2] | 0, a2 | 0) | 0; I2 = x; x = 0; if (I2 & 1) { H2 = 25; break; } if ((d2 | 0) == -1) { k[b2 >> 2] = 0; a2 = 0; } } } else a2 = 0; d2 = (a2 | 0) == 0; do if (h2) { if ((k[h2 + 12 >> 2] | 0) == (k[h2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; I2 = x; x = 0; if (I2 & 1) { H2 = 25; break a; } if ((a2 | 0) == -1) { k[c2 >> 2] = 0; H2 = 49; break; } } if (!d2) H2 = 50; } else H2 = 49; while (0); if ((H2 | 0) == 49 ? d2 : 0) H2 = 50; if ((H2 | 0) == 50) k[e2 >> 2] = k[e2 >> 2] | 2; I2 = k[b2 >> 2] | 0; Sm(F2); Sm(G2); r = E2; return I2 | 0; } else H2 = 25; } else H2 = 25; while (0); if ((H2 | 0) == 25) a2 = Wa() | 0; Sm(F2); Sm(G2); fb(a2 | 0); return 0; } function Ru(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0; e2 = r; r = r + 16 | 0; f2 = e2; k[f2 >> 2] = d2; d2 = Ak(b2) | 0; b2 = pl(a2, c2, f2) | 0; if ((d2 | 0) != 0 ? (x = 0, ta(75, d2 | 0) | 0, f2 = x, x = 0, f2 & 1) : 0) { f2 = Wa(0) | 0; oc(f2); } r = e2; return b2 | 0; } function Su(a2, b2, c2, d2, e2, f2, g2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; var h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0; y2 = r; r = r + 112 | 0; j2 = y2; m2 = (d2 - c2 | 0) / 12 | 0; do if (m2 >>> 0 > 100) { j2 = Pl(m2) | 0; if ((j2 | 0) == 0 ? (x = 0, Ga(6), w2 = x, x = 0, w2 & 1) : 0) { h2 = 0; o2 = 6; break; } h2 = j2; o2 = 11; } else { h2 = 0; o2 = 11; } while (0); a: do if ((o2 | 0) == 11) { if ((c2 | 0) == (d2 | 0)) l2 = 0; else { p2 = c2; n2 = 0; o2 = j2; while (1) { l2 = i2[p2 >> 0] | 0; if (!(l2 & 1)) l2 = (l2 & 255) >>> 1; else l2 = k[p2 + 4 >> 2] | 0; if (!l2) { i2[o2 >> 0] = 2; l2 = n2 + 1 | 0; m2 = m2 + -1 | 0; } else { i2[o2 >> 0] = 1; l2 = n2; } p2 = p2 + 12 | 0; if ((p2 | 0) == (d2 | 0)) break; else { n2 = l2; o2 = o2 + 1 | 0; } } } v2 = (c2 | 0) == (d2 | 0); w2 = (c2 | 0) == (d2 | 0); u2 = 0; q2 = m2; b: while (1) { m2 = k[a2 >> 2] | 0; do if (m2) { n2 = k[m2 + 12 >> 2] | 0; if ((n2 | 0) == (k[m2 + 16 >> 2] | 0)) { x = 0; m2 = ta(k[(k[m2 >> 2] | 0) + 36 >> 2] | 0, m2 | 0) | 0; t2 = x; x = 0; if (t2 & 1) { o2 = 5; break b; } } else m2 = k[n2 >> 2] | 0; if ((m2 | 0) == -1) { k[a2 >> 2] = 0; p2 = 1; break; } else { p2 = (k[a2 >> 2] | 0) == 0; break; } } else p2 = 1; while (0); n2 = k[b2 >> 2] | 0; if (n2) { m2 = k[n2 + 12 >> 2] | 0; if ((m2 | 0) == (k[n2 + 16 >> 2] | 0)) { x = 0; m2 = ta(k[(k[n2 >> 2] | 0) + 36 >> 2] | 0, n2 | 0) | 0; t2 = x; x = 0; if (t2 & 1) { o2 = 5; break; } } else m2 = k[m2 >> 2] | 0; if ((m2 | 0) == -1) { k[b2 >> 2] = 0; n2 = 0; o2 = 1; } else o2 = 0; } else { n2 = 0; o2 = 1; } m2 = k[a2 >> 2] | 0; if (!((q2 | 0) != 0 & (p2 ^ o2))) { o2 = 66; break; } n2 = k[m2 + 12 >> 2] | 0; if ((n2 | 0) == (k[m2 + 16 >> 2] | 0)) { x = 0; m2 = ta(k[(k[m2 >> 2] | 0) + 36 >> 2] | 0, m2 | 0) | 0; t2 = x; x = 0; if (t2 & 1) { o2 = 5; break; } } else m2 = k[n2 >> 2] | 0; if (!g2) { x = 0; m2 = Aa(k[(k[e2 >> 2] | 0) + 28 >> 2] | 0, e2 | 0, m2 | 0) | 0; t2 = x; x = 0; if (t2 & 1) { o2 = 5; break; } } t2 = u2 + 1 | 0; if (v2) { m2 = 0; p2 = q2; } else { p2 = 0; s2 = c2; o2 = q2; q2 = j2; while (1) { do if ((i2[q2 >> 0] | 0) == 1) { if (!(i2[s2 >> 0] & 1)) n2 = s2 + 4 | 0; else n2 = k[s2 + 8 >> 2] | 0; n2 = k[n2 + (u2 << 2) >> 2] | 0; if (!g2) { x = 0; n2 = Aa(k[(k[e2 >> 2] | 0) + 28 >> 2] | 0, e2 | 0, n2 | 0) | 0; z2 = x; x = 0; if (z2 & 1) { o2 = 4; break b; } } if ((m2 | 0) != (n2 | 0)) { i2[q2 >> 0] = 0; n2 = p2; o2 = o2 + -1 | 0; break; } n2 = i2[s2 >> 0] | 0; if (!(n2 & 1)) n2 = (n2 & 255) >>> 1; else n2 = k[s2 + 4 >> 2] | 0; if ((n2 | 0) == (t2 | 0)) { i2[q2 >> 0] = 2; n2 = 1; l2 = l2 + 1 | 0; o2 = o2 + -1 | 0; } else n2 = 1; } else n2 = p2; while (0); s2 = s2 + 12 | 0; if ((s2 | 0) == (d2 | 0)) { m2 = n2; p2 = o2; break; } else { p2 = n2; q2 = q2 + 1 | 0; } } } if (!m2) { u2 = t2; q2 = p2; continue; } m2 = k[a2 >> 2] | 0; n2 = m2 + 12 | 0; o2 = k[n2 >> 2] | 0; if ((o2 | 0) == (k[m2 + 16 >> 2] | 0)) { x = 0; ta(k[(k[m2 >> 2] | 0) + 40 >> 2] | 0, m2 | 0) | 0; z2 = x; x = 0; if (z2 & 1) { o2 = 5; break; } } else k[n2 >> 2] = o2 + 4; if ((l2 + p2 | 0) >>> 0 < 2 | w2) { u2 = t2; q2 = p2; continue; } else { m2 = c2; o2 = j2; } while (1) { if ((i2[o2 >> 0] | 0) == 2) { n2 = i2[m2 >> 0] | 0; if (!(n2 & 1)) n2 = (n2 & 255) >>> 1; else n2 = k[m2 + 4 >> 2] | 0; if ((n2 | 0) != (t2 | 0)) { i2[o2 >> 0] = 0; l2 = l2 + -1 | 0; } } m2 = m2 + 12 | 0; if ((m2 | 0) == (d2 | 0)) { u2 = t2; q2 = p2; continue b; } else o2 = o2 + 1 | 0; } } if ((o2 | 0) == 4) { c2 = Wa() | 0; break; } else if ((o2 | 0) == 5) { c2 = Wa() | 0; break; } else if ((o2 | 0) == 66) { do if (m2) { l2 = k[m2 + 12 >> 2] | 0; if ((l2 | 0) == (k[m2 + 16 >> 2] | 0)) { x = 0; l2 = ta(k[(k[m2 >> 2] | 0) + 36 >> 2] | 0, m2 | 0) | 0; z2 = x; x = 0; if (z2 & 1) { o2 = 6; break a; } } else l2 = k[l2 >> 2] | 0; if ((l2 | 0) == -1) { k[a2 >> 2] = 0; m2 = 1; break; } else { m2 = (k[a2 >> 2] | 0) == 0; break; } } else m2 = 1; while (0); do if (n2) { l2 = k[n2 + 12 >> 2] | 0; if ((l2 | 0) == (k[n2 + 16 >> 2] | 0)) { x = 0; l2 = ta(k[(k[n2 >> 2] | 0) + 36 >> 2] | 0, n2 | 0) | 0; z2 = x; x = 0; if (z2 & 1) { o2 = 6; break a; } } else l2 = k[l2 >> 2] | 0; if ((l2 | 0) != -1) if (m2) break; else { o2 = 81; break; } else { k[b2 >> 2] = 0; o2 = 79; break; } } else o2 = 79; while (0); if ((o2 | 0) == 79 ? m2 : 0) o2 = 81; if ((o2 | 0) == 81) k[f2 >> 2] = k[f2 >> 2] | 2; c: do if ((c2 | 0) == (d2 | 0)) o2 = 85; else while (1) { if ((i2[j2 >> 0] | 0) == 2) break c; c2 = c2 + 12 | 0; if ((c2 | 0) == (d2 | 0)) { o2 = 85; break; } else j2 = j2 + 1 | 0; } while (0); if ((o2 | 0) == 85) { k[f2 >> 2] = k[f2 >> 2] | 4; c2 = d2; } if (h2) Ql(h2); r = y2; return c2 | 0; } } while (0); if ((o2 | 0) == 6) c2 = Wa() | 0; if (h2) Ql(h2); fb(c2 | 0); return 0; } function Tu(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; z2 = r; r = r + 320 | 0; q2 = z2 + 208 | 0; g2 = z2 + 200 | 0; B2 = z2 + 24 | 0; A2 = z2 + 12 | 0; t2 = z2 + 8 | 0; w2 = z2 + 40 | 0; y2 = z2 + 4 | 0; u2 = z2; s2 = ru(d2) | 0; xp(B2, d2, q2, g2); k[A2 >> 2] = 0; k[A2 + 4 >> 2] = 0; k[A2 + 8 >> 2] = 0; if (!(i2[A2 >> 0] & 1)) a2 = 10; else a2 = (k[A2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, A2 | 0, a2 | 0, 0); p2 = x; x = 0; a: do if (!(p2 & 1)) { n2 = A2 + 8 | 0; o2 = A2 + 1 | 0; a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; k[t2 >> 2] = a2; k[y2 >> 2] = w2; k[u2 >> 2] = 0; p2 = A2 + 4 | 0; m2 = k[g2 >> 2] | 0; g2 = k[b2 >> 2] | 0; b: while (1) { if (g2) { d2 = k[g2 + 12 >> 2] | 0; if ((d2 | 0) == (k[g2 + 16 >> 2] | 0)) { x = 0; d2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; l2 = x; x = 0; if (l2 & 1) { C2 = 25; break; } } else d2 = k[d2 >> 2] | 0; if ((d2 | 0) == -1) { k[b2 >> 2] = 0; d2 = 0; h2 = 1; } else { d2 = g2; h2 = 0; } } else { d2 = 0; h2 = 1; } j2 = k[c2 >> 2] | 0; do if (j2) { g2 = k[j2 + 12 >> 2] | 0; if ((g2 | 0) == (k[j2 + 16 >> 2] | 0)) { x = 0; g2 = ta(k[(k[j2 >> 2] | 0) + 36 >> 2] | 0, j2 | 0) | 0; l2 = x; x = 0; if (l2 & 1) { C2 = 25; break b; } } else g2 = k[g2 >> 2] | 0; if ((g2 | 0) != -1) if (h2) break; else { g2 = j2; break b; } else { k[c2 >> 2] = 0; C2 = 17; break; } } else C2 = 17; while (0); if ((C2 | 0) == 17) { C2 = 0; if (h2) { g2 = 0; break; } else j2 = 0; } g2 = i2[A2 >> 0] | 0; g2 = (g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[p2 >> 2] | 0; if ((k[t2 >> 2] | 0) == (a2 + g2 | 0)) { x = 0; Fa(8, A2 | 0, g2 << 1 | 0, 0); l2 = x; x = 0; if (l2 & 1) { C2 = 25; break; } if (!(i2[A2 >> 0] & 1)) a2 = 10; else a2 = (k[A2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, A2 | 0, a2 | 0, 0); l2 = x; x = 0; if (l2 & 1) { C2 = 25; break; } a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; k[t2 >> 2] = a2 + g2; } h2 = d2 + 12 | 0; g2 = k[h2 >> 2] | 0; l2 = d2 + 16 | 0; if ((g2 | 0) == (k[l2 >> 2] | 0)) { x = 0; g2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; D2 = x; x = 0; if (D2 & 1) { C2 = 25; break; } } else g2 = k[g2 >> 2] | 0; if (tp(g2, s2, a2, t2, u2, m2, B2, w2, y2, q2) | 0) { g2 = j2; break; } g2 = k[h2 >> 2] | 0; if ((g2 | 0) == (k[l2 >> 2] | 0)) { x = 0; ta(k[(k[d2 >> 2] | 0) + 40 >> 2] | 0, d2 | 0) | 0; D2 = x; x = 0; if (D2 & 1) { C2 = 25; break; } else { g2 = d2; continue; } } else { k[h2 >> 2] = g2 + 4; g2 = d2; continue; } } if ((C2 | 0) == 25) { a2 = Wa() | 0; break; } D2 = i2[B2 >> 0] | 0; if ((((D2 & 1) == 0 ? (D2 & 255) >>> 1 : k[B2 + 4 >> 2] | 0) | 0) != 0 ? (v2 = k[y2 >> 2] | 0, (v2 - w2 | 0) < 160) : 0) { D2 = k[u2 >> 2] | 0; k[y2 >> 2] = v2 + 4; k[v2 >> 2] = D2; } x = 0; a2 = Ea(21, a2 | 0, k[t2 >> 2] | 0, e2 | 0, s2 | 0) | 0; D2 = x; x = 0; if (!(D2 & 1)) { k[f2 >> 2] = a2; cs(B2, w2, k[y2 >> 2] | 0, e2); if (d2) { a2 = k[d2 + 12 >> 2] | 0; if ((a2 | 0) == (k[d2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; D2 = x; x = 0; if (D2 & 1) { C2 = 26; break; } } else a2 = k[a2 >> 2] | 0; if ((a2 | 0) == -1) { k[b2 >> 2] = 0; d2 = 1; } else d2 = 0; } else d2 = 1; do if (g2) { a2 = k[g2 + 12 >> 2] | 0; if ((a2 | 0) == (k[g2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; D2 = x; x = 0; if (D2 & 1) { C2 = 26; break a; } } else a2 = k[a2 >> 2] | 0; if ((a2 | 0) != -1) if (d2) break; else { C2 = 53; break; } else { k[c2 >> 2] = 0; C2 = 51; break; } } else C2 = 51; while (0); if ((C2 | 0) == 51 ? d2 : 0) C2 = 53; if ((C2 | 0) == 53) k[e2 >> 2] = k[e2 >> 2] | 2; D2 = k[b2 >> 2] | 0; Sm(A2); Sm(B2); r = z2; return D2 | 0; } else C2 = 26; } else C2 = 26; while (0); if ((C2 | 0) == 26) a2 = Wa() | 0; Sm(A2); Sm(B2); fb(a2 | 0); return 0; } function Uu(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; z2 = r; r = r + 320 | 0; q2 = z2 + 208 | 0; g2 = z2 + 200 | 0; B2 = z2 + 24 | 0; A2 = z2 + 12 | 0; t2 = z2 + 8 | 0; w2 = z2 + 40 | 0; y2 = z2 + 4 | 0; u2 = z2; s2 = ru(d2) | 0; xp(B2, d2, q2, g2); k[A2 >> 2] = 0; k[A2 + 4 >> 2] = 0; k[A2 + 8 >> 2] = 0; if (!(i2[A2 >> 0] & 1)) a2 = 10; else a2 = (k[A2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, A2 | 0, a2 | 0, 0); p2 = x; x = 0; a: do if (!(p2 & 1)) { n2 = A2 + 8 | 0; o2 = A2 + 1 | 0; a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; k[t2 >> 2] = a2; k[y2 >> 2] = w2; k[u2 >> 2] = 0; p2 = A2 + 4 | 0; m2 = k[g2 >> 2] | 0; g2 = k[b2 >> 2] | 0; b: while (1) { if (g2) { d2 = k[g2 + 12 >> 2] | 0; if ((d2 | 0) == (k[g2 + 16 >> 2] | 0)) { x = 0; d2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; l2 = x; x = 0; if (l2 & 1) { C2 = 25; break; } } else d2 = k[d2 >> 2] | 0; if ((d2 | 0) == -1) { k[b2 >> 2] = 0; g2 = 0; j2 = 1; } else j2 = 0; } else { g2 = 0; j2 = 1; } h2 = k[c2 >> 2] | 0; do if (h2) { d2 = k[h2 + 12 >> 2] | 0; if ((d2 | 0) == (k[h2 + 16 >> 2] | 0)) { x = 0; d2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; l2 = x; x = 0; if (l2 & 1) { C2 = 25; break b; } } else d2 = k[d2 >> 2] | 0; if ((d2 | 0) != -1) if (j2) break; else break b; else { k[c2 >> 2] = 0; C2 = 17; break; } } else C2 = 17; while (0); if ((C2 | 0) == 17) { C2 = 0; if (j2) { h2 = 0; break; } else h2 = 0; } d2 = i2[A2 >> 0] | 0; d2 = (d2 & 1) == 0 ? (d2 & 255) >>> 1 : k[p2 >> 2] | 0; if ((k[t2 >> 2] | 0) == (a2 + d2 | 0)) { x = 0; Fa(8, A2 | 0, d2 << 1 | 0, 0); l2 = x; x = 0; if (l2 & 1) { C2 = 25; break; } if (!(i2[A2 >> 0] & 1)) a2 = 10; else a2 = (k[A2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, A2 | 0, a2 | 0, 0); l2 = x; x = 0; if (l2 & 1) { C2 = 25; break; } a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; k[t2 >> 2] = a2 + d2; } j2 = g2 + 12 | 0; d2 = k[j2 >> 2] | 0; l2 = g2 + 16 | 0; if ((d2 | 0) == (k[l2 >> 2] | 0)) { x = 0; d2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; D2 = x; x = 0; if (D2 & 1) { C2 = 25; break; } } else d2 = k[d2 >> 2] | 0; if (tp(d2, s2, a2, t2, u2, m2, B2, w2, y2, q2) | 0) break; d2 = k[j2 >> 2] | 0; if ((d2 | 0) == (k[l2 >> 2] | 0)) { x = 0; ta(k[(k[g2 >> 2] | 0) + 40 >> 2] | 0, g2 | 0) | 0; D2 = x; x = 0; if (D2 & 1) { C2 = 25; break; } else continue; } else { k[j2 >> 2] = d2 + 4; continue; } } if ((C2 | 0) == 25) { a2 = Wa() | 0; break; } D2 = i2[B2 >> 0] | 0; if ((((D2 & 1) == 0 ? (D2 & 255) >>> 1 : k[B2 + 4 >> 2] | 0) | 0) != 0 ? (v2 = k[y2 >> 2] | 0, (v2 - w2 | 0) < 160) : 0) { D2 = k[u2 >> 2] | 0; k[y2 >> 2] = v2 + 4; k[v2 >> 2] = D2; } x = 0; a2 = Ea(22, a2 | 0, k[t2 >> 2] | 0, e2 | 0, s2 | 0) | 0; d2 = M; D2 = x; x = 0; if (!(D2 & 1)) { D2 = f2; k[D2 >> 2] = a2; k[D2 + 4 >> 2] = d2; cs(B2, w2, k[y2 >> 2] | 0, e2); if (g2) { a2 = k[g2 + 12 >> 2] | 0; if ((a2 | 0) == (k[g2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; D2 = x; x = 0; if (D2 & 1) { C2 = 26; break; } } else a2 = k[a2 >> 2] | 0; if ((a2 | 0) == -1) { k[b2 >> 2] = 0; d2 = 1; } else d2 = 0; } else d2 = 1; do if (h2) { a2 = k[h2 + 12 >> 2] | 0; if ((a2 | 0) == (k[h2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; D2 = x; x = 0; if (D2 & 1) { C2 = 26; break a; } } else a2 = k[a2 >> 2] | 0; if ((a2 | 0) != -1) if (d2) break; else { C2 = 53; break; } else { k[c2 >> 2] = 0; C2 = 51; break; } } else C2 = 51; while (0); if ((C2 | 0) == 51 ? d2 : 0) C2 = 53; if ((C2 | 0) == 53) k[e2 >> 2] = k[e2 >> 2] | 2; D2 = k[b2 >> 2] | 0; Sm(A2); Sm(B2); r = z2; return D2 | 0; } else C2 = 26; } else C2 = 26; while (0); if ((C2 | 0) == 26) a2 = Wa() | 0; Sm(A2); Sm(B2); fb(a2 | 0); return 0; } function Vu(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0; A2 = r; r = r + 320 | 0; s2 = A2 + 208 | 0; g2 = A2 + 200 | 0; C2 = A2 + 24 | 0; B2 = A2 + 12 | 0; u2 = A2 + 8 | 0; y2 = A2 + 40 | 0; z2 = A2 + 4 | 0; v2 = A2; t2 = ru(d2) | 0; xp(C2, d2, s2, g2); k[B2 >> 2] = 0; k[B2 + 4 >> 2] = 0; k[B2 + 8 >> 2] = 0; if (!(i2[B2 >> 0] & 1)) a2 = 10; else a2 = (k[B2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, B2 | 0, a2 | 0, 0); q2 = x; x = 0; a: do if (!(q2 & 1)) { o2 = B2 + 8 | 0; p2 = B2 + 1 | 0; a2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; k[u2 >> 2] = a2; k[z2 >> 2] = y2; k[v2 >> 2] = 0; q2 = B2 + 4 | 0; n2 = k[g2 >> 2] | 0; g2 = k[b2 >> 2] | 0; b: while (1) { if (g2) { d2 = k[g2 + 12 >> 2] | 0; if ((d2 | 0) == (k[g2 + 16 >> 2] | 0)) { x = 0; d2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; m2 = x; x = 0; if (m2 & 1) { D2 = 25; break; } } else d2 = k[d2 >> 2] | 0; if ((d2 | 0) == -1) { k[b2 >> 2] = 0; d2 = 0; h2 = 1; } else { d2 = g2; h2 = 0; } } else { d2 = 0; h2 = 1; } l2 = k[c2 >> 2] | 0; do if (l2) { g2 = k[l2 + 12 >> 2] | 0; if ((g2 | 0) == (k[l2 + 16 >> 2] | 0)) { x = 0; g2 = ta(k[(k[l2 >> 2] | 0) + 36 >> 2] | 0, l2 | 0) | 0; m2 = x; x = 0; if (m2 & 1) { D2 = 25; break b; } } else g2 = k[g2 >> 2] | 0; if ((g2 | 0) != -1) if (h2) break; else { g2 = l2; break b; } else { k[c2 >> 2] = 0; D2 = 17; break; } } else D2 = 17; while (0); if ((D2 | 0) == 17) { D2 = 0; if (h2) { g2 = 0; break; } else l2 = 0; } g2 = i2[B2 >> 0] | 0; g2 = (g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[q2 >> 2] | 0; if ((k[u2 >> 2] | 0) == (a2 + g2 | 0)) { x = 0; Fa(8, B2 | 0, g2 << 1 | 0, 0); m2 = x; x = 0; if (m2 & 1) { D2 = 25; break; } if (!(i2[B2 >> 0] & 1)) a2 = 10; else a2 = (k[B2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, B2 | 0, a2 | 0, 0); m2 = x; x = 0; if (m2 & 1) { D2 = 25; break; } a2 = (i2[B2 >> 0] & 1) == 0 ? p2 : k[o2 >> 2] | 0; k[u2 >> 2] = a2 + g2; } h2 = d2 + 12 | 0; g2 = k[h2 >> 2] | 0; m2 = d2 + 16 | 0; if ((g2 | 0) == (k[m2 >> 2] | 0)) { x = 0; g2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; E2 = x; x = 0; if (E2 & 1) { D2 = 25; break; } } else g2 = k[g2 >> 2] | 0; if (tp(g2, t2, a2, u2, v2, n2, C2, y2, z2, s2) | 0) { g2 = l2; break; } g2 = k[h2 >> 2] | 0; if ((g2 | 0) == (k[m2 >> 2] | 0)) { x = 0; ta(k[(k[d2 >> 2] | 0) + 40 >> 2] | 0, d2 | 0) | 0; E2 = x; x = 0; if (E2 & 1) { D2 = 25; break; } else { g2 = d2; continue; } } else { k[h2 >> 2] = g2 + 4; g2 = d2; continue; } } if ((D2 | 0) == 25) { a2 = Wa() | 0; break; } E2 = i2[C2 >> 0] | 0; if ((((E2 & 1) == 0 ? (E2 & 255) >>> 1 : k[C2 + 4 >> 2] | 0) | 0) != 0 ? (w2 = k[z2 >> 2] | 0, (w2 - y2 | 0) < 160) : 0) { E2 = k[v2 >> 2] | 0; k[z2 >> 2] = w2 + 4; k[w2 >> 2] = E2; } x = 0; a2 = Ea(23, a2 | 0, k[u2 >> 2] | 0, e2 | 0, t2 | 0) | 0; E2 = x; x = 0; if (!(E2 & 1)) { j[f2 >> 1] = a2; cs(C2, y2, k[z2 >> 2] | 0, e2); if (d2) { a2 = k[d2 + 12 >> 2] | 0; if ((a2 | 0) == (k[d2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; E2 = x; x = 0; if (E2 & 1) { D2 = 26; break; } } else a2 = k[a2 >> 2] | 0; if ((a2 | 0) == -1) { k[b2 >> 2] = 0; d2 = 1; } else d2 = 0; } else d2 = 1; do if (g2) { a2 = k[g2 + 12 >> 2] | 0; if ((a2 | 0) == (k[g2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; E2 = x; x = 0; if (E2 & 1) { D2 = 26; break a; } } else a2 = k[a2 >> 2] | 0; if ((a2 | 0) != -1) if (d2) break; else { D2 = 53; break; } else { k[c2 >> 2] = 0; D2 = 51; break; } } else D2 = 51; while (0); if ((D2 | 0) == 51 ? d2 : 0) D2 = 53; if ((D2 | 0) == 53) k[e2 >> 2] = k[e2 >> 2] | 2; E2 = k[b2 >> 2] | 0; Sm(B2); Sm(C2); r = A2; return E2 | 0; } else D2 = 26; } else D2 = 26; while (0); if ((D2 | 0) == 26) a2 = Wa() | 0; Sm(B2); Sm(C2); fb(a2 | 0); return 0; } function Wu(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; z2 = r; r = r + 320 | 0; q2 = z2 + 208 | 0; g2 = z2 + 200 | 0; B2 = z2 + 24 | 0; A2 = z2 + 12 | 0; t2 = z2 + 8 | 0; w2 = z2 + 40 | 0; y2 = z2 + 4 | 0; u2 = z2; s2 = ru(d2) | 0; xp(B2, d2, q2, g2); k[A2 >> 2] = 0; k[A2 + 4 >> 2] = 0; k[A2 + 8 >> 2] = 0; if (!(i2[A2 >> 0] & 1)) a2 = 10; else a2 = (k[A2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, A2 | 0, a2 | 0, 0); p2 = x; x = 0; a: do if (!(p2 & 1)) { n2 = A2 + 8 | 0; o2 = A2 + 1 | 0; a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; k[t2 >> 2] = a2; k[y2 >> 2] = w2; k[u2 >> 2] = 0; p2 = A2 + 4 | 0; m2 = k[g2 >> 2] | 0; g2 = k[b2 >> 2] | 0; b: while (1) { if (g2) { d2 = k[g2 + 12 >> 2] | 0; if ((d2 | 0) == (k[g2 + 16 >> 2] | 0)) { x = 0; d2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; l2 = x; x = 0; if (l2 & 1) { C2 = 25; break; } } else d2 = k[d2 >> 2] | 0; if ((d2 | 0) == -1) { k[b2 >> 2] = 0; d2 = 0; h2 = 1; } else { d2 = g2; h2 = 0; } } else { d2 = 0; h2 = 1; } j2 = k[c2 >> 2] | 0; do if (j2) { g2 = k[j2 + 12 >> 2] | 0; if ((g2 | 0) == (k[j2 + 16 >> 2] | 0)) { x = 0; g2 = ta(k[(k[j2 >> 2] | 0) + 36 >> 2] | 0, j2 | 0) | 0; l2 = x; x = 0; if (l2 & 1) { C2 = 25; break b; } } else g2 = k[g2 >> 2] | 0; if ((g2 | 0) != -1) if (h2) break; else { g2 = j2; break b; } else { k[c2 >> 2] = 0; C2 = 17; break; } } else C2 = 17; while (0); if ((C2 | 0) == 17) { C2 = 0; if (h2) { g2 = 0; break; } else j2 = 0; } g2 = i2[A2 >> 0] | 0; g2 = (g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[p2 >> 2] | 0; if ((k[t2 >> 2] | 0) == (a2 + g2 | 0)) { x = 0; Fa(8, A2 | 0, g2 << 1 | 0, 0); l2 = x; x = 0; if (l2 & 1) { C2 = 25; break; } if (!(i2[A2 >> 0] & 1)) a2 = 10; else a2 = (k[A2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, A2 | 0, a2 | 0, 0); l2 = x; x = 0; if (l2 & 1) { C2 = 25; break; } a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; k[t2 >> 2] = a2 + g2; } h2 = d2 + 12 | 0; g2 = k[h2 >> 2] | 0; l2 = d2 + 16 | 0; if ((g2 | 0) == (k[l2 >> 2] | 0)) { x = 0; g2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; D2 = x; x = 0; if (D2 & 1) { C2 = 25; break; } } else g2 = k[g2 >> 2] | 0; if (tp(g2, s2, a2, t2, u2, m2, B2, w2, y2, q2) | 0) { g2 = j2; break; } g2 = k[h2 >> 2] | 0; if ((g2 | 0) == (k[l2 >> 2] | 0)) { x = 0; ta(k[(k[d2 >> 2] | 0) + 40 >> 2] | 0, d2 | 0) | 0; D2 = x; x = 0; if (D2 & 1) { C2 = 25; break; } else { g2 = d2; continue; } } else { k[h2 >> 2] = g2 + 4; g2 = d2; continue; } } if ((C2 | 0) == 25) { a2 = Wa() | 0; break; } D2 = i2[B2 >> 0] | 0; if ((((D2 & 1) == 0 ? (D2 & 255) >>> 1 : k[B2 + 4 >> 2] | 0) | 0) != 0 ? (v2 = k[y2 >> 2] | 0, (v2 - w2 | 0) < 160) : 0) { D2 = k[u2 >> 2] | 0; k[y2 >> 2] = v2 + 4; k[v2 >> 2] = D2; } x = 0; a2 = Ea(24, a2 | 0, k[t2 >> 2] | 0, e2 | 0, s2 | 0) | 0; D2 = x; x = 0; if (!(D2 & 1)) { k[f2 >> 2] = a2; cs(B2, w2, k[y2 >> 2] | 0, e2); if (d2) { a2 = k[d2 + 12 >> 2] | 0; if ((a2 | 0) == (k[d2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; D2 = x; x = 0; if (D2 & 1) { C2 = 26; break; } } else a2 = k[a2 >> 2] | 0; if ((a2 | 0) == -1) { k[b2 >> 2] = 0; d2 = 1; } else d2 = 0; } else d2 = 1; do if (g2) { a2 = k[g2 + 12 >> 2] | 0; if ((a2 | 0) == (k[g2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; D2 = x; x = 0; if (D2 & 1) { C2 = 26; break a; } } else a2 = k[a2 >> 2] | 0; if ((a2 | 0) != -1) if (d2) break; else { C2 = 53; break; } else { k[c2 >> 2] = 0; C2 = 51; break; } } else C2 = 51; while (0); if ((C2 | 0) == 51 ? d2 : 0) C2 = 53; if ((C2 | 0) == 53) k[e2 >> 2] = k[e2 >> 2] | 2; D2 = k[b2 >> 2] | 0; Sm(A2); Sm(B2); r = z2; return D2 | 0; } else C2 = 26; } else C2 = 26; while (0); if ((C2 | 0) == 26) a2 = Wa() | 0; Sm(A2); Sm(B2); fb(a2 | 0); return 0; } function Xu(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; z2 = r; r = r + 320 | 0; q2 = z2 + 208 | 0; g2 = z2 + 200 | 0; B2 = z2 + 24 | 0; A2 = z2 + 12 | 0; t2 = z2 + 8 | 0; w2 = z2 + 40 | 0; y2 = z2 + 4 | 0; u2 = z2; s2 = ru(d2) | 0; xp(B2, d2, q2, g2); k[A2 >> 2] = 0; k[A2 + 4 >> 2] = 0; k[A2 + 8 >> 2] = 0; if (!(i2[A2 >> 0] & 1)) a2 = 10; else a2 = (k[A2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, A2 | 0, a2 | 0, 0); p2 = x; x = 0; a: do if (!(p2 & 1)) { n2 = A2 + 8 | 0; o2 = A2 + 1 | 0; a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; k[t2 >> 2] = a2; k[y2 >> 2] = w2; k[u2 >> 2] = 0; p2 = A2 + 4 | 0; m2 = k[g2 >> 2] | 0; g2 = k[b2 >> 2] | 0; b: while (1) { if (g2) { d2 = k[g2 + 12 >> 2] | 0; if ((d2 | 0) == (k[g2 + 16 >> 2] | 0)) { x = 0; d2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; l2 = x; x = 0; if (l2 & 1) { C2 = 25; break; } } else d2 = k[d2 >> 2] | 0; if ((d2 | 0) == -1) { k[b2 >> 2] = 0; d2 = 0; h2 = 1; } else { d2 = g2; h2 = 0; } } else { d2 = 0; h2 = 1; } j2 = k[c2 >> 2] | 0; do if (j2) { g2 = k[j2 + 12 >> 2] | 0; if ((g2 | 0) == (k[j2 + 16 >> 2] | 0)) { x = 0; g2 = ta(k[(k[j2 >> 2] | 0) + 36 >> 2] | 0, j2 | 0) | 0; l2 = x; x = 0; if (l2 & 1) { C2 = 25; break b; } } else g2 = k[g2 >> 2] | 0; if ((g2 | 0) != -1) if (h2) break; else { g2 = j2; break b; } else { k[c2 >> 2] = 0; C2 = 17; break; } } else C2 = 17; while (0); if ((C2 | 0) == 17) { C2 = 0; if (h2) { g2 = 0; break; } else j2 = 0; } g2 = i2[A2 >> 0] | 0; g2 = (g2 & 1) == 0 ? (g2 & 255) >>> 1 : k[p2 >> 2] | 0; if ((k[t2 >> 2] | 0) == (a2 + g2 | 0)) { x = 0; Fa(8, A2 | 0, g2 << 1 | 0, 0); l2 = x; x = 0; if (l2 & 1) { C2 = 25; break; } if (!(i2[A2 >> 0] & 1)) a2 = 10; else a2 = (k[A2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, A2 | 0, a2 | 0, 0); l2 = x; x = 0; if (l2 & 1) { C2 = 25; break; } a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; k[t2 >> 2] = a2 + g2; } h2 = d2 + 12 | 0; g2 = k[h2 >> 2] | 0; l2 = d2 + 16 | 0; if ((g2 | 0) == (k[l2 >> 2] | 0)) { x = 0; g2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; D2 = x; x = 0; if (D2 & 1) { C2 = 25; break; } } else g2 = k[g2 >> 2] | 0; if (tp(g2, s2, a2, t2, u2, m2, B2, w2, y2, q2) | 0) { g2 = j2; break; } g2 = k[h2 >> 2] | 0; if ((g2 | 0) == (k[l2 >> 2] | 0)) { x = 0; ta(k[(k[d2 >> 2] | 0) + 40 >> 2] | 0, d2 | 0) | 0; D2 = x; x = 0; if (D2 & 1) { C2 = 25; break; } else { g2 = d2; continue; } } else { k[h2 >> 2] = g2 + 4; g2 = d2; continue; } } if ((C2 | 0) == 25) { a2 = Wa() | 0; break; } D2 = i2[B2 >> 0] | 0; if ((((D2 & 1) == 0 ? (D2 & 255) >>> 1 : k[B2 + 4 >> 2] | 0) | 0) != 0 ? (v2 = k[y2 >> 2] | 0, (v2 - w2 | 0) < 160) : 0) { D2 = k[u2 >> 2] | 0; k[y2 >> 2] = v2 + 4; k[v2 >> 2] = D2; } x = 0; a2 = Ea(25, a2 | 0, k[t2 >> 2] | 0, e2 | 0, s2 | 0) | 0; D2 = x; x = 0; if (!(D2 & 1)) { k[f2 >> 2] = a2; cs(B2, w2, k[y2 >> 2] | 0, e2); if (d2) { a2 = k[d2 + 12 >> 2] | 0; if ((a2 | 0) == (k[d2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; D2 = x; x = 0; if (D2 & 1) { C2 = 26; break; } } else a2 = k[a2 >> 2] | 0; if ((a2 | 0) == -1) { k[b2 >> 2] = 0; d2 = 1; } else d2 = 0; } else d2 = 1; do if (g2) { a2 = k[g2 + 12 >> 2] | 0; if ((a2 | 0) == (k[g2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; D2 = x; x = 0; if (D2 & 1) { C2 = 26; break a; } } else a2 = k[a2 >> 2] | 0; if ((a2 | 0) != -1) if (d2) break; else { C2 = 53; break; } else { k[c2 >> 2] = 0; C2 = 51; break; } } else C2 = 51; while (0); if ((C2 | 0) == 51 ? d2 : 0) C2 = 53; if ((C2 | 0) == 53) k[e2 >> 2] = k[e2 >> 2] | 2; D2 = k[b2 >> 2] | 0; Sm(A2); Sm(B2); r = z2; return D2 | 0; } else C2 = 26; } else C2 = 26; while (0); if ((C2 | 0) == 26) a2 = Wa() | 0; Sm(A2); Sm(B2); fb(a2 | 0); return 0; } function Yu(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; z2 = r; r = r + 320 | 0; q2 = z2 + 208 | 0; g2 = z2 + 200 | 0; B2 = z2 + 24 | 0; A2 = z2 + 12 | 0; t2 = z2 + 8 | 0; w2 = z2 + 40 | 0; y2 = z2 + 4 | 0; u2 = z2; s2 = ru(d2) | 0; xp(B2, d2, q2, g2); k[A2 >> 2] = 0; k[A2 + 4 >> 2] = 0; k[A2 + 8 >> 2] = 0; if (!(i2[A2 >> 0] & 1)) a2 = 10; else a2 = (k[A2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, A2 | 0, a2 | 0, 0); p2 = x; x = 0; a: do if (!(p2 & 1)) { n2 = A2 + 8 | 0; o2 = A2 + 1 | 0; a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; k[t2 >> 2] = a2; k[y2 >> 2] = w2; k[u2 >> 2] = 0; p2 = A2 + 4 | 0; m2 = k[g2 >> 2] | 0; g2 = k[b2 >> 2] | 0; b: while (1) { if (g2) { d2 = k[g2 + 12 >> 2] | 0; if ((d2 | 0) == (k[g2 + 16 >> 2] | 0)) { x = 0; d2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; l2 = x; x = 0; if (l2 & 1) { C2 = 25; break; } } else d2 = k[d2 >> 2] | 0; if ((d2 | 0) == -1) { k[b2 >> 2] = 0; g2 = 0; j2 = 1; } else j2 = 0; } else { g2 = 0; j2 = 1; } h2 = k[c2 >> 2] | 0; do if (h2) { d2 = k[h2 + 12 >> 2] | 0; if ((d2 | 0) == (k[h2 + 16 >> 2] | 0)) { x = 0; d2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; l2 = x; x = 0; if (l2 & 1) { C2 = 25; break b; } } else d2 = k[d2 >> 2] | 0; if ((d2 | 0) != -1) if (j2) break; else break b; else { k[c2 >> 2] = 0; C2 = 17; break; } } else C2 = 17; while (0); if ((C2 | 0) == 17) { C2 = 0; if (j2) { h2 = 0; break; } else h2 = 0; } d2 = i2[A2 >> 0] | 0; d2 = (d2 & 1) == 0 ? (d2 & 255) >>> 1 : k[p2 >> 2] | 0; if ((k[t2 >> 2] | 0) == (a2 + d2 | 0)) { x = 0; Fa(8, A2 | 0, d2 << 1 | 0, 0); l2 = x; x = 0; if (l2 & 1) { C2 = 25; break; } if (!(i2[A2 >> 0] & 1)) a2 = 10; else a2 = (k[A2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, A2 | 0, a2 | 0, 0); l2 = x; x = 0; if (l2 & 1) { C2 = 25; break; } a2 = (i2[A2 >> 0] & 1) == 0 ? o2 : k[n2 >> 2] | 0; k[t2 >> 2] = a2 + d2; } j2 = g2 + 12 | 0; d2 = k[j2 >> 2] | 0; l2 = g2 + 16 | 0; if ((d2 | 0) == (k[l2 >> 2] | 0)) { x = 0; d2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; D2 = x; x = 0; if (D2 & 1) { C2 = 25; break; } } else d2 = k[d2 >> 2] | 0; if (tp(d2, s2, a2, t2, u2, m2, B2, w2, y2, q2) | 0) break; d2 = k[j2 >> 2] | 0; if ((d2 | 0) == (k[l2 >> 2] | 0)) { x = 0; ta(k[(k[g2 >> 2] | 0) + 40 >> 2] | 0, g2 | 0) | 0; D2 = x; x = 0; if (D2 & 1) { C2 = 25; break; } else continue; } else { k[j2 >> 2] = d2 + 4; continue; } } if ((C2 | 0) == 25) { a2 = Wa() | 0; break; } D2 = i2[B2 >> 0] | 0; if ((((D2 & 1) == 0 ? (D2 & 255) >>> 1 : k[B2 + 4 >> 2] | 0) | 0) != 0 ? (v2 = k[y2 >> 2] | 0, (v2 - w2 | 0) < 160) : 0) { D2 = k[u2 >> 2] | 0; k[y2 >> 2] = v2 + 4; k[v2 >> 2] = D2; } x = 0; a2 = Ea(26, a2 | 0, k[t2 >> 2] | 0, e2 | 0, s2 | 0) | 0; d2 = M; D2 = x; x = 0; if (!(D2 & 1)) { D2 = f2; k[D2 >> 2] = a2; k[D2 + 4 >> 2] = d2; cs(B2, w2, k[y2 >> 2] | 0, e2); if (g2) { a2 = k[g2 + 12 >> 2] | 0; if ((a2 | 0) == (k[g2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[g2 >> 2] | 0) + 36 >> 2] | 0, g2 | 0) | 0; D2 = x; x = 0; if (D2 & 1) { C2 = 26; break; } } else a2 = k[a2 >> 2] | 0; if ((a2 | 0) == -1) { k[b2 >> 2] = 0; d2 = 1; } else d2 = 0; } else d2 = 1; do if (h2) { a2 = k[h2 + 12 >> 2] | 0; if ((a2 | 0) == (k[h2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; D2 = x; x = 0; if (D2 & 1) { C2 = 26; break a; } } else a2 = k[a2 >> 2] | 0; if ((a2 | 0) != -1) if (d2) break; else { C2 = 53; break; } else { k[c2 >> 2] = 0; C2 = 51; break; } } else C2 = 51; while (0); if ((C2 | 0) == 51 ? d2 : 0) C2 = 53; if ((C2 | 0) == 53) k[e2 >> 2] = k[e2 >> 2] | 2; D2 = k[b2 >> 2] | 0; Sm(A2); Sm(B2); r = z2; return D2 | 0; } else C2 = 26; } else C2 = 26; while (0); if ((C2 | 0) == 26) a2 = Wa() | 0; Sm(A2); Sm(B2); fb(a2 | 0); return 0; } function Zu(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0; D2 = r; r = r + 352 | 0; u2 = D2 + 208 | 0; h2 = D2 + 40 | 0; j2 = D2 + 36 | 0; F2 = D2 + 24 | 0; E2 = D2 + 12 | 0; w2 = D2 + 8 | 0; B2 = D2 + 48 | 0; C2 = D2 + 4 | 0; y2 = D2; z2 = D2 + 337 | 0; v2 = D2 + 336 | 0; yp(F2, d2, u2, h2, j2); k[E2 >> 2] = 0; k[E2 + 4 >> 2] = 0; k[E2 + 8 >> 2] = 0; if (!(i2[E2 >> 0] & 1)) a2 = 10; else a2 = (k[E2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, E2 | 0, a2 | 0, 0); t2 = x; x = 0; a: do if (!(t2 & 1)) { q2 = E2 + 8 | 0; s2 = E2 + 1 | 0; a2 = (i2[E2 >> 0] & 1) == 0 ? s2 : k[q2 >> 2] | 0; k[w2 >> 2] = a2; k[C2 >> 2] = B2; k[y2 >> 2] = 0; i2[z2 >> 0] = 1; i2[v2 >> 0] = 69; t2 = E2 + 4 | 0; p2 = k[h2 >> 2] | 0; n2 = k[j2 >> 2] | 0; d2 = k[b2 >> 2] | 0; b: while (1) { if (d2) { h2 = k[d2 + 12 >> 2] | 0; if ((h2 | 0) == (k[d2 + 16 >> 2] | 0)) { x = 0; h2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; m2 = x; x = 0; if (m2 & 1) { G2 = 25; break; } } else h2 = k[h2 >> 2] | 0; if ((h2 | 0) == -1) { k[b2 >> 2] = 0; d2 = 0; l2 = 1; } else l2 = 0; } else { d2 = 0; l2 = 1; } h2 = k[c2 >> 2] | 0; do if (h2) { j2 = k[h2 + 12 >> 2] | 0; if ((j2 | 0) == (k[h2 + 16 >> 2] | 0)) { x = 0; j2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; m2 = x; x = 0; if (m2 & 1) { G2 = 25; break b; } } else j2 = k[j2 >> 2] | 0; if ((j2 | 0) != -1) if (l2) break; else break b; else { k[c2 >> 2] = 0; G2 = 17; break; } } else G2 = 17; while (0); if ((G2 | 0) == 17) { G2 = 0; if (l2) { h2 = 0; break; } else h2 = 0; } j2 = i2[E2 >> 0] | 0; j2 = (j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[t2 >> 2] | 0; if ((k[w2 >> 2] | 0) == (a2 + j2 | 0)) { x = 0; Fa(8, E2 | 0, j2 << 1 | 0, 0); m2 = x; x = 0; if (m2 & 1) { G2 = 25; break; } if (!(i2[E2 >> 0] & 1)) a2 = 10; else a2 = (k[E2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, E2 | 0, a2 | 0, 0); m2 = x; x = 0; if (m2 & 1) { G2 = 25; break; } a2 = (i2[E2 >> 0] & 1) == 0 ? s2 : k[q2 >> 2] | 0; k[w2 >> 2] = a2 + j2; } l2 = d2 + 12 | 0; j2 = k[l2 >> 2] | 0; m2 = d2 + 16 | 0; if ((j2 | 0) == (k[m2 >> 2] | 0)) { x = 0; j2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; H2 = x; x = 0; if (H2 & 1) { G2 = 25; break; } } else j2 = k[j2 >> 2] | 0; if (zp(j2, z2, v2, a2, w2, p2, n2, F2, B2, C2, y2, u2) | 0) break; h2 = k[l2 >> 2] | 0; if ((h2 | 0) == (k[m2 >> 2] | 0)) { x = 0; ta(k[(k[d2 >> 2] | 0) + 40 >> 2] | 0, d2 | 0) | 0; H2 = x; x = 0; if (H2 & 1) { G2 = 25; break; } else continue; } else { k[l2 >> 2] = h2 + 4; continue; } } if ((G2 | 0) == 25) { a2 = Wa() | 0; break; } H2 = i2[F2 >> 0] | 0; if (!((i2[z2 >> 0] | 0) == 0 ? 1 : (((H2 & 1) == 0 ? (H2 & 255) >>> 1 : k[F2 + 4 >> 2] | 0) | 0) == 0) ? (A2 = k[C2 >> 2] | 0, (A2 - B2 | 0) < 160) : 0) { H2 = k[y2 >> 2] | 0; k[C2 >> 2] = A2 + 4; k[A2 >> 2] = H2; } x = 0; g2 = +Ca(1, a2 | 0, k[w2 >> 2] | 0, e2 | 0); H2 = x; x = 0; if (!(H2 & 1)) { o[f2 >> 2] = g2; cs(F2, B2, k[C2 >> 2] | 0, e2); if (d2) { a2 = k[d2 + 12 >> 2] | 0; if ((a2 | 0) == (k[d2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; H2 = x; x = 0; if (H2 & 1) { G2 = 26; break; } } else a2 = k[a2 >> 2] | 0; if ((a2 | 0) == -1) { k[b2 >> 2] = 0; d2 = 1; } else d2 = 0; } else d2 = 1; do if (h2) { a2 = k[h2 + 12 >> 2] | 0; if ((a2 | 0) == (k[h2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; H2 = x; x = 0; if (H2 & 1) { G2 = 26; break a; } } else a2 = k[a2 >> 2] | 0; if ((a2 | 0) != -1) if (d2) break; else { G2 = 53; break; } else { k[c2 >> 2] = 0; G2 = 51; break; } } else G2 = 51; while (0); if ((G2 | 0) == 51 ? d2 : 0) G2 = 53; if ((G2 | 0) == 53) k[e2 >> 2] = k[e2 >> 2] | 2; H2 = k[b2 >> 2] | 0; Sm(E2); Sm(F2); r = D2; return H2 | 0; } else G2 = 26; } else G2 = 26; while (0); if ((G2 | 0) == 26) a2 = Wa() | 0; Sm(E2); Sm(F2); fb(a2 | 0); return 0; } function _u(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0; D2 = r; r = r + 352 | 0; u2 = D2 + 208 | 0; h2 = D2 + 40 | 0; j2 = D2 + 36 | 0; F2 = D2 + 24 | 0; E2 = D2 + 12 | 0; w2 = D2 + 8 | 0; B2 = D2 + 48 | 0; C2 = D2 + 4 | 0; y2 = D2; z2 = D2 + 337 | 0; v2 = D2 + 336 | 0; yp(F2, d2, u2, h2, j2); k[E2 >> 2] = 0; k[E2 + 4 >> 2] = 0; k[E2 + 8 >> 2] = 0; if (!(i2[E2 >> 0] & 1)) a2 = 10; else a2 = (k[E2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, E2 | 0, a2 | 0, 0); t2 = x; x = 0; a: do if (!(t2 & 1)) { q2 = E2 + 8 | 0; s2 = E2 + 1 | 0; a2 = (i2[E2 >> 0] & 1) == 0 ? s2 : k[q2 >> 2] | 0; k[w2 >> 2] = a2; k[C2 >> 2] = B2; k[y2 >> 2] = 0; i2[z2 >> 0] = 1; i2[v2 >> 0] = 69; t2 = E2 + 4 | 0; o2 = k[h2 >> 2] | 0; n2 = k[j2 >> 2] | 0; d2 = k[b2 >> 2] | 0; b: while (1) { if (d2) { h2 = k[d2 + 12 >> 2] | 0; if ((h2 | 0) == (k[d2 + 16 >> 2] | 0)) { x = 0; h2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; m2 = x; x = 0; if (m2 & 1) { G2 = 25; break; } } else h2 = k[h2 >> 2] | 0; if ((h2 | 0) == -1) { k[b2 >> 2] = 0; d2 = 0; l2 = 1; } else l2 = 0; } else { d2 = 0; l2 = 1; } h2 = k[c2 >> 2] | 0; do if (h2) { j2 = k[h2 + 12 >> 2] | 0; if ((j2 | 0) == (k[h2 + 16 >> 2] | 0)) { x = 0; j2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; m2 = x; x = 0; if (m2 & 1) { G2 = 25; break b; } } else j2 = k[j2 >> 2] | 0; if ((j2 | 0) != -1) if (l2) break; else break b; else { k[c2 >> 2] = 0; G2 = 17; break; } } else G2 = 17; while (0); if ((G2 | 0) == 17) { G2 = 0; if (l2) { h2 = 0; break; } else h2 = 0; } j2 = i2[E2 >> 0] | 0; j2 = (j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[t2 >> 2] | 0; if ((k[w2 >> 2] | 0) == (a2 + j2 | 0)) { x = 0; Fa(8, E2 | 0, j2 << 1 | 0, 0); m2 = x; x = 0; if (m2 & 1) { G2 = 25; break; } if (!(i2[E2 >> 0] & 1)) a2 = 10; else a2 = (k[E2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, E2 | 0, a2 | 0, 0); m2 = x; x = 0; if (m2 & 1) { G2 = 25; break; } a2 = (i2[E2 >> 0] & 1) == 0 ? s2 : k[q2 >> 2] | 0; k[w2 >> 2] = a2 + j2; } l2 = d2 + 12 | 0; j2 = k[l2 >> 2] | 0; m2 = d2 + 16 | 0; if ((j2 | 0) == (k[m2 >> 2] | 0)) { x = 0; j2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; H2 = x; x = 0; if (H2 & 1) { G2 = 25; break; } } else j2 = k[j2 >> 2] | 0; if (zp(j2, z2, v2, a2, w2, o2, n2, F2, B2, C2, y2, u2) | 0) break; h2 = k[l2 >> 2] | 0; if ((h2 | 0) == (k[m2 >> 2] | 0)) { x = 0; ta(k[(k[d2 >> 2] | 0) + 40 >> 2] | 0, d2 | 0) | 0; H2 = x; x = 0; if (H2 & 1) { G2 = 25; break; } else continue; } else { k[l2 >> 2] = h2 + 4; continue; } } if ((G2 | 0) == 25) { a2 = Wa() | 0; break; } H2 = i2[F2 >> 0] | 0; if (!((i2[z2 >> 0] | 0) == 0 ? 1 : (((H2 & 1) == 0 ? (H2 & 255) >>> 1 : k[F2 + 4 >> 2] | 0) | 0) == 0) ? (A2 = k[C2 >> 2] | 0, (A2 - B2 | 0) < 160) : 0) { H2 = k[y2 >> 2] | 0; k[C2 >> 2] = A2 + 4; k[A2 >> 2] = H2; } x = 0; g2 = +Ca(2, a2 | 0, k[w2 >> 2] | 0, e2 | 0); H2 = x; x = 0; if (!(H2 & 1)) { p[f2 >> 3] = g2; cs(F2, B2, k[C2 >> 2] | 0, e2); if (d2) { a2 = k[d2 + 12 >> 2] | 0; if ((a2 | 0) == (k[d2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; H2 = x; x = 0; if (H2 & 1) { G2 = 26; break; } } else a2 = k[a2 >> 2] | 0; if ((a2 | 0) == -1) { k[b2 >> 2] = 0; d2 = 1; } else d2 = 0; } else d2 = 1; do if (h2) { a2 = k[h2 + 12 >> 2] | 0; if ((a2 | 0) == (k[h2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; H2 = x; x = 0; if (H2 & 1) { G2 = 26; break a; } } else a2 = k[a2 >> 2] | 0; if ((a2 | 0) != -1) if (d2) break; else { G2 = 53; break; } else { k[c2 >> 2] = 0; G2 = 51; break; } } else G2 = 51; while (0); if ((G2 | 0) == 51 ? d2 : 0) G2 = 53; if ((G2 | 0) == 53) k[e2 >> 2] = k[e2 >> 2] | 2; H2 = k[b2 >> 2] | 0; Sm(E2); Sm(F2); r = D2; return H2 | 0; } else G2 = 26; } else G2 = 26; while (0); if ((G2 | 0) == 26) a2 = Wa() | 0; Sm(E2); Sm(F2); fb(a2 | 0); return 0; } function $u(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0; D2 = r; r = r + 352 | 0; u2 = D2 + 208 | 0; h2 = D2 + 40 | 0; j2 = D2 + 36 | 0; F2 = D2 + 24 | 0; E2 = D2 + 12 | 0; w2 = D2 + 8 | 0; B2 = D2 + 48 | 0; C2 = D2 + 4 | 0; y2 = D2; z2 = D2 + 337 | 0; v2 = D2 + 336 | 0; yp(F2, d2, u2, h2, j2); k[E2 >> 2] = 0; k[E2 + 4 >> 2] = 0; k[E2 + 8 >> 2] = 0; if (!(i2[E2 >> 0] & 1)) a2 = 10; else a2 = (k[E2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, E2 | 0, a2 | 0, 0); t2 = x; x = 0; a: do if (!(t2 & 1)) { q2 = E2 + 8 | 0; s2 = E2 + 1 | 0; a2 = (i2[E2 >> 0] & 1) == 0 ? s2 : k[q2 >> 2] | 0; k[w2 >> 2] = a2; k[C2 >> 2] = B2; k[y2 >> 2] = 0; i2[z2 >> 0] = 1; i2[v2 >> 0] = 69; t2 = E2 + 4 | 0; o2 = k[h2 >> 2] | 0; n2 = k[j2 >> 2] | 0; d2 = k[b2 >> 2] | 0; b: while (1) { if (d2) { h2 = k[d2 + 12 >> 2] | 0; if ((h2 | 0) == (k[d2 + 16 >> 2] | 0)) { x = 0; h2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; m2 = x; x = 0; if (m2 & 1) { G2 = 25; break; } } else h2 = k[h2 >> 2] | 0; if ((h2 | 0) == -1) { k[b2 >> 2] = 0; d2 = 0; l2 = 1; } else l2 = 0; } else { d2 = 0; l2 = 1; } h2 = k[c2 >> 2] | 0; do if (h2) { j2 = k[h2 + 12 >> 2] | 0; if ((j2 | 0) == (k[h2 + 16 >> 2] | 0)) { x = 0; j2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; m2 = x; x = 0; if (m2 & 1) { G2 = 25; break b; } } else j2 = k[j2 >> 2] | 0; if ((j2 | 0) != -1) if (l2) break; else break b; else { k[c2 >> 2] = 0; G2 = 17; break; } } else G2 = 17; while (0); if ((G2 | 0) == 17) { G2 = 0; if (l2) { h2 = 0; break; } else h2 = 0; } j2 = i2[E2 >> 0] | 0; j2 = (j2 & 1) == 0 ? (j2 & 255) >>> 1 : k[t2 >> 2] | 0; if ((k[w2 >> 2] | 0) == (a2 + j2 | 0)) { x = 0; Fa(8, E2 | 0, j2 << 1 | 0, 0); m2 = x; x = 0; if (m2 & 1) { G2 = 25; break; } if (!(i2[E2 >> 0] & 1)) a2 = 10; else a2 = (k[E2 >> 2] & -2) + -1 | 0; x = 0; Fa(8, E2 | 0, a2 | 0, 0); m2 = x; x = 0; if (m2 & 1) { G2 = 25; break; } a2 = (i2[E2 >> 0] & 1) == 0 ? s2 : k[q2 >> 2] | 0; k[w2 >> 2] = a2 + j2; } l2 = d2 + 12 | 0; j2 = k[l2 >> 2] | 0; m2 = d2 + 16 | 0; if ((j2 | 0) == (k[m2 >> 2] | 0)) { x = 0; j2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; H2 = x; x = 0; if (H2 & 1) { G2 = 25; break; } } else j2 = k[j2 >> 2] | 0; if (zp(j2, z2, v2, a2, w2, o2, n2, F2, B2, C2, y2, u2) | 0) break; h2 = k[l2 >> 2] | 0; if ((h2 | 0) == (k[m2 >> 2] | 0)) { x = 0; ta(k[(k[d2 >> 2] | 0) + 40 >> 2] | 0, d2 | 0) | 0; H2 = x; x = 0; if (H2 & 1) { G2 = 25; break; } else continue; } else { k[l2 >> 2] = h2 + 4; continue; } } if ((G2 | 0) == 25) { a2 = Wa() | 0; break; } H2 = i2[F2 >> 0] | 0; if (!((i2[z2 >> 0] | 0) == 0 ? 1 : (((H2 & 1) == 0 ? (H2 & 255) >>> 1 : k[F2 + 4 >> 2] | 0) | 0) == 0) ? (A2 = k[C2 >> 2] | 0, (A2 - B2 | 0) < 160) : 0) { H2 = k[y2 >> 2] | 0; k[C2 >> 2] = A2 + 4; k[A2 >> 2] = H2; } x = 0; g2 = +Ca(3, a2 | 0, k[w2 >> 2] | 0, e2 | 0); H2 = x; x = 0; if (!(H2 & 1)) { p[f2 >> 3] = g2; cs(F2, B2, k[C2 >> 2] | 0, e2); if (d2) { a2 = k[d2 + 12 >> 2] | 0; if ((a2 | 0) == (k[d2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[d2 >> 2] | 0) + 36 >> 2] | 0, d2 | 0) | 0; H2 = x; x = 0; if (H2 & 1) { G2 = 26; break; } } else a2 = k[a2 >> 2] | 0; if ((a2 | 0) == -1) { k[b2 >> 2] = 0; d2 = 1; } else d2 = 0; } else d2 = 1; do if (h2) { a2 = k[h2 + 12 >> 2] | 0; if ((a2 | 0) == (k[h2 + 16 >> 2] | 0)) { x = 0; a2 = ta(k[(k[h2 >> 2] | 0) + 36 >> 2] | 0, h2 | 0) | 0; H2 = x; x = 0; if (H2 & 1) { G2 = 26; break a; } } else a2 = k[a2 >> 2] | 0; if ((a2 | 0) != -1) if (d2) break; else { G2 = 53; break; } else { k[c2 >> 2] = 0; G2 = 51; break; } } else G2 = 51; while (0); if ((G2 | 0) == 51 ? d2 : 0) G2 = 53; if ((G2 | 0) == 53) k[e2 >> 2] = k[e2 >> 2] | 2; H2 = k[b2 >> 2] | 0; Sm(E2); Sm(F2); r = D2; return H2 | 0; } else G2 = 26; } else G2 = 26; while (0); if ((G2 | 0) == 26) a2 = Wa() | 0; Sm(E2); Sm(F2); fb(a2 | 0); return 0; } function av(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0; f2 = r; r = r + 16 | 0; g2 = f2; k[g2 >> 2] = e2; e2 = Ak(c2) | 0; c2 = ol(a2, b2, d2, g2) | 0; if ((e2 | 0) != 0 ? (x = 0, ta(75, e2 | 0) | 0, g2 = x, x = 0, g2 & 1) : 0) { g2 = Wa(0) | 0; oc(g2); } r = f2; return c2 | 0; } function bv(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0; e2 = r; r = r + 16 | 0; f2 = e2; k[f2 >> 2] = d2; d2 = Ak(b2) | 0; x = 0; b2 = va(37, a2 | 0, c2 | 0, f2 | 0) | 0; a2 = x; x = 0; if (a2 & 1) { b2 = Wa() | 0; if ((d2 | 0) != 0 ? (x = 0, ta(75, d2 | 0) | 0, f2 = x, x = 0, f2 & 1) : 0) { f2 = Wa(0) | 0; oc(f2); } fb(b2 | 0); } else { if ((d2 | 0) != 0 ? (x = 0, ta(75, d2 | 0) | 0, f2 = x, x = 0, f2 & 1) : 0) { f2 = Wa(0) | 0; oc(f2); } r = e2; return b2 | 0; } return 0; } function cv(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; n2 = r; r = r + 16 | 0; m2 = n2; g2 = k[a2 >> 2] | 0; a: do if (!g2) g2 = 0; else { o2 = b2; j2 = d2 - o2 >> 2; l2 = e2 + 12 | 0; h2 = k[l2 >> 2] | 0; j2 = (h2 | 0) > (j2 | 0) ? h2 - j2 | 0 : 0; h2 = c2; o2 = h2 - o2 | 0; e2 = o2 >> 2; if ((o2 | 0) > 0 ? (Qb[k[(k[g2 >> 2] | 0) + 48 >> 2] & 63](g2, b2, e2) | 0) != (e2 | 0) : 0) { k[a2 >> 2] = 0; g2 = 0; break; } do if ((j2 | 0) > 0) { dn(m2, j2, f2); x = 0; e2 = va(k[(k[g2 >> 2] | 0) + 48 >> 2] | 0, g2 | 0, ((i2[m2 >> 0] & 1) == 0 ? m2 + 4 | 0 : k[m2 + 8 >> 2] | 0) | 0, j2 | 0) | 0; o2 = x; x = 0; if (o2 & 1) { o2 = Wa() | 0; en(m2); fb(o2 | 0); } if ((e2 | 0) == (j2 | 0)) { en(m2); break; } else { k[a2 >> 2] = 0; en(m2); g2 = 0; break a; } } while (0); o2 = d2 - h2 | 0; d2 = o2 >> 2; if ((o2 | 0) > 0 ? (Qb[k[(k[g2 >> 2] | 0) + 48 >> 2] & 63](g2, c2, d2) | 0) != (d2 | 0) : 0) { k[a2 >> 2] = 0; g2 = 0; break; } k[l2 >> 2] = 0; } while (0); r = n2; return g2 | 0; } function dv(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, i3 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; f2 = k[a2 >> 2] | 0; do if (f2) { if ((k[f2 + 12 >> 2] | 0) == (k[f2 + 16 >> 2] | 0)) if ((Ob[k[(k[f2 >> 2] | 0) + 36 >> 2] & 127](f2) | 0) == -1) { k[a2 >> 2] = 0; f2 = 0; break; } else { f2 = k[a2 >> 2] | 0; break; } } else f2 = 0; while (0); g2 = (f2 | 0) == 0; f2 = k[b2 >> 2] | 0; do if (f2) { if ((k[f2 + 12 >> 2] | 0) == (k[f2 + 16 >> 2] | 0) ? (Ob[k[(k[f2 >> 2] | 0) + 36 >> 2] & 127](f2) | 0) == -1 : 0) { k[b2 >> 2] = 0; r2 = 11; break; } if (g2) r2 = 13; else r2 = 12; } else r2 = 11; while (0); if ((r2 | 0) == 11) if (g2) r2 = 12; else { f2 = 0; r2 = 13; } a: do if ((r2 | 0) == 12) { k[c2 >> 2] = k[c2 >> 2] | 6; f2 = 0; } else if ((r2 | 0) == 13) { g2 = k[a2 >> 2] | 0; h2 = k[g2 + 12 >> 2] | 0; if ((h2 | 0) == (k[g2 + 16 >> 2] | 0)) g2 = Ob[k[(k[g2 >> 2] | 0) + 36 >> 2] & 127](g2) | 0; else g2 = l[h2 >> 0] | 0; h2 = g2 & 255; if (h2 << 24 >> 24 > -1 ? (q2 = d2 + 8 | 0, (j[(k[q2 >> 2] | 0) + (g2 << 24 >> 24 << 1) >> 1] & 2048) != 0) : 0) { m2 = (Qb[k[(k[d2 >> 2] | 0) + 36 >> 2] & 63](d2, h2, 0) | 0) << 24 >> 24; g2 = k[a2 >> 2] | 0; h2 = g2 + 12 | 0; i3 = k[h2 >> 2] | 0; if ((i3 | 0) == (k[g2 + 16 >> 2] | 0)) { Ob[k[(k[g2 >> 2] | 0) + 40 >> 2] & 127](g2) | 0; o2 = e2; n2 = f2; e2 = f2; f2 = m2; } else { k[h2 >> 2] = i3 + 1; o2 = e2; n2 = f2; e2 = f2; f2 = m2; } while (1) { f2 = f2 + -48 | 0; p2 = o2 + -1 | 0; g2 = k[a2 >> 2] | 0; do if (g2) { if ((k[g2 + 12 >> 2] | 0) == (k[g2 + 16 >> 2] | 0)) if ((Ob[k[(k[g2 >> 2] | 0) + 36 >> 2] & 127](g2) | 0) == -1) { k[a2 >> 2] = 0; g2 = 0; break; } else { g2 = k[a2 >> 2] | 0; break; } } else g2 = 0; while (0); i3 = (g2 | 0) == 0; if (e2) if ((k[e2 + 12 >> 2] | 0) == (k[e2 + 16 >> 2] | 0)) if ((Ob[k[(k[e2 >> 2] | 0) + 36 >> 2] & 127](e2) | 0) == -1) { k[b2 >> 2] = 0; h2 = 0; e2 = 0; } else { h2 = n2; e2 = n2; } else h2 = n2; else { h2 = n2; e2 = 0; } g2 = k[a2 >> 2] | 0; if (!((o2 | 0) > 1 & (i3 ^ (e2 | 0) == 0))) break; i3 = k[g2 + 12 >> 2] | 0; if ((i3 | 0) == (k[g2 + 16 >> 2] | 0)) g2 = Ob[k[(k[g2 >> 2] | 0) + 36 >> 2] & 127](g2) | 0; else g2 = l[i3 >> 0] | 0; i3 = g2 & 255; if (i3 << 24 >> 24 <= -1) break a; if (!(j[(k[q2 >> 2] | 0) + (g2 << 24 >> 24 << 1) >> 1] & 2048)) break a; f2 = ((Qb[k[(k[d2 >> 2] | 0) + 36 >> 2] & 63](d2, i3, 0) | 0) << 24 >> 24) + (f2 * 10 | 0) | 0; g2 = k[a2 >> 2] | 0; i3 = g2 + 12 | 0; m2 = k[i3 >> 2] | 0; if ((m2 | 0) == (k[g2 + 16 >> 2] | 0)) { Ob[k[(k[g2 >> 2] | 0) + 40 >> 2] & 127](g2) | 0; o2 = p2; n2 = h2; continue; } else { k[i3 >> 2] = m2 + 1; o2 = p2; n2 = h2; continue; } } do if (g2) { if ((k[g2 + 12 >> 2] | 0) == (k[g2 + 16 >> 2] | 0)) if ((Ob[k[(k[g2 >> 2] | 0) + 36 >> 2] & 127](g2) | 0) == -1) { k[a2 >> 2] = 0; g2 = 0; break; } else { g2 = k[a2 >> 2] | 0; break; } } else g2 = 0; while (0); g2 = (g2 | 0) == 0; do if (h2) { if ((k[h2 + 12 >> 2] | 0) == (k[h2 + 16 >> 2] | 0) ? (Ob[k[(k[h2 >> 2] | 0) + 36 >> 2] & 127](h2) | 0) == -1 : 0) { k[b2 >> 2] = 0; r2 = 50; break; } if (g2) break a; } else r2 = 50; while (0); if ((r2 | 0) == 50 ? !g2 : 0) break; k[c2 >> 2] = k[c2 >> 2] | 2; break; } k[c2 >> 2] = k[c2 >> 2] | 4; f2 = 0; } while (0); return f2 | 0; } function ev(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; f2 = k[a2 >> 2] | 0; do if (f2) { g2 = k[f2 + 12 >> 2] | 0; if ((g2 | 0) == (k[f2 + 16 >> 2] | 0)) f2 = Ob[k[(k[f2 >> 2] | 0) + 36 >> 2] & 127](f2) | 0; else f2 = k[g2 >> 2] | 0; if ((f2 | 0) == -1) { k[a2 >> 2] = 0; h2 = 1; break; } else { h2 = (k[a2 >> 2] | 0) == 0; break; } } else h2 = 1; while (0); g2 = k[b2 >> 2] | 0; do if (g2) { f2 = k[g2 + 12 >> 2] | 0; if ((f2 | 0) == (k[g2 + 16 >> 2] | 0)) f2 = Ob[k[(k[g2 >> 2] | 0) + 36 >> 2] & 127](g2) | 0; else f2 = k[f2 >> 2] | 0; if ((f2 | 0) != -1) if (h2) { o2 = 17; break; } else { o2 = 16; break; } else { k[b2 >> 2] = 0; o2 = 14; break; } } else o2 = 14; while (0); if ((o2 | 0) == 14) if (h2) o2 = 16; else { g2 = 0; o2 = 17; } a: do if ((o2 | 0) == 16) { k[c2 >> 2] = k[c2 >> 2] | 6; f2 = 0; } else if ((o2 | 0) == 17) { f2 = k[a2 >> 2] | 0; h2 = k[f2 + 12 >> 2] | 0; if ((h2 | 0) == (k[f2 + 16 >> 2] | 0)) f2 = Ob[k[(k[f2 >> 2] | 0) + 36 >> 2] & 127](f2) | 0; else f2 = k[h2 >> 2] | 0; if (!(Qb[k[(k[d2 >> 2] | 0) + 12 >> 2] & 63](d2, 2048, f2) | 0)) { k[c2 >> 2] = k[c2 >> 2] | 4; f2 = 0; break; } f2 = (Qb[k[(k[d2 >> 2] | 0) + 52 >> 2] & 63](d2, f2, 0) | 0) << 24 >> 24; h2 = k[a2 >> 2] | 0; i3 = h2 + 12 | 0; j2 = k[i3 >> 2] | 0; if ((j2 | 0) == (k[h2 + 16 >> 2] | 0)) { Ob[k[(k[h2 >> 2] | 0) + 40 >> 2] & 127](h2) | 0; m2 = e2; l2 = g2; i3 = g2; } else { k[i3 >> 2] = j2 + 4; m2 = e2; l2 = g2; i3 = g2; } while (1) { f2 = f2 + -48 | 0; n2 = m2 + -1 | 0; g2 = k[a2 >> 2] | 0; do if (g2) { h2 = k[g2 + 12 >> 2] | 0; if ((h2 | 0) == (k[g2 + 16 >> 2] | 0)) g2 = Ob[k[(k[g2 >> 2] | 0) + 36 >> 2] & 127](g2) | 0; else g2 = k[h2 >> 2] | 0; if ((g2 | 0) == -1) { k[a2 >> 2] = 0; j2 = 1; break; } else { j2 = (k[a2 >> 2] | 0) == 0; break; } } else j2 = 1; while (0); do if (i3) { g2 = k[i3 + 12 >> 2] | 0; if ((g2 | 0) == (k[i3 + 16 >> 2] | 0)) g2 = Ob[k[(k[i3 >> 2] | 0) + 36 >> 2] & 127](i3) | 0; else g2 = k[g2 >> 2] | 0; if ((g2 | 0) == -1) { k[b2 >> 2] = 0; i3 = 0; e2 = 0; g2 = 1; break; } else { i3 = l2; e2 = l2; g2 = (l2 | 0) == 0; break; } } else { i3 = l2; e2 = 0; g2 = 1; } while (0); h2 = k[a2 >> 2] | 0; if (!((m2 | 0) > 1 & (j2 ^ g2))) break; g2 = k[h2 + 12 >> 2] | 0; if ((g2 | 0) == (k[h2 + 16 >> 2] | 0)) g2 = Ob[k[(k[h2 >> 2] | 0) + 36 >> 2] & 127](h2) | 0; else g2 = k[g2 >> 2] | 0; if (!(Qb[k[(k[d2 >> 2] | 0) + 12 >> 2] & 63](d2, 2048, g2) | 0)) break a; f2 = ((Qb[k[(k[d2 >> 2] | 0) + 52 >> 2] & 63](d2, g2, 0) | 0) << 24 >> 24) + (f2 * 10 | 0) | 0; g2 = k[a2 >> 2] | 0; h2 = g2 + 12 | 0; j2 = k[h2 >> 2] | 0; if ((j2 | 0) == (k[g2 + 16 >> 2] | 0)) { Ob[k[(k[g2 >> 2] | 0) + 40 >> 2] & 127](g2) | 0; m2 = n2; l2 = i3; i3 = e2; continue; } else { k[h2 >> 2] = j2 + 4; m2 = n2; l2 = i3; i3 = e2; continue; } } do if (h2) { g2 = k[h2 + 12 >> 2] | 0; if ((g2 | 0) == (k[h2 + 16 >> 2] | 0)) g2 = Ob[k[(k[h2 >> 2] | 0) + 36 >> 2] & 127](h2) | 0; else g2 = k[g2 >> 2] | 0; if ((g2 | 0) == -1) { k[a2 >> 2] = 0; h2 = 1; break; } else { h2 = (k[a2 >> 2] | 0) == 0; break; } } else h2 = 1; while (0); do if (i3) { g2 = k[i3 + 12 >> 2] | 0; if ((g2 | 0) == (k[i3 + 16 >> 2] | 0)) g2 = Ob[k[(k[i3 >> 2] | 0) + 36 >> 2] & 127](i3) | 0; else g2 = k[g2 >> 2] | 0; if ((g2 | 0) != -1) if (h2) break a; else break; else { k[b2 >> 2] = 0; o2 = 60; break; } } else o2 = 60; while (0); if ((o2 | 0) == 60 ? !h2 : 0) break; k[c2 >> 2] = k[c2 >> 2] | 2; } while (0); return f2 | 0; } function fv(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0; f2 = a2 + 4 | 0; d2 = (k[f2 >> 2] | 0) != 189; h2 = k[a2 >> 2] | 0; g2 = h2; e2 = (k[c2 >> 2] | 0) - g2 | 0; e2 = e2 >>> 0 < 2147483647 ? e2 << 1 : -1; g2 = (k[b2 >> 2] | 0) - g2 | 0; h2 = Sl(d2 ? h2 : 0, e2) | 0; if (!h2) ak(); do if (!d2) { d2 = k[a2 >> 2] | 0; k[a2 >> 2] = h2; if (d2) { x = 0; qa(k[f2 >> 2] | 0, d2 | 0); h2 = x; x = 0; if (h2 & 1) { h2 = Wa(0) | 0; oc(h2); } else { i3 = k[a2 >> 2] | 0; break; } } else i3 = h2; } else { k[a2 >> 2] = h2; i3 = h2; } while (0); k[f2 >> 2] = 201; k[b2 >> 2] = i3 + g2; k[c2 >> 2] = (k[a2 >> 2] | 0) + e2; return; } function gv(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0; f2 = a2 + 4 | 0; d2 = (k[f2 >> 2] | 0) != 189; h2 = k[a2 >> 2] | 0; g2 = h2; e2 = (k[c2 >> 2] | 0) - g2 | 0; e2 = e2 >>> 0 < 2147483647 ? e2 << 1 : -1; g2 = (k[b2 >> 2] | 0) - g2 >> 2; h2 = Sl(d2 ? h2 : 0, e2) | 0; if (!h2) ak(); do if (!d2) { d2 = k[a2 >> 2] | 0; k[a2 >> 2] = h2; if (d2) { x = 0; qa(k[f2 >> 2] | 0, d2 | 0); h2 = x; x = 0; if (h2 & 1) { h2 = Wa(0) | 0; oc(h2); } else { i3 = k[a2 >> 2] | 0; break; } } else i3 = h2; } else { k[a2 >> 2] = h2; i3 = h2; } while (0); k[f2 >> 2] = 201; k[b2 >> 2] = i3 + (g2 << 2); k[c2 >> 2] = (k[a2 >> 2] | 0) + (e2 >>> 2 << 2); return; } function hv(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; f2 = b2; d2 = i2[a2 >> 0] | 0; if (!(d2 & 1)) { e2 = 10; j2 = (d2 & 255) >>> 1; } else { d2 = k[a2 >> 2] | 0; e2 = (d2 & -2) + -1 | 0; j2 = k[a2 + 4 >> 2] | 0; d2 = d2 & 255; } h2 = c2 - f2 | 0; do if ((c2 | 0) != (b2 | 0)) { if ((e2 - j2 | 0) >>> 0 < h2 >>> 0) { bn(a2, e2, j2 + h2 - e2 | 0, j2, j2, 0, 0); d2 = i2[a2 >> 0] | 0; } if (!(d2 & 1)) g2 = a2 + 1 | 0; else g2 = k[a2 + 8 >> 2] | 0; f2 = c2 + (j2 - f2) | 0; if ((b2 | 0) != (c2 | 0)) { d2 = b2; e2 = g2 + j2 | 0; while (1) { i2[e2 >> 0] = i2[d2 >> 0] | 0; d2 = d2 + 1 | 0; if ((d2 | 0) == (c2 | 0)) break; else e2 = e2 + 1 | 0; } } i2[g2 + f2 >> 0] = 0; d2 = j2 + h2 | 0; if (!(i2[a2 >> 0] & 1)) { i2[a2 >> 0] = d2 << 1; break; } else { k[a2 + 4 >> 2] = d2; break; } } while (0); return a2 | 0; } function iv(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0; f2 = a2 + 4 | 0; d2 = (k[f2 >> 2] | 0) != 189; h2 = k[a2 >> 2] | 0; g2 = h2; e2 = (k[c2 >> 2] | 0) - g2 | 0; e2 = e2 >>> 0 < 2147483647 ? e2 << 1 : -1; g2 = (k[b2 >> 2] | 0) - g2 >> 2; h2 = Sl(d2 ? h2 : 0, e2) | 0; if (!h2) ak(); do if (!d2) { d2 = k[a2 >> 2] | 0; k[a2 >> 2] = h2; if (d2) { x = 0; qa(k[f2 >> 2] | 0, d2 | 0); h2 = x; x = 0; if (h2 & 1) { h2 = Wa(0) | 0; oc(h2); } else { i3 = k[a2 >> 2] | 0; break; } } else i3 = h2; } else { k[a2 >> 2] = h2; i3 = h2; } while (0); k[f2 >> 2] = 201; k[b2 >> 2] = i3 + (g2 << 2); k[c2 >> 2] = (k[a2 >> 2] | 0) + (e2 >>> 2 << 2); return; } function jv(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; f2 = b2; d2 = i2[a2 >> 0] | 0; if (!(d2 & 1)) { e2 = 1; j2 = (d2 & 255) >>> 1; } else { d2 = k[a2 >> 2] | 0; e2 = (d2 & -2) + -1 | 0; j2 = k[a2 + 4 >> 2] | 0; d2 = d2 & 255; } h2 = c2 - f2 >> 2; do if (h2) { if ((e2 - j2 | 0) >>> 0 < h2 >>> 0) { ln(a2, e2, j2 + h2 - e2 | 0, j2, j2, 0, 0); d2 = i2[a2 >> 0] | 0; } if (!(d2 & 1)) g2 = a2 + 4 | 0; else g2 = k[a2 + 8 >> 2] | 0; f2 = j2 + ((c2 - f2 | 0) >>> 2) | 0; if ((b2 | 0) != (c2 | 0)) { d2 = b2; e2 = g2 + (j2 << 2) | 0; while (1) { k[e2 >> 2] = k[d2 >> 2]; d2 = d2 + 4 | 0; if ((d2 | 0) == (c2 | 0)) break; else e2 = e2 + 4 | 0; } } k[g2 + (f2 << 2) >> 2] = 0; d2 = j2 + h2 | 0; if (!(i2[a2 >> 0] & 1)) { i2[a2 >> 0] = d2 << 1; break; } else { k[a2 + 4 >> 2] = d2; break; } } while (0); return a2 | 0; } function kv(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; i2[a2 + 128 >> 0] = 0; do if (b2) { x = 0; ra(125, a2 | 0, b2 | 0); c2 = x; x = 0; if (c2 & 1) { c2 = Wa() | 0; Nv(a2); fb(c2 | 0); } else { cw(a2, b2); break; } } while (0); return; } function lv(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(43148) | 0); return; } function mv(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(43188) | 0); return; } function nv(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(44220) | 0); return; } function ov(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(44212) | 0); return; } function pv(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(44280) | 0); return; } function qv(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(44288) | 0); return; } function rv(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(44344) | 0); return; } function sv(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(44352) | 0); return; } function tv(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(44360) | 0); return; } function uv(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(44368) | 0); return; } function vv(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(43260) | 0); return; } function wv(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(43332) | 0); return; } function xv(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(43392) | 0); return; } function yv(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(43452) | 0); return; } function zv(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(43764) | 0); return; } function Av(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(43828) | 0); return; } function Bv(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(43892) | 0); return; } function Cv(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(43956) | 0); return; } function Dv(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(43992) | 0); return; } function Ev(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(44028) | 0); return; } function Fv(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(44064) | 0); return; } function Gv(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(44100) | 0); return; } function Hv(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(43544) | 0); return; } function Iv(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(43636) | 0); return; } function Jv(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(43668) | 0); return; } function Kv(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(43700) | 0); return; } function Lv(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(44140) | 0); return; } function Mv(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Hs(a2, b2, Rs(44180) | 0); return; } function Nv(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0; c2 = k[a2 >> 2] | 0; do if (c2) { d2 = a2 + 4 | 0; b2 = k[d2 >> 2] | 0; if ((b2 | 0) != (c2 | 0)) { do b2 = b2 + -4 | 0; while ((b2 | 0) != (c2 | 0)); k[d2 >> 2] = b2; } if ((a2 + 16 | 0) == (c2 | 0)) { i2[a2 + 128 >> 0] = 0; break; } else { mj(c2); break; } } while (0); return; } function Ov(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; g2 = a2 + 4 | 0; c2 = k[g2 >> 2] | 0; d2 = k[a2 >> 2] | 0; e2 = c2 - d2 >> 2; if (e2 >>> 0 >= b2 >>> 0) { if (e2 >>> 0 > b2 >>> 0 ? (f2 = d2 + (b2 << 2) | 0, (c2 | 0) != (f2 | 0)) : 0) { do c2 = c2 + -4 | 0; while ((c2 | 0) != (f2 | 0)); k[g2 >> 2] = c2; } } else bw(a2, b2 - e2 | 0); return; } function Pv(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0; c2 = k[a2 + 8 >> 2] | 0; if ((k[a2 + 12 >> 2] | 0) - c2 >> 2 >>> 0 > b2 >>> 0) c2 = (k[c2 + (b2 << 2) >> 2] | 0) != 0; else c2 = 0; return c2 | 0; } function Qv(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; c2 = a2 + 4 | 0; b2 = k[c2 >> 2] | 0; c2 = k[c2 + 4 >> 2] | 0; a2 = (k[a2 >> 2] | 0) + (c2 >> 1) | 0; if (c2 & 1) b2 = k[(k[a2 >> 2] | 0) + b2 >> 2] | 0; Lb[b2 & 255](a2); return; } function Rv(a2, b2, c2, d2, e2, f2, g2, h2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; var l2 = 0, n2 = 0; k[c2 >> 2] = a2; k[f2 >> 2] = d2; if (h2 & 2) if ((e2 - d2 | 0) < 3) a2 = 1; else { k[f2 >> 2] = d2 + 1; i2[d2 >> 0] = -17; l2 = k[f2 >> 2] | 0; k[f2 >> 2] = l2 + 1; i2[l2 >> 0] = -69; l2 = k[f2 >> 2] | 0; k[f2 >> 2] = l2 + 1; i2[l2 >> 0] = -65; l2 = 4; } else l2 = 4; a: do if ((l2 | 0) == 4) { n2 = b2; a2 = k[c2 >> 2] | 0; if (a2 >>> 0 < b2 >>> 0) while (1) { h2 = j[a2 >> 1] | 0; l2 = h2 & 65535; if (l2 >>> 0 > g2 >>> 0) { a2 = 2; break a; } do if ((h2 & 65535) < 128) { a2 = k[f2 >> 2] | 0; if ((e2 - a2 | 0) < 1) { a2 = 1; break a; } k[f2 >> 2] = a2 + 1; i2[a2 >> 0] = h2; } else { if ((h2 & 65535) < 2048) { a2 = k[f2 >> 2] | 0; if ((e2 - a2 | 0) < 2) { a2 = 1; break a; } k[f2 >> 2] = a2 + 1; i2[a2 >> 0] = l2 >>> 6 | 192; d2 = k[f2 >> 2] | 0; k[f2 >> 2] = d2 + 1; i2[d2 >> 0] = l2 & 63 | 128; break; } if ((h2 & 65535) < 55296) { a2 = k[f2 >> 2] | 0; if ((e2 - a2 | 0) < 3) { a2 = 1; break a; } k[f2 >> 2] = a2 + 1; i2[a2 >> 0] = l2 >>> 12 | 224; d2 = k[f2 >> 2] | 0; k[f2 >> 2] = d2 + 1; i2[d2 >> 0] = l2 >>> 6 & 63 | 128; d2 = k[f2 >> 2] | 0; k[f2 >> 2] = d2 + 1; i2[d2 >> 0] = l2 & 63 | 128; break; } if ((h2 & 65535) >= 56320) { if ((h2 & 65535) < 57344) { a2 = 2; break a; } a2 = k[f2 >> 2] | 0; if ((e2 - a2 | 0) < 3) { a2 = 1; break a; } k[f2 >> 2] = a2 + 1; i2[a2 >> 0] = l2 >>> 12 | 224; d2 = k[f2 >> 2] | 0; k[f2 >> 2] = d2 + 1; i2[d2 >> 0] = l2 >>> 6 & 63 | 128; d2 = k[f2 >> 2] | 0; k[f2 >> 2] = d2 + 1; i2[d2 >> 0] = l2 & 63 | 128; break; } if ((n2 - a2 | 0) < 4) { a2 = 1; break a; } a2 = a2 + 2 | 0; h2 = m[a2 >> 1] | 0; if ((h2 & 64512 | 0) != 56320) { a2 = 2; break a; } if ((e2 - (k[f2 >> 2] | 0) | 0) < 4) { a2 = 1; break a; } d2 = l2 & 960; if (((d2 << 10) + 65536 | l2 << 10 & 64512 | h2 & 1023) >>> 0 > g2 >>> 0) { a2 = 2; break a; } k[c2 >> 2] = a2; a2 = (d2 >>> 6) + 1 | 0; d2 = k[f2 >> 2] | 0; k[f2 >> 2] = d2 + 1; i2[d2 >> 0] = a2 >>> 2 | 240; d2 = k[f2 >> 2] | 0; k[f2 >> 2] = d2 + 1; i2[d2 >> 0] = l2 >>> 2 & 15 | a2 << 4 & 48 | 128; d2 = k[f2 >> 2] | 0; k[f2 >> 2] = d2 + 1; i2[d2 >> 0] = l2 << 4 & 48 | h2 >>> 6 & 15 | 128; l2 = k[f2 >> 2] | 0; k[f2 >> 2] = l2 + 1; i2[l2 >> 0] = h2 & 63 | 128; } while (0); a2 = (k[c2 >> 2] | 0) + 2 | 0; k[c2 >> 2] = a2; if (a2 >>> 0 >= b2 >>> 0) { a2 = 0; break; } } else a2 = 0; } while (0); return a2 | 0; } function Sv(a2, b2, c2, d2, e2, f2, g2, h2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; var m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; k[c2 >> 2] = a2; k[f2 >> 2] = d2; if (h2 & 4) { a2 = k[c2 >> 2] | 0; h2 = b2; if ((((h2 - a2 | 0) > 2 ? (i2[a2 >> 0] | 0) == -17 : 0) ? (i2[a2 + 1 >> 0] | 0) == -69 : 0) ? (i2[a2 + 2 >> 0] | 0) == -65 : 0) { k[c2 >> 2] = a2 + 3; m2 = k[f2 >> 2] | 0; } else m2 = d2; } else { m2 = d2; h2 = b2; } q2 = e2; d2 = k[c2 >> 2] | 0; a2 = d2 >>> 0 < b2 >>> 0; a: do if (a2 & m2 >>> 0 < e2 >>> 0) while (1) { a2 = i2[d2 >> 0] | 0; o2 = a2 & 255; if (o2 >>> 0 > g2 >>> 0) { a2 = 2; break a; } do if (a2 << 24 >> 24 > -1) { j[m2 >> 1] = a2 & 255; k[c2 >> 2] = d2 + 1; } else { if ((a2 & 255) < 194) { a2 = 2; break a; } if ((a2 & 255) < 224) { if ((h2 - d2 | 0) < 2) { a2 = 1; break a; } a2 = l[d2 + 1 >> 0] | 0; if ((a2 & 192 | 0) != 128) { a2 = 2; break a; } a2 = a2 & 63 | o2 << 6 & 1984; if (a2 >>> 0 > g2 >>> 0) { a2 = 2; break a; } j[m2 >> 1] = a2; k[c2 >> 2] = d2 + 2; break; } if ((a2 & 255) < 240) { if ((h2 - d2 | 0) < 3) { a2 = 1; break a; } n2 = i2[d2 + 1 >> 0] | 0; a2 = i2[d2 + 2 >> 0] | 0; switch (o2 | 0) { case 224: { if ((n2 & -32) << 24 >> 24 != -96) { a2 = 2; break a; } break; } case 237: { if ((n2 & -32) << 24 >> 24 != -128) { a2 = 2; break a; } break; } default: if ((n2 & -64) << 24 >> 24 != -128) { a2 = 2; break a; } } a2 = a2 & 255; if ((a2 & 192 | 0) != 128) { a2 = 2; break a; } a2 = (n2 & 255) << 6 & 4032 | o2 << 12 | a2 & 63; if ((a2 & 65535) >>> 0 > g2 >>> 0) { a2 = 2; break a; } j[m2 >> 1] = a2; k[c2 >> 2] = d2 + 3; break; } if ((a2 & 255) >= 245) { a2 = 2; break a; } if ((h2 - d2 | 0) < 4) { a2 = 1; break a; } n2 = i2[d2 + 1 >> 0] | 0; a2 = i2[d2 + 2 >> 0] | 0; d2 = i2[d2 + 3 >> 0] | 0; switch (o2 | 0) { case 240: { if ((n2 + 112 & 255) >= 48) { a2 = 2; break a; } break; } case 244: { if ((n2 & -16) << 24 >> 24 != -128) { a2 = 2; break a; } break; } default: if ((n2 & -64) << 24 >> 24 != -128) { a2 = 2; break a; } } p2 = a2 & 255; if ((p2 & 192 | 0) != 128) { a2 = 2; break a; } a2 = d2 & 255; if ((a2 & 192 | 0) != 128) { a2 = 2; break a; } if ((q2 - m2 | 0) < 4) { a2 = 1; break a; } o2 = o2 & 7; d2 = n2 & 255; n2 = p2 << 6; a2 = a2 & 63; if ((d2 << 12 & 258048 | o2 << 18 | n2 & 4032 | a2) >>> 0 > g2 >>> 0) { a2 = 2; break a; } j[m2 >> 1] = d2 << 2 & 60 | p2 >>> 4 & 3 | ((d2 >>> 4 & 3 | o2 << 2) << 6) + 16320 | 55296; p2 = m2 + 2 | 0; k[f2 >> 2] = p2; j[p2 >> 1] = a2 | n2 & 960 | 56320; k[c2 >> 2] = (k[c2 >> 2] | 0) + 4; } while (0); m2 = (k[f2 >> 2] | 0) + 2 | 0; k[f2 >> 2] = m2; d2 = k[c2 >> 2] | 0; a2 = d2 >>> 0 < b2 >>> 0; if (!(a2 & m2 >>> 0 < e2 >>> 0)) { r2 = 39; break; } } else r2 = 39; while (0); if ((r2 | 0) == 39) a2 = a2 & 1; return a2 | 0; } function Tv(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, k2 = 0, m2 = 0, n2 = 0; n2 = b2; if ((((e2 & 4 | 0) != 0 ? (n2 - a2 | 0) > 2 : 0) ? (i2[a2 >> 0] | 0) == -17 : 0) ? (i2[a2 + 1 >> 0] | 0) == -69 : 0) e2 = (i2[a2 + 2 >> 0] | 0) == -65 ? a2 + 3 | 0 : a2; else e2 = a2; a: do if ((c2 | 0) != 0 & e2 >>> 0 < b2 >>> 0) { m2 = e2; f2 = 0; b: while (1) { e2 = i2[m2 >> 0] | 0; k2 = e2 & 255; if (k2 >>> 0 > d2 >>> 0) { e2 = m2; f2 = 42; break a; } do if (e2 << 24 >> 24 > -1) e2 = m2 + 1 | 0; else { if ((e2 & 255) < 194) { e2 = m2; f2 = 42; break a; } if ((e2 & 255) < 224) { if ((n2 - m2 | 0) < 2) { e2 = m2; f2 = 42; break a; } e2 = l[m2 + 1 >> 0] | 0; if ((e2 & 192 | 0) != 128) { e2 = m2; f2 = 42; break a; } if ((e2 & 63 | k2 << 6 & 1984) >>> 0 > d2 >>> 0) { e2 = m2; f2 = 42; break a; } e2 = m2 + 2 | 0; break; } if ((e2 & 255) < 240) { e2 = m2; if ((n2 - e2 | 0) < 3) { e2 = m2; f2 = 42; break a; } h2 = i2[m2 + 1 >> 0] | 0; g2 = i2[m2 + 2 >> 0] | 0; switch (k2 | 0) { case 224: { if ((h2 & -32) << 24 >> 24 != -96) { f2 = 20; break b; } break; } case 237: { if ((h2 & -32) << 24 >> 24 != -128) { f2 = 22; break b; } break; } default: if ((h2 & -64) << 24 >> 24 != -128) { f2 = 24; break b; } } e2 = g2 & 255; if ((e2 & 192 | 0) != 128) { e2 = m2; f2 = 42; break a; } if (((h2 & 255) << 6 & 4032 | k2 << 12 & 61440 | e2 & 63) >>> 0 > d2 >>> 0) { e2 = m2; f2 = 42; break a; } e2 = m2 + 3 | 0; break; } if ((e2 & 255) >= 245) { e2 = m2; f2 = 42; break a; } e2 = m2; if ((c2 - f2 | 0) >>> 0 < 2 | (n2 - e2 | 0) < 4) { e2 = m2; f2 = 42; break a; } j2 = i2[m2 + 1 >> 0] | 0; g2 = i2[m2 + 2 >> 0] | 0; h2 = i2[m2 + 3 >> 0] | 0; switch (k2 | 0) { case 240: { if ((j2 + 112 & 255) >= 48) { f2 = 32; break b; } break; } case 244: { if ((j2 & -16) << 24 >> 24 != -128) { f2 = 34; break b; } break; } default: if ((j2 & -64) << 24 >> 24 != -128) { f2 = 36; break b; } } g2 = g2 & 255; if ((g2 & 192 | 0) != 128) { e2 = m2; f2 = 42; break a; } e2 = h2 & 255; if ((e2 & 192 | 0) != 128) { e2 = m2; f2 = 42; break a; } if (((j2 & 255) << 12 & 258048 | k2 << 18 & 1835008 | g2 << 6 & 4032 | e2 & 63) >>> 0 > d2 >>> 0) { e2 = m2; f2 = 42; break a; } e2 = m2 + 4 | 0; f2 = f2 + 1 | 0; } while (0); f2 = f2 + 1 | 0; if (!(f2 >>> 0 < c2 >>> 0 & e2 >>> 0 < b2 >>> 0)) { f2 = 42; break a; } else m2 = e2; } if ((f2 | 0) == 20) { e2 = e2 - a2 | 0; break; } else if ((f2 | 0) == 22) { e2 = e2 - a2 | 0; break; } else if ((f2 | 0) == 24) { e2 = e2 - a2 | 0; break; } else if ((f2 | 0) == 32) { e2 = e2 - a2 | 0; break; } else if ((f2 | 0) == 34) { e2 = e2 - a2 | 0; break; } else if ((f2 | 0) == 36) { e2 = e2 - a2 | 0; break; } } else f2 = 42; while (0); if ((f2 | 0) == 42) e2 = e2 - a2 | 0; return e2 | 0; } function Uv(a2, b2, c2, d2, e2, f2, g2, h2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; var j2 = 0, l2 = 0; k[c2 >> 2] = a2; k[f2 >> 2] = d2; l2 = e2; if (h2 & 2) if ((l2 - d2 | 0) < 3) a2 = 1; else { k[f2 >> 2] = d2 + 1; i2[d2 >> 0] = -17; j2 = k[f2 >> 2] | 0; k[f2 >> 2] = j2 + 1; i2[j2 >> 0] = -69; j2 = k[f2 >> 2] | 0; k[f2 >> 2] = j2 + 1; i2[j2 >> 0] = -65; j2 = 4; } else j2 = 4; a: do if ((j2 | 0) == 4) { a2 = k[c2 >> 2] | 0; if (a2 >>> 0 < b2 >>> 0) while (1) { h2 = k[a2 >> 2] | 0; if (h2 >>> 0 > g2 >>> 0 | (h2 & -2048 | 0) == 55296) { a2 = 2; break a; } do if (h2 >>> 0 >= 128) { if (h2 >>> 0 < 2048) { a2 = k[f2 >> 2] | 0; if ((l2 - a2 | 0) < 2) { a2 = 1; break a; } k[f2 >> 2] = a2 + 1; i2[a2 >> 0] = h2 >>> 6 | 192; j2 = k[f2 >> 2] | 0; k[f2 >> 2] = j2 + 1; i2[j2 >> 0] = h2 & 63 | 128; break; } a2 = k[f2 >> 2] | 0; e2 = l2 - a2 | 0; if (h2 >>> 0 < 65536) { if ((e2 | 0) < 3) { a2 = 1; break a; } k[f2 >> 2] = a2 + 1; i2[a2 >> 0] = h2 >>> 12 | 224; j2 = k[f2 >> 2] | 0; k[f2 >> 2] = j2 + 1; i2[j2 >> 0] = h2 >>> 6 & 63 | 128; j2 = k[f2 >> 2] | 0; k[f2 >> 2] = j2 + 1; i2[j2 >> 0] = h2 & 63 | 128; break; } else { if ((e2 | 0) < 4) { a2 = 1; break a; } k[f2 >> 2] = a2 + 1; i2[a2 >> 0] = h2 >>> 18 | 240; j2 = k[f2 >> 2] | 0; k[f2 >> 2] = j2 + 1; i2[j2 >> 0] = h2 >>> 12 & 63 | 128; j2 = k[f2 >> 2] | 0; k[f2 >> 2] = j2 + 1; i2[j2 >> 0] = h2 >>> 6 & 63 | 128; j2 = k[f2 >> 2] | 0; k[f2 >> 2] = j2 + 1; i2[j2 >> 0] = h2 & 63 | 128; break; } } else { a2 = k[f2 >> 2] | 0; if ((l2 - a2 | 0) < 1) { a2 = 1; break a; } k[f2 >> 2] = a2 + 1; i2[a2 >> 0] = h2; } while (0); a2 = (k[c2 >> 2] | 0) + 4 | 0; k[c2 >> 2] = a2; if (a2 >>> 0 >= b2 >>> 0) { a2 = 0; break; } } else a2 = 0; } while (0); return a2 | 0; } function Vv(a2, b2, c2, d2, e2, f2, g2, h2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; var j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; k[c2 >> 2] = a2; k[f2 >> 2] = d2; if (h2 & 4) { a2 = k[c2 >> 2] | 0; h2 = b2; if ((((h2 - a2 | 0) > 2 ? (i2[a2 >> 0] | 0) == -17 : 0) ? (i2[a2 + 1 >> 0] | 0) == -69 : 0) ? (i2[a2 + 2 >> 0] | 0) == -65 : 0) { k[c2 >> 2] = a2 + 3; d2 = k[f2 >> 2] | 0; p2 = h2; } else p2 = h2; } else p2 = b2; h2 = k[c2 >> 2] | 0; a2 = h2 >>> 0 < b2 >>> 0; a: do if (a2 & d2 >>> 0 < e2 >>> 0) while (1) { a2 = i2[h2 >> 0] | 0; o2 = a2 & 255; do if (a2 << 24 >> 24 > -1) { if (o2 >>> 0 > g2 >>> 0) { a2 = 2; break a; } k[d2 >> 2] = o2; k[c2 >> 2] = h2 + 1; } else { if ((a2 & 255) < 194) { a2 = 2; break a; } if ((a2 & 255) < 224) { if ((p2 - h2 | 0) < 2) { a2 = 1; break a; } a2 = l[h2 + 1 >> 0] | 0; if ((a2 & 192 | 0) != 128) { a2 = 2; break a; } a2 = a2 & 63 | o2 << 6 & 1984; if (a2 >>> 0 > g2 >>> 0) { a2 = 2; break a; } k[d2 >> 2] = a2; k[c2 >> 2] = h2 + 2; break; } if ((a2 & 255) < 240) { if ((p2 - h2 | 0) < 3) { a2 = 1; break a; } j2 = i2[h2 + 1 >> 0] | 0; a2 = i2[h2 + 2 >> 0] | 0; switch (o2 | 0) { case 224: { if ((j2 & -32) << 24 >> 24 != -96) { a2 = 2; break a; } break; } case 237: { if ((j2 & -32) << 24 >> 24 != -128) { a2 = 2; break a; } break; } default: if ((j2 & -64) << 24 >> 24 != -128) { a2 = 2; break a; } } a2 = a2 & 255; if ((a2 & 192 | 0) != 128) { a2 = 2; break a; } a2 = (j2 & 255) << 6 & 4032 | o2 << 12 & 61440 | a2 & 63; if (a2 >>> 0 > g2 >>> 0) { a2 = 2; break a; } k[d2 >> 2] = a2; k[c2 >> 2] = h2 + 3; break; } if ((a2 & 255) >= 245) { a2 = 2; break a; } if ((p2 - h2 | 0) < 4) { a2 = 1; break a; } n2 = i2[h2 + 1 >> 0] | 0; a2 = i2[h2 + 2 >> 0] | 0; j2 = i2[h2 + 3 >> 0] | 0; switch (o2 | 0) { case 240: { if ((n2 + 112 & 255) >= 48) { a2 = 2; break a; } break; } case 244: { if ((n2 & -16) << 24 >> 24 != -128) { a2 = 2; break a; } break; } default: if ((n2 & -64) << 24 >> 24 != -128) { a2 = 2; break a; } } m2 = a2 & 255; if ((m2 & 192 | 0) != 128) { a2 = 2; break a; } a2 = j2 & 255; if ((a2 & 192 | 0) != 128) { a2 = 2; break a; } a2 = (n2 & 255) << 12 & 258048 | o2 << 18 & 1835008 | m2 << 6 & 4032 | a2 & 63; if (a2 >>> 0 > g2 >>> 0) { a2 = 2; break a; } k[d2 >> 2] = a2; k[c2 >> 2] = h2 + 4; } while (0); d2 = (k[f2 >> 2] | 0) + 4 | 0; k[f2 >> 2] = d2; h2 = k[c2 >> 2] | 0; a2 = h2 >>> 0 < b2 >>> 0; if (!(a2 & d2 >>> 0 < e2 >>> 0)) { q2 = 38; break; } } else q2 = 38; while (0); if ((q2 | 0) == 38) a2 = a2 & 1; return a2 | 0; } function Wv(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, k2 = 0, m2 = 0, n2 = 0; n2 = b2; if ((((e2 & 4 | 0) != 0 ? (n2 - a2 | 0) > 2 : 0) ? (i2[a2 >> 0] | 0) == -17 : 0) ? (i2[a2 + 1 >> 0] | 0) == -69 : 0) e2 = (i2[a2 + 2 >> 0] | 0) == -65 ? a2 + 3 | 0 : a2; else e2 = a2; a: do if ((c2 | 0) != 0 & e2 >>> 0 < b2 >>> 0) { k2 = e2; m2 = 0; b: while (1) { e2 = i2[k2 >> 0] | 0; j2 = e2 & 255; do if (e2 << 24 >> 24 > -1) { if (j2 >>> 0 > d2 >>> 0) { e2 = k2; f2 = 42; break a; } e2 = k2 + 1 | 0; } else { if ((e2 & 255) < 194) { e2 = k2; f2 = 42; break a; } if ((e2 & 255) < 224) { if ((n2 - k2 | 0) < 2) { e2 = k2; f2 = 42; break a; } e2 = l[k2 + 1 >> 0] | 0; if ((e2 & 192 | 0) != 128) { e2 = k2; f2 = 42; break a; } if ((e2 & 63 | j2 << 6 & 1984) >>> 0 > d2 >>> 0) { e2 = k2; f2 = 42; break a; } e2 = k2 + 2 | 0; break; } if ((e2 & 255) < 240) { e2 = k2; if ((n2 - e2 | 0) < 3) { e2 = k2; f2 = 42; break a; } g2 = i2[k2 + 1 >> 0] | 0; f2 = i2[k2 + 2 >> 0] | 0; switch (j2 | 0) { case 224: { if ((g2 & -32) << 24 >> 24 != -96) { f2 = 20; break b; } break; } case 237: { if ((g2 & -32) << 24 >> 24 != -128) { f2 = 22; break b; } break; } default: if ((g2 & -64) << 24 >> 24 != -128) { f2 = 24; break b; } } e2 = f2 & 255; if ((e2 & 192 | 0) != 128) { e2 = k2; f2 = 42; break a; } if (((g2 & 255) << 6 & 4032 | j2 << 12 & 61440 | e2 & 63) >>> 0 > d2 >>> 0) { e2 = k2; f2 = 42; break a; } e2 = k2 + 3 | 0; break; } if ((e2 & 255) >= 245) { e2 = k2; f2 = 42; break a; } e2 = k2; if ((n2 - e2 | 0) < 4) { e2 = k2; f2 = 42; break a; } h2 = i2[k2 + 1 >> 0] | 0; f2 = i2[k2 + 2 >> 0] | 0; g2 = i2[k2 + 3 >> 0] | 0; switch (j2 | 0) { case 240: { if ((h2 + 112 & 255) >= 48) { f2 = 32; break b; } break; } case 244: { if ((h2 & -16) << 24 >> 24 != -128) { f2 = 34; break b; } break; } default: if ((h2 & -64) << 24 >> 24 != -128) { f2 = 36; break b; } } f2 = f2 & 255; if ((f2 & 192 | 0) != 128) { e2 = k2; f2 = 42; break a; } e2 = g2 & 255; if ((e2 & 192 | 0) != 128) { e2 = k2; f2 = 42; break a; } if (((h2 & 255) << 12 & 258048 | j2 << 18 & 1835008 | f2 << 6 & 4032 | e2 & 63) >>> 0 > d2 >>> 0) { e2 = k2; f2 = 42; break a; } e2 = k2 + 4 | 0; } while (0); m2 = m2 + 1 | 0; if (!(m2 >>> 0 < c2 >>> 0 & e2 >>> 0 < b2 >>> 0)) { f2 = 42; break a; } else k2 = e2; } if ((f2 | 0) == 20) { e2 = e2 - a2 | 0; break; } else if ((f2 | 0) == 22) { e2 = e2 - a2 | 0; break; } else if ((f2 | 0) == 24) { e2 = e2 - a2 | 0; break; } else if ((f2 | 0) == 32) { e2 = e2 - a2 | 0; break; } else if ((f2 | 0) == 34) { e2 = e2 - a2 | 0; break; } else if ((f2 | 0) == 36) { e2 = e2 - a2 | 0; break; } } else f2 = 42; while (0); if ((f2 | 0) == 42) e2 = e2 - a2 | 0; return e2 | 0; } function Xv(a2) { a2 = a2 | 0; Sm(45196); Sm(45184); Sm(45172); Sm(45160); Sm(45148); Sm(45136); Sm(45124); Sm(45112); Sm(45100); Sm(45088); Sm(45076); Sm(45064); Sm(45052); Sm(45040); return; } function Yv(a2) { a2 = a2 | 0; en(45368); en(45356); en(45344); en(45332); en(45320); en(45308); en(45296); en(45284); en(45272); en(45260); en(45248); en(45236); en(45224); en(45212); return; } function Zv(a2) { a2 = a2 | 0; Sm(46e3); Sm(45988); Sm(45976); Sm(45964); Sm(45952); Sm(45940); Sm(45928); Sm(45916); Sm(45904); Sm(45892); Sm(45880); Sm(45868); Sm(45856); Sm(45844); Sm(45832); Sm(45820); Sm(45808); Sm(45796); Sm(45784); Sm(45772); Sm(45760); Sm(45748); Sm(45736); Sm(45724); return; } function _v(a2) { a2 = a2 | 0; en(46292); en(46280); en(46268); en(46256); en(46244); en(46232); en(46220); en(46208); en(46196); en(46184); en(46172); en(46160); en(46148); en(46136); en(46124); en(46112); en(46100); en(46088); en(46076); en(46064); en(46052); en(46040); en(46028); en(46016); return; } function $v(a2) { a2 = a2 | 0; Sm(47104); Sm(47092); Sm(47080); Sm(47068); Sm(47056); Sm(47044); Sm(47032); Sm(47020); Sm(47008); Sm(46996); Sm(46984); Sm(46972); Sm(46960); Sm(46948); Sm(46936); Sm(46924); Sm(46912); Sm(46900); Sm(46888); Sm(46876); Sm(46864); Sm(46852); Sm(46840); Sm(46828); return; } function aw(a2) { a2 = a2 | 0; en(47396); en(47384); en(47372); en(47360); en(47348); en(47336); en(47324); en(47312); en(47300); en(47288); en(47276); en(47264); en(47252); en(47240); en(47228); en(47216); en(47204); en(47192); en(47180); en(47168); en(47156); en(47144); en(47132); en(47120); return; } function bw(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0; i3 = r; r = r + 32 | 0; h2 = i3; f2 = k[a2 + 8 >> 2] | 0; c2 = k[a2 + 4 >> 2] | 0; if (f2 - c2 >> 2 >>> 0 < b2 >>> 0) { d2 = k[a2 >> 2] | 0; g2 = c2 - d2 >> 2; e2 = g2 + b2 | 0; if (e2 >>> 0 > 1073741823) jj(a2); c2 = f2 - d2 | 0; if (c2 >> 2 >>> 0 < 536870911) { c2 = c2 >> 1; c2 = c2 >>> 0 < e2 >>> 0 ? e2 : c2; } else c2 = 1073741823; dw(h2, c2, g2, a2 + 16 | 0); g2 = h2 + 8 | 0; f2 = k[g2 >> 2] | 0; sw(f2 | 0, 0, b2 << 2 | 0) | 0; k[g2 >> 2] = f2 + (b2 << 2); ew(a2, h2); fw(h2); } else cw(a2, b2); r = i3; return; } function cw(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0; c2 = a2 + 4 | 0; a2 = b2; b2 = k[c2 >> 2] | 0; do { k[b2 >> 2] = 0; b2 = (k[c2 >> 2] | 0) + 4 | 0; k[c2 >> 2] = b2; a2 = a2 + -1 | 0; } while ((a2 | 0) != 0); return; } function dw(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0; k[a2 + 12 >> 2] = 0; k[a2 + 16 >> 2] = d2; do if (b2) { e2 = d2 + 112 | 0; if (b2 >>> 0 < 29 & (i2[e2 >> 0] | 0) == 0) { i2[e2 >> 0] = 1; break; } else { d2 = lj(b2 << 2) | 0; break; } } else d2 = 0; while (0); k[a2 >> 2] = d2; c2 = d2 + (c2 << 2) | 0; k[a2 + 8 >> 2] = c2; k[a2 + 4 >> 2] = c2; k[a2 + 12 >> 2] = d2 + (b2 << 2); return; } function ew(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; d2 = k[a2 >> 2] | 0; f2 = a2 + 4 | 0; c2 = b2 + 4 | 0; e2 = (k[f2 >> 2] | 0) - d2 | 0; g2 = (k[c2 >> 2] | 0) + (0 - (e2 >> 2) << 2) | 0; k[c2 >> 2] = g2; vw(g2 | 0, d2 | 0, e2 | 0) | 0; e2 = k[a2 >> 2] | 0; k[a2 >> 2] = k[c2 >> 2]; k[c2 >> 2] = e2; e2 = b2 + 8 | 0; d2 = k[f2 >> 2] | 0; k[f2 >> 2] = k[e2 >> 2]; k[e2 >> 2] = d2; e2 = a2 + 8 | 0; a2 = b2 + 12 | 0; d2 = k[e2 >> 2] | 0; k[e2 >> 2] = k[a2 >> 2]; k[a2 >> 2] = d2; k[b2 >> 2] = k[c2 >> 2]; return; } function fw(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0; c2 = k[a2 + 4 >> 2] | 0; d2 = a2 + 8 | 0; b2 = k[d2 >> 2] | 0; if ((b2 | 0) != (c2 | 0)) { do b2 = b2 + -4 | 0; while ((b2 | 0) != (c2 | 0)); k[d2 >> 2] = b2; } c2 = k[a2 >> 2] | 0; do if (c2) { b2 = k[a2 + 16 >> 2] | 0; if ((b2 | 0) == (c2 | 0)) { i2[b2 + 112 >> 0] = 0; break; } else { mj(c2); break; } } while (0); return; } function gw(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0; if (b2 >>> 0 > 1073741823) jj(a2); c2 = a2 + 128 | 0; if (b2 >>> 0 < 29 & (i2[c2 >> 0] | 0) == 0) { i2[c2 >> 0] = 1; c2 = a2 + 16 | 0; } else c2 = lj(b2 << 2) | 0; k[a2 + 4 >> 2] = c2; k[a2 >> 2] = c2; k[a2 + 8 >> 2] = c2 + (b2 << 2); return; } function hw(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; h2 = r; r = r + 16 | 0; g2 = h2; do if ((a2 | 0) != (b2 | 0)) { e2 = mk() | 0; f2 = k[e2 >> 2] | 0; k[e2 >> 2] = 0; d2 = +ql(a2, g2, fp() | 0); a2 = k[e2 >> 2] | 0; if (!a2) k[e2 >> 2] = f2; if ((k[g2 >> 2] | 0) != (b2 | 0)) { k[c2 >> 2] = 4; d2 = 0; break; } if ((a2 | 0) == 34) k[c2 >> 2] = 4; } else { k[c2 >> 2] = 4; d2 = 0; } while (0); r = h2; return +d2; } function iw(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; h2 = r; r = r + 16 | 0; g2 = h2; do if ((a2 | 0) != (b2 | 0)) { e2 = mk() | 0; f2 = k[e2 >> 2] | 0; k[e2 >> 2] = 0; d2 = +ql(a2, g2, fp() | 0); a2 = k[e2 >> 2] | 0; if (!a2) k[e2 >> 2] = f2; if ((k[g2 >> 2] | 0) != (b2 | 0)) { k[c2 >> 2] = 4; d2 = 0; break; } if ((a2 | 0) == 34) k[c2 >> 2] = 4; } else { k[c2 >> 2] = 4; d2 = 0; } while (0); r = h2; return +d2; } function jw(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; h2 = r; r = r + 16 | 0; g2 = h2; do if ((a2 | 0) == (b2 | 0)) { k[c2 >> 2] = 4; d2 = 0; } else { e2 = mk() | 0; f2 = k[e2 >> 2] | 0; k[e2 >> 2] = 0; d2 = +ql(a2, g2, fp() | 0); a2 = k[e2 >> 2] | 0; if (!a2) k[e2 >> 2] = f2; if ((k[g2 >> 2] | 0) != (b2 | 0)) { k[c2 >> 2] = 4; d2 = 0; break; } if ((a2 | 0) == 34) k[c2 >> 2] = 4; } while (0); r = h2; return +d2; } function kw(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0; h2 = r; r = r + 16 | 0; g2 = h2; do if ((a2 | 0) != (b2 | 0)) { if ((i2[a2 >> 0] | 0) == 45) { k[c2 >> 2] = 4; d2 = 0; a2 = 0; break; } e2 = mk() | 0; f2 = k[e2 >> 2] | 0; k[e2 >> 2] = 0; a2 = fk(a2, g2, d2, fp() | 0) | 0; d2 = k[e2 >> 2] | 0; if (!d2) k[e2 >> 2] = f2; if ((k[g2 >> 2] | 0) != (b2 | 0)) { k[c2 >> 2] = 4; d2 = 0; a2 = 0; break; } if ((d2 | 0) == 34) { k[c2 >> 2] = 4; d2 = -1; a2 = -1; } else d2 = M; } else { k[c2 >> 2] = 4; d2 = 0; a2 = 0; } while (0); M = d2; r = h2; return a2 | 0; } function lw(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; j2 = r; r = r + 16 | 0; h2 = j2; do if ((a2 | 0) != (b2 | 0)) { if ((i2[a2 >> 0] | 0) == 45) { k[c2 >> 2] = 4; a2 = 0; break; } f2 = mk() | 0; g2 = k[f2 >> 2] | 0; k[f2 >> 2] = 0; a2 = fk(a2, h2, d2, fp() | 0) | 0; d2 = M; e2 = k[f2 >> 2] | 0; if (!e2) k[f2 >> 2] = g2; if ((k[h2 >> 2] | 0) != (b2 | 0)) { k[c2 >> 2] = 4; a2 = 0; break; } if (d2 >>> 0 > 0 | (d2 | 0) == 0 & a2 >>> 0 > 4294967295 | (e2 | 0) == 34) { k[c2 >> 2] = 4; a2 = -1; break; } else break; } else { k[c2 >> 2] = 4; a2 = 0; } while (0); r = j2; return a2 | 0; } function mw(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; j2 = r; r = r + 16 | 0; h2 = j2; do if ((a2 | 0) != (b2 | 0)) { if ((i2[a2 >> 0] | 0) == 45) { k[c2 >> 2] = 4; a2 = 0; break; } f2 = mk() | 0; g2 = k[f2 >> 2] | 0; k[f2 >> 2] = 0; a2 = fk(a2, h2, d2, fp() | 0) | 0; d2 = M; e2 = k[f2 >> 2] | 0; if (!e2) k[f2 >> 2] = g2; if ((k[h2 >> 2] | 0) != (b2 | 0)) { k[c2 >> 2] = 4; a2 = 0; break; } if (d2 >>> 0 > 0 | (d2 | 0) == 0 & a2 >>> 0 > 4294967295 | (e2 | 0) == 34) { k[c2 >> 2] = 4; a2 = -1; break; } else break; } else { k[c2 >> 2] = 4; a2 = 0; } while (0); r = j2; return a2 | 0; } function nw(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; j2 = r; r = r + 16 | 0; h2 = j2; do if ((a2 | 0) != (b2 | 0)) { if ((i2[a2 >> 0] | 0) == 45) { k[c2 >> 2] = 4; a2 = 0; break; } f2 = mk() | 0; g2 = k[f2 >> 2] | 0; k[f2 >> 2] = 0; a2 = fk(a2, h2, d2, fp() | 0) | 0; d2 = M; e2 = k[f2 >> 2] | 0; if (!e2) k[f2 >> 2] = g2; if ((k[h2 >> 2] | 0) != (b2 | 0)) { k[c2 >> 2] = 4; a2 = 0; break; } if (d2 >>> 0 > 0 | (d2 | 0) == 0 & a2 >>> 0 > 65535 | (e2 | 0) == 34) { k[c2 >> 2] = 4; a2 = -1; break; } else { a2 = a2 & 65535; break; } } else { k[c2 >> 2] = 4; a2 = 0; } while (0); r = j2; return a2 | 0; } function ow(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0; i3 = r; r = r + 16 | 0; h2 = i3; do if ((a2 | 0) != (b2 | 0)) { f2 = mk() | 0; g2 = k[f2 >> 2] | 0; k[f2 >> 2] = 0; a2 = gk(a2, h2, d2, fp() | 0) | 0; d2 = M; e2 = k[f2 >> 2] | 0; if (!e2) k[f2 >> 2] = g2; if ((k[h2 >> 2] | 0) != (b2 | 0)) { k[c2 >> 2] = 4; d2 = 0; a2 = 0; break; } if ((e2 | 0) == 34) { k[c2 >> 2] = 4; h2 = (d2 | 0) > 0 | (d2 | 0) == 0 & a2 >>> 0 > 0; M = h2 ? 2147483647 : -2147483648; r = i3; return (h2 ? -1 : 0) | 0; } } else { k[c2 >> 2] = 4; d2 = 0; a2 = 0; } while (0); M = d2; r = i3; return a2 | 0; } function pw(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0; i3 = r; r = r + 16 | 0; h2 = i3; a: do if ((a2 | 0) == (b2 | 0)) { k[c2 >> 2] = 4; a2 = 0; } else { f2 = mk() | 0; g2 = k[f2 >> 2] | 0; k[f2 >> 2] = 0; a2 = gk(a2, h2, d2, fp() | 0) | 0; d2 = M; e2 = k[f2 >> 2] | 0; if (!e2) k[f2 >> 2] = g2; if ((k[h2 >> 2] | 0) != (b2 | 0)) { k[c2 >> 2] = 4; a2 = 0; break; } do if ((e2 | 0) == 34) { k[c2 >> 2] = 4; if ((d2 | 0) > 0 | (d2 | 0) == 0 & a2 >>> 0 > 0) { a2 = 2147483647; break a; } } else { if ((d2 | 0) < -1 | (d2 | 0) == -1 & a2 >>> 0 < 2147483648) { k[c2 >> 2] = 4; break; } if ((d2 | 0) > 0 | (d2 | 0) == 0 & a2 >>> 0 > 2147483647) { k[c2 >> 2] = 4; a2 = 2147483647; break a; } else break a; } while (0); a2 = -2147483648; } while (0); r = i3; return a2 | 0; } function qw() { } function rw(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; d2 = b2 - d2 - (c2 >>> 0 > a2 >>> 0 | 0) >>> 0; return (M = d2, a2 - c2 >>> 0 | 0) | 0; } function sw(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0; d2 = a2 + c2 | 0; if ((c2 | 0) >= 20) { b2 = b2 & 255; f2 = a2 & 3; g2 = b2 | b2 << 8 | b2 << 16 | b2 << 24; e2 = d2 & ~3; if (f2) { f2 = a2 + 4 - f2 | 0; while ((a2 | 0) < (f2 | 0)) { i2[a2 >> 0] = b2; a2 = a2 + 1 | 0; } } while ((a2 | 0) < (e2 | 0)) { k[a2 >> 2] = g2; a2 = a2 + 4 | 0; } } while ((a2 | 0) < (d2 | 0)) { i2[a2 >> 0] = b2; a2 = a2 + 1 | 0; } return a2 - c2 | 0; } function tw(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; c2 = a2 + c2 >>> 0; return (M = b2 + d2 + (c2 >>> 0 < a2 >>> 0 | 0) >>> 0, c2 | 0) | 0; } function uw(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; if ((c2 | 0) < 32) { M = b2 >>> c2; return a2 >>> c2 | (b2 & (1 << c2) - 1) << 32 - c2; } M = 0; return b2 >>> c2 - 32 | 0; } function vw(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0; if ((c2 | 0) >= 4096) return db(a2 | 0, b2 | 0, c2 | 0) | 0; d2 = a2 | 0; if ((a2 & 3) == (b2 & 3)) { while (a2 & 3) { if (!c2) return d2 | 0; i2[a2 >> 0] = i2[b2 >> 0] | 0; a2 = a2 + 1 | 0; b2 = b2 + 1 | 0; c2 = c2 - 1 | 0; } while ((c2 | 0) >= 4) { k[a2 >> 2] = k[b2 >> 2]; a2 = a2 + 4 | 0; b2 = b2 + 4 | 0; c2 = c2 - 4 | 0; } } while ((c2 | 0) > 0) { i2[a2 >> 0] = i2[b2 >> 0] | 0; a2 = a2 + 1 | 0; b2 = b2 + 1 | 0; c2 = c2 - 1 | 0; } return d2 | 0; } function ww(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; if ((c2 | 0) < 32) { M = b2 << c2 | (a2 & (1 << c2) - 1 << 32 - c2) >>> 32 - c2; return a2 << c2; } M = a2 << c2 - 32; return 0; } function xw(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0; if ((b2 | 0) < (a2 | 0) & (a2 | 0) < (b2 + c2 | 0)) { d2 = a2; b2 = b2 + c2 | 0; a2 = a2 + c2 | 0; while ((c2 | 0) > 0) { a2 = a2 - 1 | 0; b2 = b2 - 1 | 0; c2 = c2 - 1 | 0; i2[a2 >> 0] = i2[b2 >> 0] | 0; } a2 = d2; } else vw(a2, b2, c2) | 0; return a2 | 0; } function yw(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; if ((c2 | 0) < 32) { M = b2 >> c2; return a2 >>> c2 | (b2 & (1 << c2) - 1) << 32 - c2; } M = (b2 | 0) < 0 ? -1 : 0; return b2 >> c2 - 32 | 0; } function zw(a2) { a2 = a2 | 0; var b2 = 0; b2 = i2[v + (a2 & 255) >> 0] | 0; if ((b2 | 0) < 8) return b2 | 0; b2 = i2[v + (a2 >> 8 & 255) >> 0] | 0; if ((b2 | 0) < 8) return b2 + 8 | 0; b2 = i2[v + (a2 >> 16 & 255) >> 0] | 0; if ((b2 | 0) < 8) return b2 + 16 | 0; return (i2[v + (a2 >>> 24) >> 0] | 0) + 24 | 0; } function Aw(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0; f2 = a2 & 65535; e2 = b2 & 65535; c2 = ia(e2, f2) | 0; d2 = a2 >>> 16; a2 = (c2 >>> 16) + (ia(e2, d2) | 0) | 0; e2 = b2 >>> 16; b2 = ia(e2, f2) | 0; return (M = (a2 >>> 16) + (ia(e2, d2) | 0) + (((a2 & 65535) + b2 | 0) >>> 16) | 0, a2 + b2 << 16 | c2 & 65535 | 0) | 0; } function Bw(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0; j2 = b2 >> 31 | ((b2 | 0) < 0 ? -1 : 0) << 1; i3 = ((b2 | 0) < 0 ? -1 : 0) >> 31 | ((b2 | 0) < 0 ? -1 : 0) << 1; f2 = d2 >> 31 | ((d2 | 0) < 0 ? -1 : 0) << 1; e2 = ((d2 | 0) < 0 ? -1 : 0) >> 31 | ((d2 | 0) < 0 ? -1 : 0) << 1; h2 = rw(j2 ^ a2, i3 ^ b2, j2, i3) | 0; g2 = M; a2 = f2 ^ j2; b2 = e2 ^ i3; return rw((Gw(h2, g2, rw(f2 ^ c2, e2 ^ d2, f2, e2) | 0, M, 0) | 0) ^ a2, M ^ b2, a2, b2) | 0; } function Cw(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0; e2 = r; r = r + 16 | 0; h2 = e2 | 0; g2 = b2 >> 31 | ((b2 | 0) < 0 ? -1 : 0) << 1; f2 = ((b2 | 0) < 0 ? -1 : 0) >> 31 | ((b2 | 0) < 0 ? -1 : 0) << 1; j2 = d2 >> 31 | ((d2 | 0) < 0 ? -1 : 0) << 1; i3 = ((d2 | 0) < 0 ? -1 : 0) >> 31 | ((d2 | 0) < 0 ? -1 : 0) << 1; a2 = rw(g2 ^ a2, f2 ^ b2, g2, f2) | 0; b2 = M; Gw(a2, b2, rw(j2 ^ c2, i3 ^ d2, j2, i3) | 0, M, h2) | 0; d2 = rw(k[h2 >> 2] ^ g2, k[h2 + 4 >> 2] ^ f2, g2, f2) | 0; c2 = M; r = e2; return (M = c2, d2) | 0; } function Dw(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0; e2 = a2; f2 = c2; c2 = Aw(e2, f2) | 0; a2 = M; return (M = (ia(b2, f2) | 0) + (ia(d2, e2) | 0) + a2 | a2 & 0, c2 | 0 | 0) | 0; } function Ew(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; return Gw(a2, b2, c2, d2, 0) | 0; } function Fw(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0; f2 = r; r = r + 16 | 0; e2 = f2 | 0; Gw(a2, b2, c2, d2, e2) | 0; r = f2; return (M = k[e2 + 4 >> 2] | 0, k[e2 >> 2] | 0) | 0; } function Gw(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; l2 = a2; i3 = b2; j2 = i3; g2 = c2; n2 = d2; h2 = n2; if (!j2) { f2 = (e2 | 0) != 0; if (!h2) { if (f2) { k[e2 >> 2] = (l2 >>> 0) % (g2 >>> 0); k[e2 + 4 >> 2] = 0; } n2 = 0; e2 = (l2 >>> 0) / (g2 >>> 0) >>> 0; return (M = n2, e2) | 0; } else { if (!f2) { n2 = 0; e2 = 0; return (M = n2, e2) | 0; } k[e2 >> 2] = a2 | 0; k[e2 + 4 >> 2] = b2 & 0; n2 = 0; e2 = 0; return (M = n2, e2) | 0; } } f2 = (h2 | 0) == 0; do if (g2) { if (!f2) { f2 = (ka(h2 | 0) | 0) - (ka(j2 | 0) | 0) | 0; if (f2 >>> 0 <= 31) { m2 = f2 + 1 | 0; h2 = 31 - f2 | 0; b2 = f2 - 31 >> 31; g2 = m2; a2 = l2 >>> (m2 >>> 0) & b2 | j2 << h2; b2 = j2 >>> (m2 >>> 0) & b2; f2 = 0; h2 = l2 << h2; break; } if (!e2) { n2 = 0; e2 = 0; return (M = n2, e2) | 0; } k[e2 >> 2] = a2 | 0; k[e2 + 4 >> 2] = i3 | b2 & 0; n2 = 0; e2 = 0; return (M = n2, e2) | 0; } f2 = g2 - 1 | 0; if (f2 & g2) { h2 = (ka(g2 | 0) | 0) + 33 - (ka(j2 | 0) | 0) | 0; p2 = 64 - h2 | 0; m2 = 32 - h2 | 0; i3 = m2 >> 31; o2 = h2 - 32 | 0; b2 = o2 >> 31; g2 = h2; a2 = m2 - 1 >> 31 & j2 >>> (o2 >>> 0) | (j2 << m2 | l2 >>> (h2 >>> 0)) & b2; b2 = b2 & j2 >>> (h2 >>> 0); f2 = l2 << p2 & i3; h2 = (j2 << p2 | l2 >>> (o2 >>> 0)) & i3 | l2 << m2 & h2 - 33 >> 31; break; } if (e2) { k[e2 >> 2] = f2 & l2; k[e2 + 4 >> 2] = 0; } if ((g2 | 0) == 1) { o2 = i3 | b2 & 0; p2 = a2 | 0 | 0; return (M = o2, p2) | 0; } else { p2 = zw(g2 | 0) | 0; o2 = j2 >>> (p2 >>> 0) | 0; p2 = j2 << 32 - p2 | l2 >>> (p2 >>> 0) | 0; return (M = o2, p2) | 0; } } else { if (f2) { if (e2) { k[e2 >> 2] = (j2 >>> 0) % (g2 >>> 0); k[e2 + 4 >> 2] = 0; } o2 = 0; p2 = (j2 >>> 0) / (g2 >>> 0) >>> 0; return (M = o2, p2) | 0; } if (!l2) { if (e2) { k[e2 >> 2] = 0; k[e2 + 4 >> 2] = (j2 >>> 0) % (h2 >>> 0); } o2 = 0; p2 = (j2 >>> 0) / (h2 >>> 0) >>> 0; return (M = o2, p2) | 0; } f2 = h2 - 1 | 0; if (!(f2 & h2)) { if (e2) { k[e2 >> 2] = a2 | 0; k[e2 + 4 >> 2] = f2 & j2 | b2 & 0; } o2 = 0; p2 = j2 >>> ((zw(h2 | 0) | 0) >>> 0); return (M = o2, p2) | 0; } f2 = (ka(h2 | 0) | 0) - (ka(j2 | 0) | 0) | 0; if (f2 >>> 0 <= 30) { b2 = f2 + 1 | 0; h2 = 31 - f2 | 0; g2 = b2; a2 = j2 << h2 | l2 >>> (b2 >>> 0); b2 = j2 >>> (b2 >>> 0); f2 = 0; h2 = l2 << h2; break; } if (!e2) { o2 = 0; p2 = 0; return (M = o2, p2) | 0; } k[e2 >> 2] = a2 | 0; k[e2 + 4 >> 2] = i3 | b2 & 0; o2 = 0; p2 = 0; return (M = o2, p2) | 0; } while (0); if (!g2) { j2 = h2; i3 = 0; h2 = 0; } else { m2 = c2 | 0 | 0; l2 = n2 | d2 & 0; j2 = tw(m2 | 0, l2 | 0, -1, -1) | 0; c2 = M; i3 = h2; h2 = 0; do { d2 = i3; i3 = f2 >>> 31 | i3 << 1; f2 = h2 | f2 << 1; d2 = a2 << 1 | d2 >>> 31 | 0; n2 = a2 >>> 31 | b2 << 1 | 0; rw(j2, c2, d2, n2) | 0; p2 = M; o2 = p2 >> 31 | ((p2 | 0) < 0 ? -1 : 0) << 1; h2 = o2 & 1; a2 = rw(d2, n2, o2 & m2, (((p2 | 0) < 0 ? -1 : 0) >> 31 | ((p2 | 0) < 0 ? -1 : 0) << 1) & l2) | 0; b2 = M; g2 = g2 - 1 | 0; } while ((g2 | 0) != 0); j2 = i3; i3 = 0; } g2 = 0; if (e2) { k[e2 >> 2] = a2; k[e2 + 4 >> 2] = b2; } o2 = (f2 | 0) >>> 31 | (j2 | g2) << 1 | (g2 << 1 | f2 >>> 31) & 0 | i3; p2 = (f2 << 1 | 0 >>> 31) & -2 | h2; return (M = o2, p2) | 0; } function Hw(a2, b2, c2, d2, e2, f2, g2, h2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; return Ib[a2 & 15](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0, g2 | 0, h2 | 0) | 0; } function Iw(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; Jb[a2 & 15](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0); } function Jw(a2, b2, c2, d2, e2, f2, g2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = +g2; return Kb[a2 & 3](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0, +g2) | 0; } function Kw(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; Lb[a2 & 255](b2 | 0); } function Lw(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; Mb[a2 & 127](b2 | 0, c2 | 0); } function Mw(a2, b2, c2, d2, e2, f2, g2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; return Nb[a2 & 63](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0, g2 | 0) | 0; } function Nw(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; return Ob[a2 & 127](b2 | 0) | 0; } function Ow(a2, b2, c2, d2, e2, f2, g2, h2, i3, j2, k2, l2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; i3 = i3 | 0; j2 = j2 | 0; k2 = k2 | 0; l2 = l2 | 0; return Pb[a2 & 3](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0, g2 | 0, h2 | 0, i3 | 0, j2 | 0, k2 | 0, l2 | 0) | 0; } function Pw(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; return Qb[a2 & 63](b2 | 0, c2 | 0, d2 | 0) | 0; } function Qw(a2, b2, c2, d2, e2, f2, g2, h2, i3, j2, k2, l2, m2, n2, o2, p2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; i3 = i3 | 0; j2 = j2 | 0; k2 = k2 | 0; l2 = l2 | 0; m2 = m2 | 0; n2 = n2 | 0; o2 = o2 | 0; p2 = p2 | 0; Rb[a2 & 3](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0, g2 | 0, h2 | 0, i3 | 0, j2 | 0, k2 | 0, l2 | 0, m2 | 0, n2 | 0, o2 | 0, p2 | 0); } function Rw(a2, b2, c2, d2, e2, f2, g2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; Sb[a2 & 15](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0, g2 | 0); } function Sw(a2, b2, c2, d2, e2, f2, g2, h2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; Tb[a2 & 7](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0, g2 | 0, h2 | 0); } function Tw(a2, b2, c2, d2, e2, f2, g2, h2, i3, j2, k2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; i3 = i3 | 0; j2 = j2 | 0; k2 = k2 | 0; Ub[a2 & 7](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0, g2 | 0, h2 | 0, i3 | 0, j2 | 0, k2 | 0); } function Uw(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; return Vb[a2 & 63](b2 | 0, c2 | 0) | 0; } function Vw(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; return Wb[a2 & 31](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0) | 0; } function Ww(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; return +Xb[a2 & 3](b2 | 0, c2 | 0, d2 | 0); } function Xw(a2) { a2 = a2 | 0; return Yb[a2 & 15]() | 0; } function Yw(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; return Zb[a2 & 31](b2 | 0, c2 | 0, d2 | 0, e2 | 0) | 0; } function Zw(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; _b[a2 & 15](b2 | 0, c2 | 0, d2 | 0); } function _w(a2) { a2 = a2 | 0; $b[a2 & 7](); } function $w(a2, b2, c2, d2, e2, f2, g2, h2, i3) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; i3 = i3 | 0; return ac[a2 & 15](b2 | 0, c2 | 0, d2 | 0, e2 | 0, f2 | 0, g2 | 0, h2 | 0, i3 | 0) | 0; } function ax(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = +f2; return bc[a2 & 7](b2 | 0, c2 | 0, d2 | 0, e2 | 0, +f2) | 0; } function bx(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; cc[a2 & 63](b2 | 0, c2 | 0, d2 | 0, e2 | 0); } function cx(a2, b2, c2, d2, e2, f2, g2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; la(0); return 0; } function dx(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; la(1); } function ex(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = +f2; la(2); return 0; } function fx(a2) { a2 = a2 | 0; la(3); } function gx(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; la(4); } function hx(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; la(5); return 0; } function ix(a2) { a2 = a2 | 0; la(6); return 0; } function jx(a2) { a2 = a2 | 0; return lb(a2 | 0) | 0; } function kx(a2) { a2 = a2 | 0; return Ab(a2 | 0) | 0; } function lx(a2) { a2 = a2 | 0; return qb(a2 | 0) | 0; } function mx(a2, b2, c2, d2, e2, f2, g2, h2, i3, j2, k2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; i3 = i3 | 0; j2 = j2 | 0; k2 = k2 | 0; la(7); return 0; } function nx(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; la(8); return 0; } function ox(a2, b2, c2, d2, e2, f2, g2, h2, i3, j2, k2, l2, m2, n2, o2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; i3 = i3 | 0; j2 = j2 | 0; k2 = k2 | 0; l2 = l2 | 0; m2 = m2 | 0; n2 = n2 | 0; o2 = o2 | 0; la(9); } function px(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; la(10); } function qx(a2, b2, c2, d2, e2, f2, g2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; la(11); } function rx(a2, b2, c2, d2, e2, f2, g2, h2, i3, j2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; i3 = i3 | 0; j2 = j2 | 0; la(12); } function sx(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; la(13); return 0; } function tx(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; la(14); return 0; } function ux(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; la(15); return 0; } function vx() { la(16); return 0; } function wx(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; la(17); return 0; } function xx(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; la(18); } function yx(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; ub(a2 | 0, b2 | 0, c2 | 0); } function zx() { la(19); } function Ax() { yb(); } function Bx() { eb(); } function Cx() { vb(); } function Dx(a2, b2, c2, d2, e2, f2, g2, h2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; la(20); return 0; } function Ex(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = +e2; la(21); return 0; } function Fx(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; la(22); } function ni(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; l2 = r; r = r + 32 | 0; h2 = l2; Oi(h2, 255, 0); j2 = a2 + 152 | 0; if (((k[h2 + 4 >> 2] | 0) == (k[j2 >> 2] | 0) ? (k[h2 + 8 >> 2] | 0) == (k[a2 + 156 >> 2] | 0) : 0) ? (k[h2 + 12 >> 2] | 0) == (k[a2 + 160 >> 2] | 0) : 0) { j2 = k[8900] | 0; k[a2 + 4580 >> 2] = j2 + (((k[8901] | 0) - j2 | 0) >>> 1); r = l2; return; } c2 = a2 + 4584 | 0; d2 = a2 + 4588 | 0; e2 = k[d2 >> 2] | 0; b2 = k[c2 >> 2] | 0; f2 = e2 - b2 | 0; if (f2 >>> 0 >= 512) { if (f2 >>> 0 > 512 ? (g2 = b2 + 512 | 0, (e2 | 0) != (g2 | 0)) : 0) k[d2 >> 2] = g2; } else { se(c2, 512 - f2 | 0); b2 = k[c2 >> 2] | 0; } h2 = a2 + 4580 | 0; k[h2 >> 2] = b2 + 256; g2 = a2 + 160 | 0; e2 = a2 + 156 | 0; f2 = -256; while (1) { b2 = k[g2 >> 2] | 0; if ((f2 | 0) > (0 - b2 | 0)) { c2 = k[e2 >> 2] | 0; if ((f2 | 0) > (0 - c2 | 0)) { d2 = k[j2 >> 2] | 0; if ((f2 | 0) > (0 - d2 | 0)) if ((f2 | 0) >= 0) { if ((f2 | 0) < 1) { i2[(k[h2 >> 2] | 0) + f2 >> 0] = 0; f2 = 1; continue; } if ((d2 | 0) <= (f2 | 0)) if ((c2 | 0) > (f2 | 0)) b2 = 2; else b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; else b2 = 1; } else b2 = -1; else b2 = -2; } else b2 = -3; } else b2 = -4; i2[(k[h2 >> 2] | 0) + f2 >> 0] = b2; f2 = f2 + 1 | 0; if ((f2 | 0) == 256) break; } r = l2; return; } function oi(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 35660; b2 = k[a2 + 4608 >> 2] | 0; if (b2) { c2 = a2 + 4612 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36736; b2 = k[a2 + 92 >> 2] | 0; if (b2) { c2 = a2 + 96 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } a2 = a2 + 88 | 0; b2 = k[a2 >> 2] | 0; k[a2 >> 2] = 0; if (!b2) return; Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); return; } function pi(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 35660; b2 = k[a2 + 4608 >> 2] | 0; if (b2) { c2 = a2 + 4612 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } k[a2 >> 2] = 36736; b2 = k[a2 + 92 >> 2] | 0; if (b2) { c2 = a2 + 96 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); } c2 = a2 + 88 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = 0; if (!b2) { mj(a2); return; } Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); mj(a2); return; } function qi(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, y2 = 0, z2 = 0; u2 = r; r = r + 352 | 0; v2 = u2 + 328 | 0; y2 = u2 + 192 | 0; c2 = u2 + 343 | 0; d2 = u2 + 342 | 0; e2 = u2 + 341 | 0; f2 = u2 + 340 | 0; o2 = u2 + 176 | 0; h2 = u2 + 168 | 0; j2 = u2 + 160 | 0; l2 = u2 + 152 | 0; t2 = u2; q2 = u2 + 136 | 0; if ((k[a2 + 28 >> 2] | 0) != 0 ? (k[a2 + 20 >> 2] | 0) != 1 : 0) { p2 = a2 + 4 | 0; s2 = a2 + 32 | 0; g2 = k[s2 >> 2] | 0; if (!g2) { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[c2 >> 0] | 0; Ja(44, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } a2 = k[a2 + 12 >> 2] | 0; if ((a2 | 0) == 8) switch (g2 | 0) { case 1: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[d2 >> 0] | 0; Ja(45, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[e2 >> 0] | 0; Ja(46, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(48) | 0; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[v2 >> 0] = i2[f2 >> 0] | 0; Ja(47, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = y2 + 56 | 0; e2 = y2 + 4 | 0; k[y2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, y2 + 56 | 0, e2 | 0); u2 = x; x = 0; if (u2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[y2 + 128 >> 2] = 0; k[y2 + 132 >> 2] = -1; k[y2 >> 2] = 36200; k[y2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); u2 = x; x = 0; do if (u2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = y2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[y2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); u2 = x; x = 0; if (u2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, y2 | 0, 49007, 21) | 0; v2 = x; x = 0; do if ((!(v2 & 1) ? (x = 0, m2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) ? (x = 0, va(28, m2 | 0, 50997, 18) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, o2 | 0, e2 | 0); v2 = x; x = 0; if (!(v2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, o2 | 0); v2 = x; x = 0; if (v2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(o2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 34; while (0); if ((z2 | 0) == 34) a2 = Wa() | 0; k[y2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } if ((a2 | 0) <= 8) { a2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, a2 | 0, 8, 35648); z2 = x; x = 0; if (!(z2 & 1)) ub(a2 | 0, 824, 96); z2 = Wa() | 0; Ua(a2 | 0); fb(z2 | 0); } c2 = 16 - a2 | 0; switch (g2 | 0) { case 1: { a2 = lj(60) | 0; k[h2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[h2 >> 2]; k[v2 + 4 >> 2] = k[h2 + 4 >> 2]; Ja(41, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 2: { a2 = lj(60) | 0; k[j2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[j2 >> 2]; k[v2 + 4 >> 2] = k[j2 + 4 >> 2]; Ja(42, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } case 3: { a2 = lj(60) | 0; k[l2 >> 2] = c2; x = 0; k[y2 >> 2] = k[b2 >> 2]; k[y2 + 4 >> 2] = k[b2 + 4 >> 2]; k[y2 + 8 >> 2] = k[b2 + 8 >> 2]; k[v2 >> 2] = k[l2 >> 2]; k[v2 + 4 >> 2] = k[l2 + 4 >> 2]; Ja(43, a2 | 0, y2 | 0, p2 | 0, v2 | 0); z2 = x; x = 0; if (!(z2 & 1)) { z2 = a2; r = u2; return z2 | 0; } z2 = Wa() | 0; mj(a2); fb(z2 | 0); } default: { g2 = t2 + 56 | 0; e2 = t2 + 4 | 0; k[t2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, t2 + 56 | 0, e2 | 0); y2 = x; x = 0; if (y2 & 1) { z2 = Wa() | 0; qn(g2); fb(z2 | 0); } k[t2 + 128 >> 2] = 0; k[t2 + 132 >> 2] = -1; k[t2 >> 2] = 36200; k[t2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); y2 = x; x = 0; do if (y2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = t2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[t2 + 52 >> 2] = 16; k[v2 >> 2] = 0; k[v2 + 4 >> 2] = 0; k[v2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, v2 | 0); y2 = x; x = 0; if (y2 & 1) { a2 = Wa() | 0; Sm(v2); Sm(f2); xn(e2); break; } Sm(v2); x = 0; a2 = va(28, t2 | 0, 49007, 21) | 0; y2 = x; x = 0; do if ((!(y2 & 1) ? (x = 0, n2 = Aa(36, a2 | 0, k[s2 >> 2] | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) ? (x = 0, va(28, n2 | 0, 50997, 18) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, q2 | 0, e2 | 0); y2 = x; x = 0; if (!(y2 & 1)) { if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Ja(36, d2 | 0, 9, 35648, q2 | 0); y2 = x; x = 0; if (y2 & 1) c2 = 1; else { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } a2 = Wa() | 0; Sm(q2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else z2 = 64; while (0); if ((z2 | 0) == 64) a2 = Wa() | 0; k[t2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); z2 = a2; fb(z2 | 0); } while (0); z2 = a2; qn(g2); fb(z2 | 0); } } } c2 = k[b2 + 4 >> 2] | 0; d2 = lj(16) | 0; a2 = k[a2 + 16 >> 2] | 0; if (!c2) { z2 = k[b2 >> 2] | 0; k[d2 >> 2] = 36132; k[d2 + 4 >> 2] = z2; k[d2 + 8 >> 2] = 1; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } else { k[d2 >> 2] = 36108; k[d2 + 4 >> 2] = c2; k[d2 + 8 >> 2] = 1; k[d2 + 12 >> 2] = a2; z2 = d2; r = u2; return z2 | 0; } return 0; } function ri(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0; g2 = r; r = r + 32 | 0; l2 = g2; Oi(l2, k[a2 + 128 >> 2] | 0, k[a2 + 136 >> 2] | 0); h2 = k[b2 + 4 >> 2] | 0; f2 = k[b2 + 8 >> 2] | 0; f2 = (f2 | 0) == 0 ? k[l2 + 8 >> 2] | 0 : f2; e2 = k[b2 + 12 >> 2] | 0; e2 = (e2 | 0) == 0 ? k[l2 + 12 >> 2] | 0 : e2; c2 = k[b2 + 16 >> 2] | 0; d2 = k[l2 + 16 >> 2] | 0; k[a2 + 176 >> 2] = (h2 | 0) == 0 ? k[l2 + 4 >> 2] | 0 : h2; k[a2 + 180 >> 2] = f2; k[a2 + 184 >> 2] = e2; zi(a2); e2 = a2 + 132 | 0; b2 = (k[e2 >> 2] | 0) + 32 | 0; b2 = (b2 | 0) < 128 ? 2 : (b2 | 0) / 64 | 0; f2 = 0; do { k[a2 + 188 + (f2 * 12 | 0) >> 2] = b2; k[a2 + 188 + (f2 * 12 | 0) + 4 >> 2] = 0; j[a2 + 188 + (f2 * 12 | 0) + 8 >> 1] = 0; j[a2 + 188 + (f2 * 12 | 0) + 10 >> 1] = 1; f2 = f2 + 1 | 0; } while ((f2 | 0) != 365); h2 = (k[e2 >> 2] | 0) + 32 | 0; h2 = (h2 | 0) < 128 ? 2 : (h2 | 0) / 64 | 0; l2 = ((c2 | 0) == 0 ? d2 : c2) & 255; k[a2 + 4568 >> 2] = h2; k[a2 + 4572 >> 2] = 0; i2[a2 + 4576 >> 0] = l2; i2[a2 + 4577 >> 0] = 1; i2[a2 + 4578 >> 0] = 0; k[a2 + 4580 >> 2] = h2; k[a2 + 4584 >> 2] = 1; i2[a2 + 4588 >> 0] = l2; i2[a2 + 4589 >> 0] = 1; i2[a2 + 4590 >> 0] = 0; k[a2 + 4592 >> 2] = 0; r = g2; return; } function si(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0; g2 = a2 + 88 | 0; f2 = k[b2 >> 2] | 0; k[b2 >> 2] = 0; b2 = k[g2 >> 2] | 0; k[g2 >> 2] = f2; if (b2) Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); g2 = d2 + 4 | 0; f2 = k[g2 >> 2] | 0; i2[a2 + 4620 >> 0] = e2 & 1; b2 = a2 + 156 | 0; k[b2 >> 2] = k[c2 >> 2]; k[b2 + 4 >> 2] = k[c2 + 4 >> 2]; k[b2 + 8 >> 2] = k[c2 + 8 >> 2]; k[b2 + 12 >> 2] = k[c2 + 12 >> 2]; ee(a2, d2); ti(a2); b2 = k[a2 + 116 >> 2] | 0; a2 = k[a2 + 112 >> 2] | 0; while (1) { e2 = b2 + -1 | 0; c2 = (i2[e2 >> 0] | 0) == -1 ? 7 : 8; if ((a2 | 0) < (c2 | 0)) break; else { b2 = e2; a2 = a2 - c2 | 0; } } b2 = b2 - f2 | 0; e2 = k[g2 >> 2] | 0; if (!e2) return; k[g2 >> 2] = e2 + b2; d2 = d2 + 8 | 0; k[d2 >> 2] = (k[d2 >> 2] | 0) - b2; return; } function ti(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; A2 = r; r = r + 32 | 0; C2 = A2 + 12 | 0; z2 = A2; h2 = a2 + 172 | 0; y2 = (k[h2 >> 2] | 0) + 4 | 0; if ((k[a2 + 28 >> 2] | 0) == 1) j2 = k[a2 + 20 >> 2] | 0; else j2 = 1; b2 = ia(j2 << 1, y2) | 0; k[C2 >> 2] = 0; D2 = C2 + 4 | 0; k[D2 >> 2] = 0; k[C2 + 8 >> 2] = 0; a: do if (b2) { if (!((b2 | 0) < 0 ? (x = 0, qa(178, C2 | 0), B2 = x, x = 0, B2 & 1) : 0)) w2 = 6; if ((w2 | 0) == 6 ? (x = 0, c2 = ta(67, b2 | 0) | 0, B2 = x, x = 0, !(B2 & 1)) : 0) { k[D2 >> 2] = c2; k[C2 >> 2] = c2; k[C2 + 8 >> 2] = c2 + b2; while (1) { i2[c2 >> 0] = 0; c2 = (k[D2 >> 2] | 0) + 1 | 0; k[D2 >> 2] = c2; b2 = b2 + -1 | 0; if (!b2) break a; } } c2 = Wa() | 0; b2 = k[C2 >> 2] | 0; if (!b2) fb(c2 | 0); if ((k[D2 >> 2] | 0) != (b2 | 0)) k[D2 >> 2] = b2; mj(b2); fb(c2 | 0); } while (0); k[z2 >> 2] = 0; B2 = z2 + 4 | 0; k[B2 >> 2] = 0; k[z2 + 8 >> 2] = 0; do if (!j2) w2 = 19; else { if (!(j2 >>> 0 > 1073741823 ? (x = 0, qa(178, z2 | 0), v2 = x, x = 0, v2 & 1) : 0)) w2 = 17; if ((w2 | 0) == 17 ? (d2 = j2 << 2, x = 0, e2 = ta(67, d2 | 0) | 0, v2 = x, x = 0, !(v2 & 1)) : 0) { k[z2 >> 2] = e2; w2 = e2 + (j2 << 2) | 0; k[z2 + 8 >> 2] = w2; sw(e2 | 0, 0, d2 | 0) | 0; k[B2 >> 2] = w2; w2 = 19; break; } c2 = Wa() | 0; b2 = k[z2 >> 2] | 0; d2 = b2; if (b2) { e2 = k[B2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[B2 >> 2] = e2 + (~((e2 + -4 - d2 | 0) >>> 2) << 2); mj(b2); } } while (0); if ((w2 | 0) == 19) { l2 = a2 + 8 | 0; b2 = k[l2 >> 2] | 0; b: do if ((b2 | 0) > 0) { m2 = a2 + 4596 | 0; n2 = ia(j2, y2) | 0; o2 = n2 + 1 | 0; p2 = a2 + 4600 | 0; q2 = a2 + 160 | 0; s2 = a2 + 168 | 0; t2 = a2 + 164 | 0; u2 = a2 + 156 | 0; v2 = a2 + 88 | 0; g2 = a2 + 4592 | 0; if ((j2 | 0) > 0) f2 = 0; else { f2 = 0; while (1) { e2 = k[C2 >> 2] | 0; c2 = e2 + 1 | 0; k[m2 >> 2] = c2; d2 = e2 + o2 | 0; k[p2 >> 2] = d2; if (!(f2 & 1)) c2 = o2; else { k[m2 >> 2] = d2; k[p2 >> 2] = c2; c2 = 1; } j2 = k[q2 >> 2] | 0; if ((j2 | 0) <= (f2 | 0) ? (f2 | 0) < ((k[s2 >> 2] | 0) + j2 | 0) : 0) { j2 = k[v2 >> 2] | 0; x = 0; Ja(k[(k[j2 >> 2] | 0) + 8 >> 2] | 0, j2 | 0, e2 + (c2 + ((k[u2 >> 2] | 0) - n2)) | 0, k[t2 >> 2] | 0, y2 | 0); j2 = x; x = 0; if (j2 & 1) break; b2 = k[l2 >> 2] | 0; } f2 = f2 + 1 | 0; if ((f2 | 0) >= (b2 | 0)) { w2 = 50; break b; } } c2 = Wa() | 0; break; } c: while (1) { c2 = k[C2 >> 2] | 0; b2 = c2 + 1 | 0; k[m2 >> 2] = b2; c2 = c2 + o2 | 0; k[p2 >> 2] = c2; if (f2 & 1) { k[m2 >> 2] = c2; k[p2 >> 2] = b2; b2 = c2; } e2 = k[z2 >> 2] | 0; c2 = b2; d2 = 0; do { k[g2 >> 2] = k[e2 + (d2 << 2) >> 2]; w2 = k[h2 >> 2] | 0; i2[c2 + w2 >> 0] = i2[c2 + (w2 + -1) >> 0] | 0; i2[(k[p2 >> 2] | 0) + -1 >> 0] = i2[k[m2 >> 2] >> 0] | 0; x = 0; ra(83, a2 | 0, 0); w2 = x; x = 0; if (w2 & 1) { w2 = 38; break c; } e2 = k[z2 >> 2] | 0; k[e2 + (d2 << 2) >> 2] = k[g2 >> 2]; c2 = (k[m2 >> 2] | 0) + y2 | 0; k[m2 >> 2] = c2; b2 = k[p2 >> 2] | 0; k[p2 >> 2] = b2 + y2; d2 = d2 + 1 | 0; } while ((d2 | 0) < (j2 | 0)); w2 = k[q2 >> 2] | 0; if (((w2 | 0) <= (f2 | 0) ? (f2 | 0) < ((k[s2 >> 2] | 0) + w2 | 0) : 0) ? (w2 = k[v2 >> 2] | 0, x = 0, Ja(k[(k[w2 >> 2] | 0) + 8 >> 2] | 0, w2 | 0, b2 + (y2 + ((k[u2 >> 2] | 0) - n2)) | 0, k[t2 >> 2] | 0, y2 | 0), w2 = x, x = 0, w2 & 1) : 0) { w2 = 30; break; } f2 = f2 + 1 | 0; if ((f2 | 0) >= (k[l2 >> 2] | 0)) { w2 = 50; break b; } } if ((w2 | 0) == 30) { c2 = Wa() | 0; break; } else if ((w2 | 0) == 38) { c2 = Wa() | 0; break; } } else w2 = 50; while (0); do if ((w2 | 0) == 50) { x = 0; qa(183, a2 | 0); a2 = x; x = 0; if (a2 & 1) { c2 = Wa() | 0; break; } b2 = k[z2 >> 2] | 0; c2 = b2; if (b2) { d2 = k[B2 >> 2] | 0; if ((d2 | 0) != (b2 | 0)) k[B2 >> 2] = d2 + (~((d2 + -4 - c2 | 0) >>> 2) << 2); mj(b2); } b2 = k[C2 >> 2] | 0; if (!b2) { r = A2; return; } if ((k[D2 >> 2] | 0) != (b2 | 0)) k[D2 >> 2] = b2; mj(b2); r = A2; return; } while (0); b2 = k[z2 >> 2] | 0; d2 = b2; if (b2) { e2 = k[B2 >> 2] | 0; if ((e2 | 0) != (b2 | 0)) k[B2 >> 2] = e2 + (~((e2 + -4 - d2 | 0) >>> 2) << 2); mj(b2); } } b2 = k[C2 >> 2] | 0; if (!b2) fb(c2 | 0); if ((k[D2 >> 2] | 0) != (b2 | 0)) k[D2 >> 2] = b2; mj(b2); fb(c2 | 0); } function ui(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0; p2 = a2 + 4596 | 0; c2 = k[p2 >> 2] | 0; t2 = a2 + 172 | 0; b2 = k[t2 >> 2] | 0; if ((b2 | 0) <= 0) return; q2 = a2 + 4600 | 0; r2 = a2 + 4604 | 0; s2 = a2 + 4592 | 0; h2 = c2; f2 = l[c2 + -1 >> 0] | 0; c2 = l[c2 >> 0] | 0; o2 = 0; while (1) { m2 = k[q2 >> 2] | 0; g2 = i2[m2 + (o2 + -1) >> 0] | 0; n2 = g2 & 255; e2 = o2 + 1 | 0; d2 = l[h2 + e2 >> 0] | 0; j2 = k[r2 >> 2] | 0; h2 = c2 - f2 | 0; f2 = f2 - n2 | 0; j2 = ((((i2[j2 + (d2 - c2) >> 0] | 0) * 9 | 0) + (i2[j2 + h2 >> 0] | 0) | 0) * 9 | 0) + (i2[j2 + f2 >> 0] | 0) | 0; m2 = m2 + o2 | 0; if (!j2) { b2 = wi(a2, g2, m2, b2 - o2 | 0) | 0; c2 = b2 + o2 | 0; if ((c2 | 0) != (k[t2 >> 2] | 0)) { n2 = xi(a2, n2, l[(k[p2 >> 2] | 0) + c2 >> 0] | 0) | 0; i2[(k[q2 >> 2] | 0) + c2 >> 0] = n2; n2 = k[s2 >> 2] | 0; k[s2 >> 2] = (n2 | 0) < 1 ? 0 : n2 + -1 | 0; b2 = b2 + 1 | 0; } e2 = b2 + o2 | 0; d2 = k[p2 >> 2] | 0; c2 = l[d2 + (e2 + -1) >> 0] | 0; d2 = l[d2 + e2 >> 0] | 0; } else { b2 = c2 - n2 >> 31; if ((b2 ^ f2 | 0) < 0) b2 = c2; else b2 = n2 + ((b2 ^ h2 | 0) < 0 ? 0 : h2) | 0; n2 = vi(a2, j2, l[m2 >> 0] | 0, b2, 0) | 0; i2[(k[q2 >> 2] | 0) + o2 >> 0] = n2; } b2 = k[t2 >> 2] | 0; if ((b2 | 0) <= (e2 | 0)) break; h2 = k[p2 >> 2] | 0; f2 = c2; c2 = d2; o2 = e2; } return; } function vi(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; r2 = b2 >> 31; l2 = (r2 ^ b2) - r2 | 0; p2 = a2 + 188 + (l2 * 12 | 0) + 10 | 0; c2 = j[p2 >> 1] | 0; o2 = a2 + 188 + (l2 * 12 | 0) | 0; e2 = k[o2 >> 2] | 0; if ((c2 | 0) < (e2 | 0)) if ((c2 << 1 | 0) < (e2 | 0)) if ((c2 << 2 | 0) < (e2 | 0)) if ((c2 << 3 | 0) < (e2 | 0)) if ((c2 << 4 | 0) < (e2 | 0)) { b2 = 5; while (1) if ((c2 << b2 | 0) < (e2 | 0)) b2 = b2 + 1 | 0; else break; } else b2 = 4; else b2 = 3; else b2 = 2; else b2 = 1; else b2 = 0; n2 = a2 + 188 + (l2 * 12 | 0) + 8 | 0; c2 = (j[n2 >> 1] ^ r2) - r2 + d2 | 0; q2 = a2 + 128 | 0; e2 = k[q2 >> 2] | 0; if ((c2 & e2 | 0) == (c2 | 0)) m2 = c2; else m2 = e2 & ~(c2 >> 31); c2 = a2 + 112 | 0; if ((k[c2 >> 2] | 0) < 8) qe(a2); e2 = a2 + 108 | 0; d2 = k[e2 >> 2] | 0; f2 = d2 >>> 24; g2 = k[2832 + (b2 << 11) + (f2 << 3) + 4 >> 2] | 0; if (!g2) { h2 = k[a2 + 148 >> 2] | 0; e2 = k[a2 + 140 >> 2] | 0; c2 = Tg(a2) | 0; if ((c2 | 0) < (h2 + -1 - e2 | 0)) { if (b2) c2 = (Ug(a2, b2) | 0) + (c2 << b2) | 0; } else c2 = (Ug(a2, e2) | 0) + 1 | 0; c2 = c2 << 31 >> 31 ^ c2 >> 1; if ((((c2 | 0) > -1 ? c2 : 0 - c2 | 0) | 0) > 65535) { c2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, c2 | 0, 5, 35648); a2 = x; x = 0; if (a2 & 1) { a2 = Wa() | 0; Ua(c2 | 0); fb(a2 | 0); } else ub(c2 | 0, 824, 96); } } else { k[c2 >> 2] = (k[c2 >> 2] | 0) - g2; k[e2 >> 2] = d2 << g2; c2 = k[2832 + (b2 << 11) + (f2 << 3) >> 2] | 0; } h2 = a2 + 136 | 0; d2 = k[h2 >> 2] | 0; if (!b2) { if (!d2) e2 = (k[a2 + 188 + (l2 * 12 | 0) + 4 >> 2] << 1) + -1 + (j[p2 >> 1] | 0) >> 31; else e2 = 0; g2 = e2 ^ c2; } else g2 = c2; b2 = k[a2 + 152 >> 2] | 0; e2 = (k[o2 >> 2] | 0) + ((g2 | 0) > -1 ? g2 : 0 - g2 | 0) | 0; f2 = a2 + 188 + (l2 * 12 | 0) + 4 | 0; c2 = (k[f2 >> 2] | 0) + (ia(d2 << 1 | 1, g2) | 0) | 0; d2 = j[p2 >> 1] | 0; if ((d2 | 0) == (b2 | 0)) { e2 = e2 >> 1; c2 = c2 >> 1; d2 = b2 >> 1; } k[o2 >> 2] = e2; b2 = d2 + 1 | 0; j[p2 >> 1] = b2; e2 = b2 + c2 | 0; if ((e2 | 0) >= 1) { if ((c2 | 0) > 0) { c2 = c2 - b2 | 0; p2 = j[n2 >> 1] | 0; j[n2 >> 1] = (p2 << 16 >> 16 < 127 & 1) + (p2 & 65535); c2 = (c2 | 0) > 0 ? 0 : c2; } } else { c2 = j[n2 >> 1] | 0; j[n2 >> 1] = (c2 & 65535) - (c2 << 16 >> 16 > -128 & 1); c2 = (e2 | 0) > (~d2 | 0) ? e2 : 0 - d2 | 0; } k[f2 >> 2] = c2; b2 = k[h2 >> 2] | 0; d2 = b2 << 1 | 1; e2 = (ia(d2, (g2 ^ r2) - r2 | 0) | 0) + m2 | 0; if ((e2 | 0) >= (0 - b2 | 0)) { c2 = k[q2 >> 2] | 0; if ((c2 + b2 | 0) < (e2 | 0)) e2 = e2 - (ia(k[a2 + 132 >> 2] | 0, d2) | 0) | 0; } else { e2 = (ia(k[a2 + 132 >> 2] | 0, d2) | 0) + e2 | 0; c2 = k[q2 >> 2] | 0; } if ((e2 & c2 | 0) == (e2 | 0)) { a2 = e2; a2 = a2 & 255; return a2 | 0; } a2 = c2 & ~(e2 >> 31); a2 = a2 & 255; return a2 | 0; } function wi(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; h2 = a2 + 112 | 0; j2 = a2 + 108 | 0; l2 = a2 + 4592 | 0; e2 = k[h2 >> 2] | 0; f2 = 0; while (1) { if ((e2 | 0) < 1) { qe(a2); e2 = k[h2 >> 2] | 0; } g2 = k[j2 >> 2] | 0; e2 = e2 + -1 | 0; k[h2 >> 2] = e2; k[j2 >> 2] = g2 << 1; if ((g2 | 0) >= 0) { m2 = 8; break; } g2 = k[l2 >> 2] | 0; n2 = 1 << k[36476 + (g2 << 2) >> 2]; o2 = d2 - f2 | 0; o2 = (n2 | 0) < (o2 | 0) ? n2 : o2; f2 = o2 + f2 | 0; if ((o2 | 0) == (n2 | 0)) k[l2 >> 2] = (g2 | 0) > 30 ? 31 : g2 + 1 | 0; if ((f2 | 0) == (d2 | 0)) { e2 = d2; break; } } if ((m2 | 0) == 8) if ((f2 | 0) != (d2 | 0)) { e2 = k[l2 >> 2] | 0; if ((e2 + -4 | 0) >>> 0 < 28) e2 = Ug(a2, k[36476 + (e2 << 2) >> 2] | 0) | 0; else e2 = 0; e2 = e2 + f2 | 0; if ((e2 | 0) > (d2 | 0)) { e2 = Va(16) | 0; if ((i2[8] | 0) == 0 ? (Qa(8) | 0) != 0 : 0) { tb(72, 35648, w | 0) | 0; Ya(8); } x = 0; Fa(7, e2 | 0, 5, 35648); o2 = x; x = 0; if (o2 & 1) { o2 = Wa() | 0; Ua(e2 | 0); fb(o2 | 0); } else ub(e2 | 0, 824, 96); } } else e2 = d2; if ((e2 | 0) <= 0) return e2 | 0; sw(c2 | 0, b2 | 0, e2 | 0) | 0; return e2 | 0; } function xi(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0; f2 = b2 - c2 | 0; g2 = a2 + 128 | 0; d2 = a2 + 136 | 0; if ((((f2 | 0) > -1 ? f2 : 0 - f2 | 0) | 0) > (k[d2 >> 2] | 0)) { b2 = ia(yi(a2, a2 + 4568 | 0) | 0, c2 - b2 >> 31 | 1) | 0; e2 = k[d2 >> 2] | 0; f2 = e2 << 1 | 1; b2 = (ia(b2, f2) | 0) + c2 | 0; if ((b2 | 0) >= (0 - e2 | 0)) { d2 = k[g2 >> 2] | 0; if ((d2 + e2 | 0) < (b2 | 0)) b2 = b2 - (ia(k[a2 + 132 >> 2] | 0, f2) | 0) | 0; } else { b2 = (ia(k[a2 + 132 >> 2] | 0, f2) | 0) + b2 | 0; d2 = k[g2 >> 2] | 0; } if ((b2 & d2 | 0) == (b2 | 0)) { a2 = b2; a2 = a2 & 255; return a2 | 0; } a2 = d2 & ~(b2 >> 31); a2 = a2 & 255; return a2 | 0; } else { c2 = yi(a2, a2 + 4580 | 0) | 0; f2 = k[d2 >> 2] | 0; e2 = f2 << 1 | 1; b2 = (ia(e2, c2) | 0) + b2 | 0; if ((b2 | 0) >= (0 - f2 | 0)) { d2 = k[g2 >> 2] | 0; if ((d2 + f2 | 0) < (b2 | 0)) b2 = b2 - (ia(k[a2 + 132 >> 2] | 0, e2) | 0) | 0; } else { b2 = (ia(k[a2 + 132 >> 2] | 0, e2) | 0) + b2 | 0; d2 = k[g2 >> 2] | 0; } if ((b2 & d2 | 0) == (b2 | 0)) { a2 = b2; a2 = a2 & 255; return a2 | 0; } a2 = d2 & ~(b2 >> 31); a2 = a2 & 255; return a2 | 0; } return 0; } function yi(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0; m2 = b2 + 9 | 0; c2 = l[m2 >> 0] | 0; f2 = b2 + 4 | 0; e2 = (ia(c2 >>> 1, k[f2 >> 2] | 0) | 0) + (k[b2 >> 2] | 0) | 0; if ((c2 | 0) < (e2 | 0)) { d2 = 0; do { c2 = c2 << 1; d2 = d2 + 1 | 0; } while ((c2 | 0) < (e2 | 0)); } else d2 = 0; g2 = k[a2 + 148 >> 2] | 0; h2 = k[36476 + (k[a2 + 4592 >> 2] << 2) >> 2] | 0; c2 = k[a2 + 140 >> 2] | 0; e2 = Tg(a2) | 0; do if ((e2 | 0) < (g2 + -2 - h2 - c2 | 0)) if (!d2) { d2 = k[f2 >> 2] | 0; a2 = d2 + e2 | 0; c2 = a2 & 1; a2 = (c2 + a2 | 0) / 2 | 0; j2 = 8; break; } else { h2 = (Ug(a2, d2) | 0) + (e2 << d2) | 0; d2 = k[f2 >> 2] | 0; e2 = h2 + d2 | 0; g2 = e2 & 1; c2 = g2; f2 = 1; e2 = (g2 + e2 | 0) / 2 | 0; break; } else { e2 = (Ug(a2, c2) | 0) + 1 | 0; g2 = k[f2 >> 2] | 0; a2 = e2 + g2 | 0; c2 = a2 & 1; a2 = (c2 + a2 | 0) / 2 | 0; if (!d2) { d2 = g2; j2 = 8; } else { h2 = e2; f2 = 1; e2 = a2; d2 = g2; } } while (0); if ((j2 | 0) == 8) { h2 = e2; f2 = l[b2 + 10 >> 0] << 1 >>> 0 >= (l[m2 >> 0] | 0) >>> 0; e2 = a2; } e2 = (c2 | 0) != 0 ^ f2 ? e2 : 0 - e2 | 0; if ((e2 | 0) < 0) { j2 = b2 + 10 | 0; i2[j2 >> 0] = (l[j2 >> 0] | 0) + 1; } c2 = (h2 + 1 - d2 >> 1) + (k[b2 >> 2] | 0) | 0; k[b2 >> 2] = c2; d2 = i2[m2 >> 0] | 0; if (d2 << 24 >> 24 != (i2[b2 + 8 >> 0] | 0)) { b2 = d2; b2 = b2 & 255; b2 = b2 + 1 | 0; b2 = b2 & 255; i2[m2 >> 0] = b2; return e2 | 0; } k[b2 >> 2] = c2 >> 1; j2 = (d2 & 255) >>> 1; i2[m2 >> 0] = j2; b2 = b2 + 10 | 0; i2[b2 >> 0] = (l[b2 >> 0] | 0) >>> 1; b2 = j2; b2 = b2 & 255; b2 = b2 + 1 | 0; b2 = b2 & 255; i2[m2 >> 0] = b2; return e2 | 0; } function zi(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; o2 = r; r = r + 32 | 0; d2 = o2; n2 = a2 + 136 | 0; a: do if (!(k[n2 >> 2] | 0)) { c2 = k[a2 + 128 >> 2] | 0; b2 = a2 + 144 | 0; if ((((c2 | 0) == ((1 << k[b2 >> 2]) + -1 | 0) ? (Oi(d2, c2, 0), (k[d2 + 4 >> 2] | 0) == (k[a2 + 176 >> 2] | 0)) : 0) ? (k[d2 + 8 >> 2] | 0) == (k[a2 + 180 >> 2] | 0) : 0) ? (k[d2 + 12 >> 2] | 0) == (k[a2 + 184 >> 2] | 0) : 0) switch (k[b2 >> 2] | 0) { case 8: { n2 = k[8900] | 0; k[a2 + 4604 >> 2] = n2 + (((k[8901] | 0) - n2 | 0) >>> 1); r = o2; return; } case 10: { n2 = k[8903] | 0; k[a2 + 4604 >> 2] = n2 + (((k[8904] | 0) - n2 | 0) >>> 1); r = o2; return; } case 12: { n2 = k[8906] | 0; k[a2 + 4604 >> 2] = n2 + (((k[8907] | 0) - n2 | 0) >>> 1); r = o2; return; } case 16: { n2 = k[8909] | 0; k[a2 + 4604 >> 2] = n2 + (((k[8910] | 0) - n2 | 0) >>> 1); r = o2; return; } default: break a; } } else b2 = a2 + 144 | 0; while (0); m2 = 1 << k[b2 >> 2]; c2 = a2 + 4608 | 0; d2 = m2 << 1; e2 = a2 + 4612 | 0; f2 = k[e2 >> 2] | 0; b2 = k[c2 >> 2] | 0; g2 = f2 - b2 | 0; if (d2 >>> 0 <= g2 >>> 0) { if (d2 >>> 0 < g2 >>> 0 ? (h2 = b2 + d2 | 0, (f2 | 0) != (h2 | 0)) : 0) k[e2 >> 2] = h2; } else { se(c2, d2 - g2 | 0); b2 = k[c2 >> 2] | 0; } l2 = a2 + 4604 | 0; k[l2 >> 2] = b2 + m2; b2 = 0 - m2 | 0; if ((m2 | 0) <= (b2 | 0)) { r = o2; return; } h2 = a2 + 184 | 0; j2 = a2 + 180 | 0; g2 = a2 + 176 | 0; f2 = b2; do { b2 = k[h2 >> 2] | 0; if ((f2 | 0) > (0 - b2 | 0)) { c2 = k[j2 >> 2] | 0; if ((f2 | 0) > (0 - c2 | 0)) { d2 = k[g2 >> 2] | 0; if ((f2 | 0) > (0 - d2 | 0)) { e2 = k[n2 >> 2] | 0; if ((f2 | 0) >= (0 - e2 | 0)) if ((e2 | 0) < (f2 | 0)) if ((d2 | 0) <= (f2 | 0)) if ((c2 | 0) > (f2 | 0)) b2 = 2; else b2 = (b2 | 0) > (f2 | 0) ? 3 : 4; else b2 = 1; else b2 = 0; else b2 = -1; } else b2 = -2; } else b2 = -3; } else b2 = -4; i2[(k[l2 >> 2] | 0) + f2 >> 0] = b2; f2 = f2 + 1 | 0; } while ((f2 | 0) != (m2 | 0)); r = o2; return; } function Ai(a2) { a2 = a2 | 0; mj(a2); return; } function Bi(a2) { a2 = a2 | 0; return 50767; } function Ci(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; Qm(a2, 50754, 12); return; } function Di(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0; q2 = r; r = r + 16 | 0; s2 = q2; k[s2 >> 2] = 0; t2 = s2 + 4 | 0; k[t2 >> 2] = 0; k[s2 + 8 >> 2] = 0; o2 = s2 + 8 | 0; x = 0; e2 = ta(67, 1) | 0; n2 = x; x = 0; a: do if ((!(n2 & 1) ? (n2 = e2 + 1 | 0, i2[e2 >> 0] = c2, k[s2 >> 2] = e2, k[t2 >> 2] = n2, k[o2 >> 2] = n2, x = 0, ra(84, s2 | 0, b2 & 65535 | 0), n2 = x, x = 0, !(n2 & 1)) : 0) ? (x = 0, ra(84, s2 | 0, a2 & 65535 | 0), n2 = x, x = 0, !(n2 & 1)) : 0) { l2 = d2 & 255; e2 = k[t2 >> 2] | 0; c2 = k[o2 >> 2] | 0; if (e2 >>> 0 >= c2 >>> 0) { b2 = k[s2 >> 2] | 0; a2 = b2; g2 = e2 - a2 + 1 | 0; if ((g2 | 0) < 0) { x = 0; qa(178, s2 | 0); n2 = x; x = 0; if (n2 & 1) { p2 = 52; break; } a2 = k[s2 >> 2] | 0; c2 = k[o2 >> 2] | 0; b2 = a2; } j2 = b2; e2 = c2 - j2 | 0; if (e2 >>> 0 < 1073741823) { e2 = e2 << 1; e2 = e2 >>> 0 < g2 >>> 0 ? g2 : e2; c2 = k[t2 >> 2] | 0; h2 = c2 - j2 | 0; if (!e2) { e2 = 0; g2 = 0; } else p2 = 12; } else { h2 = k[t2 >> 2] | 0; e2 = 2147483647; c2 = h2; h2 = h2 - j2 | 0; p2 = 12; } if ((p2 | 0) == 12) { x = 0; g2 = ta(67, e2 | 0) | 0; n2 = x; x = 0; if (n2 & 1) { p2 = 52; break; } } i2[g2 + h2 >> 0] = l2; m2 = c2 - j2 | 0; n2 = g2 + (h2 - m2) | 0; vw(n2 | 0, b2 | 0, m2 | 0) | 0; k[s2 >> 2] = n2; k[t2 >> 2] = g2 + (h2 + 1); k[o2 >> 2] = g2 + e2; if (a2) mj(a2); } else { i2[e2 >> 0] = l2; k[t2 >> 2] = (k[t2 >> 2] | 0) + 1; } b: do if ((d2 | 0) > 0) { n2 = 0; while (1) { n2 = n2 + 1 | 0; m2 = n2 & 255; e2 = k[t2 >> 2] | 0; b2 = k[o2 >> 2] | 0; if (e2 >>> 0 >= b2 >>> 0) { a2 = k[s2 >> 2] | 0; c2 = a2; g2 = e2 - c2 + 1 | 0; if ((g2 | 0) < 0) { x = 0; qa(178, s2 | 0); l2 = x; x = 0; if (l2 & 1) break; a2 = k[s2 >> 2] | 0; c2 = a2; b2 = k[o2 >> 2] | 0; } l2 = a2; e2 = b2 - l2 | 0; if (e2 >>> 0 < 1073741823) { e2 = e2 << 1; e2 = e2 >>> 0 < g2 >>> 0 ? g2 : e2; b2 = k[t2 >> 2] | 0; h2 = b2 - l2 | 0; if (!e2) { j2 = 0; g2 = 0; } else p2 = 25; } else { h2 = k[t2 >> 2] | 0; e2 = 2147483647; b2 = h2; h2 = h2 - l2 | 0; p2 = 25; } if ((p2 | 0) == 25) { p2 = 0; x = 0; g2 = ta(67, e2 | 0) | 0; j2 = x; x = 0; if (j2 & 1) break; else j2 = e2; } i2[g2 + h2 >> 0] = m2; e2 = g2 + (h2 + 1) | 0; l2 = b2 - l2 | 0; m2 = g2 + (h2 - l2) | 0; vw(m2 | 0, a2 | 0, l2 | 0) | 0; k[s2 >> 2] = m2; k[t2 >> 2] = e2; k[o2 >> 2] = g2 + j2; if (c2) { mj(c2); e2 = k[t2 >> 2] | 0; } } else { i2[e2 >> 0] = m2; e2 = (k[t2 >> 2] | 0) + 1 | 0; k[t2 >> 2] = e2; } c2 = k[o2 >> 2] | 0; if (e2 >>> 0 >= c2 >>> 0) { b2 = k[s2 >> 2] | 0; a2 = b2; g2 = e2 - a2 + 1 | 0; if ((g2 | 0) < 0) { x = 0; qa(178, s2 | 0); m2 = x; x = 0; if (m2 & 1) break; a2 = k[s2 >> 2] | 0; c2 = k[o2 >> 2] | 0; b2 = a2; } l2 = b2; e2 = c2 - l2 | 0; if (e2 >>> 0 < 1073741823) { e2 = e2 << 1; e2 = e2 >>> 0 < g2 >>> 0 ? g2 : e2; g2 = k[t2 >> 2] | 0; h2 = g2 - l2 | 0; if (!e2) { j2 = 0; c2 = 0; } else p2 = 36; } else { h2 = k[t2 >> 2] | 0; e2 = 2147483647; g2 = h2; h2 = h2 - l2 | 0; p2 = 36; } if ((p2 | 0) == 36) { p2 = 0; x = 0; c2 = ta(67, e2 | 0) | 0; m2 = x; x = 0; if (m2 & 1) break; else j2 = e2; } i2[c2 + h2 >> 0] = 17; e2 = c2 + (h2 + 1) | 0; l2 = g2 - l2 | 0; m2 = c2 + (h2 - l2) | 0; vw(m2 | 0, b2 | 0, l2 | 0) | 0; k[s2 >> 2] = m2; k[t2 >> 2] = e2; k[o2 >> 2] = c2 + j2; if (a2) { mj(a2); e2 = k[t2 >> 2] | 0; } } else { i2[e2 >> 0] = 17; e2 = (k[t2 >> 2] | 0) + 1 | 0; k[t2 >> 2] = e2; } c2 = k[o2 >> 2] | 0; if (e2 >>> 0 >= c2 >>> 0) { b2 = k[s2 >> 2] | 0; a2 = b2; g2 = e2 - a2 + 1 | 0; if ((g2 | 0) < 0) { x = 0; qa(178, s2 | 0); m2 = x; x = 0; if (m2 & 1) break; a2 = k[s2 >> 2] | 0; c2 = k[o2 >> 2] | 0; b2 = a2; } j2 = b2; e2 = c2 - j2 | 0; if (e2 >>> 0 < 1073741823) { e2 = e2 << 1; e2 = e2 >>> 0 < g2 >>> 0 ? g2 : e2; c2 = k[t2 >> 2] | 0; h2 = c2 - j2 | 0; if (!e2) { e2 = 0; g2 = 0; } else p2 = 48; } else { h2 = k[t2 >> 2] | 0; e2 = 2147483647; c2 = h2; h2 = h2 - j2 | 0; p2 = 48; } if ((p2 | 0) == 48) { p2 = 0; x = 0; g2 = ta(67, e2 | 0) | 0; m2 = x; x = 0; if (m2 & 1) break; } i2[g2 + h2 >> 0] = 0; l2 = c2 - j2 | 0; m2 = g2 + (h2 - l2) | 0; vw(m2 | 0, b2 | 0, l2 | 0) | 0; k[s2 >> 2] = m2; k[t2 >> 2] = g2 + (h2 + 1); k[o2 >> 2] = g2 + e2; if (a2) mj(a2); } else { i2[e2 >> 0] = 0; k[t2 >> 2] = (k[t2 >> 2] | 0) + 1; } if ((n2 | 0) >= (d2 | 0)) break b; } f2 = Wa() | 0; break a; } while (0); x = 0; h2 = ta(67, 20) | 0; d2 = x; x = 0; if (!(d2 & 1)) { k[h2 >> 2] = 36800; i2[h2 + 4 >> 0] = -9; a2 = h2 + 8 | 0; k[a2 >> 2] = 0; g2 = h2 + 12 | 0; k[g2 >> 2] = 0; c2 = h2 + 16 | 0; k[c2 >> 2] = 0; e2 = k[t2 >> 2] | 0; d2 = k[s2 >> 2] | 0; b2 = e2 - d2 | 0; do if ((e2 | 0) != (d2 | 0)) { if (!((b2 | 0) < 0 ? (x = 0, qa(178, a2 | 0), d2 = x, x = 0, d2 & 1) : 0)) p2 = 62; if ((p2 | 0) == 62 ? (x = 0, f2 = ta(67, b2 | 0) | 0, d2 = x, x = 0, !(d2 & 1)) : 0) { k[g2 >> 2] = f2; k[a2 >> 2] = f2; k[c2 >> 2] = f2 + b2; e2 = k[s2 >> 2] | 0; c2 = k[t2 >> 2] | 0; if ((e2 | 0) == (c2 | 0)) break; do { i2[f2 >> 0] = i2[e2 >> 0] | 0; f2 = (k[g2 >> 2] | 0) + 1 | 0; k[g2 >> 2] = f2; e2 = e2 + 1 | 0; } while ((e2 | 0) != (c2 | 0)); e2 = k[s2 >> 2] | 0; break; } f2 = Wa() | 0; e2 = k[a2 >> 2] | 0; if (e2) { if ((k[g2 >> 2] | 0) != (e2 | 0)) k[g2 >> 2] = e2; mj(e2); } mj(h2); break a; } while (0); if (!e2) { r = q2; return h2 | 0; } if ((k[t2 >> 2] | 0) != (e2 | 0)) k[t2 >> 2] = e2; mj(e2); r = q2; return h2 | 0; } else p2 = 52; } else p2 = 52; while (0); if ((p2 | 0) == 52) f2 = Wa() | 0; e2 = k[s2 >> 2] | 0; if (!e2) fb(f2 | 0); if ((k[t2 >> 2] | 0) != (e2 | 0)) k[t2 >> 2] = e2; mj(e2); fb(f2 | 0); return 0; } function Ei(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, y2 = 0; t2 = r; r = r + 32 | 0; p2 = t2 + 28 | 0; v2 = t2 + 16 | 0; s2 = t2 + 4 | 0; q2 = t2; k[v2 >> 2] = 0; w2 = v2 + 4 | 0; k[w2 >> 2] = 0; k[v2 + 8 >> 2] = 0; n2 = lj(5) | 0; k[v2 >> 2] = n2; o2 = v2 + 8 | 0; k[o2 >> 2] = n2 + 5; i2[n2 >> 0] = 74; i2[n2 + 1 >> 0] = 70; i2[n2 + 2 >> 0] = 73; i2[n2 + 3 >> 0] = 70; i2[n2 + 4 >> 0] = 0; k[w2 >> 2] = n2 + 5; x = 0; ra(84, v2 | 0, k[a2 >> 2] & 65535 | 0); n2 = x; x = 0; a: do if (!(n2 & 1)) { l2 = k[a2 + 4 >> 2] & 255; b2 = k[w2 >> 2] | 0; d2 = k[o2 >> 2] | 0; if (b2 >>> 0 >= d2 >>> 0) { e2 = k[v2 >> 2] | 0; f2 = e2; g2 = b2 - f2 + 1 | 0; if ((g2 | 0) < 0) { x = 0; qa(178, v2 | 0); n2 = x; x = 0; if (n2 & 1) { u2 = 43; break; } f2 = k[v2 >> 2] | 0; d2 = k[o2 >> 2] | 0; e2 = f2; } j2 = e2; b2 = d2 - j2 | 0; if (b2 >>> 0 < 1073741823) { b2 = b2 << 1; b2 = b2 >>> 0 < g2 >>> 0 ? g2 : b2; d2 = k[w2 >> 2] | 0; h2 = d2 - j2 | 0; if (!b2) { b2 = 0; g2 = 0; } else u2 = 10; } else { h2 = k[w2 >> 2] | 0; b2 = 2147483647; d2 = h2; h2 = h2 - j2 | 0; u2 = 10; } if ((u2 | 0) == 10) { x = 0; g2 = ta(67, b2 | 0) | 0; n2 = x; x = 0; if (n2 & 1) { u2 = 43; break; } } i2[g2 + h2 >> 0] = l2; m2 = d2 - j2 | 0; n2 = g2 + (h2 - m2) | 0; vw(n2 | 0, e2 | 0, m2 | 0) | 0; k[v2 >> 2] = n2; k[w2 >> 2] = g2 + (h2 + 1); k[o2 >> 2] = g2 + b2; if (f2) mj(f2); } else { i2[b2 >> 0] = l2; k[w2 >> 2] = (k[w2 >> 2] | 0) + 1; } x = 0; ra(84, v2 | 0, k[a2 + 8 >> 2] & 65535 | 0); n2 = x; x = 0; if (!(n2 & 1) ? (x = 0, ra(84, v2 | 0, k[a2 + 12 >> 2] & 65535 | 0), n2 = x, x = 0, !(n2 & 1)) : 0) { n2 = a2 + 16 | 0; m2 = k[n2 >> 2] & 255; b2 = k[w2 >> 2] | 0; e2 = k[o2 >> 2] | 0; if (b2 >>> 0 >= e2 >>> 0) { f2 = k[v2 >> 2] | 0; d2 = f2; g2 = b2 - d2 + 1 | 0; if ((g2 | 0) < 0) { x = 0; qa(178, v2 | 0); l2 = x; x = 0; if (l2 & 1) { u2 = 43; break; } f2 = k[v2 >> 2] | 0; d2 = f2; e2 = k[o2 >> 2] | 0; } l2 = f2; b2 = e2 - l2 | 0; if (b2 >>> 0 < 1073741823) { b2 = b2 << 1; b2 = b2 >>> 0 < g2 >>> 0 ? g2 : b2; g2 = k[w2 >> 2] | 0; h2 = g2 - l2 | 0; if (!b2) { j2 = 0; e2 = 0; } else u2 = 23; } else { h2 = k[w2 >> 2] | 0; b2 = 2147483647; g2 = h2; h2 = h2 - l2 | 0; u2 = 23; } if ((u2 | 0) == 23) { x = 0; e2 = ta(67, b2 | 0) | 0; j2 = x; x = 0; if (j2 & 1) { u2 = 43; break; } else j2 = b2; } i2[e2 + h2 >> 0] = m2; b2 = e2 + (h2 + 1) | 0; l2 = g2 - l2 | 0; m2 = e2 + (h2 - l2) | 0; vw(m2 | 0, f2 | 0, l2 | 0) | 0; k[v2 >> 2] = m2; k[w2 >> 2] = b2; k[o2 >> 2] = e2 + j2; if (d2) { mj(d2); b2 = k[w2 >> 2] | 0; } } else { i2[b2 >> 0] = m2; b2 = (k[w2 >> 2] | 0) + 1 | 0; k[w2 >> 2] = b2; } m2 = a2 + 20 | 0; l2 = k[m2 >> 2] & 255; d2 = k[o2 >> 2] | 0; if (b2 >>> 0 >= d2 >>> 0) { e2 = k[v2 >> 2] | 0; f2 = e2; g2 = b2 - f2 + 1 | 0; if ((g2 | 0) < 0) { x = 0; qa(178, v2 | 0); j2 = x; x = 0; if (j2 & 1) { u2 = 43; break; } f2 = k[v2 >> 2] | 0; d2 = k[o2 >> 2] | 0; e2 = f2; } j2 = e2; b2 = d2 - j2 | 0; if (b2 >>> 0 < 1073741823) { b2 = b2 << 1; b2 = b2 >>> 0 < g2 >>> 0 ? g2 : b2; d2 = k[w2 >> 2] | 0; h2 = d2 - j2 | 0; if (!b2) { b2 = 0; g2 = 0; } else u2 = 34; } else { h2 = k[w2 >> 2] | 0; b2 = 2147483647; d2 = h2; h2 = h2 - j2 | 0; u2 = 34; } if ((u2 | 0) == 34) { x = 0; g2 = ta(67, b2 | 0) | 0; y2 = x; x = 0; if (y2 & 1) { u2 = 43; break; } } i2[g2 + h2 >> 0] = l2; l2 = d2 - j2 | 0; y2 = g2 + (h2 - l2) | 0; vw(y2 | 0, e2 | 0, l2 | 0) | 0; k[v2 >> 2] = y2; k[w2 >> 2] = g2 + (h2 + 1); k[o2 >> 2] = g2 + b2; if (f2) mj(f2); } else { i2[b2 >> 0] = l2; k[w2 >> 2] = (k[w2 >> 2] | 0) + 1; } b2 = k[n2 >> 2] | 0; do if ((b2 | 0) > 0) { if (!(k[a2 + 24 >> 2] | 0)) { k[q2 >> 2] = k[w2 >> 2]; y2 = 0 + (ia(b2 * 3 | 0, k[m2 >> 2] | 0) | 0) | 0; x = 0; k[p2 >> 2] = k[q2 >> 2]; Ea(15, v2 | 0, p2 | 0, 0, y2 | 0) | 0; y2 = x; x = 0; if (y2 & 1) { u2 = 43; break a; } else break; } d2 = Va(16) | 0; x = 0; Fa(5, s2 | 0, 50792, 57); y2 = x; x = 0; if (!(y2 & 1)) { x = 0; b2 = Da(1) | 0; y2 = x; x = 0; if (!(y2 & 1) ? (x = 0, Ja(36, d2 | 0, 1, b2 | 0, s2 | 0), y2 = x, x = 0, !(y2 & 1)) : 0) { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } else c2 = 1; b2 = Wa() | 0; Sm(s2); if (!c2) { c2 = b2; break a; } } else b2 = Wa() | 0; Ua(d2 | 0); c2 = b2; break a; } while (0); x = 0; h2 = ta(67, 20) | 0; y2 = x; x = 0; if (!(y2 & 1)) { k[h2 >> 2] = 36800; i2[h2 + 4 >> 0] = -32; f2 = h2 + 8 | 0; k[f2 >> 2] = 0; g2 = h2 + 12 | 0; k[g2 >> 2] = 0; d2 = h2 + 16 | 0; k[d2 >> 2] = 0; b2 = k[w2 >> 2] | 0; y2 = k[v2 >> 2] | 0; e2 = b2 - y2 | 0; do if ((b2 | 0) != (y2 | 0)) { if (!((e2 | 0) < 0 ? (x = 0, qa(178, f2 | 0), y2 = x, x = 0, y2 & 1) : 0)) u2 = 53; if ((u2 | 0) == 53 ? (x = 0, c2 = ta(67, e2 | 0) | 0, y2 = x, x = 0, !(y2 & 1)) : 0) { k[g2 >> 2] = c2; k[f2 >> 2] = c2; k[d2 >> 2] = c2 + e2; b2 = k[v2 >> 2] | 0; d2 = k[w2 >> 2] | 0; if ((b2 | 0) == (d2 | 0)) break; do { i2[c2 >> 0] = i2[b2 >> 0] | 0; c2 = (k[g2 >> 2] | 0) + 1 | 0; k[g2 >> 2] = c2; b2 = b2 + 1 | 0; } while ((b2 | 0) != (d2 | 0)); b2 = k[v2 >> 2] | 0; break; } b2 = Wa() | 0; c2 = k[f2 >> 2] | 0; if (c2) { if ((k[g2 >> 2] | 0) != (c2 | 0)) k[g2 >> 2] = c2; mj(c2); } mj(h2); u2 = 44; break a; } while (0); if (!b2) { r = t2; return h2 | 0; } if ((k[w2 >> 2] | 0) != (b2 | 0)) k[w2 >> 2] = b2; mj(b2); r = t2; return h2 | 0; } else u2 = 43; } else u2 = 43; } else u2 = 43; while (0); if ((u2 | 0) == 43) { b2 = Wa() | 0; u2 = 44; } if ((u2 | 0) == 44) c2 = b2; b2 = k[v2 >> 2] | 0; if (!b2) fb(c2 | 0); if ((k[w2 >> 2] | 0) != (b2 | 0)) k[w2 >> 2] = b2; mj(b2); fb(c2 | 0); return 0; } function Fi(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; h2 = r; r = r + 16 | 0; l2 = h2; k[l2 >> 2] = 0; m2 = l2 + 4 | 0; k[m2 >> 2] = 0; k[l2 + 8 >> 2] = 0; x = 0; b2 = ta(67, 1) | 0; g2 = x; x = 0; a: do if ((((((!(g2 & 1) ? (g2 = b2 + 1 | 0, i2[b2 >> 0] = 1, k[l2 >> 2] = b2, k[m2 >> 2] = g2, k[l2 + 8 >> 2] = g2, x = 0, ra(84, l2 | 0, k[a2 >> 2] & 65535 | 0), g2 = x, x = 0, !(g2 & 1)) : 0) ? (x = 0, ra(84, l2 | 0, k[a2 + 4 >> 2] & 65535 | 0), g2 = x, x = 0, !(g2 & 1)) : 0) ? (x = 0, ra(84, l2 | 0, k[a2 + 8 >> 2] & 65535 | 0), g2 = x, x = 0, !(g2 & 1)) : 0) ? (x = 0, ra(84, l2 | 0, k[a2 + 12 >> 2] & 65535 | 0), g2 = x, x = 0, !(g2 & 1)) : 0) ? (x = 0, ra(84, l2 | 0, k[a2 + 16 >> 2] & 65535 | 0), g2 = x, x = 0, !(g2 & 1)) : 0) ? (x = 0, j2 = ta(67, 20) | 0, g2 = x, x = 0, !(g2 & 1)) : 0) { k[j2 >> 2] = 36800; i2[j2 + 4 >> 0] = -8; e2 = j2 + 8 | 0; k[e2 >> 2] = 0; g2 = j2 + 12 | 0; k[g2 >> 2] = 0; a2 = j2 + 16 | 0; k[a2 >> 2] = 0; b2 = k[m2 >> 2] | 0; n2 = k[l2 >> 2] | 0; d2 = b2 - n2 | 0; do if ((b2 | 0) != (n2 | 0)) { if (!((d2 | 0) < 0 ? (x = 0, qa(178, e2 | 0), n2 = x, x = 0, n2 & 1) : 0)) f2 = 11; if ((f2 | 0) == 11 ? (x = 0, c2 = ta(67, d2 | 0) | 0, n2 = x, x = 0, !(n2 & 1)) : 0) { k[g2 >> 2] = c2; k[e2 >> 2] = c2; k[a2 >> 2] = c2 + d2; b2 = k[l2 >> 2] | 0; a2 = k[m2 >> 2] | 0; if ((b2 | 0) == (a2 | 0)) break; do { i2[c2 >> 0] = i2[b2 >> 0] | 0; c2 = (k[g2 >> 2] | 0) + 1 | 0; k[g2 >> 2] = c2; b2 = b2 + 1 | 0; } while ((b2 | 0) != (a2 | 0)); b2 = k[l2 >> 2] | 0; break; } c2 = Wa() | 0; b2 = k[e2 >> 2] | 0; if (b2) { if ((k[g2 >> 2] | 0) != (b2 | 0)) k[g2 >> 2] = b2; mj(b2); } mj(j2); break a; } while (0); if (!b2) { r = h2; return j2 | 0; } if ((k[m2 >> 2] | 0) != (b2 | 0)) k[m2 >> 2] = b2; mj(b2); r = h2; return j2 | 0; } else f2 = 25; while (0); if ((f2 | 0) == 25) c2 = Wa() | 0; b2 = k[l2 >> 2] | 0; if (!b2) fb(c2 | 0); if ((k[m2 >> 2] | 0) != (b2 | 0)) k[m2 >> 2] = b2; mj(b2); fb(c2 | 0); return 0; } function Gi(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; f2 = lj(5) | 0; i2[f2 >> 0] = 109; i2[f2 + 1 >> 0] = 114; i2[f2 + 2 >> 0] = 102; i2[f2 + 3 >> 0] = 120; i2[f2 + 4 >> 0] = a2; x = 0; e2 = ta(67, 20) | 0; d2 = x; x = 0; if (d2 & 1) { e2 = Wa() | 0; mj(f2); fb(e2 | 0); } k[e2 >> 2] = 36800; i2[e2 + 4 >> 0] = -24; a2 = e2 + 8 | 0; k[a2 >> 2] = 0; b2 = e2 + 12 | 0; k[b2 >> 2] = 0; c2 = e2 + 16 | 0; k[c2 >> 2] = 0; x = 0; d2 = ta(67, 5) | 0; g2 = x; x = 0; if (!(g2 & 1)) { k[b2 >> 2] = d2; k[a2 >> 2] = d2; k[c2 >> 2] = d2 + 5; i2[d2 >> 0] = 109; g2 = (k[b2 >> 2] | 0) + 1 | 0; k[b2 >> 2] = g2; d2 = f2 + 1 | 0; i2[g2 >> 0] = i2[d2 >> 0] | 0; g2 = (k[b2 >> 2] | 0) + 1 | 0; k[b2 >> 2] = g2; d2 = d2 + 1 | 0; i2[g2 >> 0] = i2[d2 >> 0] | 0; g2 = (k[b2 >> 2] | 0) + 1 | 0; k[b2 >> 2] = g2; d2 = d2 + 1 | 0; i2[g2 >> 0] = i2[d2 >> 0] | 0; g2 = (k[b2 >> 2] | 0) + 1 | 0; k[b2 >> 2] = g2; i2[g2 >> 0] = i2[d2 + 1 >> 0] | 0; k[b2 >> 2] = (k[b2 >> 2] | 0) + 1; mj(f2); return e2 | 0; } g2 = Wa() | 0; mj(e2); mj(f2); fb(g2 | 0); return 0; } function Hi(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; u2 = r; r = r + 16 | 0; v2 = u2; k[v2 >> 2] = 0; w2 = v2 + 4 | 0; k[w2 >> 2] = 0; k[v2 + 8 >> 2] = 0; s2 = v2 + 8 | 0; x = 0; e2 = ta(67, 1) | 0; q2 = x; x = 0; a: do if (!(q2 & 1)) { h2 = e2 + 1 | 0; q2 = h2; i2[e2 >> 0] = b2; k[v2 >> 2] = e2; k[w2 >> 2] = q2; k[s2 >> 2] = q2; if ((b2 | 0) > 0) { g2 = h2; q2 = 0; do { p2 = q2 + a2 & 255; if (g2 >>> 0 >= h2 >>> 0) { e2 = k[v2 >> 2] | 0; j2 = e2; g2 = g2 - j2 + 1 | 0; if ((g2 | 0) < 0) { x = 0; qa(178, v2 | 0); o2 = x; x = 0; if (o2 & 1) { t2 = 28; break; } j2 = k[v2 >> 2] | 0; h2 = k[s2 >> 2] | 0; o2 = j2; } else o2 = e2; n2 = o2; e2 = h2 - n2 | 0; if (e2 >>> 0 < 1073741823) { e2 = e2 << 1; e2 = e2 >>> 0 < g2 >>> 0 ? g2 : e2; h2 = k[w2 >> 2] | 0; l2 = h2 - n2 | 0; if (!e2) { m2 = 0; g2 = 0; } else t2 = 13; } else { l2 = k[w2 >> 2] | 0; e2 = 2147483647; h2 = l2; l2 = l2 - n2 | 0; t2 = 13; } if ((t2 | 0) == 13) { t2 = 0; x = 0; g2 = ta(67, e2 | 0) | 0; m2 = x; x = 0; if (m2 & 1) { t2 = 28; break; } else m2 = e2; } i2[g2 + l2 >> 0] = p2; e2 = g2 + (l2 + 1) | 0; n2 = h2 - n2 | 0; p2 = g2 + (l2 - n2) | 0; vw(p2 | 0, o2 | 0, n2 | 0) | 0; k[v2 >> 2] = p2; k[w2 >> 2] = e2; k[s2 >> 2] = g2 + m2; if (j2) { mj(j2); e2 = k[w2 >> 2] | 0; } } else { i2[g2 >> 0] = p2; e2 = (k[w2 >> 2] | 0) + 1 | 0; k[w2 >> 2] = e2; } h2 = k[s2 >> 2] | 0; if (e2 >>> 0 >= h2 >>> 0) { j2 = k[v2 >> 2] | 0; g2 = j2; l2 = e2 - g2 + 1 | 0; if ((l2 | 0) < 0) { x = 0; qa(178, v2 | 0); p2 = x; x = 0; if (p2 & 1) { t2 = 28; break; } j2 = k[v2 >> 2] | 0; g2 = j2; h2 = k[s2 >> 2] | 0; } n2 = j2; e2 = h2 - n2 | 0; if (e2 >>> 0 < 1073741823) { e2 = e2 << 1; e2 = e2 >>> 0 < l2 >>> 0 ? l2 : e2; l2 = k[w2 >> 2] | 0; h2 = l2 - n2 | 0; if (!e2) { e2 = 0; m2 = 0; } else t2 = 24; } else { h2 = k[w2 >> 2] | 0; e2 = 2147483647; l2 = h2; h2 = h2 - n2 | 0; t2 = 24; } if ((t2 | 0) == 24) { t2 = 0; x = 0; m2 = ta(67, e2 | 0) | 0; p2 = x; x = 0; if (p2 & 1) { t2 = 28; break; } } i2[m2 + h2 >> 0] = 0; o2 = l2 - n2 | 0; p2 = m2 + (h2 - o2) | 0; vw(p2 | 0, j2 | 0, o2 | 0) | 0; k[v2 >> 2] = p2; k[w2 >> 2] = m2 + (h2 + 1); k[s2 >> 2] = m2 + e2; if (g2) mj(g2); } else { i2[e2 >> 0] = 0; k[w2 >> 2] = (k[w2 >> 2] | 0) + 1; } q2 = q2 + 1 | 0; g2 = k[w2 >> 2] | 0; h2 = k[s2 >> 2] | 0; } while ((q2 | 0) < (b2 | 0)); if ((t2 | 0) == 28) { f2 = Wa() | 0; break; } e2 = c2 & 255; if (g2 >>> 0 < h2 >>> 0) { i2[g2 >> 0] = e2; g2 = (k[w2 >> 2] | 0) + 1 | 0; k[w2 >> 2] = g2; } else t2 = 37; } else { g2 = h2; e2 = c2 & 255; t2 = 37; } if ((t2 | 0) == 37) { j2 = k[v2 >> 2] | 0; l2 = j2; m2 = g2 - l2 + 1 | 0; if ((m2 | 0) < 0) { x = 0; qa(178, v2 | 0); c2 = x; x = 0; if (c2 & 1) { t2 = 29; break; } l2 = k[v2 >> 2] | 0; h2 = k[s2 >> 2] | 0; j2 = l2; } p2 = j2; g2 = h2 - p2 | 0; if (g2 >>> 0 < 1073741823) { g2 = g2 << 1; g2 = g2 >>> 0 < m2 >>> 0 ? m2 : g2; m2 = k[w2 >> 2] | 0; n2 = m2 - p2 | 0; if (!g2) { o2 = 0; h2 = 0; } else t2 = 43; } else { n2 = k[w2 >> 2] | 0; g2 = 2147483647; m2 = n2; n2 = n2 - p2 | 0; t2 = 43; } if ((t2 | 0) == 43) { x = 0; h2 = ta(67, g2 | 0) | 0; c2 = x; x = 0; if (c2 & 1) { t2 = 29; break; } else o2 = g2; } i2[h2 + n2 >> 0] = e2; g2 = h2 + (n2 + 1) | 0; a2 = m2 - p2 | 0; c2 = h2 + (n2 - a2) | 0; vw(c2 | 0, j2 | 0, a2 | 0) | 0; k[v2 >> 2] = c2; k[w2 >> 2] = g2; k[s2 >> 2] = h2 + o2; if (l2) { mj(l2); g2 = k[w2 >> 2] | 0; } } p2 = d2 & 255; e2 = k[s2 >> 2] | 0; if (g2 >>> 0 >= e2 >>> 0) { h2 = k[v2 >> 2] | 0; j2 = h2; g2 = g2 - j2 + 1 | 0; if ((g2 | 0) < 0) { x = 0; qa(178, v2 | 0); d2 = x; x = 0; if (d2 & 1) { t2 = 29; break; } j2 = k[v2 >> 2] | 0; e2 = k[s2 >> 2] | 0; h2 = j2; } o2 = h2; e2 = e2 - o2 | 0; if (e2 >>> 0 < 1073741823) { e2 = e2 << 1; e2 = e2 >>> 0 < g2 >>> 0 ? g2 : e2; l2 = k[w2 >> 2] | 0; m2 = l2 - o2 | 0; if (!e2) { n2 = 0; g2 = 0; } else t2 = 54; } else { m2 = k[w2 >> 2] | 0; e2 = 2147483647; l2 = m2; m2 = m2 - o2 | 0; t2 = 54; } if ((t2 | 0) == 54) { x = 0; g2 = ta(67, e2 | 0) | 0; d2 = x; x = 0; if (d2 & 1) { t2 = 29; break; } else n2 = e2; } i2[g2 + m2 >> 0] = p2; e2 = g2 + (m2 + 1) | 0; c2 = l2 - o2 | 0; d2 = g2 + (m2 - c2) | 0; vw(d2 | 0, h2 | 0, c2 | 0) | 0; k[v2 >> 2] = d2; k[w2 >> 2] = e2; k[s2 >> 2] = g2 + n2; if (j2) { mj(j2); e2 = k[w2 >> 2] | 0; } } else { i2[g2 >> 0] = p2; e2 = (k[w2 >> 2] | 0) + 1 | 0; k[w2 >> 2] = e2; } g2 = k[s2 >> 2] | 0; if (e2 >>> 0 >= g2 >>> 0) { h2 = k[v2 >> 2] | 0; j2 = h2; l2 = e2 - j2 + 1 | 0; if ((l2 | 0) < 0) { x = 0; qa(178, v2 | 0); d2 = x; x = 0; if (d2 & 1) { t2 = 29; break; } j2 = k[v2 >> 2] | 0; g2 = k[s2 >> 2] | 0; h2 = j2; } n2 = h2; e2 = g2 - n2 | 0; if (e2 >>> 0 < 1073741823) { e2 = e2 << 1; e2 = e2 >>> 0 < l2 >>> 0 ? l2 : e2; g2 = k[w2 >> 2] | 0; m2 = g2 - n2 | 0; if (!e2) { e2 = 0; l2 = 0; } else t2 = 65; } else { m2 = k[w2 >> 2] | 0; e2 = 2147483647; g2 = m2; m2 = m2 - n2 | 0; t2 = 65; } if ((t2 | 0) == 65) { x = 0; l2 = ta(67, e2 | 0) | 0; d2 = x; x = 0; if (d2 & 1) { t2 = 29; break; } } i2[l2 + m2 >> 0] = 0; c2 = g2 - n2 | 0; d2 = l2 + (m2 - c2) | 0; vw(d2 | 0, h2 | 0, c2 | 0) | 0; k[v2 >> 2] = d2; k[w2 >> 2] = l2 + (m2 + 1); k[s2 >> 2] = l2 + e2; if (j2) mj(j2); } else { i2[e2 >> 0] = 0; k[w2 >> 2] = (k[w2 >> 2] | 0) + 1; } x = 0; m2 = ta(67, 20) | 0; s2 = x; x = 0; if (!(s2 & 1)) { k[m2 >> 2] = 36800; i2[m2 + 4 >> 0] = -38; j2 = m2 + 8 | 0; k[j2 >> 2] = 0; l2 = m2 + 12 | 0; k[l2 >> 2] = 0; g2 = m2 + 16 | 0; k[g2 >> 2] = 0; e2 = k[w2 >> 2] | 0; s2 = k[v2 >> 2] | 0; h2 = e2 - s2 | 0; do if ((e2 | 0) != (s2 | 0)) { if (!((h2 | 0) < 0 ? (x = 0, qa(178, j2 | 0), s2 = x, x = 0, s2 & 1) : 0)) t2 = 72; if ((t2 | 0) == 72 ? (x = 0, f2 = ta(67, h2 | 0) | 0, s2 = x, x = 0, !(s2 & 1)) : 0) { k[l2 >> 2] = f2; k[j2 >> 2] = f2; k[g2 >> 2] = f2 + h2; e2 = k[v2 >> 2] | 0; g2 = k[w2 >> 2] | 0; if ((e2 | 0) == (g2 | 0)) break; do { i2[f2 >> 0] = i2[e2 >> 0] | 0; f2 = (k[l2 >> 2] | 0) + 1 | 0; k[l2 >> 2] = f2; e2 = e2 + 1 | 0; } while ((e2 | 0) != (g2 | 0)); e2 = k[v2 >> 2] | 0; break; } f2 = Wa() | 0; e2 = k[j2 >> 2] | 0; if (e2) { if ((k[l2 >> 2] | 0) != (e2 | 0)) k[l2 >> 2] = e2; mj(e2); } mj(m2); break a; } while (0); if (!e2) { r = u2; return m2 | 0; } if ((k[w2 >> 2] | 0) != (e2 | 0)) k[w2 >> 2] = e2; mj(e2); r = u2; return m2 | 0; } else t2 = 29; } else t2 = 29; while (0); if ((t2 | 0) == 29) f2 = Wa() | 0; e2 = k[v2 >> 2] | 0; if (!e2) fb(f2 | 0); if ((k[w2 >> 2] | 0) != (e2 | 0)) k[w2 >> 2] = e2; mj(e2); fb(f2 | 0); return 0; } function Ii(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; n2 = (b2 & 65535) >>> 8 & 255; o2 = a2 + 4 | 0; c2 = k[o2 >> 2] | 0; p2 = a2 + 8 | 0; d2 = k[p2 >> 2] | 0; if (c2 >>> 0 >= d2 >>> 0) { e2 = k[a2 >> 2] | 0; f2 = e2; g2 = c2 - f2 + 1 | 0; if ((g2 | 0) < 0) { jj(a2); f2 = k[a2 >> 2] | 0; d2 = k[p2 >> 2] | 0; e2 = f2; } m2 = e2; c2 = d2 - m2 | 0; if (c2 >>> 0 < 1073741823) { c2 = c2 << 1; c2 = c2 >>> 0 < g2 >>> 0 ? g2 : c2; g2 = k[o2 >> 2] | 0; d2 = g2 - m2 | 0; if (!c2) { l2 = 0; j2 = 0; h2 = d2; c2 = g2; } else q2 = 8; } else { d2 = k[o2 >> 2] | 0; c2 = 2147483647; g2 = d2; d2 = d2 - m2 | 0; q2 = 8; } if ((q2 | 0) == 8) { l2 = c2; j2 = lj(c2) | 0; h2 = d2; c2 = g2; } i2[j2 + h2 >> 0] = n2; d2 = j2 + (h2 + 1) | 0; m2 = c2 - m2 | 0; n2 = j2 + (h2 - m2) | 0; vw(n2 | 0, e2 | 0, m2 | 0) | 0; k[a2 >> 2] = n2; k[o2 >> 2] = d2; k[p2 >> 2] = j2 + l2; if (f2) { mj(f2); d2 = k[o2 >> 2] | 0; } } else { i2[c2 >> 0] = n2; d2 = (k[o2 >> 2] | 0) + 1 | 0; k[o2 >> 2] = d2; } m2 = b2 & 255; c2 = k[p2 >> 2] | 0; if (d2 >>> 0 < c2 >>> 0) { i2[d2 >> 0] = m2; k[o2 >> 2] = (k[o2 >> 2] | 0) + 1; return; } e2 = k[a2 >> 2] | 0; f2 = e2; d2 = d2 - f2 + 1 | 0; if ((d2 | 0) < 0) { jj(a2); f2 = k[a2 >> 2] | 0; c2 = k[p2 >> 2] | 0; e2 = f2; } l2 = e2; c2 = c2 - l2 | 0; if (c2 >>> 0 < 1073741823) { c2 = c2 << 1; c2 = c2 >>> 0 < d2 >>> 0 ? d2 : c2; g2 = k[o2 >> 2] | 0; d2 = g2 - l2 | 0; if (!c2) { j2 = 0; h2 = 0; c2 = g2; } else q2 = 18; } else { d2 = k[o2 >> 2] | 0; c2 = 2147483647; g2 = d2; d2 = d2 - l2 | 0; q2 = 18; } if ((q2 | 0) == 18) { j2 = c2; h2 = lj(c2) | 0; c2 = g2; } i2[h2 + d2 >> 0] = m2; b2 = c2 - l2 | 0; q2 = h2 + (d2 - b2) | 0; vw(q2 | 0, e2 | 0, b2 | 0) | 0; k[a2 >> 2] = q2; k[o2 >> 2] = h2 + (d2 + 1); k[p2 >> 2] = h2 + j2; if (!f2) return; mj(f2); return; } function Ji(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; e2 = k[a2 >> 2] | 0; q2 = k[b2 >> 2] | 0; p2 = q2; j2 = e2; n2 = c2; l2 = d2 - n2 | 0; if ((l2 | 0) <= 0) { r2 = q2; return r2 | 0; } o2 = a2 + 8 | 0; b2 = k[o2 >> 2] | 0; r2 = a2 + 4 | 0; m2 = k[r2 >> 2] | 0; f2 = m2; if ((l2 | 0) <= (b2 - f2 | 0)) { h2 = f2 - p2 | 0; if ((l2 | 0) > (h2 | 0)) { g2 = c2 + h2 | 0; if ((g2 | 0) == (d2 | 0)) b2 = m2; else { f2 = g2; b2 = m2; do { i2[b2 >> 0] = i2[f2 >> 0] | 0; b2 = (k[r2 >> 2] | 0) + 1 | 0; k[r2 >> 2] = b2; f2 = f2 + 1 | 0; } while ((f2 | 0) != (d2 | 0)); } if ((h2 | 0) > 0) h2 = b2; else { r2 = q2; return r2 | 0; } } else { h2 = m2; g2 = d2; } e2 = h2 - (e2 + (l2 - j2 + p2)) | 0; b2 = q2 + e2 | 0; if (b2 >>> 0 < m2 >>> 0) { f2 = h2; do { i2[f2 >> 0] = i2[b2 >> 0] | 0; b2 = b2 + 1 | 0; f2 = (k[r2 >> 2] | 0) + 1 | 0; k[r2 >> 2] = f2; } while ((b2 | 0) != (m2 | 0)); } xw(h2 + (0 - e2) | 0, q2 | 0, e2 | 0) | 0; xw(q2 | 0, c2 | 0, g2 - n2 | 0) | 0; r2 = q2; return r2 | 0; } f2 = f2 - j2 + l2 | 0; if ((f2 | 0) < 0) { jj(a2); b2 = k[o2 >> 2] | 0; e2 = k[a2 >> 2] | 0; } g2 = e2; b2 = b2 - g2 | 0; if (b2 >>> 0 < 1073741823) { b2 = b2 << 1; b2 = b2 >>> 0 < f2 >>> 0 ? f2 : b2; f2 = p2 - g2 | 0; if (!b2) { g2 = 0; l2 = 0; } else h2 = 15; } else { b2 = 2147483647; f2 = p2 - g2 | 0; h2 = 15; } if ((h2 | 0) == 15) { g2 = b2; l2 = lj(b2) | 0; } j2 = l2 + f2 | 0; b2 = j2; h2 = l2 + g2 | 0; if ((c2 | 0) != (d2 | 0)) { e2 = c2; g2 = j2; do { i2[g2 >> 0] = i2[e2 >> 0] | 0; g2 = b2 + 1 | 0; b2 = g2; e2 = e2 + 1 | 0; } while ((e2 | 0) != (d2 | 0)); e2 = k[a2 >> 2] | 0; } c2 = p2 - e2 | 0; d2 = l2 + (f2 - c2) | 0; vw(d2 | 0, e2 | 0, c2 | 0) | 0; p2 = (k[r2 >> 2] | 0) - p2 | 0; c2 = b2; vw(c2 | 0, q2 | 0, p2 | 0) | 0; b2 = k[a2 >> 2] | 0; k[a2 >> 2] = d2; k[r2 >> 2] = c2 + p2; k[o2 >> 2] = h2; if (!b2) { r2 = j2; return r2 | 0; } mj(b2); r2 = j2; return r2 | 0; } function Ki(a2) { a2 = a2 | 0; var b2 = 0; k[a2 >> 2] = 36800; b2 = k[a2 + 8 >> 2] | 0; if (!b2) return; a2 = a2 + 12 | 0; if ((k[a2 >> 2] | 0) != (b2 | 0)) k[a2 >> 2] = b2; mj(b2); return; } function Li(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; k[a2 >> 2] = 36800; b2 = k[a2 + 8 >> 2] | 0; if (!b2) { mj(a2); return; } c2 = a2 + 12 | 0; if ((k[c2 >> 2] | 0) != (b2 | 0)) k[c2 >> 2] = b2; mj(b2); mj(a2); return; } function Mi(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0; Ni(b2, -1); Ni(b2, i2[a2 + 4 >> 0] | 0); e2 = a2 + 12 | 0; d2 = a2 + 8 | 0; a2 = (k[e2 >> 2] | 0) - (k[d2 >> 2] | 0) + 2 | 0; Ni(b2, (a2 & 65535) >>> 8 & 255); Ni(b2, a2 & 255); a2 = k[d2 >> 2] | 0; if ((k[e2 >> 2] | 0) == (a2 | 0)) return; else c2 = 0; do { Ni(b2, i2[a2 + c2 >> 0] | 0); c2 = c2 + 1 | 0; a2 = k[d2 >> 2] | 0; } while (c2 >>> 0 < ((k[e2 >> 2] | 0) - a2 | 0) >>> 0); return; } function Ni(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0; e2 = k[a2 + 4 >> 2] | 0; if (e2) { c2 = e2 + 24 | 0; d2 = k[c2 >> 2] | 0; if ((d2 | 0) == (k[e2 + 28 >> 2] | 0)) { Vb[k[(k[e2 >> 2] | 0) + 52 >> 2] & 63](e2, b2 & 255) | 0; return; } else { k[c2 >> 2] = d2 + 1; i2[d2 >> 0] = b2; return; } } c2 = a2 + 16 | 0; d2 = k[c2 >> 2] | 0; if (d2 >>> 0 < (k[a2 + 12 >> 2] | 0) >>> 0) { k[c2 >> 2] = d2 + 1; i2[(k[a2 + 8 >> 2] | 0) + d2 >> 0] = b2; return; } c2 = Va(16) | 0; x = 0; d2 = Da(1) | 0; b2 = x; x = 0; if (b2 & 1) { b2 = Wa() | 0; Ua(c2 | 0); fb(b2 | 0); } x = 0; Fa(7, c2 | 0, 4, d2 | 0); b2 = x; x = 0; if (b2 & 1) { b2 = Wa() | 0; Ua(c2 | 0); fb(b2 | 0); } else ub(c2 | 0, 824, 96); } function Oi(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; k[a2 + 12 >> 2] = 0; e2 = (b2 | 0) < 4095 ? (b2 + 128 | 0) / 256 | 0 : 16; f2 = (c2 * 3 | 0) + 2 + e2 | 0; d2 = c2 + 1 | 0; f2 = (f2 | 0) < (d2 | 0) | (f2 | 0) > (b2 | 0) ? d2 : f2; k[a2 + 4 >> 2] = f2; d2 = (e2 << 2 | 3) + (c2 * 5 | 0) | 0; d2 = (d2 | 0) > (b2 | 0) | (d2 | 0) < (f2 | 0) ? f2 : d2; k[a2 + 8 >> 2] = d2; c2 = (c2 * 7 | 0) + 4 + (e2 * 17 | 0) | 0; k[a2 + 12 >> 2] = (c2 | 0) > (b2 | 0) | (c2 | 0) < (d2 | 0) ? d2 : c2; k[a2 >> 2] = b2; k[a2 + 16 >> 2] = 64; return; } function Pi(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; l2 = r; r = r + 128 | 0; h2 = l2 + 100 | 0; d2 = l2 + 16 | 0; c2 = l2 + 112 | 0; j2 = l2 + 4 | 0; m2 = l2; e2 = d2; f2 = a2 + 20 | 0; g2 = e2 + 84 | 0; do { k[e2 >> 2] = k[f2 >> 2]; e2 = e2 + 4 | 0; f2 = f2 + 4 | 0; } while ((e2 | 0) < (g2 | 0)); k[d2 + 16 >> 2] = k[a2 + 4 >> 2]; f2 = zc(c2, d2, a2 + 56 | 0) | 0; c2 = k[(k[f2 >> 2] | 0) + 16 >> 2] | 0; a2 = a2 + 8 | 0; x = 0; k[h2 >> 2] = k[a2 >> 2]; k[h2 + 4 >> 2] = k[a2 + 4 >> 2]; k[h2 + 8 >> 2] = k[a2 + 8 >> 2]; c2 = Aa(c2 | 0, f2 | 0, h2 | 0) | 0; a2 = x; x = 0; do if (a2 & 1) c2 = Wa() | 0; else { e2 = b2 + 4 | 0; k[j2 >> 2] = k[e2 >> 2]; k[j2 + 4 >> 2] = k[e2 + 4 >> 2]; k[j2 + 8 >> 2] = k[e2 + 8 >> 2]; e2 = b2 + 16 | 0; a2 = k[e2 >> 2] | 0; h2 = j2 + 8 | 0; k[h2 >> 2] = (k[h2 >> 2] | 0) - a2; h2 = j2 + 4 | 0; k[h2 >> 2] = (k[h2 >> 2] | 0) + a2; h2 = k[(k[f2 >> 2] | 0) + 12 >> 2] | 0; k[m2 >> 2] = c2; x = 0; c2 = Ea(h2 | 0, f2 | 0, m2 | 0, j2 | 0, ((i2[b2 >> 0] | 0) == 0 ? 0 : (k[b2 + 8 >> 2] | 0) + a2 | 0) | 0) | 0; j2 = x; x = 0; if (j2 & 1) { c2 = Wa() | 0; d2 = k[m2 >> 2] | 0; k[m2 >> 2] = 0; if (!d2) break; Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); break; } d2 = k[m2 >> 2] | 0; k[m2 >> 2] = 0; if (d2) Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); if (!(k[b2 + 4 >> 2] | 0)) k[e2 >> 2] = (k[e2 >> 2] | 0) + c2; if (!f2) { r = l2; return; } Lb[k[(k[f2 >> 2] | 0) + 4 >> 2] & 255](f2); r = l2; return; } while (0); if (!f2) fb(c2 | 0); Lb[k[(k[f2 >> 2] | 0) + 4 >> 2] & 255](f2); fb(c2 | 0); } function Qi(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; k[a2 >> 2] = k[b2 >> 2]; k[a2 + 4 >> 2] = k[b2 + 4 >> 2]; k[a2 + 8 >> 2] = k[b2 + 8 >> 2]; i2[a2 + 12 >> 0] = 0; b2 = a2 + 16 | 0; a2 = b2 + 100 | 0; do { k[b2 >> 2] = 0; b2 = b2 + 4 | 0; } while ((b2 | 0) < (a2 | 0)); return; } function Ri(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; u2 = r; r = r + 32 | 0; t2 = u2 + 4 | 0; o2 = u2 + 16 | 0; v2 = u2; Si(a2); p2 = a2 + 16 | 0; e2 = k[a2 + 24 >> 2] | 0; a: do if ((e2 + -2 | 0) >>> 0 <= 14) { q2 = a2 + 40 | 0; c2 = k[q2 >> 2] | 0; if (c2 >>> 0 > 2) c2 = 5; else { s2 = a2 + 32 | 0; f2 = k[s2 >> 2] | 0; switch (f2 | 0) { case 0: { c2 = 1; break a; } case 4: { if ((c2 | 0) == 2) { c2 = 2; break a; } break; } case 3: break; default: if (c2) { c2 = 2; break a; } } n2 = a2 + 100 | 0; c2 = a2 + 108 | 0; d2 = k[c2 >> 2] | 0; if ((d2 | 0) < 1) { d2 = k[p2 >> 2] | 0; k[c2 >> 2] = d2; c2 = k[a2 + 20 >> 2] | 0; k[a2 + 112 >> 2] = c2; } else c2 = k[a2 + 112 >> 2] | 0; j2 = Dw(c2 | 0, ((c2 | 0) < 0) << 31 >> 31 | 0, d2 | 0, ((d2 | 0) < 0) << 31 >> 31 | 0) | 0; h2 = (e2 + 7 | 0) / 8 | 0; h2 = Dw(j2 | 0, M | 0, h2 | 0, ((h2 | 0) < 0) << 31 >> 31 | 0) | 0; j2 = b2 + 4 | 0; c2 = k[j2 >> 2] | 0; g2 = b2 + 8 | 0; if ((c2 | 0) != 0 ? (l2 = k[g2 >> 2] | 0, m2 = Dw(f2 | 0, ((f2 | 0) < 0) << 31 >> 31 | 0, h2 | 0, M | 0) | 0, e2 = M, 0 < (e2 | 0) | 0 == (e2 | 0) & l2 >>> 0 < m2 >>> 0) : 0) { c2 = Va(16) | 0; x = 0; d2 = Da(1) | 0; v2 = x; x = 0; if (!(v2 & 1) ? (x = 0, Fa(7, c2 | 0, 3, d2 | 0), v2 = x, x = 0, !(v2 & 1)) : 0) ub(c2 | 0, 824, 96); v2 = Wa() | 0; Ua(c2 | 0); fb(v2 | 0); } l2 = a2 + 52 | 0; m2 = a2 + 12 | 0; if ((f2 | 0) > 0) f2 = 0; else { r = u2; return; } while (1) { Ti(a2, (f2 | 0) == 0); d2 = xc(o2, p2, l2) | 0; e2 = k[(k[d2 >> 2] | 0) + 8 >> 2] | 0; x = 0; k[t2 >> 2] = k[b2 >> 2]; k[t2 + 4 >> 2] = k[b2 + 4 >> 2]; k[t2 + 8 >> 2] = k[b2 + 8 >> 2]; e2 = Aa(e2 | 0, d2 | 0, t2 | 0) | 0; w2 = x; x = 0; if (w2 & 1) { e2 = 32; break; } w2 = k[(k[d2 >> 2] | 0) + 16 >> 2] | 0; k[v2 >> 2] = e2; x = 0; oa(w2 | 0, d2 | 0, v2 | 0, n2 | 0, a2 | 0, (i2[m2 >> 0] | 0) != 0 | 0); w2 = x; x = 0; if (w2 & 1) { e2 = 30; break; } e2 = k[v2 >> 2] | 0; k[v2 >> 2] = 0; if (e2) Lb[k[(k[e2 >> 2] | 0) + 4 >> 2] & 255](e2); if (!c2) c2 = 0; else { c2 = c2 + h2 | 0; k[j2 >> 2] = c2; k[g2 >> 2] = (k[g2 >> 2] | 0) - h2; } e2 = (k[q2 >> 2] | 0) == 0; f2 = (e2 & 1) + f2 | 0; if (d2) Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); if (!e2) { e2 = 34; break; } if ((f2 | 0) >= (k[s2 >> 2] | 0)) { e2 = 34; break; } } if ((e2 | 0) == 30) { c2 = Wa() | 0; e2 = k[v2 >> 2] | 0; k[v2 >> 2] = 0; if (e2) Lb[k[(k[e2 >> 2] | 0) + 4 >> 2] & 255](e2); } else if ((e2 | 0) == 32) { c2 = Wa() | 0; if (!d2) { w2 = c2; fb(w2 | 0); } } else if ((e2 | 0) == 34) { r = u2; return; } Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); w2 = c2; fb(w2 | 0); } } else c2 = 2; while (0); d2 = Va(16) | 0; x = 0; e2 = Da(1) | 0; w2 = x; x = 0; if (!(w2 & 1) ? (x = 0, Fa(7, d2 | 0, c2 | 0, e2 | 0), w2 = x, x = 0, !(w2 & 1)) : 0) ub(d2 | 0, 824, 96); w2 = Wa() | 0; Ua(d2 | 0); fb(w2 | 0); } function Si(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0; if ((Wi(a2) | 0) << 24 >> 24 != -40) { b2 = Va(16) | 0; x = 0; c2 = Da(1) | 0; e2 = x; x = 0; if (!(e2 & 1) ? (x = 0, Fa(7, b2 | 0, 5, c2 | 0), e2 = x, x = 0, !(e2 & 1)) : 0) ub(b2 | 0, 824, 96); e2 = Wa() | 0; Ua(b2 | 0); fb(e2 | 0); } b2 = Wi(a2) | 0; if (b2 << 24 >> 24 == -38) return; while (1) { d2 = ((Vi(a2) | 0) & 255) << 8; d2 = d2 | (Vi(a2) | 0) & 255; b2 = Xi(a2, b2) | 0; c2 = -2 - b2 + d2 | 0; if ((c2 | 0) < 0) break; if ((c2 | 0) > 0) { b2 = d2 + -2 - b2 | 0; c2 = 0; do { Vi(a2) | 0; c2 = c2 + 1 | 0; } while ((c2 | 0) != (b2 | 0)); } b2 = Wi(a2) | 0; if (b2 << 24 >> 24 == -38) { e2 = 8; break; } } if ((e2 | 0) == 8) return; b2 = Va(16) | 0; x = 0; c2 = Da(1) | 0; e2 = x; x = 0; if (!(e2 & 1) ? (x = 0, Fa(7, b2 | 0, 5, c2 | 0), e2 = x, x = 0, !(e2 & 1)) : 0) ub(b2 | 0, 824, 96); e2 = Wa() | 0; Ua(b2 | 0); fb(e2 | 0); } function Ti(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0; if (!b2) { if ((Vi(a2) | 0) << 24 >> 24 != -1) { b2 = Va(16) | 0; x = 0; c2 = Da(1) | 0; a2 = x; x = 0; if (!(a2 & 1) ? (x = 0, Fa(7, b2 | 0, 12, c2 | 0), a2 = x, x = 0, !(a2 & 1)) : 0) ub(b2 | 0, 824, 96); a2 = Wa() | 0; Ua(b2 | 0); fb(a2 | 0); } if ((Vi(a2) | 0) << 24 >> 24 != -38) { b2 = Va(16) | 0; x = 0; c2 = Da(1) | 0; a2 = x; x = 0; if (!(a2 & 1) ? (x = 0, Fa(7, b2 | 0, 5, c2 | 0), a2 = x, x = 0, !(a2 & 1)) : 0) ub(b2 | 0, 824, 96); a2 = Wa() | 0; Ua(b2 | 0); fb(a2 | 0); } } Vi(a2) | 0; Vi(a2) | 0; c2 = Vi(a2) | 0; d2 = c2 & 255; do if (c2 << 24 >> 24 == 1) { Vi(a2) | 0; c2 = 0; e2 = 20; } else { if ((d2 | 0) == (k[a2 + 32 >> 2] | 0)) { b2 = Vi(a2) | 0; if (!(c2 << 24 >> 24)) break; else { c2 = 0; e2 = 20; break; } } b2 = Va(16) | 0; x = 0; c2 = Da(1) | 0; a2 = x; x = 0; if (!(a2 & 1) ? (x = 0, Fa(7, b2 | 0, 2, c2 | 0), a2 = x, x = 0, !(a2 & 1)) : 0) ub(b2 | 0, 824, 96); a2 = Wa() | 0; Ua(b2 | 0); fb(a2 | 0); } while (0); if ((e2 | 0) == 20) while (1) { Vi(a2) | 0; c2 = c2 + 1 | 0; b2 = Vi(a2) | 0; if ((c2 | 0) == (d2 | 0)) break; else e2 = 20; } k[a2 + 36 >> 2] = b2 & 255; e2 = Vi(a2) | 0; c2 = a2 + 40 | 0; k[c2 >> 2] = e2 & 255; if ((e2 & 255) >= 3) { b2 = Va(16) | 0; x = 0; c2 = Da(1) | 0; a2 = x; x = 0; if (!(a2 & 1) ? (x = 0, Fa(7, b2 | 0, 5, c2 | 0), a2 = x, x = 0, !(a2 & 1)) : 0) ub(b2 | 0, 824, 96); a2 = Wa() | 0; Ua(b2 | 0); fb(a2 | 0); } if ((Vi(a2) | 0) << 24 >> 24) { b2 = Va(16) | 0; x = 0; c2 = Da(1) | 0; a2 = x; x = 0; if (!(a2 & 1) ? (x = 0, Fa(7, b2 | 0, 5, c2 | 0), a2 = x, x = 0, !(a2 & 1)) : 0) ub(b2 | 0, 824, 96); a2 = Wa() | 0; Ua(b2 | 0); fb(a2 | 0); } d2 = a2 + 28 | 0; if (k[d2 >> 2] | 0) return; b2 = k[a2 + 108 >> 2] | 0; if (!b2) b2 = k[a2 + 16 >> 2] | 0; if (!(k[c2 >> 2] | 0)) c2 = 1; else c2 = k[a2 + 32 >> 2] | 0; e2 = ia(c2, b2) | 0; a2 = ia(e2, ((k[a2 + 24 >> 2] | 0) + 7 | 0) / 8 | 0) | 0; k[d2 >> 2] = a2; return; } function Ui(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; if ((c2 | 0) <= 0) return; n2 = b2 + 4 | 0; o2 = b2 + 8 | 0; q2 = 0; do { p2 = Vi(a2) | 0; d2 = k[n2 >> 2] | 0; e2 = k[o2 >> 2] | 0; if (d2 >>> 0 >= e2 >>> 0) { f2 = k[b2 >> 2] | 0; g2 = f2; h2 = d2 - g2 + 1 | 0; if ((h2 | 0) < 0) { jj(b2); g2 = k[b2 >> 2] | 0; e2 = k[o2 >> 2] | 0; f2 = g2; } m2 = f2; d2 = e2 - m2 | 0; if (d2 >>> 0 < 1073741823) { d2 = d2 << 1; d2 = d2 >>> 0 < h2 >>> 0 ? h2 : d2; h2 = k[n2 >> 2] | 0; e2 = h2 - m2 | 0; if (!d2) { l2 = 0; j2 = 0; d2 = h2; } else r2 = 10; } else { e2 = k[n2 >> 2] | 0; d2 = 2147483647; h2 = e2; e2 = e2 - m2 | 0; r2 = 10; } if ((r2 | 0) == 10) { r2 = 0; l2 = d2; j2 = lj(d2) | 0; d2 = h2; } i2[j2 + e2 >> 0] = p2; m2 = d2 - m2 | 0; p2 = j2 + (e2 - m2) | 0; vw(p2 | 0, f2 | 0, m2 | 0) | 0; k[b2 >> 2] = p2; k[n2 >> 2] = j2 + (e2 + 1); k[o2 >> 2] = j2 + l2; if (g2) mj(g2); } else { i2[d2 >> 0] = p2; k[n2 >> 2] = (k[n2 >> 2] | 0) + 1; } q2 = q2 + 1 | 0; } while ((q2 | 0) != (c2 | 0)); return; } function Vi(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0; c2 = k[a2 >> 2] | 0; if (c2) { a2 = c2 + 12 | 0; b2 = k[a2 >> 2] | 0; if ((b2 | 0) == (k[c2 + 16 >> 2] | 0)) a2 = Ob[k[(k[c2 >> 2] | 0) + 40 >> 2] & 127](c2) | 0; else { k[a2 >> 2] = b2 + 1; a2 = l[b2 >> 0] | 0; } e2 = a2 & 255; return e2 | 0; } d2 = a2 + 8 | 0; e2 = k[d2 >> 2] | 0; if (e2) { a2 = a2 + 4 | 0; b2 = k[a2 >> 2] | 0; c2 = i2[b2 >> 0] | 0; if (!b2) { e2 = c2; return e2 | 0; } k[a2 >> 2] = b2 + 1; k[d2 >> 2] = e2 + -1; e2 = c2; return e2 | 0; } a2 = Va(16) | 0; x = 0; b2 = Da(1) | 0; e2 = x; x = 0; if (e2 & 1) { e2 = Wa() | 0; Ua(a2 | 0); fb(e2 | 0); } x = 0; Fa(7, a2 | 0, 4, b2 | 0); e2 = x; x = 0; if (e2 & 1) { e2 = Wa() | 0; Ua(a2 | 0); fb(e2 | 0); } else ub(a2 | 0, 824, 96); return 0; } function Wi(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0; c2 = r; r = r + 176 | 0; b2 = c2 + 152 | 0; i3 = c2 + 16 | 0; g2 = c2; h2 = Vi(a2) | 0; d2 = h2 & 255; if (h2 << 24 >> 24 == -1) { do b2 = Vi(a2) | 0; while (b2 << 24 >> 24 == -1); r = c2; return b2 | 0; } h2 = i3 + 56 | 0; f2 = i3 + 4 | 0; k[i3 >> 2] = 36160; k[h2 >> 2] = 36180; x = 0; ra(62, i3 + 56 | 0, f2 | 0); e2 = x; x = 0; if (e2 & 1) { i3 = Wa() | 0; qn(h2); fb(i3 | 0); } k[i3 + 128 >> 2] = 0; k[i3 + 132 >> 2] = -1; k[i3 >> 2] = 36200; k[i3 + 56 >> 2] = 36220; x = 0; qa(180, f2 | 0); e2 = x; x = 0; do if (e2 & 1) b2 = Wa() | 0; else { k[f2 >> 2] = 36236; e2 = i3 + 36 | 0; k[e2 >> 2] = 0; k[e2 + 4 >> 2] = 0; k[e2 + 8 >> 2] = 0; k[e2 + 12 >> 2] = 0; k[i3 + 52 >> 2] = 16; k[b2 >> 2] = 0; k[b2 + 4 >> 2] = 0; k[b2 + 8 >> 2] = 0; x = 0; ra(63, f2 | 0, b2 | 0); c2 = x; x = 0; if (c2 & 1) { i3 = Wa() | 0; Sm(b2); Sm(e2); xn(f2); b2 = i3; break; } Sm(b2); k[i3 + ((k[(k[i3 >> 2] | 0) + -12 >> 2] | 0) + 76) >> 2] = 48; x = 0; b2 = va(28, i3 | 0, 50907, 62) | 0; c2 = x; x = 0; if (!(c2 & 1) ? (c2 = b2 + ((k[(k[b2 >> 2] | 0) + -12 >> 2] | 0) + 4) | 0, k[c2 >> 2] = k[c2 >> 2] & -75 | 8, c2 = b2 + ((k[(k[b2 >> 2] | 0) + -12 >> 2] | 0) + 4) | 0, k[c2 >> 2] = k[c2 >> 2] | 16384, k[b2 + ((k[(k[b2 >> 2] | 0) + -12 >> 2] | 0) + 12) >> 2] = 2, x = 0, Aa(38, b2 | 0, d2 | 0) | 0, d2 = x, x = 0, !(d2 & 1)) : 0) { c2 = Va(16) | 0; x = 0; ra(64, g2 | 0, f2 | 0); d2 = x; x = 0; if (!(d2 & 1)) { x = 0; b2 = Da(1) | 0; d2 = x; x = 0; if (!(d2 & 1) ? (x = 0, Ja(36, c2 | 0, 12, b2 | 0, g2 | 0), d2 = x, x = 0, !(d2 & 1)) : 0) { x = 0; Fa(6, c2 | 0, 824, 96); x = 0; a2 = 0; } else a2 = 1; b2 = Wa() | 0; Sm(g2); if (!a2) { g2 = b2; k[i3 >> 2] = 36200; k[h2 >> 2] = 36220; k[f2 >> 2] = 36236; Sm(e2); xn(f2); qn(h2); fb(g2 | 0); } } else b2 = Wa() | 0; Ua(c2 | 0); g2 = b2; k[i3 >> 2] = 36200; k[h2 >> 2] = 36220; k[f2 >> 2] = 36236; Sm(e2); xn(f2); qn(h2); fb(g2 | 0); } g2 = Wa() | 0; k[i3 >> 2] = 36200; k[h2 >> 2] = 36220; k[f2 >> 2] = 36236; Sm(e2); xn(f2); qn(h2); fb(g2 | 0); } while (0); i3 = b2; qn(h2); fb(i3 | 0); return 0; } function Xi(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; c2 = r; r = r + 320 | 0; h2 = c2 + 300 | 0; l2 = c2 + 152 | 0; i3 = c2 + 288 | 0; m2 = c2 + 16 | 0; j2 = c2; switch (b2 << 24 >> 24) { case -9: { n2 = (Vi(a2) | 0) & 255; k[a2 + 24 >> 2] = n2; n2 = ((Vi(a2) | 0) & 255) << 8 | (Vi(a2) | 0) & 255; m2 = ((Vi(a2) | 0) & 255) << 8 | (Vi(a2) | 0) & 255; k[a2 + 16 >> 2] = m2; k[a2 + 20 >> 2] = n2; n2 = (Vi(a2) | 0) & 255; k[a2 + 32 >> 2] = n2; n2 = 6; r = c2; return n2 | 0; } case -8: { n2 = Yi(a2) | 0; r = c2; return n2 | 0; } case -24: { n2 = Zi(a2) | 0; r = c2; return n2 | 0; } case -53: case -54: case -55: case -57: case -58: case -59: case -61: case -62: case -63: case -64: { g2 = l2 + 56 | 0; e2 = l2 + 4 | 0; k[l2 >> 2] = 36160; k[g2 >> 2] = 36180; x = 0; ra(62, l2 + 56 | 0, e2 | 0); m2 = x; x = 0; if (m2 & 1) { n2 = Wa() | 0; qn(g2); fb(n2 | 0); } k[l2 + 128 >> 2] = 0; k[l2 + 132 >> 2] = -1; k[l2 >> 2] = 36200; k[l2 + 56 >> 2] = 36220; x = 0; qa(180, e2 | 0); m2 = x; x = 0; do if (m2 & 1) a2 = Wa() | 0; else { k[e2 >> 2] = 36236; f2 = l2 + 36 | 0; k[f2 >> 2] = 0; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = 0; k[f2 + 12 >> 2] = 0; k[l2 + 52 >> 2] = 16; k[h2 >> 2] = 0; k[h2 + 4 >> 2] = 0; k[h2 + 8 >> 2] = 0; x = 0; ra(63, e2 | 0, h2 | 0); m2 = x; x = 0; if (m2 & 1) { a2 = Wa() | 0; Sm(h2); Sm(f2); xn(e2); break; } Sm(h2); x = 0; a2 = va(28, l2 | 0, 50970, 26) | 0; m2 = x; x = 0; do if ((!(m2 & 1) ? (x = 0, d2 = Aa(38, a2 | 0, b2 & 255 | 0) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) ? (x = 0, va(28, d2 | 0, 50997, 18) | 0, m2 = x, x = 0, !(m2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, i3 | 0, e2 | 0); m2 = x; x = 0; if (!(m2 & 1)) { x = 0; a2 = Da(1) | 0; m2 = x; x = 0; if (!(m2 & 1) ? (x = 0, Ja(36, d2 | 0, 10, a2 | 0, i3 | 0), m2 = x, x = 0, !(m2 & 1)) : 0) { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } else c2 = 1; a2 = Wa() | 0; Sm(i3); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else n2 = 20; while (0); if ((n2 | 0) == 20) a2 = Wa() | 0; k[l2 >> 2] = 36200; k[g2 >> 2] = 36220; k[e2 >> 2] = 36236; Sm(f2); xn(e2); qn(g2); n2 = a2; fb(n2 | 0); } while (0); n2 = a2; qn(g2); fb(n2 | 0); } case -25: case -32: case -2: { n2 = 0; r = c2; return n2 | 0; } default: { i3 = m2 + 56 | 0; f2 = m2 + 4 | 0; k[m2 >> 2] = 36160; k[i3 >> 2] = 36180; x = 0; ra(62, m2 + 56 | 0, f2 | 0); l2 = x; x = 0; if (l2 & 1) { n2 = Wa() | 0; qn(i3); fb(n2 | 0); } k[m2 + 128 >> 2] = 0; k[m2 + 132 >> 2] = -1; k[m2 >> 2] = 36200; k[m2 + 56 >> 2] = 36220; x = 0; qa(180, f2 | 0); l2 = x; x = 0; do if (l2 & 1) a2 = Wa() | 0; else { k[f2 >> 2] = 36236; g2 = m2 + 36 | 0; k[g2 >> 2] = 0; k[g2 + 4 >> 2] = 0; k[g2 + 8 >> 2] = 0; k[g2 + 12 >> 2] = 0; k[m2 + 52 >> 2] = 16; k[h2 >> 2] = 0; k[h2 + 4 >> 2] = 0; k[h2 + 8 >> 2] = 0; x = 0; ra(63, f2 | 0, h2 | 0); l2 = x; x = 0; if (l2 & 1) { a2 = Wa() | 0; Sm(h2); Sm(g2); xn(f2); break; } Sm(h2); x = 0; a2 = va(28, m2 | 0, 51016, 20) | 0; l2 = x; x = 0; do if ((!(l2 & 1) ? (x = 0, e2 = Aa(38, a2 | 0, b2 & 255 | 0) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) ? (x = 0, va(28, e2 | 0, 51037, 13) | 0, l2 = x, x = 0, !(l2 & 1)) : 0) { d2 = Va(16) | 0; x = 0; ra(64, j2 | 0, f2 | 0); l2 = x; x = 0; if (!(l2 & 1)) { x = 0; a2 = Da(1) | 0; l2 = x; x = 0; if (!(l2 & 1) ? (x = 0, Ja(36, d2 | 0, 11, a2 | 0, j2 | 0), l2 = x, x = 0, !(l2 & 1)) : 0) { x = 0; Fa(6, d2 | 0, 824, 96); x = 0; c2 = 0; } else c2 = 1; a2 = Wa() | 0; Sm(j2); if (!c2) break; } else a2 = Wa() | 0; Ua(d2 | 0); } else n2 = 40; while (0); if ((n2 | 0) == 40) a2 = Wa() | 0; k[m2 >> 2] = 36200; k[i3 >> 2] = 36220; k[f2 >> 2] = 36236; Sm(g2); xn(f2); qn(i3); n2 = a2; fb(n2 | 0); } while (0); n2 = a2; qn(i3); fb(n2 | 0); } } return 0; } function Yi(a2) { a2 = a2 | 0; var b2 = 0; if ((Vi(a2) | 0) << 24 >> 24 != 1) { a2 = 1; return a2 | 0; } b2 = ((Vi(a2) | 0) & 255) << 8; b2 = b2 | (Vi(a2) | 0) & 255; k[a2 + 52 >> 2] = b2; b2 = ((Vi(a2) | 0) & 255) << 8; b2 = b2 | (Vi(a2) | 0) & 255; k[a2 + 56 >> 2] = b2; b2 = ((Vi(a2) | 0) & 255) << 8; b2 = b2 | (Vi(a2) | 0) & 255; k[a2 + 60 >> 2] = b2; b2 = ((Vi(a2) | 0) & 255) << 8; b2 = b2 | (Vi(a2) | 0) & 255; k[a2 + 64 >> 2] = b2; b2 = ((Vi(a2) | 0) & 255) << 8; b2 = b2 | (Vi(a2) | 0) & 255; k[a2 + 68 >> 2] = b2; a2 = 11; return a2 | 0; } function Zi(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; c2 = r; r = r + 16 | 0; e2 = c2; k[e2 >> 2] = 0; f2 = e2 + 4 | 0; k[f2 >> 2] = 0; k[e2 + 8 >> 2] = 0; x = 0; Fa(9, a2 | 0, e2 | 0, 4); b2 = x; x = 0; a: do if (b2 & 1) d2 = 3; else { b2 = k[e2 >> 2] | 0; b: do if (!(yl(b2, 51051, 4) | 0)) { x = 0; b2 = ta(69, a2 | 0) | 0; g2 = x; x = 0; if (g2 & 1) { d2 = 3; break a; } b2 = b2 & 255; switch (b2 | 0) { case 3: case 2: case 1: case 0: { k[a2 + 44 >> 2] = b2; a2 = 5; b2 = k[e2 >> 2] | 0; break b; } case 5: case 4: { b2 = Va(16) | 0; x = 0; a2 = Da(1) | 0; g2 = x; x = 0; if (!(g2 & 1) ? (x = 0, Fa(7, b2 | 0, 7, a2 | 0), g2 = x, x = 0, !(g2 & 1)) : 0) { x = 0; Fa(6, b2 | 0, 824, 96); x = 0; d2 = 3; break a; } a2 = Wa() | 0; Ua(b2 | 0); break a; } default: { b2 = Va(16) | 0; x = 0; a2 = Da(1) | 0; g2 = x; x = 0; if (!(g2 & 1) ? (x = 0, Fa(7, b2 | 0, 5, a2 | 0), g2 = x, x = 0, !(g2 & 1)) : 0) { x = 0; Fa(6, b2 | 0, 824, 96); x = 0; d2 = 3; break a; } a2 = Wa() | 0; Ua(b2 | 0); break a; } } } else a2 = 4; while (0); if (!b2) { r = c2; return a2 | 0; } if ((k[f2 >> 2] | 0) != (b2 | 0)) k[f2 >> 2] = b2; mj(b2); r = c2; return a2 | 0; } while (0); if ((d2 | 0) == 3) a2 = Wa() | 0; b2 = k[e2 >> 2] | 0; if (!b2) fb(a2 | 0); if ((k[f2 >> 2] | 0) != (b2 | 0)) k[f2 >> 2] = b2; mj(b2); fb(a2 | 0); return 0; } function _i(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0; d2 = k[(k[a2 >> 2] | 0) + -12 >> 2] | 0; k[a2 + d2 >> 2] = 36200; b2 = a2 + (d2 + 56) | 0; k[b2 >> 2] = 36220; c2 = a2 + (d2 + 4) | 0; k[c2 >> 2] = 36236; Sm(a2 + (d2 + 36) | 0); xn(c2); qn(b2); return; } function $i(a2) { a2 = a2 | 0; return; } function aj(a2) { a2 = a2 | 0; mj(a2); return; } function bj(a2) { a2 = a2 | 0; i2[a2 >> 0] = 0; a2 = a2 + 4 | 0; k[a2 >> 2] = 0; k[a2 + 4 >> 2] = 0; k[a2 + 8 >> 2] = 0; k[a2 + 12 >> 2] = 0; k[a2 + 16 >> 2] = 0; k[a2 + 20 >> 2] = 0; k[a2 + 24 >> 2] = 0; k[a2 + 28 >> 2] = 0; return; } function cj(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0; e2 = r; r = r + 16 | 0; f2 = e2; b2 = Gi(b2) | 0; k[f2 >> 2] = b2; c2 = a2 + 28 | 0; d2 = k[c2 >> 2] | 0; if (d2 >>> 0 < (k[a2 + 32 >> 2] | 0) >>> 0) { k[d2 >> 2] = b2; k[c2 >> 2] = d2 + 4; k[f2 >> 2] = 0; r = e2; return; } x = 0; ra(57, a2 + 24 | 0, f2 | 0); a2 = x; x = 0; if (a2 & 1) { b2 = Wa() | 0; c2 = k[f2 >> 2] | 0; k[f2 >> 2] = 0; if (!c2) fb(b2 | 0); Lb[k[(k[c2 >> 2] | 0) + 4 >> 2] & 255](c2); fb(b2 | 0); } else { b2 = k[f2 >> 2] | 0; k[f2 >> 2] = 0; if (!b2) { r = e2; return; } Lb[k[(k[b2 >> 2] | 0) + 4 >> 2] & 255](b2); r = e2; return; } } function dj(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0; d2 = a2 + 4 | 0; k[d2 >> 2] = k[b2 >> 2]; k[d2 + 4 >> 2] = k[b2 + 4 >> 2]; k[d2 + 8 >> 2] = k[b2 + 8 >> 2]; Ni(a2, -1); Ni(a2, -40); d2 = a2 + 28 | 0; e2 = a2 + 24 | 0; b2 = k[e2 >> 2] | 0; if ((k[d2 >> 2] | 0) == (b2 | 0)) { Ni(a2, -1); Ni(a2, -39); a2 = a2 + 16 | 0; a2 = k[a2 >> 2] | 0; return a2 | 0; } else c2 = 0; do { f2 = k[b2 + (c2 << 2) >> 2] | 0; Mb[k[(k[f2 >> 2] | 0) + 8 >> 2] & 127](f2, a2); c2 = c2 + 1 | 0; b2 = k[e2 >> 2] | 0; } while (c2 >>> 0 < (k[d2 >> 2] | 0) - b2 >> 2 >>> 0); Ni(a2, -1); Ni(a2, -39); f2 = a2 + 16 | 0; f2 = k[f2 >> 2] | 0; return f2 | 0; } function ej(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; m2 = r; r = r + 48 | 0; h2 = m2 + 32 | 0; e2 = m2 + 12 | 0; i3 = m2 + 8 | 0; l2 = m2 + 4 | 0; n2 = m2; d2 = c2 + 36 | 0; do if (((((k[d2 >> 2] | 0) == 0 ? (k[c2 + 40 >> 2] | 0) == 0 : 0) ? (k[c2 + 44 >> 2] | 0) == 0 : 0) ? (k[c2 + 48 >> 2] | 0) == 0 : 0) ? (k[c2 + 52 >> 2] | 0) == 0 : 0) { d2 = k[c2 + 8 >> 2] | 0; if ((d2 | 0) <= 12) { f2 = a2 + 28 | 0; g2 = a2 + 32 | 0; break; } Oi(e2, (1 << d2) + -1 | 0, k[c2 + 20 >> 2] | 0); d2 = Fi(e2) | 0; k[i3 >> 2] = d2; f2 = a2 + 28 | 0; e2 = k[f2 >> 2] | 0; g2 = a2 + 32 | 0; if (e2 >>> 0 < (k[g2 >> 2] | 0) >>> 0) { k[e2 >> 2] = d2; k[f2 >> 2] = e2 + 4; k[i3 >> 2] = 0; break; } x = 0; ra(57, a2 + 24 | 0, i3 | 0); h2 = x; x = 0; if (!(h2 & 1)) { d2 = k[i3 >> 2] | 0; k[i3 >> 2] = 0; if (!d2) break; Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); break; } c2 = Wa() | 0; d2 = k[i3 >> 2] | 0; k[i3 >> 2] = 0; if (!d2) { n2 = c2; fb(n2 | 0); } Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); n2 = c2; fb(n2 | 0); } else j2 = 6; while (0); do if ((j2 | 0) == 6) { d2 = Fi(d2) | 0; k[h2 >> 2] = d2; f2 = a2 + 28 | 0; e2 = k[f2 >> 2] | 0; g2 = a2 + 32 | 0; if (e2 >>> 0 < (k[g2 >> 2] | 0) >>> 0) { k[e2 >> 2] = d2; k[f2 >> 2] = e2 + 4; k[h2 >> 2] = 0; break; } x = 0; ra(57, a2 + 24 | 0, h2 | 0); j2 = x; x = 0; if (!(j2 & 1)) { d2 = k[h2 >> 2] | 0; k[h2 >> 2] = 0; if (!d2) break; Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); break; } c2 = Wa() | 0; d2 = k[h2 >> 2] | 0; k[h2 >> 2] = 0; if (!d2) { n2 = c2; fb(n2 | 0); } Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); n2 = c2; fb(n2 | 0); } while (0); d2 = a2 + 20 | 0; e2 = (k[d2 >> 2] | 0) + 1 | 0; k[d2 >> 2] = e2; d2 = k[c2 + 24 >> 2] | 0; h2 = (d2 | 0) == 0 ? 1 : k[c2 + 16 >> 2] | 0; d2 = Hi(e2, h2, k[c2 + 20 >> 2] | 0, d2) | 0; k[l2 >> 2] = d2; e2 = k[f2 >> 2] | 0; do if (e2 >>> 0 < (k[g2 >> 2] | 0) >>> 0) { k[e2 >> 2] = d2; k[f2 >> 2] = e2 + 4; k[l2 >> 2] = 0; } else { x = 0; ra(57, a2 + 24 | 0, l2 | 0); j2 = x; x = 0; if (!(j2 & 1)) { d2 = k[l2 >> 2] | 0; k[l2 >> 2] = 0; if (!d2) break; Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); break; } c2 = Wa() | 0; d2 = k[l2 >> 2] | 0; k[l2 >> 2] = 0; if (!d2) { n2 = c2; fb(n2 | 0); } Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); n2 = c2; fb(n2 | 0); } while (0); i3 = lj(104) | 0; k[i3 >> 2] = 36820; k[i3 + 4 >> 2] = h2; e2 = i3 + 8 | 0; k[e2 >> 2] = k[b2 >> 2]; k[e2 + 4 >> 2] = k[b2 + 4 >> 2]; k[e2 + 8 >> 2] = k[b2 + 8 >> 2]; e2 = i3 + 20 | 0; d2 = e2 + 84 | 0; do { k[e2 >> 2] = k[c2 >> 2]; e2 = e2 + 4 | 0; c2 = c2 + 4 | 0; } while ((e2 | 0) < (d2 | 0)); k[n2 >> 2] = i3; c2 = k[f2 >> 2] | 0; if (c2 >>> 0 < (k[g2 >> 2] | 0) >>> 0) { k[c2 >> 2] = i3; k[f2 >> 2] = c2 + 4; k[n2 >> 2] = 0; r = m2; return; } x = 0; ra(57, a2 + 24 | 0, n2 | 0); a2 = x; x = 0; if (a2 & 1) { c2 = Wa() | 0; d2 = k[n2 >> 2] | 0; k[n2 >> 2] = 0; if (!d2) { n2 = c2; fb(n2 | 0); } Lb[k[(k[d2 >> 2] | 0) + 4 >> 2] & 255](d2); n2 = c2; fb(n2 | 0); } else { c2 = k[n2 >> 2] | 0; k[n2 >> 2] = 0; if (!c2) { r = m2; return; } Lb[k[(k[c2 >> 2] | 0) + 4 >> 2] & 255](c2); r = m2; return; } } function fj(a2, b2, c2, d2, e2, f2, g2, h2, j2, l2, m2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; j2 = j2 | 0; l2 = l2 | 0; m2 = m2 | 0; var n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0; p2 = r; r = r + 96 | 0; o2 = p2; n2 = sc(a2, b2, o2, 0) | 0; if (n2) { e2 = n2; r = p2; return e2 | 0; } i2[o2 + 32 >> 0] = 0; s2 = k[o2 + 8 >> 2] | 0; u2 = k[o2 >> 2] | 0; t2 = k[o2 + 4 >> 2] | 0; n2 = ia(t2, u2) | 0; q2 = k[o2 + 16 >> 2] | 0; n2 = ia(ia(n2, (s2 | 0) < 9 ? 1 : 2) | 0, q2) | 0; k[d2 >> 2] = n2; n2 = Pl(n2) | 0; k[c2 >> 2] = n2; k[e2 >> 2] = u2; k[f2 >> 2] = t2; k[g2 >> 2] = s2; k[h2 >> 2] = k[o2 + 12 >> 2]; k[j2 >> 2] = q2; k[l2 >> 2] = k[o2 + 20 >> 2]; k[m2 >> 2] = k[o2 + 24 >> 2]; e2 = tc(n2, k[d2 >> 2] | 0, a2, b2, 0, 0) | 0; r = p2; return e2 | 0; } function gj(a2, b2, c2, d2, e2, f2, g2, h2, i3) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; g2 = g2 | 0; h2 = h2 | 0; i3 = i3 | 0; var j2 = 0, l2 = 0, m2 = 0, n2 = 0; m2 = r; r = r + 96 | 0; j2 = m2 + 4 | 0; g2 = m2; l2 = j2; n2 = l2 + 84 | 0; do { k[l2 >> 2] = 0; l2 = l2 + 4 | 0; } while ((l2 | 0) < (n2 | 0)); k[j2 + 16 >> 2] = f2; k[j2 + 8 >> 2] = e2; k[j2 >> 2] = c2; k[j2 + 4 >> 2] = d2; c2 = Pl(b2) | 0; k[h2 >> 2] = c2; k[g2 >> 2] = 0; c2 = rc(h2, b2, g2, a2, b2, j2, 0) | 0; k[i3 >> 2] = k[g2 >> 2]; r = m2; return c2 | 0; } function hj(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0; c2 = r; r = r + 16 | 0; k[c2 >> 2] = b2; b2 = k[9320] | 0; ml(b2, a2, c2) | 0; el(10, b2) | 0; Pa(); } function ij(a2) { a2 = a2 | 0; Ta(51337, 51366, 1164, 51442); } function jj(a2) { a2 = a2 | 0; Ta(51463, 51486, 303, 51442); } function kj() { var a2 = 0, b2 = 0; a2 = r; r = r + 16 | 0; if (!(mb(37024, 4) | 0)) { b2 = ib(k[9255] | 0) | 0; r = a2; return b2 | 0; } else hj(51562, a2); return 0; } function lj(a2) { a2 = a2 | 0; var b2 = 0; b2 = (a2 | 0) == 0 ? 1 : a2; a2 = Pl(b2) | 0; a: do if (!a2) { while (1) { a2 = uj() | 0; if (!a2) break; $b[a2 & 7](); a2 = Pl(b2) | 0; if (a2) break a; } b2 = Va(4) | 0; k[b2 >> 2] = 36844; ub(b2 | 0, 592, 78); } while (0); return a2 | 0; } function mj(a2) { a2 = a2 | 0; Ql(a2); return; } function nj(a2) { a2 = a2 | 0; mj(a2); return; } function oj(a2) { a2 = a2 | 0; k[a2 >> 2] = 36844; return; } function pj(a2) { a2 = a2 | 0; return; } function qj(a2) { a2 = a2 | 0; mj(a2); return; } function rj(a2) { a2 = a2 | 0; return 51611; } function sj(a2) { a2 = a2 | 0; var b2 = 0; b2 = r; r = r + 16 | 0; x = 0; Ga(a2 | 0); a2 = x; x = 0; if (!(a2 & 1)) { x = 0; ra(85, 51626, b2 | 0); x = 0; } a2 = Wa(0) | 0; cb(a2 | 0) | 0; x = 0; ra(85, 51666, b2 + 8 | 0); x = 0; a2 = Wa(0) | 0; x = 0; Ga(3); b2 = x; x = 0; if (b2 & 1) { b2 = Wa(0) | 0; oc(b2); } else oc(a2); } function tj() { var a2 = 0, b2 = 0, c2 = 0; x = 0; a2 = Da(2) | 0; c2 = x; x = 0; if (c2 & 1) { c2 = Wa(0) | 0; oc(c2); } if (((a2 | 0) != 0 ? (b2 = k[a2 >> 2] | 0, (b2 | 0) != 0) : 0) ? (c2 = b2 + 48 | 0, (k[c2 >> 2] & -256 | 0) == 1126902528 ? (k[c2 + 4 >> 2] | 0) == 1129074247 : 0) : 0) sj(k[b2 + 12 >> 2] | 0); c2 = k[9208] | 0; k[9208] = c2 + 0; sj(c2); } function uj() { var a2 = 0; a2 = k[9214] | 0; k[9214] = a2 + 0; return a2 | 0; } function vj(a2) { a2 = a2 | 0; return; } function wj(a2) { a2 = a2 | 0; k[a2 >> 2] = 36868; dk(a2 + 4 | 0); return; } function xj(a2) { a2 = a2 | 0; wj(a2); mj(a2); return; } function yj(a2) { a2 = a2 | 0; return k[a2 + 4 >> 2] | 0; } function zj(a2) { a2 = a2 | 0; return; } function Aj(a2) { a2 = a2 | 0; k[a2 >> 2] = 36888; return; } function Bj(a2) { a2 = a2 | 0; return; } function Cj(a2) { a2 = a2 | 0; mj(a2); return; } function Dj(a2) { a2 = a2 | 0; return 51716; } function Ej(a2) { a2 = a2 | 0; return; } function Fj(a2) { a2 = a2 | 0; return; } function Gj(a2) { a2 = a2 | 0; return; } function Hj(a2) { a2 = a2 | 0; mj(a2); return; } function Ij(a2) { a2 = a2 | 0; mj(a2); return; } function Jj(a2) { a2 = a2 | 0; mj(a2); return; } function Kj(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0; g2 = r; r = r + 64 | 0; f2 = g2; if ((a2 | 0) != (b2 | 0)) if ((b2 | 0) != 0 ? (e2 = Qj(b2, 656, 672, 0) | 0, (e2 | 0) != 0) : 0) { b2 = f2; d2 = b2 + 56 | 0; do { k[b2 >> 2] = 0; b2 = b2 + 4 | 0; } while ((b2 | 0) < (d2 | 0)); k[f2 >> 2] = e2; k[f2 + 8 >> 2] = a2; k[f2 + 12 >> 2] = -1; k[f2 + 48 >> 2] = 1; cc[k[(k[e2 >> 2] | 0) + 28 >> 2] & 63](e2, f2, k[c2 >> 2] | 0, 1); if ((k[f2 + 24 >> 2] | 0) == 1) { k[c2 >> 2] = k[f2 + 16 >> 2]; b2 = 1; } else b2 = 0; } else b2 = 0; else b2 = 1; r = g2; return b2 | 0; } function Lj(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0; a2 = b2 + 16 | 0; e2 = k[a2 >> 2] | 0; do if (e2) { if ((e2 | 0) != (c2 | 0)) { d2 = b2 + 36 | 0; k[d2 >> 2] = (k[d2 >> 2] | 0) + 1; k[b2 + 24 >> 2] = 2; i2[b2 + 54 >> 0] = 1; break; } a2 = b2 + 24 | 0; if ((k[a2 >> 2] | 0) == 2) k[a2 >> 2] = d2; } else { k[a2 >> 2] = c2; k[b2 + 24 >> 2] = d2; k[b2 + 36 >> 2] = 1; } while (0); return; } function Mj(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; if ((a2 | 0) == (k[b2 + 8 >> 2] | 0)) Lj(0, b2, c2, d2); return; } function Nj(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; if ((a2 | 0) == (k[b2 + 8 >> 2] | 0)) Lj(0, b2, c2, d2); else { a2 = k[a2 + 8 >> 2] | 0; cc[k[(k[a2 >> 2] | 0) + 28 >> 2] & 63](a2, b2, c2, d2); } return; } function Oj(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0; f2 = k[a2 + 4 >> 2] | 0; e2 = f2 >> 8; if (f2 & 1) e2 = k[(k[c2 >> 2] | 0) + e2 >> 2] | 0; a2 = k[a2 >> 2] | 0; cc[k[(k[a2 >> 2] | 0) + 28 >> 2] & 63](a2, b2, c2 + e2 | 0, (f2 & 2 | 0) != 0 ? d2 : 2); return; } function Pj(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0; a: do if ((a2 | 0) != (k[b2 + 8 >> 2] | 0)) { f2 = k[a2 + 12 >> 2] | 0; e2 = a2 + 16 + (f2 << 3) | 0; Oj(a2 + 16 | 0, b2, c2, d2); if ((f2 | 0) > 1) { f2 = b2 + 54 | 0; a2 = a2 + 24 | 0; do { Oj(a2, b2, c2, d2); if (i2[f2 >> 0] | 0) break a; a2 = a2 + 8 | 0; } while (a2 >>> 0 < e2 >>> 0); } } else Lj(0, b2, c2, d2); while (0); return; } function Qj(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; q2 = r; r = r + 64 | 0; p2 = q2; o2 = k[a2 >> 2] | 0; n2 = a2 + (k[o2 + -8 >> 2] | 0) | 0; o2 = k[o2 + -4 >> 2] | 0; k[p2 >> 2] = c2; k[p2 + 4 >> 2] = a2; k[p2 + 8 >> 2] = b2; k[p2 + 12 >> 2] = d2; d2 = p2 + 16 | 0; a2 = p2 + 20 | 0; b2 = p2 + 24 | 0; e2 = p2 + 28 | 0; f2 = p2 + 32 | 0; g2 = p2 + 40 | 0; h2 = (o2 | 0) == (c2 | 0); l2 = d2; m2 = l2 + 36 | 0; do { k[l2 >> 2] = 0; l2 = l2 + 4 | 0; } while ((l2 | 0) < (m2 | 0)); j[d2 + 36 >> 1] = 0; i2[d2 + 38 >> 0] = 0; a: do if (h2) { k[p2 + 48 >> 2] = 1; Sb[k[(k[c2 >> 2] | 0) + 20 >> 2] & 15](c2, p2, n2, n2, 1, 0); d2 = (k[b2 >> 2] | 0) == 1 ? n2 : 0; } else { Jb[k[(k[o2 >> 2] | 0) + 24 >> 2] & 15](o2, p2, n2, 1, 0); switch (k[p2 + 36 >> 2] | 0) { case 0: { d2 = (k[g2 >> 2] | 0) == 1 & (k[e2 >> 2] | 0) == 1 & (k[f2 >> 2] | 0) == 1 ? k[a2 >> 2] | 0 : 0; break a; } case 1: break; default: { d2 = 0; break a; } } if ((k[b2 >> 2] | 0) != 1 ? !((k[g2 >> 2] | 0) == 0 & (k[e2 >> 2] | 0) == 1 & (k[f2 >> 2] | 0) == 1) : 0) { d2 = 0; break; } d2 = k[d2 >> 2] | 0; } while (0); r = q2; return d2 | 0; } function Rj(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; i2[b2 + 53 >> 0] = 1; do if ((k[b2 + 4 >> 2] | 0) == (d2 | 0)) { i2[b2 + 52 >> 0] = 1; d2 = b2 + 16 | 0; a2 = k[d2 >> 2] | 0; if (!a2) { k[d2 >> 2] = c2; k[b2 + 24 >> 2] = e2; k[b2 + 36 >> 2] = 1; if (!((e2 | 0) == 1 ? (k[b2 + 48 >> 2] | 0) == 1 : 0)) break; i2[b2 + 54 >> 0] = 1; break; } if ((a2 | 0) != (c2 | 0)) { e2 = b2 + 36 | 0; k[e2 >> 2] = (k[e2 >> 2] | 0) + 1; i2[b2 + 54 >> 0] = 1; break; } a2 = b2 + 24 | 0; d2 = k[a2 >> 2] | 0; if ((d2 | 0) == 2) { k[a2 >> 2] = e2; d2 = e2; } if ((d2 | 0) == 1 ? (k[b2 + 48 >> 2] | 0) == 1 : 0) i2[b2 + 54 >> 0] = 1; } while (0); return; } function Sj(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0; a: do if ((a2 | 0) == (k[b2 + 8 >> 2] | 0)) { if ((k[b2 + 4 >> 2] | 0) == (c2 | 0) ? (f2 = b2 + 28 | 0, (k[f2 >> 2] | 0) != 1) : 0) k[f2 >> 2] = d2; } else { if ((a2 | 0) != (k[b2 >> 2] | 0)) { q2 = k[a2 + 12 >> 2] | 0; h2 = a2 + 16 + (q2 << 3) | 0; Uj(a2 + 16 | 0, b2, c2, d2, e2); f2 = a2 + 24 | 0; if ((q2 | 0) <= 1) break; g2 = k[a2 + 8 >> 2] | 0; if ((g2 & 2 | 0) == 0 ? (j2 = b2 + 36 | 0, (k[j2 >> 2] | 0) != 1) : 0) { if (!(g2 & 1)) { g2 = b2 + 54 | 0; while (1) { if (i2[g2 >> 0] | 0) break a; if ((k[j2 >> 2] | 0) == 1) break a; Uj(f2, b2, c2, d2, e2); f2 = f2 + 8 | 0; if (f2 >>> 0 >= h2 >>> 0) break a; } } g2 = b2 + 24 | 0; a2 = b2 + 54 | 0; while (1) { if (i2[a2 >> 0] | 0) break a; if ((k[j2 >> 2] | 0) == 1 ? (k[g2 >> 2] | 0) == 1 : 0) break a; Uj(f2, b2, c2, d2, e2); f2 = f2 + 8 | 0; if (f2 >>> 0 >= h2 >>> 0) break a; } } g2 = b2 + 54 | 0; while (1) { if (i2[g2 >> 0] | 0) break a; Uj(f2, b2, c2, d2, e2); f2 = f2 + 8 | 0; if (f2 >>> 0 >= h2 >>> 0) break a; } } if ((k[b2 + 16 >> 2] | 0) != (c2 | 0) ? (p2 = b2 + 20 | 0, (k[p2 >> 2] | 0) != (c2 | 0)) : 0) { k[b2 + 32 >> 2] = d2; m2 = b2 + 44 | 0; if ((k[m2 >> 2] | 0) == 4) break; g2 = k[a2 + 12 >> 2] | 0; h2 = a2 + 16 + (g2 << 3) | 0; j2 = b2 + 52 | 0; d2 = b2 + 53 | 0; n2 = b2 + 54 | 0; l2 = a2 + 8 | 0; o2 = b2 + 24 | 0; b: do if ((g2 | 0) > 0) { g2 = 0; f2 = 0; a2 = a2 + 16 | 0; while (1) { i2[j2 >> 0] = 0; i2[d2 >> 0] = 0; Tj(a2, b2, c2, c2, 1, e2); if (i2[n2 >> 0] | 0) { q2 = 20; break b; } do if (i2[d2 >> 0] | 0) { if (!(i2[j2 >> 0] | 0)) if (!(k[l2 >> 2] & 1)) { f2 = 1; q2 = 20; break b; } else { f2 = 1; break; } if ((k[o2 >> 2] | 0) == 1) break b; if (!(k[l2 >> 2] & 2)) break b; else { g2 = 1; f2 = 1; } } while (0); a2 = a2 + 8 | 0; if (a2 >>> 0 >= h2 >>> 0) { q2 = 20; break; } } } else { g2 = 0; f2 = 0; q2 = 20; } while (0); do if ((q2 | 0) == 20) { if ((!g2 ? (k[p2 >> 2] = c2, c2 = b2 + 40 | 0, k[c2 >> 2] = (k[c2 >> 2] | 0) + 1, (k[b2 + 36 >> 2] | 0) == 1) : 0) ? (k[o2 >> 2] | 0) == 2 : 0) { i2[n2 >> 0] = 1; if (f2) break; } else q2 = 24; if ((q2 | 0) == 24 ? f2 : 0) break; k[m2 >> 2] = 4; break a; } while (0); k[m2 >> 2] = 3; break; } if ((d2 | 0) == 1) k[b2 + 32 >> 2] = 1; } while (0); return; } function Tj(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0; h2 = k[a2 + 4 >> 2] | 0; g2 = h2 >> 8; if (h2 & 1) g2 = k[(k[d2 >> 2] | 0) + g2 >> 2] | 0; a2 = k[a2 >> 2] | 0; Sb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 15](a2, b2, c2, d2 + g2 | 0, (h2 & 2 | 0) != 0 ? e2 : 2, f2); return; } function Uj(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0; g2 = k[a2 + 4 >> 2] | 0; f2 = g2 >> 8; if (g2 & 1) f2 = k[(k[c2 >> 2] | 0) + f2 >> 2] | 0; a2 = k[a2 >> 2] | 0; Jb[k[(k[a2 >> 2] | 0) + 24 >> 2] & 15](a2, b2, c2 + f2 | 0, (g2 & 2 | 0) != 0 ? d2 : 2, e2); return; } function Vj(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0; a: do if ((a2 | 0) == (k[b2 + 8 >> 2] | 0)) { if ((k[b2 + 4 >> 2] | 0) == (c2 | 0) ? (f2 = b2 + 28 | 0, (k[f2 >> 2] | 0) != 1) : 0) k[f2 >> 2] = d2; } else { if ((a2 | 0) != (k[b2 >> 2] | 0)) { h2 = k[a2 + 8 >> 2] | 0; Jb[k[(k[h2 >> 2] | 0) + 24 >> 2] & 15](h2, b2, c2, d2, e2); break; } if ((k[b2 + 16 >> 2] | 0) != (c2 | 0) ? (g2 = b2 + 20 | 0, (k[g2 >> 2] | 0) != (c2 | 0)) : 0) { k[b2 + 32 >> 2] = d2; d2 = b2 + 44 | 0; if ((k[d2 >> 2] | 0) == 4) break; f2 = b2 + 52 | 0; i2[f2 >> 0] = 0; j2 = b2 + 53 | 0; i2[j2 >> 0] = 0; a2 = k[a2 + 8 >> 2] | 0; Sb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 15](a2, b2, c2, c2, 1, e2); if (i2[j2 >> 0] | 0) { if (!(i2[f2 >> 0] | 0)) { f2 = 1; h2 = 13; } } else { f2 = 0; h2 = 13; } do if ((h2 | 0) == 13) { k[g2 >> 2] = c2; j2 = b2 + 40 | 0; k[j2 >> 2] = (k[j2 >> 2] | 0) + 1; if ((k[b2 + 36 >> 2] | 0) == 1 ? (k[b2 + 24 >> 2] | 0) == 2 : 0) { i2[b2 + 54 >> 0] = 1; if (f2) break; } else h2 = 16; if ((h2 | 0) == 16 ? f2 : 0) break; k[d2 >> 2] = 4; break a; } while (0); k[d2 >> 2] = 3; break; } if ((d2 | 0) == 1) k[b2 + 32 >> 2] = 1; } while (0); return; } function Wj(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0; do if ((a2 | 0) == (k[b2 + 8 >> 2] | 0)) { if ((k[b2 + 4 >> 2] | 0) == (c2 | 0) ? (g2 = b2 + 28 | 0, (k[g2 >> 2] | 0) != 1) : 0) k[g2 >> 2] = d2; } else if ((a2 | 0) == (k[b2 >> 2] | 0)) { if ((k[b2 + 16 >> 2] | 0) != (c2 | 0) ? (f2 = b2 + 20 | 0, (k[f2 >> 2] | 0) != (c2 | 0)) : 0) { k[b2 + 32 >> 2] = d2; k[f2 >> 2] = c2; e2 = b2 + 40 | 0; k[e2 >> 2] = (k[e2 >> 2] | 0) + 1; if ((k[b2 + 36 >> 2] | 0) == 1 ? (k[b2 + 24 >> 2] | 0) == 2 : 0) i2[b2 + 54 >> 0] = 1; k[b2 + 44 >> 2] = 4; break; } if ((d2 | 0) == 1) k[b2 + 32 >> 2] = 1; } while (0); return; } function Xj(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; var g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; if ((a2 | 0) == (k[b2 + 8 >> 2] | 0)) Rj(0, b2, c2, d2, e2); else { m2 = b2 + 52 | 0; n2 = i2[m2 >> 0] | 0; o2 = b2 + 53 | 0; p2 = i2[o2 >> 0] | 0; l2 = k[a2 + 12 >> 2] | 0; g2 = a2 + 16 + (l2 << 3) | 0; i2[m2 >> 0] = 0; i2[o2 >> 0] = 0; Tj(a2 + 16 | 0, b2, c2, d2, e2, f2); a: do if ((l2 | 0) > 1) { h2 = b2 + 24 | 0; j2 = a2 + 8 | 0; l2 = b2 + 54 | 0; a2 = a2 + 24 | 0; do { if (i2[l2 >> 0] | 0) break a; if (!(i2[m2 >> 0] | 0)) { if ((i2[o2 >> 0] | 0) != 0 ? (k[j2 >> 2] & 1 | 0) == 0 : 0) break a; } else { if ((k[h2 >> 2] | 0) == 1) break a; if (!(k[j2 >> 2] & 2)) break a; } i2[m2 >> 0] = 0; i2[o2 >> 0] = 0; Tj(a2, b2, c2, d2, e2, f2); a2 = a2 + 8 | 0; } while (a2 >>> 0 < g2 >>> 0); } while (0); i2[m2 >> 0] = n2; i2[o2 >> 0] = p2; } return; } function Yj(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; if ((a2 | 0) == (k[b2 + 8 >> 2] | 0)) Rj(0, b2, c2, d2, e2); else { a2 = k[a2 + 8 >> 2] | 0; Sb[k[(k[a2 >> 2] | 0) + 20 >> 2] & 15](a2, b2, c2, d2, e2, f2); } return; } function Zj(a2, b2, c2, d2, e2, f2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; f2 = f2 | 0; if ((a2 | 0) == (k[b2 + 8 >> 2] | 0)) Rj(0, b2, c2, d2, e2); return; } function _j(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0; e2 = r; r = r + 16 | 0; d2 = e2; k[d2 >> 2] = k[c2 >> 2]; a2 = Qb[k[(k[a2 >> 2] | 0) + 16 >> 2] & 63](a2, b2, d2) | 0; if (a2) k[c2 >> 2] = k[d2 >> 2]; r = e2; return a2 & 1 | 0; } function $j(a2) { a2 = a2 | 0; if (!a2) a2 = 0; else a2 = (Qj(a2, 656, 704, 0) | 0) != 0; return a2 & 1 | 0; } function ak() { var a2 = 0; a2 = Va(4) | 0; oj(a2); ub(a2 | 0, 592, 78); } function bk() { var a2 = 0, b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; e2 = r; r = r + 48 | 0; g2 = e2 + 32 | 0; c2 = e2 + 24 | 0; h2 = e2 + 16 | 0; f2 = e2; e2 = e2 + 36 | 0; a2 = kj() | 0; if ((a2 | 0) != 0 ? (d2 = k[a2 >> 2] | 0, (d2 | 0) != 0) : 0) { a2 = d2 + 48 | 0; b2 = k[a2 >> 2] | 0; a2 = k[a2 + 4 >> 2] | 0; if (!((b2 & -256 | 0) == 1126902528 & (a2 | 0) == 1129074247)) { k[c2 >> 2] = k[9257]; hj(51919, c2); } if ((b2 | 0) == 1126902529 & (a2 | 0) == 1129074247) a2 = k[d2 + 44 >> 2] | 0; else a2 = d2 + 80 | 0; k[e2 >> 2] = a2; d2 = k[d2 >> 2] | 0; a2 = k[d2 + 4 >> 2] | 0; if (Qb[k[(k[608 >> 2] | 0) + 16 >> 2] & 63](608, d2, e2) | 0) { h2 = k[e2 >> 2] | 0; e2 = k[9257] | 0; h2 = Ob[k[(k[h2 >> 2] | 0) + 8 >> 2] & 127](h2) | 0; k[f2 >> 2] = e2; k[f2 + 4 >> 2] = a2; k[f2 + 8 >> 2] = h2; hj(51833, f2); } else { k[h2 >> 2] = k[9257]; k[h2 + 4 >> 2] = a2; hj(51878, h2); } } hj(51957, g2); } function ck() { var a2 = 0; a2 = r; r = r + 16 | 0; if (!(Oa(37020, 184) | 0)) { r = a2; return; } else hj(51730, a2); } function dk(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; c2 = (k[a2 >> 2] | 0) + -4 | 0; b2 = k[c2 >> 2] | 0; k[c2 >> 2] = b2 + -1; if ((b2 + -1 | 0) < 0) mj((k[a2 >> 2] | 0) + -12 | 0); return; } function ek(a2) { a2 = a2 | 0; var b2 = 0; b2 = r; r = r + 16 | 0; Ql(a2); if (!(sb(k[9255] | 0, 0) | 0)) { r = b2; return; } else hj(51780, b2); } function fk(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; a2 = rl(a2, b2, c2) | 0; return a2 | 0; } function gk(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; a2 = sl(a2, b2, c2) | 0; return a2 | 0; } function hk() { return 37296; } function ik() { return 37300; } function jk() { return 37304; } function kk(a2) { a2 = a2 | 0; return ((a2 | 0) == 32 | (a2 + -9 | 0) >>> 0 < 5) & 1 | 0; } function lk(a2) { a2 = a2 | 0; if ((a2 + -48 | 0) >>> 0 < 10) a2 = 1; else a2 = ((a2 | 32) + -97 | 0) >>> 0 < 6; return a2 & 1 | 0; } function mk() { var a2 = 0; if (!(k[9258] | 0)) a2 = 37308; else { a2 = (kb() | 0) + 60 | 0; a2 = k[a2 >> 2] | 0; } return a2 | 0; } function nk(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; b2 = 0; while (1) { if ((l[51978 + b2 >> 0] | 0) == (a2 | 0)) { c2 = 2; break; } b2 = b2 + 1 | 0; if ((b2 | 0) == 87) { b2 = 87; a2 = 52066; c2 = 5; break; } } if ((c2 | 0) == 2) if (!b2) a2 = 52066; else { a2 = 52066; c2 = 5; } if ((c2 | 0) == 5) while (1) { c2 = a2; while (1) { a2 = c2 + 1 | 0; if (!(i2[c2 >> 0] | 0)) break; else c2 = a2; } b2 = b2 + -1 | 0; if (!b2) break; else c2 = 5; } return a2 | 0; } function ok(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0; K2 = r; r = r + 512 | 0; G2 = K2; switch (b2 | 0) { case 0: { J2 = 24; I2 = -149; y2 = 4; break; } case 1: { J2 = 53; I2 = -1074; y2 = 4; break; } case 2: { J2 = 53; I2 = -1074; y2 = 4; break; } default: d2 = 0; } a: do if ((y2 | 0) == 4) { D2 = a2 + 4 | 0; A2 = a2 + 100 | 0; do { b2 = k[D2 >> 2] | 0; if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { k[D2 >> 2] = b2 + 1; b2 = l[b2 >> 0] | 0; } else b2 = rk(a2) | 0; } while ((kk(b2) | 0) != 0); b: do switch (b2 | 0) { case 43: case 45: { e2 = 1 - (((b2 | 0) == 45 & 1) << 1) | 0; b2 = k[D2 >> 2] | 0; if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { k[D2 >> 2] = b2 + 1; b2 = l[b2 >> 0] | 0; H2 = e2; break b; } else { b2 = rk(a2) | 0; H2 = e2; break b; } } default: H2 = 1; } while (0); e2 = b2; b2 = 0; do { if ((e2 | 32 | 0) != (i2[53870 + b2 >> 0] | 0)) break; do if (b2 >>> 0 < 7) { e2 = k[D2 >> 2] | 0; if (e2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { k[D2 >> 2] = e2 + 1; e2 = l[e2 >> 0] | 0; break; } else { e2 = rk(a2) | 0; break; } } while (0); b2 = b2 + 1 | 0; } while (b2 >>> 0 < 8); c: do switch (b2 | 0) { case 8: break; case 3: { y2 = 23; break; } default: { g2 = (c2 | 0) != 0; if (g2 & b2 >>> 0 > 3) if ((b2 | 0) == 8) break c; else { y2 = 23; break c; } d: do if (!b2) { b2 = 0; do { if ((e2 | 32 | 0) != (i2[56747 + b2 >> 0] | 0)) break d; do if (b2 >>> 0 < 2) { e2 = k[D2 >> 2] | 0; if (e2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { k[D2 >> 2] = e2 + 1; e2 = l[e2 >> 0] | 0; break; } else { e2 = rk(a2) | 0; break; } } while (0); b2 = b2 + 1 | 0; } while (b2 >>> 0 < 3); } while (0); switch (b2 | 0) { case 3: { b2 = k[D2 >> 2] | 0; if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { k[D2 >> 2] = b2 + 1; b2 = l[b2 >> 0] | 0; } else b2 = rk(a2) | 0; if ((b2 | 0) == 40) b2 = 1; else { if (!(k[A2 >> 2] | 0)) { d2 = B; break a; } k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; d2 = B; break a; } while (1) { e2 = k[D2 >> 2] | 0; if (e2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { k[D2 >> 2] = e2 + 1; e2 = l[e2 >> 0] | 0; } else e2 = rk(a2) | 0; if (!((e2 + -48 | 0) >>> 0 < 10 | (e2 + -65 | 0) >>> 0 < 26) ? !((e2 | 0) == 95 | (e2 + -97 | 0) >>> 0 < 26) : 0) break; b2 = b2 + 1 | 0; } if ((e2 | 0) == 41) { d2 = B; break a; } e2 = (k[A2 >> 2] | 0) == 0; if (!e2) k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; if (!g2) { J2 = mk() | 0; k[J2 >> 2] = 22; qk(a2, 0); d2 = 0; break a; } if (!b2) { d2 = B; break a; } while (1) { b2 = b2 + -1 | 0; if (!e2) k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; if (!b2) { d2 = B; break a; } } } case 0: { do if ((e2 | 0) == 48) { b2 = k[D2 >> 2] | 0; if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { k[D2 >> 2] = b2 + 1; b2 = l[b2 >> 0] | 0; } else b2 = rk(a2) | 0; if ((b2 | 32 | 0) != 120) { if (!(k[A2 >> 2] | 0)) { b2 = 48; break; } k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; b2 = 48; break; } b2 = k[D2 >> 2] | 0; if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { k[D2 >> 2] = b2 + 1; b2 = l[b2 >> 0] | 0; g2 = 0; } else { b2 = rk(a2) | 0; g2 = 0; } e: while (1) { switch (b2 | 0) { case 46: { y2 = 74; break e; } case 48: break; default: { w2 = 0; h2 = 0; v2 = 0; e2 = 0; m2 = g2; n2 = 0; u2 = 0; j2 = 1; g2 = 0; d2 = 0; break e; } } b2 = k[D2 >> 2] | 0; if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { k[D2 >> 2] = b2 + 1; b2 = l[b2 >> 0] | 0; g2 = 1; continue; } else { b2 = rk(a2) | 0; g2 = 1; continue; } } if ((y2 | 0) == 74) { b2 = k[D2 >> 2] | 0; if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { k[D2 >> 2] = b2 + 1; b2 = l[b2 >> 0] | 0; } else b2 = rk(a2) | 0; if ((b2 | 0) == 48) { g2 = 0; e2 = 0; do { b2 = k[D2 >> 2] | 0; if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { k[D2 >> 2] = b2 + 1; b2 = l[b2 >> 0] | 0; } else b2 = rk(a2) | 0; g2 = tw(g2 | 0, e2 | 0, -1, -1) | 0; e2 = M; } while ((b2 | 0) == 48); w2 = 0; h2 = 0; v2 = g2; m2 = 1; n2 = 1; u2 = 0; j2 = 1; g2 = 0; d2 = 0; } else { w2 = 0; h2 = 0; v2 = 0; e2 = 0; m2 = g2; n2 = 1; u2 = 0; j2 = 1; g2 = 0; d2 = 0; } } while (1) { s2 = b2 + -48 | 0; o2 = b2 | 32; if (s2 >>> 0 >= 10) { t2 = (b2 | 0) == 46; if (!(t2 | (o2 + -97 | 0) >>> 0 < 6)) { o2 = v2; s2 = w2; break; } if (t2) if (!n2) { t2 = h2; e2 = w2; s2 = w2; n2 = 1; o2 = u2; f2 = j2; } else { o2 = v2; s2 = w2; b2 = 46; break; } else y2 = 86; } else y2 = 86; if ((y2 | 0) == 86) { y2 = 0; b2 = (b2 | 0) > 57 ? o2 + -87 | 0 : s2; do if (!((w2 | 0) < 0 | (w2 | 0) == 0 & h2 >>> 0 < 8)) { if ((w2 | 0) < 0 | (w2 | 0) == 0 & h2 >>> 0 < 14) { q2 = j2 * 0.0625; o2 = u2; f2 = q2; d2 = d2 + q2 * +(b2 | 0); break; } if ((u2 | 0) != 0 | (b2 | 0) == 0) { o2 = u2; f2 = j2; } else { o2 = 1; f2 = j2; d2 = d2 + j2 * 0.5; } } else { o2 = u2; f2 = j2; g2 = b2 + (g2 << 4) | 0; } while (0); h2 = tw(h2 | 0, w2 | 0, 1, 0) | 0; t2 = v2; s2 = M; m2 = 1; } b2 = k[D2 >> 2] | 0; if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { k[D2 >> 2] = b2 + 1; w2 = s2; v2 = t2; b2 = l[b2 >> 0] | 0; u2 = o2; j2 = f2; continue; } else { w2 = s2; v2 = t2; b2 = rk(a2) | 0; u2 = o2; j2 = f2; continue; } } if (!m2) { b2 = (k[A2 >> 2] | 0) == 0; if (!b2) k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; if (c2) { if (!b2 ? (x2 = k[D2 >> 2] | 0, k[D2 >> 2] = x2 + -1, (n2 | 0) != 0) : 0) k[D2 >> 2] = x2 + -2; } else qk(a2, 0); d2 = +(H2 | 0) * 0; break a; } m2 = (n2 | 0) == 0; n2 = m2 ? h2 : o2; m2 = m2 ? s2 : e2; if ((s2 | 0) < 0 | (s2 | 0) == 0 & h2 >>> 0 < 8) { e2 = s2; do { g2 = g2 << 4; h2 = tw(h2 | 0, e2 | 0, 1, 0) | 0; e2 = M; } while ((e2 | 0) < 0 | (e2 | 0) == 0 & h2 >>> 0 < 8); } if ((b2 | 32 | 0) == 112) { e2 = Dl(a2, c2) | 0; b2 = M; if ((e2 | 0) == 0 & (b2 | 0) == -2147483648) { if (!c2) { qk(a2, 0); d2 = 0; break a; } if (!(k[A2 >> 2] | 0)) { e2 = 0; b2 = 0; } else { k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; e2 = 0; b2 = 0; } } } else if (!(k[A2 >> 2] | 0)) { e2 = 0; b2 = 0; } else { k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; e2 = 0; b2 = 0; } G2 = ww(n2 | 0, m2 | 0, 2) | 0; G2 = tw(G2 | 0, M | 0, -32, -1) | 0; b2 = tw(G2 | 0, M | 0, e2 | 0, b2 | 0) | 0; e2 = M; if (!g2) { d2 = +(H2 | 0) * 0; break a; } if ((e2 | 0) > 0 | (e2 | 0) == 0 & b2 >>> 0 > (0 - I2 | 0) >>> 0) { J2 = mk() | 0; k[J2 >> 2] = 34; d2 = +(H2 | 0) * 17976931348623157e292 * 17976931348623157e292; break a; } G2 = I2 + -106 | 0; F2 = ((G2 | 0) < 0) << 31 >> 31; if ((e2 | 0) < (F2 | 0) | (e2 | 0) == (F2 | 0) & b2 >>> 0 < G2 >>> 0) { J2 = mk() | 0; k[J2 >> 2] = 34; d2 = +(H2 | 0) * 22250738585072014e-324 * 22250738585072014e-324; break a; } if ((g2 | 0) > -1) { do { F2 = !(d2 >= 0.5); G2 = F2 & 1 | g2 << 1; g2 = G2 ^ 1; d2 = d2 + (F2 ? d2 : d2 + -1); b2 = tw(b2 | 0, e2 | 0, -1, -1) | 0; e2 = M; } while ((G2 | 0) > -1); h2 = b2; j2 = d2; } else { h2 = b2; j2 = d2; } b2 = rw(32, 0, I2 | 0, ((I2 | 0) < 0) << 31 >> 31 | 0) | 0; b2 = tw(h2 | 0, e2 | 0, b2 | 0, M | 0) | 0; I2 = M; if (0 > (I2 | 0) | 0 == (I2 | 0) & J2 >>> 0 > b2 >>> 0) if ((b2 | 0) < 0) { b2 = 0; y2 = 127; } else y2 = 125; else { b2 = J2; y2 = 125; } if ((y2 | 0) == 125) if ((b2 | 0) < 53) y2 = 127; else { e2 = b2; f2 = +(H2 | 0); d2 = 0; } if ((y2 | 0) == 127) { d2 = +(H2 | 0); e2 = b2; f2 = d2; d2 = +Ck(+Hk(1, 84 - b2 | 0), d2); } J2 = (g2 & 1 | 0) == 0 & (j2 != 0 & (e2 | 0) < 32); d2 = f2 * (J2 ? 0 : j2) + (d2 + f2 * +(((J2 & 1) + g2 | 0) >>> 0)) - d2; if (!(d2 != 0)) { J2 = mk() | 0; k[J2 >> 2] = 34; } d2 = +Ik(d2, h2); break a; } else b2 = e2; while (0); E2 = I2 + J2 | 0; F2 = 0 - E2 | 0; g2 = 0; f: while (1) { switch (b2 | 0) { case 46: { y2 = 138; break f; } case 48: break; default: { e2 = 0; o2 = 0; n2 = 0; break f; } } b2 = k[D2 >> 2] | 0; if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { k[D2 >> 2] = b2 + 1; b2 = l[b2 >> 0] | 0; g2 = 1; continue; } else { b2 = rk(a2) | 0; g2 = 1; continue; } } if ((y2 | 0) == 138) { b2 = k[D2 >> 2] | 0; if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { k[D2 >> 2] = b2 + 1; b2 = l[b2 >> 0] | 0; } else b2 = rk(a2) | 0; if ((b2 | 0) == 48) { e2 = 0; b2 = 0; while (1) { e2 = tw(e2 | 0, b2 | 0, -1, -1) | 0; g2 = M; b2 = k[D2 >> 2] | 0; if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { k[D2 >> 2] = b2 + 1; b2 = l[b2 >> 0] | 0; } else b2 = rk(a2) | 0; if ((b2 | 0) == 48) b2 = g2; else { o2 = g2; g2 = 1; n2 = 1; break; } } } else { e2 = 0; o2 = 0; n2 = 1; } } k[G2 >> 2] = 0; m2 = b2 + -48 | 0; h2 = (b2 | 0) == 46; g: do if (h2 | m2 >>> 0 < 10) { z2 = G2 + 496 | 0; w2 = 0; t2 = 0; u2 = h2; y2 = o2; s2 = g2; x2 = n2; g2 = 0; h2 = 0; n2 = 0; h: while (1) { do if (u2) if (!x2) { e2 = w2; o2 = t2; x2 = 1; } else { o2 = y2; b2 = w2; m2 = t2; break h; } else { u2 = tw(w2 | 0, t2 | 0, 1, 0) | 0; t2 = M; v2 = (b2 | 0) != 48; if ((h2 | 0) >= 125) { if (!v2) { o2 = y2; w2 = u2; break; } k[z2 >> 2] = k[z2 >> 2] | 1; o2 = y2; w2 = u2; break; } o2 = G2 + (h2 << 2) | 0; if (g2) m2 = b2 + -48 + ((k[o2 >> 2] | 0) * 10 | 0) | 0; k[o2 >> 2] = m2; g2 = g2 + 1 | 0; m2 = (g2 | 0) == 9; o2 = y2; w2 = u2; s2 = 1; g2 = m2 ? 0 : g2; h2 = (m2 & 1) + h2 | 0; n2 = v2 ? u2 : n2; } while (0); b2 = k[D2 >> 2] | 0; if (b2 >>> 0 < (k[A2 >> 2] | 0) >>> 0) { k[D2 >> 2] = b2 + 1; b2 = l[b2 >> 0] | 0; } else b2 = rk(a2) | 0; m2 = b2 + -48 | 0; u2 = (b2 | 0) == 46; if (!(u2 | m2 >>> 0 < 10)) { m2 = x2; y2 = 161; break g; } else y2 = o2; } s2 = (s2 | 0) != 0; y2 = 169; } else { w2 = 0; t2 = 0; s2 = g2; m2 = n2; g2 = 0; h2 = 0; n2 = 0; y2 = 161; } while (0); do if ((y2 | 0) == 161) { z2 = (m2 | 0) == 0; e2 = z2 ? w2 : e2; o2 = z2 ? t2 : o2; s2 = (s2 | 0) != 0; if (!((b2 | 32 | 0) == 101 & s2)) if ((b2 | 0) > -1) { b2 = w2; m2 = t2; y2 = 169; break; } else { b2 = w2; m2 = t2; y2 = 171; break; } m2 = Dl(a2, c2) | 0; b2 = M; if ((m2 | 0) == 0 & (b2 | 0) == -2147483648) { if (!c2) { qk(a2, 0); d2 = 0; break; } if (!(k[A2 >> 2] | 0)) { m2 = 0; b2 = 0; } else { k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; m2 = 0; b2 = 0; } } e2 = tw(m2 | 0, b2 | 0, e2 | 0, o2 | 0) | 0; s2 = w2; o2 = M; m2 = t2; y2 = 173; } while (0); if ((y2 | 0) == 169) if (k[A2 >> 2] | 0) { k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; if (s2) { s2 = b2; y2 = 173; } else y2 = 172; } else y2 = 171; if ((y2 | 0) == 171) if (s2) { s2 = b2; y2 = 173; } else y2 = 172; do if ((y2 | 0) == 172) { J2 = mk() | 0; k[J2 >> 2] = 22; qk(a2, 0); d2 = 0; } else if ((y2 | 0) == 173) { b2 = k[G2 >> 2] | 0; if (!b2) { d2 = +(H2 | 0) * 0; break; } if (((m2 | 0) < 0 | (m2 | 0) == 0 & s2 >>> 0 < 10) & ((e2 | 0) == (s2 | 0) & (o2 | 0) == (m2 | 0)) ? J2 >>> 0 > 30 | (b2 >>> J2 | 0) == 0 : 0) { d2 = +(H2 | 0) * +(b2 >>> 0); break; } a2 = (I2 | 0) / -2 | 0; D2 = ((a2 | 0) < 0) << 31 >> 31; if ((o2 | 0) > (D2 | 0) | (o2 | 0) == (D2 | 0) & e2 >>> 0 > a2 >>> 0) { J2 = mk() | 0; k[J2 >> 2] = 34; d2 = +(H2 | 0) * 17976931348623157e292 * 17976931348623157e292; break; } a2 = I2 + -106 | 0; D2 = ((a2 | 0) < 0) << 31 >> 31; if ((o2 | 0) < (D2 | 0) | (o2 | 0) == (D2 | 0) & e2 >>> 0 < a2 >>> 0) { J2 = mk() | 0; k[J2 >> 2] = 34; d2 = +(H2 | 0) * 22250738585072014e-324 * 22250738585072014e-324; break; } if (g2) { if ((g2 | 0) < 9) { m2 = G2 + (h2 << 2) | 0; b2 = k[m2 >> 2] | 0; do { b2 = b2 * 10 | 0; g2 = g2 + 1 | 0; } while ((g2 | 0) != 9); k[m2 >> 2] = b2; } h2 = h2 + 1 | 0; } if ((n2 | 0) < 9 ? (n2 | 0) <= (e2 | 0) & (e2 | 0) < 18 : 0) { if ((e2 | 0) == 9) { d2 = +(H2 | 0) * +((k[G2 >> 2] | 0) >>> 0); break; } if ((e2 | 0) < 9) { d2 = +(H2 | 0) * +((k[G2 >> 2] | 0) >>> 0) / +(k[37312 + (8 - e2 << 2) >> 2] | 0); break; } a2 = J2 + 27 + (ia(e2, -3) | 0) | 0; b2 = k[G2 >> 2] | 0; if ((a2 | 0) > 30 | (b2 >>> a2 | 0) == 0) { d2 = +(H2 | 0) * +(b2 >>> 0) * +(k[37312 + (e2 + -10 << 2) >> 2] | 0); break; } } b2 = (e2 | 0) % 9 | 0; if (!b2) { g2 = 0; b2 = 0; } else { s2 = (e2 | 0) > -1 ? b2 : b2 + 9 | 0; m2 = k[37312 + (8 - s2 << 2) >> 2] | 0; if (h2) { n2 = 1e9 / (m2 | 0) | 0; g2 = 0; b2 = 0; o2 = 0; do { A2 = G2 + (o2 << 2) | 0; D2 = k[A2 >> 2] | 0; a2 = ((D2 >>> 0) / (m2 >>> 0) | 0) + b2 | 0; k[A2 >> 2] = a2; b2 = ia((D2 >>> 0) % (m2 >>> 0) | 0, n2) | 0; a2 = (o2 | 0) == (g2 | 0) & (a2 | 0) == 0; o2 = o2 + 1 | 0; e2 = a2 ? e2 + -9 | 0 : e2; g2 = a2 ? o2 & 127 : g2; } while ((o2 | 0) != (h2 | 0)); if (b2) { k[G2 + (h2 << 2) >> 2] = b2; h2 = h2 + 1 | 0; } } else { g2 = 0; h2 = 0; } b2 = 0; e2 = 9 - s2 + e2 | 0; } i: while (1) { t2 = (e2 | 0) < 18; u2 = (e2 | 0) == 18; v2 = G2 + (g2 << 2) | 0; do { if (!t2) { if (!u2) break i; if ((k[v2 >> 2] | 0) >>> 0 >= 9007199) { e2 = 18; break i; } } m2 = 0; n2 = h2 + 127 | 0; while (1) { s2 = n2 & 127; o2 = G2 + (s2 << 2) | 0; n2 = ww(k[o2 >> 2] | 0, 0, 29) | 0; n2 = tw(n2 | 0, M | 0, m2 | 0, 0) | 0; m2 = M; if (m2 >>> 0 > 0 | (m2 | 0) == 0 & n2 >>> 0 > 1e9) { a2 = Ew(n2 | 0, m2 | 0, 1e9, 0) | 0; n2 = Fw(n2 | 0, m2 | 0, 1e9, 0) | 0; m2 = a2; } else m2 = 0; k[o2 >> 2] = n2; a2 = (s2 | 0) == (g2 | 0); h2 = (s2 | 0) != (h2 + 127 & 127 | 0) | a2 ? h2 : (n2 | 0) == 0 ? s2 : h2; if (a2) break; else n2 = s2 + -1 | 0; } b2 = b2 + -29 | 0; } while ((m2 | 0) == 0); g2 = g2 + 127 & 127; if ((g2 | 0) == (h2 | 0)) { a2 = h2 + 127 & 127; h2 = G2 + ((h2 + 126 & 127) << 2) | 0; k[h2 >> 2] = k[h2 >> 2] | k[G2 + (a2 << 2) >> 2]; h2 = a2; } k[G2 + (g2 << 2) >> 2] = m2; e2 = e2 + 9 | 0; } j: while (1) { w2 = h2 + 1 & 127; v2 = G2 + ((h2 + 127 & 127) << 2) | 0; while (1) { t2 = (e2 | 0) == 18; u2 = (e2 | 0) > 27 ? 9 : 1; s2 = t2 ^ 1; while (1) { n2 = g2 & 127; o2 = (n2 | 0) == (h2 | 0); do if (!o2) { m2 = k[G2 + (n2 << 2) >> 2] | 0; if (m2 >>> 0 < 9007199) { y2 = 219; break; } if (m2 >>> 0 > 9007199) break; m2 = g2 + 1 & 127; if ((m2 | 0) == (h2 | 0)) { y2 = 219; break; } m2 = k[G2 + (m2 << 2) >> 2] | 0; if (m2 >>> 0 < 254740991) { y2 = 219; break; } if (!(m2 >>> 0 > 254740991 | s2)) { e2 = n2; break j; } } else y2 = 219; while (0); if ((y2 | 0) == 219 ? (y2 = 0, t2) : 0) { y2 = 220; break j; } b2 = b2 + u2 | 0; if ((g2 | 0) == (h2 | 0)) g2 = h2; else break; } s2 = (1 << u2) + -1 | 0; t2 = 1e9 >>> u2; n2 = g2; m2 = 0; o2 = g2; while (1) { D2 = G2 + (o2 << 2) | 0; a2 = k[D2 >> 2] | 0; g2 = (a2 >>> u2) + m2 | 0; k[D2 >> 2] = g2; m2 = ia(a2 & s2, t2) | 0; g2 = (o2 | 0) == (n2 | 0) & (g2 | 0) == 0; o2 = o2 + 1 & 127; e2 = g2 ? e2 + -9 | 0 : e2; g2 = g2 ? o2 : n2; if ((o2 | 0) == (h2 | 0)) break; else n2 = g2; } if (!m2) continue; if ((w2 | 0) != (g2 | 0)) break; k[v2 >> 2] = k[v2 >> 2] | 1; } k[G2 + (h2 << 2) >> 2] = m2; h2 = w2; } if ((y2 | 0) == 220) if (o2) { k[G2 + (w2 + -1 << 2) >> 2] = 0; e2 = h2; h2 = w2; } else e2 = n2; d2 = +((k[G2 + (e2 << 2) >> 2] | 0) >>> 0); e2 = g2 + 1 & 127; if ((e2 | 0) == (h2 | 0)) { h2 = g2 + 2 & 127; k[G2 + (h2 + -1 << 2) >> 2] = 0; } q2 = +(H2 | 0); f2 = q2 * (d2 * 1e9 + +((k[G2 + (e2 << 2) >> 2] | 0) >>> 0)); t2 = b2 + 53 | 0; o2 = t2 - I2 | 0; s2 = (o2 | 0) < (J2 | 0); e2 = s2 & 1; n2 = s2 ? (o2 | 0) < 0 ? 0 : o2 : J2; if ((n2 | 0) < 53) { L2 = +Ck(+Hk(1, 105 - n2 | 0), f2); j2 = +Ek(f2, +Hk(1, 53 - n2 | 0)); p2 = L2; d2 = j2; j2 = L2 + (f2 - j2); } else { p2 = 0; d2 = 0; j2 = f2; } m2 = g2 + 2 & 127; do if ((m2 | 0) == (h2 | 0)) f2 = d2; else { m2 = k[G2 + (m2 << 2) >> 2] | 0; do if (m2 >>> 0 >= 5e8) { if (m2 >>> 0 > 5e8) { d2 = q2 * 0.75 + d2; break; } if ((g2 + 3 & 127 | 0) == (h2 | 0)) { d2 = q2 * 0.5 + d2; break; } else { d2 = q2 * 0.75 + d2; break; } } else { if ((m2 | 0) == 0 ? (g2 + 3 & 127 | 0) == (h2 | 0) : 0) break; d2 = q2 * 0.25 + d2; } while (0); if ((53 - n2 | 0) <= 1) { f2 = d2; break; } if (+Ek(d2, 1) != 0) { f2 = d2; break; } f2 = d2 + 1; } while (0); d2 = j2 + f2 - p2; do if ((t2 & 2147483647 | 0) > (-2 - E2 | 0)) { if (+X(+d2) >= 9007199254740992) { e2 = s2 & (n2 | 0) == (o2 | 0) ? 0 : e2; b2 = b2 + 1 | 0; d2 = d2 * 0.5; } if ((b2 + 50 | 0) <= (F2 | 0) ? !(f2 != 0 & (e2 | 0) != 0) : 0) break; J2 = mk() | 0; k[J2 >> 2] = 34; } while (0); d2 = +Ik(d2, b2); } while (0); break a; } default: { if (k[A2 >> 2] | 0) k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; J2 = mk() | 0; k[J2 >> 2] = 22; qk(a2, 0); d2 = 0; break a; } } } } while (0); if ((y2 | 0) == 23) { e2 = (k[A2 >> 2] | 0) == 0; if (!e2) k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; if ((c2 | 0) != 0 & b2 >>> 0 > 3) do { if (!e2) k[D2 >> 2] = (k[D2 >> 2] | 0) + -1; b2 = b2 + -1 | 0; } while (b2 >>> 0 > 3); } d2 = +(H2 | 0) * C; } while (0); r = K2; return +d2; } function pk(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, r2 = 0; a: do if (b2 >>> 0 > 36) { e2 = mk() | 0; k[e2 >> 2] = 22; e2 = 0; d2 = 0; } else { r2 = a2 + 4 | 0; q2 = a2 + 100 | 0; do { f2 = k[r2 >> 2] | 0; if (f2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { k[r2 >> 2] = f2 + 1; f2 = l[f2 >> 0] | 0; } else f2 = rk(a2) | 0; } while ((kk(f2) | 0) != 0); b: do switch (f2 | 0) { case 43: case 45: { g2 = ((f2 | 0) == 45) << 31 >> 31; f2 = k[r2 >> 2] | 0; if (f2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { k[r2 >> 2] = f2 + 1; f2 = l[f2 >> 0] | 0; p2 = g2; break b; } else { f2 = rk(a2) | 0; p2 = g2; break b; } } default: p2 = 0; } while (0); g2 = (b2 | 0) == 0; do if ((b2 & -17 | 0) == 0 & (f2 | 0) == 48) { f2 = k[r2 >> 2] | 0; if (f2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { k[r2 >> 2] = f2 + 1; f2 = l[f2 >> 0] | 0; } else f2 = rk(a2) | 0; if ((f2 | 32 | 0) != 120) if (g2) { b2 = 8; n2 = 46; break; } else { n2 = 32; break; } b2 = k[r2 >> 2] | 0; if (b2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { k[r2 >> 2] = b2 + 1; f2 = l[b2 >> 0] | 0; } else f2 = rk(a2) | 0; if ((l[53879 + (f2 + 1) >> 0] | 0) > 15) { d2 = (k[q2 >> 2] | 0) == 0; if (!d2) k[r2 >> 2] = (k[r2 >> 2] | 0) + -1; if (!c2) { qk(a2, 0); e2 = 0; d2 = 0; break a; } if (d2) { e2 = 0; d2 = 0; break a; } k[r2 >> 2] = (k[r2 >> 2] | 0) + -1; e2 = 0; d2 = 0; break a; } else { b2 = 16; n2 = 46; } } else { b2 = g2 ? 10 : b2; if ((l[53879 + (f2 + 1) >> 0] | 0) >>> 0 < b2 >>> 0) n2 = 32; else { if (k[q2 >> 2] | 0) k[r2 >> 2] = (k[r2 >> 2] | 0) + -1; qk(a2, 0); e2 = mk() | 0; k[e2 >> 2] = 22; e2 = 0; d2 = 0; break a; } } while (0); if ((n2 | 0) == 32) if ((b2 | 0) == 10) { b2 = f2 + -48 | 0; if (b2 >>> 0 < 10) { f2 = 0; while (1) { g2 = (f2 * 10 | 0) + b2 | 0; b2 = k[r2 >> 2] | 0; if (b2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { k[r2 >> 2] = b2 + 1; f2 = l[b2 >> 0] | 0; } else f2 = rk(a2) | 0; b2 = f2 + -48 | 0; if (!(b2 >>> 0 < 10 & g2 >>> 0 < 429496729)) { b2 = g2; break; } else f2 = g2; } g2 = 0; } else { b2 = 0; g2 = 0; } c2 = f2 + -48 | 0; if (c2 >>> 0 < 10) { while (1) { h2 = Dw(b2 | 0, g2 | 0, 10, 0) | 0; j2 = M; m2 = ((c2 | 0) < 0) << 31 >> 31; o2 = ~m2; if (j2 >>> 0 > o2 >>> 0 | (j2 | 0) == (o2 | 0) & h2 >>> 0 > ~c2 >>> 0) { h2 = b2; break; } b2 = tw(h2 | 0, j2 | 0, c2 | 0, m2 | 0) | 0; g2 = M; f2 = k[r2 >> 2] | 0; if (f2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { k[r2 >> 2] = f2 + 1; f2 = l[f2 >> 0] | 0; } else f2 = rk(a2) | 0; c2 = f2 + -48 | 0; if (!(c2 >>> 0 < 10 & (g2 >>> 0 < 429496729 | (g2 | 0) == 429496729 & b2 >>> 0 < 2576980378))) { h2 = b2; break; } } if (c2 >>> 0 > 9) { f2 = h2; b2 = p2; } else { b2 = 10; n2 = 72; } } else { f2 = b2; b2 = p2; } } else n2 = 46; c: do if ((n2 | 0) == 46) { if (!(b2 + -1 & b2)) { n2 = i2[54136 + ((b2 * 23 | 0) >>> 5 & 7) >> 0] | 0; g2 = i2[53879 + (f2 + 1) >> 0] | 0; c2 = g2 & 255; if (c2 >>> 0 < b2 >>> 0) { f2 = 0; while (1) { h2 = c2 | f2 << n2; f2 = k[r2 >> 2] | 0; if (f2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { k[r2 >> 2] = f2 + 1; f2 = l[f2 >> 0] | 0; } else f2 = rk(a2) | 0; g2 = i2[53879 + (f2 + 1) >> 0] | 0; c2 = g2 & 255; if (!(h2 >>> 0 < 134217728 & c2 >>> 0 < b2 >>> 0)) break; else f2 = h2; } c2 = 0; } else { c2 = 0; h2 = 0; } j2 = uw(-1, -1, n2 | 0) | 0; m2 = M; if ((g2 & 255) >>> 0 >= b2 >>> 0 | (c2 >>> 0 > m2 >>> 0 | (c2 | 0) == (m2 | 0) & h2 >>> 0 > j2 >>> 0)) { g2 = c2; n2 = 72; break; } else f2 = c2; while (1) { h2 = ww(h2 | 0, f2 | 0, n2 | 0) | 0; c2 = M; h2 = g2 & 255 | h2; f2 = k[r2 >> 2] | 0; if (f2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { k[r2 >> 2] = f2 + 1; f2 = l[f2 >> 0] | 0; } else f2 = rk(a2) | 0; g2 = i2[53879 + (f2 + 1) >> 0] | 0; if ((g2 & 255) >>> 0 >= b2 >>> 0 | (c2 >>> 0 > m2 >>> 0 | (c2 | 0) == (m2 | 0) & h2 >>> 0 > j2 >>> 0)) { g2 = c2; n2 = 72; break c; } else f2 = c2; } } g2 = i2[53879 + (f2 + 1) >> 0] | 0; c2 = g2 & 255; if (c2 >>> 0 < b2 >>> 0) { f2 = 0; while (1) { h2 = c2 + (ia(f2, b2) | 0) | 0; f2 = k[r2 >> 2] | 0; if (f2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { k[r2 >> 2] = f2 + 1; f2 = l[f2 >> 0] | 0; } else f2 = rk(a2) | 0; g2 = i2[53879 + (f2 + 1) >> 0] | 0; c2 = g2 & 255; if (!(h2 >>> 0 < 119304647 & c2 >>> 0 < b2 >>> 0)) break; else f2 = h2; } c2 = 0; } else { h2 = 0; c2 = 0; } if ((g2 & 255) >>> 0 < b2 >>> 0) { n2 = Ew(-1, -1, b2 | 0, 0) | 0; o2 = M; m2 = c2; while (1) { if (m2 >>> 0 > o2 >>> 0 | (m2 | 0) == (o2 | 0) & h2 >>> 0 > n2 >>> 0) { g2 = m2; n2 = 72; break c; } c2 = Dw(h2 | 0, m2 | 0, b2 | 0, 0) | 0; j2 = M; g2 = g2 & 255; if (j2 >>> 0 > 4294967295 | (j2 | 0) == -1 & c2 >>> 0 > ~g2 >>> 0) { g2 = m2; n2 = 72; break c; } h2 = tw(g2 | 0, 0, c2 | 0, j2 | 0) | 0; c2 = M; f2 = k[r2 >> 2] | 0; if (f2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { k[r2 >> 2] = f2 + 1; f2 = l[f2 >> 0] | 0; } else f2 = rk(a2) | 0; g2 = i2[53879 + (f2 + 1) >> 0] | 0; if ((g2 & 255) >>> 0 >= b2 >>> 0) { g2 = c2; n2 = 72; break; } else m2 = c2; } } else { g2 = c2; n2 = 72; } } while (0); if ((n2 | 0) == 72) if ((l[53879 + (f2 + 1) >> 0] | 0) >>> 0 < b2 >>> 0) { do { f2 = k[r2 >> 2] | 0; if (f2 >>> 0 < (k[q2 >> 2] | 0) >>> 0) { k[r2 >> 2] = f2 + 1; f2 = l[f2 >> 0] | 0; } else f2 = rk(a2) | 0; } while ((l[53879 + (f2 + 1) >> 0] | 0) >>> 0 < b2 >>> 0); g2 = mk() | 0; k[g2 >> 2] = 34; g2 = e2; f2 = d2; b2 = (d2 & 1 | 0) == 0 & true ? p2 : 0; } else { f2 = h2; b2 = p2; } if (k[q2 >> 2] | 0) k[r2 >> 2] = (k[r2 >> 2] | 0) + -1; if (!(g2 >>> 0 < e2 >>> 0 | (g2 | 0) == (e2 | 0) & f2 >>> 0 < d2 >>> 0)) { if (!((d2 & 1 | 0) != 0 | false | (b2 | 0) != 0)) { r2 = mk() | 0; k[r2 >> 2] = 34; d2 = tw(d2 | 0, e2 | 0, -1, -1) | 0; e2 = M; break; } if (g2 >>> 0 > e2 >>> 0 | (g2 | 0) == (e2 | 0) & f2 >>> 0 > d2 >>> 0) { r2 = mk() | 0; k[r2 >> 2] = 34; break; } } d2 = ((b2 | 0) < 0) << 31 >> 31; d2 = rw(f2 ^ b2 | 0, g2 ^ d2 | 0, b2 | 0, d2 | 0) | 0; e2 = M; } while (0); M = e2; return d2 | 0; } function qk(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0; k[a2 + 104 >> 2] = b2; c2 = k[a2 + 4 >> 2] | 0; d2 = k[a2 + 8 >> 2] | 0; e2 = d2 - c2 | 0; k[a2 + 108 >> 2] = e2; if ((b2 | 0) != 0 & (e2 | 0) > (b2 | 0)) k[a2 + 100 >> 2] = c2 + b2; else k[a2 + 100 >> 2] = d2; return; } function rk(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; c2 = a2 + 104 | 0; f2 = k[c2 >> 2] | 0; if ((f2 | 0) != 0 ? (k[a2 + 108 >> 2] | 0) >= (f2 | 0) : 0) g2 = 4; else { b2 = cl(a2) | 0; if ((b2 | 0) >= 0) { e2 = k[c2 >> 2] | 0; c2 = a2 + 8 | 0; if (e2) { d2 = k[c2 >> 2] | 0; f2 = k[a2 + 4 >> 2] | 0; c2 = d2; e2 = e2 - (k[a2 + 108 >> 2] | 0) + -1 | 0; if ((c2 - f2 | 0) > (e2 | 0)) k[a2 + 100 >> 2] = f2 + e2; else g2 = 9; } else { d2 = k[c2 >> 2] | 0; c2 = d2; g2 = 9; } if ((g2 | 0) == 9) k[a2 + 100 >> 2] = c2; c2 = k[a2 + 4 >> 2] | 0; if (d2) { a2 = a2 + 108 | 0; k[a2 >> 2] = d2 + 1 - c2 + (k[a2 >> 2] | 0); } c2 = c2 + -1 | 0; if ((l[c2 >> 0] | 0 | 0) != (b2 | 0)) i2[c2 >> 0] = b2; } else g2 = 4; } if ((g2 | 0) == 4) { k[a2 + 100 >> 2] = 0; b2 = -1; } return b2 | 0; } function sk(a2) { a2 = a2 | 0; var b2 = 0; if (a2 >>> 0 > 4294963200) { b2 = mk() | 0; k[b2 >> 2] = 0 - a2; a2 = -1; } return a2 | 0; } function tk(a2) { a2 = a2 | 0; return 0; } function uk(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; return d2 | 0; } function vk(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; return -1 | 0; } function wk(a2) { a2 = a2 | 0; Ql(a2); return; } function xk(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; return (a2 + -48 | 0) >>> 0 < 10 | 0; } function yk(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; return lk(a2) | 0; } function zk(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; if (((i2[b2 >> 0] | 0) != 0 ? (vl(b2, 58885) | 0) != 0 : 0) ? (vl(b2, 54145) | 0) != 0 : 0) c2 = 0; else if (!c2) c2 = Rl(1, 4) | 0; return c2 | 0; } function Ak(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; b2 = (kb() | 0) + 176 | 0; c2 = k[b2 >> 2] | 0; if (a2) k[b2 >> 2] = a2; return c2 | 0; } function Bk(a2, b2) { a2 = +a2; b2 = +b2; var c2 = 0, d2 = 0; p[t >> 3] = a2; d2 = k[t >> 2] | 0; c2 = k[t + 4 >> 2] | 0; p[t >> 3] = b2; c2 = k[t + 4 >> 2] & -2147483648 | c2 & 2147483647; k[t >> 2] = d2; k[t + 4 >> 2] = c2; return + +p[t >> 3]; } function Ck(a2, b2) { a2 = +a2; b2 = +b2; return + +Bk(a2, b2); } function Dk(a2, b2) { a2 = +a2; b2 = +b2; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; p[t >> 3] = a2; c2 = k[t >> 2] | 0; j2 = k[t + 4 >> 2] | 0; p[t >> 3] = b2; l2 = k[t >> 2] | 0; m2 = k[t + 4 >> 2] | 0; d2 = uw(c2 | 0, j2 | 0, 52) | 0; d2 = d2 & 2047; h2 = uw(l2 | 0, m2 | 0, 52) | 0; h2 = h2 & 2047; n2 = j2 & -2147483648; g2 = ww(l2 | 0, m2 | 0, 1) | 0; i3 = M; a: do if (!((g2 | 0) == 0 & (i3 | 0) == 0) ? (f2 = m2 & 2147483647, !(f2 >>> 0 > 2146435072 | (f2 | 0) == 2146435072 & l2 >>> 0 > 0 | (d2 | 0) == 2047)) : 0) { e2 = ww(c2 | 0, j2 | 0, 1) | 0; f2 = M; if (!(f2 >>> 0 > i3 >>> 0 | (f2 | 0) == (i3 | 0) & e2 >>> 0 > g2 >>> 0)) return +((e2 | 0) == (g2 | 0) & (f2 | 0) == (i3 | 0) ? a2 * 0 : a2); if (!d2) { d2 = ww(c2 | 0, j2 | 0, 12) | 0; e2 = M; if ((e2 | 0) > -1 | (e2 | 0) == -1 & d2 >>> 0 > 4294967295) { f2 = d2; d2 = 0; do { d2 = d2 + -1 | 0; f2 = ww(f2 | 0, e2 | 0, 1) | 0; e2 = M; } while ((e2 | 0) > -1 | (e2 | 0) == -1 & f2 >>> 0 > 4294967295); } else d2 = 0; c2 = ww(c2 | 0, j2 | 0, 1 - d2 | 0) | 0; e2 = M; } else e2 = j2 & 1048575 | 1048576; if (!h2) { f2 = ww(l2 | 0, m2 | 0, 12) | 0; g2 = M; if ((g2 | 0) > -1 | (g2 | 0) == -1 & f2 >>> 0 > 4294967295) { h2 = 0; do { h2 = h2 + -1 | 0; f2 = ww(f2 | 0, g2 | 0, 1) | 0; g2 = M; } while ((g2 | 0) > -1 | (g2 | 0) == -1 & f2 >>> 0 > 4294967295); } else h2 = 0; l2 = ww(l2 | 0, m2 | 0, 1 - h2 | 0) | 0; j2 = M; } else j2 = m2 & 1048575 | 1048576; i3 = rw(c2 | 0, e2 | 0, l2 | 0, j2 | 0) | 0; g2 = M; f2 = (g2 | 0) > -1 | (g2 | 0) == -1 & i3 >>> 0 > 4294967295; b: do if ((d2 | 0) > (h2 | 0)) { while (1) { if (f2) if ((c2 | 0) == (l2 | 0) & (e2 | 0) == (j2 | 0)) break; else { c2 = i3; e2 = g2; } c2 = ww(c2 | 0, e2 | 0, 1) | 0; e2 = M; d2 = d2 + -1 | 0; i3 = rw(c2 | 0, e2 | 0, l2 | 0, j2 | 0) | 0; g2 = M; f2 = (g2 | 0) > -1 | (g2 | 0) == -1 & i3 >>> 0 > 4294967295; if ((d2 | 0) <= (h2 | 0)) break b; } b2 = a2 * 0; break a; } while (0); if (f2) if ((c2 | 0) == (l2 | 0) & (e2 | 0) == (j2 | 0)) { b2 = a2 * 0; break; } else { e2 = g2; c2 = i3; } if (e2 >>> 0 < 1048576 | (e2 | 0) == 1048576 & c2 >>> 0 < 0) do { c2 = ww(c2 | 0, e2 | 0, 1) | 0; e2 = M; d2 = d2 + -1 | 0; } while (e2 >>> 0 < 1048576 | (e2 | 0) == 1048576 & c2 >>> 0 < 0); if ((d2 | 0) > 0) { m2 = tw(c2 | 0, e2 | 0, 0, -1048576) | 0; c2 = M; d2 = ww(d2 | 0, 0, 52) | 0; c2 = c2 | M; d2 = m2 | d2; } else { d2 = uw(c2 | 0, e2 | 0, 1 - d2 | 0) | 0; c2 = M; } k[t >> 2] = d2; k[t + 4 >> 2] = c2 | n2; b2 = +p[t >> 3]; } else o2 = 3; while (0); if ((o2 | 0) == 3) { b2 = a2 * b2; b2 = b2 / b2; } return +b2; } function Ek(a2, b2) { a2 = +a2; b2 = +b2; return + +Dk(a2, b2); } function Fk(a2, b2) { a2 = +a2; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0; p[t >> 3] = a2; c2 = k[t >> 2] | 0; d2 = k[t + 4 >> 2] | 0; e2 = uw(c2 | 0, d2 | 0, 52) | 0; e2 = e2 & 2047; switch (e2 | 0) { case 0: { if (a2 != 0) { a2 = +Fk(a2 * 18446744073709552e3, b2); c2 = (k[b2 >> 2] | 0) + -64 | 0; } else c2 = 0; k[b2 >> 2] = c2; break; } case 2047: break; default: { k[b2 >> 2] = e2 + -1022; k[t >> 2] = c2; k[t + 4 >> 2] = d2 & -2146435073 | 1071644672; a2 = +p[t >> 3]; } } return +a2; } function Gk(a2, b2) { a2 = +a2; b2 = b2 | 0; return + +Fk(a2, b2); } function Hk(a2, b2) { a2 = +a2; b2 = b2 | 0; var c2 = 0; if ((b2 | 0) > 1023) { a2 = a2 * 898846567431158e293; c2 = b2 + -1023 | 0; if ((c2 | 0) > 1023) { c2 = b2 + -2046 | 0; c2 = (c2 | 0) > 1023 ? 1023 : c2; a2 = a2 * 898846567431158e293; } } else if ((b2 | 0) < -1022) { a2 = a2 * 22250738585072014e-324; c2 = b2 + 1022 | 0; if ((c2 | 0) < -1022) { c2 = b2 + 2044 | 0; c2 = (c2 | 0) < -1022 ? -1022 : c2; a2 = a2 * 22250738585072014e-324; } } else c2 = b2; c2 = ww(c2 + 1023 | 0, 0, 52) | 0; b2 = M; k[t >> 2] = c2; k[t + 4 >> 2] = b2; return +(a2 * +p[t >> 3]); } function Ik(a2, b2) { a2 = +a2; b2 = b2 | 0; return + +Hk(a2, b2); } function Jk(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; return Kk(0, a2, b2, (c2 | 0) != 0 ? c2 : 37344) | 0; } function Kk(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0; j2 = r; r = r + 16 | 0; e2 = j2; g2 = (d2 | 0) == 0 ? 37348 : d2; d2 = k[g2 >> 2] | 0; a: do if (!b2) if (!d2) d2 = 0; else h2 = 15; else { f2 = (a2 | 0) == 0 ? e2 : a2; if (!c2) d2 = -2; else { if (!d2) { d2 = i2[b2 >> 0] | 0; e2 = d2 & 255; if (d2 << 24 >> 24 > -1) { k[f2 >> 2] = e2; d2 = d2 << 24 >> 24 != 0 & 1; break; } d2 = e2 + -194 | 0; if (d2 >>> 0 > 50) { h2 = 15; break; } d2 = k[37076 + (d2 << 2) >> 2] | 0; e2 = c2 + -1 | 0; if (e2) { b2 = b2 + 1 | 0; h2 = 9; } } else { e2 = c2; h2 = 9; } b: do if ((h2 | 0) == 9) { a2 = i2[b2 >> 0] | 0; l2 = (a2 & 255) >>> 3; if ((l2 + -16 | l2 + (d2 >> 26)) >>> 0 > 7) { h2 = 15; break a; } while (1) { b2 = b2 + 1 | 0; d2 = (a2 & 255) + -128 | d2 << 6; e2 = e2 + -1 | 0; if ((d2 | 0) >= 0) break; if (!e2) break b; a2 = i2[b2 >> 0] | 0; if ((a2 & -64) << 24 >> 24 != -128) { h2 = 15; break a; } } k[g2 >> 2] = 0; k[f2 >> 2] = d2; d2 = c2 - e2 | 0; break a; } while (0); k[g2 >> 2] = d2; d2 = -2; } } while (0); if ((h2 | 0) == 15) { k[g2 >> 2] = 0; d2 = mk() | 0; k[d2 >> 2] = 84; d2 = -1; } r = j2; return d2 | 0; } function Lk(a2) { a2 = a2 | 0; if (!a2) a2 = 1; else a2 = (k[a2 >> 2] | 0) == 0; return a2 & 1 | 0; } function Mk(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0; n2 = r; r = r + 1040 | 0; j2 = n2 + 8 | 0; m2 = n2; i3 = k[b2 >> 2] | 0; k[m2 >> 2] = i3; l2 = (a2 | 0) != 0; d2 = l2 ? d2 : 256; a2 = l2 ? a2 : j2; f2 = i3; a: do if ((d2 | 0) != 0 & (i3 | 0) != 0) { h2 = d2; i3 = f2; d2 = 0; while (1) { f2 = c2 >>> 2; g2 = f2 >>> 0 >= h2 >>> 0; if (!(c2 >>> 0 > 131 | g2)) { f2 = i3; break a; } f2 = g2 ? h2 : f2; c2 = c2 - f2 | 0; f2 = Nk(a2, m2, f2, e2) | 0; if ((f2 | 0) == -1) { d2 = c2; break; } o2 = (a2 | 0) == (j2 | 0); i3 = o2 ? 0 : f2; g2 = h2 - i3 | 0; a2 = o2 ? a2 : a2 + (f2 << 2) | 0; d2 = f2 + d2 | 0; f2 = k[m2 >> 2] | 0; if ((h2 | 0) != (i3 | 0) & (f2 | 0) != 0) { h2 = g2; i3 = f2; } else { h2 = g2; break a; } } c2 = d2; h2 = 0; f2 = k[m2 >> 2] | 0; d2 = -1; } else { h2 = d2; d2 = 0; } while (0); b: do if ((f2 | 0) != 0 ? (h2 | 0) != 0 & (c2 | 0) != 0 : 0) { g2 = f2; f2 = a2; while (1) { a2 = Kk(f2, g2, c2, e2) | 0; if ((a2 + 2 | 0) >>> 0 < 3) break; g2 = (k[m2 >> 2] | 0) + a2 | 0; k[m2 >> 2] = g2; h2 = h2 + -1 | 0; d2 = d2 + 1 | 0; if (!((h2 | 0) != 0 & (c2 | 0) != (a2 | 0))) break b; else { c2 = c2 - a2 | 0; f2 = f2 + 4 | 0; } } switch (a2 | 0) { case -1: { d2 = -1; break b; } case 0: { k[m2 >> 2] = 0; break b; } default: { k[e2 >> 2] = 0; break b; } } } while (0); if (l2) k[b2 >> 2] = k[m2 >> 2]; r = n2; return d2 | 0; } function Nk(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, m2 = 0; e2 = k[b2 >> 2] | 0; if ((d2 | 0) != 0 ? (f2 = k[d2 >> 2] | 0, (f2 | 0) != 0) : 0) if (!a2) { d2 = c2; g2 = e2; m2 = 16; } else { k[d2 >> 2] = 0; j2 = a2; d2 = c2; h2 = f2; m2 = 37; } else if (!a2) { d2 = c2; m2 = 7; } else { f2 = a2; d2 = c2; m2 = 6; } a: while (1) if ((m2 | 0) == 6) { if (!d2) { m2 = 26; break; } else a2 = f2; while (1) { f2 = i2[e2 >> 0] | 0; do if (((f2 & 255) + -1 | 0) >>> 0 < 127 ? d2 >>> 0 > 4 & (e2 & 3 | 0) == 0 : 0) { g2 = e2; while (1) { e2 = k[g2 >> 2] | 0; if ((e2 + -16843009 | e2) & -2139062144) { f2 = e2; e2 = g2; m2 = 32; break; } k[a2 >> 2] = e2 & 255; k[a2 + 4 >> 2] = l[g2 + 1 >> 0]; k[a2 + 8 >> 2] = l[g2 + 2 >> 0]; e2 = g2 + 4 | 0; f2 = a2 + 16 | 0; k[a2 + 12 >> 2] = l[g2 + 3 >> 0]; d2 = d2 + -4 | 0; if (d2 >>> 0 > 4) { a2 = f2; g2 = e2; } else { m2 = 31; break; } } if ((m2 | 0) == 31) { a2 = f2; f2 = i2[e2 >> 0] | 0; break; } else if ((m2 | 0) == 32) { f2 = f2 & 255; break; } } while (0); f2 = f2 & 255; if ((f2 + -1 | 0) >>> 0 >= 127) break; e2 = e2 + 1 | 0; k[a2 >> 2] = f2; d2 = d2 + -1 | 0; if (!d2) { m2 = 26; break a; } else a2 = a2 + 4 | 0; } f2 = f2 + -194 | 0; if (f2 >>> 0 > 50) { m2 = 48; break; } j2 = a2; h2 = k[37076 + (f2 << 2) >> 2] | 0; e2 = e2 + 1 | 0; m2 = 37; continue; } else if ((m2 | 0) == 7) { f2 = i2[e2 >> 0] | 0; if (((f2 & 255) + -1 | 0) >>> 0 < 127 ? (e2 & 3 | 0) == 0 : 0) { f2 = k[e2 >> 2] | 0; if (!((f2 + -16843009 | f2) & -2139062144)) do { e2 = e2 + 4 | 0; d2 = d2 + -4 | 0; f2 = k[e2 >> 2] | 0; } while (((f2 + -16843009 | f2) & -2139062144 | 0) == 0); f2 = f2 & 255; } f2 = f2 & 255; if ((f2 + -1 | 0) >>> 0 < 127) { d2 = d2 + -1 | 0; e2 = e2 + 1 | 0; m2 = 7; continue; } f2 = f2 + -194 | 0; if (f2 >>> 0 > 50) { m2 = 48; break; } f2 = k[37076 + (f2 << 2) >> 2] | 0; g2 = e2 + 1 | 0; m2 = 16; continue; } else if ((m2 | 0) == 16) { m2 = (l[g2 >> 0] | 0) >>> 3; if ((m2 + -16 | m2 + (f2 >> 26)) >>> 0 > 7) { m2 = 17; break; } e2 = g2 + 1 | 0; if (f2 & 33554432) { if ((i2[e2 >> 0] & -64) << 24 >> 24 != -128) { m2 = 20; break; } e2 = g2 + 2 | 0; if (f2 & 524288) { if ((i2[e2 >> 0] & -64) << 24 >> 24 != -128) { m2 = 23; break; } e2 = g2 + 3 | 0; } } d2 = d2 + -1 | 0; m2 = 7; continue; } else if ((m2 | 0) == 37) { f2 = l[e2 >> 0] | 0; m2 = f2 >>> 3; if ((m2 + -16 | m2 + (h2 >> 26)) >>> 0 > 7) { m2 = 38; break; } g2 = e2 + 1 | 0; a2 = f2 + -128 | h2 << 6; if ((a2 | 0) < 0) { f2 = l[g2 >> 0] | 0; if ((f2 & 192 | 0) != 128) { m2 = 41; break; } g2 = e2 + 2 | 0; a2 = f2 + -128 | a2 << 6; if ((a2 | 0) < 0) { f2 = l[g2 >> 0] | 0; if ((f2 & 192 | 0) != 128) { m2 = 44; break; } a2 = f2 + -128 | a2 << 6; e2 = e2 + 3 | 0; } else e2 = g2; } else e2 = g2; k[j2 >> 2] = a2; f2 = j2 + 4 | 0; d2 = d2 + -1 | 0; m2 = 6; continue; } if ((m2 | 0) == 17) { e2 = g2 + -1 | 0; m2 = 47; } else if ((m2 | 0) == 20) { e2 = g2 + -1 | 0; m2 = 47; } else if ((m2 | 0) == 23) { e2 = g2 + -1 | 0; m2 = 47; } else if ((m2 | 0) == 26) k[b2 >> 2] = e2; else if ((m2 | 0) == 38) { a2 = j2; f2 = h2; e2 = e2 + -1 | 0; m2 = 47; } else if ((m2 | 0) == 41) { d2 = j2; c2 = e2 + -1 | 0; m2 = 52; } else if ((m2 | 0) == 44) { d2 = j2; c2 = e2 + -1 | 0; m2 = 52; } if ((m2 | 0) == 47) if (!f2) m2 = 48; else { d2 = a2; c2 = e2; m2 = 52; } if ((m2 | 0) == 48) if (!(i2[e2 >> 0] | 0)) { if (a2) { k[a2 >> 2] = 0; k[b2 >> 2] = 0; } c2 = c2 - d2 | 0; } else { d2 = a2; c2 = e2; m2 = 52; } if ((m2 | 0) == 52) { m2 = mk() | 0; k[m2 >> 2] = 84; if (!d2) c2 = -1; else { k[b2 >> 2] = c2; c2 = -1; } } return c2 | 0; } function Ok(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0; g2 = r; r = r + 16 | 0; d2 = g2; a: do if (!b2) d2 = 0; else { do if (c2) { f2 = (a2 | 0) == 0 ? d2 : a2; d2 = i2[b2 >> 0] | 0; a2 = d2 & 255; if (d2 << 24 >> 24 > -1) { k[f2 >> 2] = a2; d2 = d2 << 24 >> 24 != 0 & 1; break a; } d2 = a2 + -194 | 0; if (d2 >>> 0 <= 50) { a2 = b2 + 1 | 0; e2 = k[37076 + (d2 << 2) >> 2] | 0; if (c2 >>> 0 < 4 ? (e2 & -2147483648 >>> ((c2 * 6 | 0) + -6 | 0) | 0) != 0 : 0) break; d2 = l[a2 >> 0] | 0; c2 = d2 >>> 3; if ((c2 + -16 | c2 + (e2 >> 26)) >>> 0 <= 7) { d2 = d2 + -128 | e2 << 6; if ((d2 | 0) >= 0) { k[f2 >> 2] = d2; d2 = 2; break a; } a2 = l[b2 + 2 >> 0] | 0; if ((a2 & 192 | 0) == 128) { a2 = a2 + -128 | d2 << 6; if ((a2 | 0) >= 0) { k[f2 >> 2] = a2; d2 = 3; break a; } d2 = l[b2 + 3 >> 0] | 0; if ((d2 & 192 | 0) == 128) { k[f2 >> 2] = d2 + -128 | a2 << 6; d2 = 4; break a; } } } } } while (0); d2 = mk() | 0; k[d2 >> 2] = 84; d2 = -1; } while (0); r = g2; return d2 | 0; } function Pk(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; do if (a2) { if (b2 >>> 0 < 128) { i2[a2 >> 0] = b2; a2 = 1; break; } if (b2 >>> 0 < 2048) { i2[a2 >> 0] = b2 >>> 6 | 192; i2[a2 + 1 >> 0] = b2 & 63 | 128; a2 = 2; break; } if (b2 >>> 0 < 55296 | (b2 & -8192 | 0) == 57344) { i2[a2 >> 0] = b2 >>> 12 | 224; i2[a2 + 1 >> 0] = b2 >>> 6 & 63 | 128; i2[a2 + 2 >> 0] = b2 & 63 | 128; a2 = 3; break; } if ((b2 + -65536 | 0) >>> 0 < 1048576) { i2[a2 >> 0] = b2 >>> 18 | 240; i2[a2 + 1 >> 0] = b2 >>> 12 & 63 | 128; i2[a2 + 2 >> 0] = b2 >>> 6 & 63 | 128; i2[a2 + 3 >> 0] = b2 & 63 | 128; a2 = 4; break; } else { a2 = mk() | 0; k[a2 >> 2] = 84; a2 = -1; break; } } else a2 = 1; while (0); return a2 | 0; } function Qk(a2, b2, c2, d2, e2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; e2 = e2 | 0; var f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0; l2 = r; r = r + 272 | 0; h2 = l2 + 8 | 0; j2 = l2; g2 = k[b2 >> 2] | 0; k[j2 >> 2] = g2; i3 = (a2 | 0) != 0; e2 = i3 ? d2 : 256; d2 = i3 ? a2 : h2; a2 = g2; a: do if ((e2 | 0) != 0 & (g2 | 0) != 0) { g2 = e2; f2 = a2; e2 = 0; while (1) { a2 = c2 >>> 0 >= g2 >>> 0; if (!(a2 | c2 >>> 0 > 32)) { a2 = f2; break a; } a2 = a2 ? g2 : c2; c2 = c2 - a2 | 0; a2 = Rk(d2, j2, a2, 0) | 0; if ((a2 | 0) == -1) { e2 = c2; break; } n2 = (d2 | 0) == (h2 | 0); m2 = n2 ? 0 : a2; f2 = g2 - m2 | 0; d2 = n2 ? d2 : d2 + a2 | 0; e2 = a2 + e2 | 0; a2 = k[j2 >> 2] | 0; if ((g2 | 0) != (m2 | 0) & (a2 | 0) != 0) { g2 = f2; f2 = a2; } else { g2 = f2; break a; } } c2 = e2; g2 = 0; a2 = k[j2 >> 2] | 0; e2 = -1; } else { g2 = e2; e2 = 0; } while (0); b: do if ((a2 | 0) != 0 ? (g2 | 0) != 0 & (c2 | 0) != 0 : 0) { f2 = a2; a2 = d2; while (1) { d2 = Pk(a2, k[f2 >> 2] | 0, 0) | 0; if ((d2 + 1 | 0) >>> 0 < 2) break; f2 = (k[j2 >> 2] | 0) + 4 | 0; k[j2 >> 2] = f2; c2 = c2 + -1 | 0; e2 = e2 + 1 | 0; if (!((g2 | 0) != (d2 | 0) & (c2 | 0) != 0)) break b; else { g2 = g2 - d2 | 0; a2 = a2 + d2 | 0; } } if (!d2) k[j2 >> 2] = 0; else e2 = -1; } while (0); if (i3) k[b2 >> 2] = k[j2 >> 2]; r = l2; return e2 | 0; } function Rk(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0; h2 = r; r = r + 16 | 0; g2 = h2; a: do if (!a2) { a2 = k[b2 >> 2] | 0; d2 = k[a2 >> 2] | 0; if (!d2) c2 = 0; else { c2 = 0; do { if (d2 >>> 0 > 127) { d2 = Pk(g2, d2, 0) | 0; if ((d2 | 0) == -1) { c2 = -1; break a; } } else d2 = 1; c2 = d2 + c2 | 0; a2 = a2 + 4 | 0; d2 = k[a2 >> 2] | 0; } while ((d2 | 0) != 0); } } else { b: do if (c2 >>> 0 > 3) { d2 = c2; e2 = k[b2 >> 2] | 0; while (1) { f2 = k[e2 >> 2] | 0; if ((f2 + -1 | 0) >>> 0 > 126) { if (!f2) break; f2 = Pk(a2, f2, 0) | 0; if ((f2 | 0) == -1) { c2 = -1; break a; } a2 = a2 + f2 | 0; d2 = d2 - f2 | 0; } else { i2[a2 >> 0] = f2; a2 = a2 + 1 | 0; d2 = d2 + -1 | 0; e2 = k[b2 >> 2] | 0; } e2 = e2 + 4 | 0; k[b2 >> 2] = e2; if (d2 >>> 0 <= 3) break b; } i2[a2 >> 0] = 0; k[b2 >> 2] = 0; c2 = c2 - d2 | 0; break a; } else d2 = c2; while (0); if (d2) { e2 = k[b2 >> 2] | 0; while (1) { f2 = k[e2 >> 2] | 0; if ((f2 + -1 | 0) >>> 0 > 126) { if (!f2) { e2 = 19; break; } f2 = Pk(g2, f2, 0) | 0; if ((f2 | 0) == -1) { c2 = -1; break a; } if (d2 >>> 0 < f2 >>> 0) { e2 = 22; break; } Pk(a2, k[e2 >> 2] | 0, 0) | 0; a2 = a2 + f2 | 0; d2 = d2 - f2 | 0; } else { i2[a2 >> 0] = f2; a2 = a2 + 1 | 0; d2 = d2 + -1 | 0; e2 = k[b2 >> 2] | 0; } e2 = e2 + 4 | 0; k[b2 >> 2] = e2; if (!d2) break a; } if ((e2 | 0) == 19) { i2[a2 >> 0] = 0; k[b2 >> 2] = 0; c2 = c2 - d2 | 0; break; } else if ((e2 | 0) == 22) { c2 = c2 - d2 | 0; break; } } } while (0); r = h2; return c2 | 0; } function Sk(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; if (!a2) a2 = 0; else a2 = Pk(a2, b2, 0) | 0; return a2 | 0; } function Tk(a2) { a2 = a2 | 0; return 0; } function Uk(a2) { a2 = a2 | 0; return; } function Vk(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0; j2 = r; r = r + 16 | 0; h2 = j2; g2 = b2 & 255; i2[h2 >> 0] = g2; d2 = a2 + 16 | 0; e2 = k[d2 >> 2] | 0; if (!e2) if (!(bl(a2) | 0)) { e2 = k[d2 >> 2] | 0; f2 = 4; } else c2 = -1; else f2 = 4; do if ((f2 | 0) == 4) { d2 = a2 + 20 | 0; f2 = k[d2 >> 2] | 0; if (f2 >>> 0 < e2 >>> 0 ? (c2 = b2 & 255, (c2 | 0) != (i2[a2 + 75 >> 0] | 0)) : 0) { k[d2 >> 2] = f2 + 1; i2[f2 >> 0] = g2; break; } if ((Qb[k[a2 + 36 >> 2] & 63](a2, h2, 1) | 0) == 1) c2 = l[h2 >> 0] | 0; else c2 = -1; } while (0); r = j2; return c2 | 0; } function Wk(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; b2 = r; r = r + 16 | 0; c2 = b2; k[c2 >> 2] = k[a2 + 60 >> 2]; a2 = sk(wb(6, c2 | 0) | 0) | 0; r = b2; return a2 | 0; } function Xk(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; l2 = r; r = r + 48 | 0; f2 = l2 + 16 | 0; e2 = l2; d2 = l2 + 32 | 0; k[d2 >> 2] = b2; g2 = d2 + 4 | 0; j2 = a2 + 48 | 0; m2 = k[j2 >> 2] | 0; k[g2 >> 2] = c2 - ((m2 | 0) != 0 & 1); h2 = a2 + 44 | 0; k[d2 + 8 >> 2] = k[h2 >> 2]; k[d2 + 12 >> 2] = m2; if (!(k[9258] | 0)) { k[f2 >> 2] = k[a2 + 60 >> 2]; k[f2 + 4 >> 2] = d2; k[f2 + 8 >> 2] = 2; d2 = sk(Eb(145, f2 | 0) | 0) | 0; } else { xb(185, a2 | 0); k[e2 >> 2] = k[a2 + 60 >> 2]; k[e2 + 4 >> 2] = d2; k[e2 + 8 >> 2] = 2; d2 = sk(Eb(145, e2 | 0) | 0) | 0; pb(0); } if ((d2 | 0) >= 1) { g2 = k[g2 >> 2] | 0; if (d2 >>> 0 > g2 >>> 0) { f2 = k[h2 >> 2] | 0; e2 = a2 + 4 | 0; k[e2 >> 2] = f2; k[a2 + 8 >> 2] = f2 + (d2 - g2); if (!(k[j2 >> 2] | 0)) d2 = c2; else { k[e2 >> 2] = f2 + 1; i2[b2 + (c2 + -1) >> 0] = i2[f2 >> 0] | 0; d2 = c2; } } } else { k[a2 >> 2] = k[a2 >> 2] | d2 & 48 ^ 16; k[a2 + 8 >> 2] = 0; k[a2 + 4 >> 2] = 0; } r = l2; return d2 | 0; } function Yk(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0; e2 = r; r = r + 32 | 0; f2 = e2; d2 = e2 + 20 | 0; k[f2 >> 2] = k[a2 + 60 >> 2]; k[f2 + 4 >> 2] = 0; k[f2 + 8 >> 2] = b2; k[f2 + 12 >> 2] = d2; k[f2 + 16 >> 2] = c2; if ((sk(Db(140, f2 | 0) | 0) | 0) < 0) { k[d2 >> 2] = -1; a2 = -1; } else a2 = k[d2 >> 2] | 0; r = e2; return a2 | 0; } function Zk(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, i3 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0; p2 = r; r = r + 48 | 0; m2 = p2 + 16 | 0; l2 = p2; d2 = p2 + 32 | 0; n2 = a2 + 28 | 0; e2 = k[n2 >> 2] | 0; k[d2 >> 2] = e2; o2 = a2 + 20 | 0; e2 = (k[o2 >> 2] | 0) - e2 | 0; k[d2 + 4 >> 2] = e2; k[d2 + 8 >> 2] = b2; k[d2 + 12 >> 2] = c2; i3 = a2 + 60 | 0; j2 = a2 + 44 | 0; b2 = 2; e2 = e2 + c2 | 0; while (1) { if (!(k[9258] | 0)) { k[m2 >> 2] = k[i3 >> 2]; k[m2 + 4 >> 2] = d2; k[m2 + 8 >> 2] = b2; g2 = sk(Fb(146, m2 | 0) | 0) | 0; } else { xb(186, a2 | 0); k[l2 >> 2] = k[i3 >> 2]; k[l2 + 4 >> 2] = d2; k[l2 + 8 >> 2] = b2; g2 = sk(Fb(146, l2 | 0) | 0) | 0; pb(0); } if ((e2 | 0) == (g2 | 0)) { e2 = 6; break; } if ((g2 | 0) < 0) { e2 = 8; break; } e2 = e2 - g2 | 0; f2 = k[d2 + 4 >> 2] | 0; if (g2 >>> 0 <= f2 >>> 0) if ((b2 | 0) == 2) { k[n2 >> 2] = (k[n2 >> 2] | 0) + g2; h2 = f2; b2 = 2; } else h2 = f2; else { h2 = k[j2 >> 2] | 0; k[n2 >> 2] = h2; k[o2 >> 2] = h2; h2 = k[d2 + 12 >> 2] | 0; g2 = g2 - f2 | 0; d2 = d2 + 8 | 0; b2 = b2 + -1 | 0; } k[d2 >> 2] = (k[d2 >> 2] | 0) + g2; k[d2 + 4 >> 2] = h2 - g2; } if ((e2 | 0) == 6) { m2 = k[j2 >> 2] | 0; k[a2 + 16 >> 2] = m2 + (k[a2 + 48 >> 2] | 0); a2 = m2; k[n2 >> 2] = a2; k[o2 >> 2] = a2; } else if ((e2 | 0) == 8) { k[a2 + 16 >> 2] = 0; k[n2 >> 2] = 0; k[o2 >> 2] = 0; k[a2 >> 2] = k[a2 >> 2] | 32; if ((b2 | 0) == 2) c2 = 0; else c2 = c2 - (k[d2 + 4 >> 2] | 0) | 0; } r = p2; return c2 | 0; } function _k(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0; e2 = r; r = r + 80 | 0; d2 = e2; k[a2 + 36 >> 2] = 8; if ((k[a2 >> 2] & 64 | 0) == 0 ? (k[d2 >> 2] = k[a2 + 60 >> 2], k[d2 + 4 >> 2] = 21505, k[d2 + 8 >> 2] = e2 + 12, (nb(54, d2 | 0) | 0) != 0) : 0) i2[a2 + 75 >> 0] = -1; d2 = Zk(a2, b2, c2) | 0; r = e2; return d2 | 0; } function $k(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0; d2 = a2 + 84 | 0; f2 = k[d2 >> 2] | 0; g2 = c2 + 256 | 0; e2 = tl(f2, 0, g2) | 0; e2 = (e2 | 0) == 0 ? g2 : e2 - f2 | 0; c2 = e2 >>> 0 < c2 >>> 0 ? e2 : c2; vw(b2 | 0, f2 | 0, c2 | 0) | 0; k[a2 + 4 >> 2] = f2 + c2; b2 = f2 + e2 | 0; k[a2 + 8 >> 2] = b2; k[d2 >> 2] = b2; return c2 | 0; } function al(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; b2 = a2 + 74 | 0; c2 = i2[b2 >> 0] | 0; i2[b2 >> 0] = c2 + 255 | c2; b2 = a2 + 20 | 0; c2 = a2 + 44 | 0; if ((k[b2 >> 2] | 0) >>> 0 > (k[c2 >> 2] | 0) >>> 0) Qb[k[a2 + 36 >> 2] & 63](a2, 0, 0) | 0; k[a2 + 16 >> 2] = 0; k[a2 + 28 >> 2] = 0; k[b2 >> 2] = 0; b2 = k[a2 >> 2] | 0; if (b2 & 20) if (!(b2 & 4)) b2 = -1; else { k[a2 >> 2] = b2 | 32; b2 = -1; } else { b2 = k[c2 >> 2] | 0; k[a2 + 8 >> 2] = b2; k[a2 + 4 >> 2] = b2; b2 = 0; } return b2 | 0; } function bl(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; b2 = a2 + 74 | 0; c2 = i2[b2 >> 0] | 0; i2[b2 >> 0] = c2 + 255 | c2; b2 = k[a2 >> 2] | 0; if (!(b2 & 8)) { k[a2 + 8 >> 2] = 0; k[a2 + 4 >> 2] = 0; b2 = k[a2 + 44 >> 2] | 0; k[a2 + 28 >> 2] = b2; k[a2 + 20 >> 2] = b2; k[a2 + 16 >> 2] = b2 + (k[a2 + 48 >> 2] | 0); b2 = 0; } else { k[a2 >> 2] = b2 | 32; b2 = -1; } return b2 | 0; } function cl(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; c2 = r; r = r + 16 | 0; b2 = c2; if ((k[a2 + 8 >> 2] | 0) == 0 ? (al(a2) | 0) != 0 : 0) b2 = -1; else if ((Qb[k[a2 + 32 >> 2] & 63](a2, b2, 1) | 0) == 1) b2 = l[b2 >> 0] | 0; else b2 = -1; r = c2; return b2 | 0; } function dl(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0; do if (a2) { if ((k[a2 + 76 >> 2] | 0) <= -1) { b2 = Gl(a2) | 0; break; } c2 = (Tk(a2) | 0) == 0; b2 = Gl(a2) | 0; if (!c2) Uk(a2); } else { if (!(k[9323] | 0)) b2 = 0; else b2 = dl(k[9323] | 0) | 0; Na(37060); a2 = k[9264] | 0; if (a2) do { if ((k[a2 + 76 >> 2] | 0) > -1) c2 = Tk(a2) | 0; else c2 = 0; if ((k[a2 + 20 >> 2] | 0) >>> 0 > (k[a2 + 28 >> 2] | 0) >>> 0) b2 = Gl(a2) | 0 | b2; if (c2) Uk(a2); a2 = k[a2 + 56 >> 2] | 0; } while ((a2 | 0) != 0); ob(37060); } while (0); return b2 | 0; } function el(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; if ((k[b2 + 76 >> 2] | 0) >= 0 ? (Tk(b2) | 0) != 0 : 0) { if ((i2[b2 + 75 >> 0] | 0) != (a2 | 0) ? (d2 = b2 + 20 | 0, e2 = k[d2 >> 2] | 0, e2 >>> 0 < (k[b2 + 16 >> 2] | 0) >>> 0) : 0) { k[d2 >> 2] = e2 + 1; i2[e2 >> 0] = a2; c2 = a2 & 255; } else c2 = Vk(b2, a2) | 0; Uk(b2); } else g2 = 3; do if ((g2 | 0) == 3) { if ((i2[b2 + 75 >> 0] | 0) != (a2 | 0) ? (f2 = b2 + 20 | 0, c2 = k[f2 >> 2] | 0, c2 >>> 0 < (k[b2 + 16 >> 2] | 0) >>> 0) : 0) { k[f2 >> 2] = c2 + 1; i2[c2 >> 0] = a2; c2 = a2 & 255; break; } c2 = Vk(b2, a2) | 0; } while (0); return c2 | 0; } function fl(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0; d2 = c2 + 16 | 0; e2 = k[d2 >> 2] | 0; if (!e2) if (!(bl(c2) | 0)) { e2 = k[d2 >> 2] | 0; f2 = 4; } else d2 = 0; else f2 = 4; a: do if ((f2 | 0) == 4) { g2 = c2 + 20 | 0; f2 = k[g2 >> 2] | 0; if ((e2 - f2 | 0) >>> 0 < b2 >>> 0) { d2 = Qb[k[c2 + 36 >> 2] & 63](c2, a2, b2) | 0; break; } b: do if ((i2[c2 + 75 >> 0] | 0) > -1) { d2 = b2; while (1) { if (!d2) { e2 = f2; d2 = 0; break b; } e2 = d2 + -1 | 0; if ((i2[a2 + e2 >> 0] | 0) == 10) break; else d2 = e2; } if ((Qb[k[c2 + 36 >> 2] & 63](c2, a2, d2) | 0) >>> 0 < d2 >>> 0) break a; b2 = b2 - d2 | 0; a2 = a2 + d2 | 0; e2 = k[g2 >> 2] | 0; } else { e2 = f2; d2 = 0; } while (0); vw(e2 | 0, a2 | 0, b2 | 0) | 0; k[g2 >> 2] = (k[g2 >> 2] | 0) + b2; d2 = d2 + b2 | 0; } while (0); return d2 | 0; } function gl(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0; e2 = ia(c2, b2) | 0; if ((k[d2 + 76 >> 2] | 0) > -1) { f2 = (Tk(d2) | 0) == 0; a2 = fl(a2, e2, d2) | 0; if (!f2) Uk(d2); } else a2 = fl(a2, e2, d2) | 0; if ((a2 | 0) != (e2 | 0)) c2 = (a2 >>> 0) / (b2 >>> 0) | 0; return c2 | 0; } function hl(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0; if ((k[a2 + 76 >> 2] | 0) >= 0 ? (Tk(a2) | 0) != 0 : 0) { b2 = a2 + 4 | 0; c2 = k[b2 >> 2] | 0; if (c2 >>> 0 < (k[a2 + 8 >> 2] | 0) >>> 0) { k[b2 >> 2] = c2 + 1; b2 = l[c2 >> 0] | 0; } else b2 = cl(a2) | 0; } else d2 = 3; do if ((d2 | 0) == 3) { b2 = a2 + 4 | 0; c2 = k[b2 >> 2] | 0; if (c2 >>> 0 < (k[a2 + 8 >> 2] | 0) >>> 0) { k[b2 >> 2] = c2 + 1; b2 = l[c2 >> 0] | 0; break; } else { b2 = cl(a2) | 0; break; } } while (0); return b2 | 0; } function il(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0; e2 = r; r = r + 16 | 0; f2 = e2; k[f2 >> 2] = d2; d2 = ol(a2, b2, c2, f2) | 0; r = e2; return d2 | 0; } function jl(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0; d2 = r; r = r + 16 | 0; e2 = d2; k[e2 >> 2] = c2; c2 = pl(a2, b2, e2) | 0; r = d2; return c2 | 0; } function kl(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0; do if ((a2 | 0) != -1) { if ((k[b2 + 76 >> 2] | 0) > -1) e2 = Tk(b2) | 0; else e2 = 0; if (!((k[b2 + 8 >> 2] | 0) == 0 ? (al(b2) | 0) != 0 : 0)) f2 = 6; if ((f2 | 0) == 6 ? (c2 = b2 + 4 | 0, d2 = k[c2 >> 2] | 0, d2 >>> 0 > ((k[b2 + 44 >> 2] | 0) + -8 | 0) >>> 0) : 0) { f2 = d2 + -1 | 0; k[c2 >> 2] = f2; i2[f2 >> 0] = a2; k[b2 >> 2] = k[b2 >> 2] & -17; if (!e2) break; Uk(b2); break; } if (e2) { Uk(b2); a2 = -1; } else a2 = -1; } else a2 = -1; while (0); return a2 | 0; } function ll(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; h2 = r; r = r + 16 | 0; d2 = h2; e2 = Pl(240) | 0; do if (e2) { k[d2 >> 2] = k[c2 >> 2]; d2 = ol(e2, 240, b2, d2) | 0; if (d2 >>> 0 < 240) { b2 = Sl(e2, d2 + 1 | 0) | 0; k[a2 >> 2] = (b2 | 0) != 0 ? b2 : e2; break; } Ql(e2); if ((d2 | 0) >= 0 ? (g2 = d2 + 1 | 0, f2 = Pl(g2) | 0, k[a2 >> 2] = f2, (f2 | 0) != 0) : 0) d2 = ol(f2, g2, b2, c2) | 0; else d2 = -1; } else d2 = -1; while (0); r = h2; return d2 | 0; } function ml(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0, n2 = 0, o2 = 0, p2 = 0, q2 = 0, s2 = 0; s2 = r; r = r + 224 | 0; n2 = s2 + 80 | 0; q2 = s2 + 96 | 0; p2 = s2; o2 = s2 + 136 | 0; d2 = q2; e2 = d2 + 40 | 0; do { k[d2 >> 2] = 0; d2 = d2 + 4 | 0; } while ((d2 | 0) < (e2 | 0)); k[n2 >> 2] = k[c2 >> 2]; if ((Hl(0, b2, n2, p2, q2) | 0) < 0) c2 = -1; else { if ((k[a2 + 76 >> 2] | 0) > -1) l2 = Tk(a2) | 0; else l2 = 0; c2 = k[a2 >> 2] | 0; m2 = c2 & 32; if ((i2[a2 + 74 >> 0] | 0) < 1) k[a2 >> 2] = c2 & -33; c2 = a2 + 48 | 0; if (!(k[c2 >> 2] | 0)) { e2 = a2 + 44 | 0; f2 = k[e2 >> 2] | 0; k[e2 >> 2] = o2; g2 = a2 + 28 | 0; k[g2 >> 2] = o2; h2 = a2 + 20 | 0; k[h2 >> 2] = o2; k[c2 >> 2] = 80; j2 = a2 + 16 | 0; k[j2 >> 2] = o2 + 80; d2 = Hl(a2, b2, n2, p2, q2) | 0; if (f2) { Qb[k[a2 + 36 >> 2] & 63](a2, 0, 0) | 0; d2 = (k[h2 >> 2] | 0) == 0 ? -1 : d2; k[e2 >> 2] = f2; k[c2 >> 2] = 0; k[j2 >> 2] = 0; k[g2 >> 2] = 0; k[h2 >> 2] = 0; } } else d2 = Hl(a2, b2, n2, p2, q2) | 0; c2 = k[a2 >> 2] | 0; k[a2 >> 2] = c2 | m2; if (l2) Uk(a2); c2 = (c2 & 32 | 0) == 0 ? d2 : -1; } r = s2; return c2 | 0; } function nl(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0, m2 = 0, n2 = 0, q2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F2 = 0, G2 = 0, H2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, N2 = 0, O2 = 0, P2 = 0, Q2 = 0; P2 = r; r = r + 304 | 0; G2 = P2 + 16 | 0; I2 = P2 + 8 | 0; H2 = P2 + 33 | 0; J2 = P2; y2 = P2 + 32 | 0; if ((k[a2 + 76 >> 2] | 0) > -1) O2 = Tk(a2) | 0; else O2 = 0; d2 = i2[b2 >> 0] | 0; a: do if (d2 << 24 >> 24) { K2 = a2 + 4 | 0; L2 = a2 + 100 | 0; F2 = a2 + 108 | 0; z2 = a2 + 8 | 0; A2 = H2 + 10 | 0; B2 = H2 + 33 | 0; C2 = I2 + 4 | 0; D2 = H2 + 46 | 0; E2 = H2 + 94 | 0; f2 = d2; d2 = 0; g2 = b2; s2 = 0; e2 = 0; b2 = 0; b: while (1) { c: do if (!(kk(f2 & 255) | 0)) { f2 = (i2[g2 >> 0] | 0) == 37; d: do if (f2) { n2 = g2 + 1 | 0; h2 = i2[n2 >> 0] | 0; e: do switch (h2 << 24 >> 24) { case 37: break d; case 42: { x2 = 0; h2 = g2 + 2 | 0; break; } default: { h2 = (h2 & 255) + -48 | 0; if (h2 >>> 0 < 10 ? (i2[g2 + 2 >> 0] | 0) == 36 : 0) { k[G2 >> 2] = k[c2 >> 2]; while (1) { x2 = (k[G2 >> 2] | 0) + (4 - 1) & ~(4 - 1); f2 = k[x2 >> 2] | 0; k[G2 >> 2] = x2 + 4; if (h2 >>> 0 > 1) h2 = h2 + -1 | 0; else break; } x2 = f2; h2 = g2 + 3 | 0; break e; } h2 = (k[c2 >> 2] | 0) + (4 - 1) & ~(4 - 1); x2 = k[h2 >> 2] | 0; k[c2 >> 2] = h2 + 4; h2 = n2; } } while (0); f2 = i2[h2 >> 0] | 0; g2 = f2 & 255; if ((g2 + -48 | 0) >>> 0 < 10) { f2 = 0; while (1) { n2 = (f2 * 10 | 0) + -48 + g2 | 0; h2 = h2 + 1 | 0; f2 = i2[h2 >> 0] | 0; g2 = f2 & 255; if ((g2 + -48 | 0) >>> 0 >= 10) break; else f2 = n2; } } else n2 = 0; if (f2 << 24 >> 24 == 109) { h2 = h2 + 1 | 0; q2 = i2[h2 >> 0] | 0; f2 = (x2 | 0) != 0 & 1; e2 = 0; b2 = 0; } else { q2 = f2; f2 = 0; } g2 = h2 + 1 | 0; switch (q2 & 255 | 0) { case 104: { w2 = (i2[g2 >> 0] | 0) == 104; g2 = w2 ? h2 + 2 | 0 : g2; h2 = w2 ? -2 : -1; break; } case 108: { w2 = (i2[g2 >> 0] | 0) == 108; g2 = w2 ? h2 + 2 | 0 : g2; h2 = w2 ? 3 : 1; break; } case 106: { h2 = 3; break; } case 116: case 122: { h2 = 1; break; } case 76: { h2 = 2; break; } case 110: case 112: case 67: case 83: case 91: case 99: case 115: case 88: case 71: case 70: case 69: case 65: case 103: case 102: case 101: case 97: case 120: case 117: case 111: case 105: case 100: { g2 = h2; h2 = 0; break; } default: { N2 = 152; break b; } } q2 = l[g2 >> 0] | 0; t2 = (q2 & 47 | 0) == 3; q2 = t2 ? q2 | 32 : q2; t2 = t2 ? 1 : h2; switch (q2 | 0) { case 99: { w2 = s2; v2 = (n2 | 0) < 1 ? 1 : n2; break; } case 91: { w2 = s2; v2 = n2; break; } case 110: { if (!x2) { h2 = s2; break c; } switch (t2 | 0) { case -2: { i2[x2 >> 0] = s2; h2 = s2; break c; } case -1: { j[x2 >> 1] = s2; h2 = s2; break c; } case 0: { k[x2 >> 2] = s2; h2 = s2; break c; } case 1: { k[x2 >> 2] = s2; h2 = s2; break c; } case 3: { h2 = x2; k[h2 >> 2] = s2; k[h2 + 4 >> 2] = ((s2 | 0) < 0) << 31 >> 31; h2 = s2; break c; } default: { h2 = s2; break c; } } } default: { qk(a2, 0); do { h2 = k[K2 >> 2] | 0; if (h2 >>> 0 < (k[L2 >> 2] | 0) >>> 0) { k[K2 >> 2] = h2 + 1; h2 = l[h2 >> 0] | 0; } else h2 = rk(a2) | 0; } while ((kk(h2) | 0) != 0); h2 = k[K2 >> 2] | 0; if (k[L2 >> 2] | 0) { h2 = h2 + -1 | 0; k[K2 >> 2] = h2; } w2 = (k[F2 >> 2] | 0) + s2 + h2 - (k[z2 >> 2] | 0) | 0; v2 = n2; } } qk(a2, v2); h2 = k[K2 >> 2] | 0; n2 = k[L2 >> 2] | 0; if (h2 >>> 0 < n2 >>> 0) k[K2 >> 2] = h2 + 1; else { if ((rk(a2) | 0) < 0) { N2 = 152; break b; } n2 = k[L2 >> 2] | 0; } if (n2) k[K2 >> 2] = (k[K2 >> 2] | 0) + -1; f: do switch (q2 | 0) { case 91: case 99: case 115: { u2 = (q2 | 0) == 99; g: do if ((q2 & 239 | 0) == 99) { sw(H2 | 0, -1, 257) | 0; i2[H2 >> 0] = 0; if ((q2 | 0) == 115) { i2[B2 >> 0] = 0; i2[A2 >> 0] = 0; i2[A2 + 1 >> 0] = 0; i2[A2 + 2 >> 0] = 0; i2[A2 + 3 >> 0] = 0; i2[A2 + 4 >> 0] = 0; } } else { Q2 = g2 + 1 | 0; s2 = (i2[Q2 >> 0] | 0) == 94; h2 = s2 & 1; q2 = s2 ? Q2 : g2; g2 = s2 ? g2 + 2 | 0 : Q2; sw(H2 | 0, s2 & 1 | 0, 257) | 0; i2[H2 >> 0] = 0; switch (i2[g2 >> 0] | 0) { case 45: { s2 = (h2 ^ 1) & 255; i2[D2 >> 0] = s2; g2 = q2 + 2 | 0; break; } case 93: { s2 = (h2 ^ 1) & 255; i2[E2 >> 0] = s2; g2 = q2 + 2 | 0; break; } default: s2 = (h2 ^ 1) & 255; } while (1) { h2 = i2[g2 >> 0] | 0; h: do switch (h2 << 24 >> 24) { case 0: { N2 = 152; break b; } case 93: break g; case 45: { q2 = g2 + 1 | 0; h2 = i2[q2 >> 0] | 0; switch (h2 << 24 >> 24) { case 93: case 0: { h2 = 45; break h; } default: { } } g2 = i2[g2 + -1 >> 0] | 0; if ((g2 & 255) < (h2 & 255)) { g2 = g2 & 255; do { g2 = g2 + 1 | 0; i2[H2 + g2 >> 0] = s2; h2 = i2[q2 >> 0] | 0; } while ((g2 | 0) < (h2 & 255 | 0)); g2 = q2; } else g2 = q2; break; } default: { } } while (0); i2[H2 + ((h2 & 255) + 1) >> 0] = s2; g2 = g2 + 1 | 0; } } while (0); q2 = u2 ? v2 + 1 | 0 : 31; s2 = (t2 | 0) == 1; t2 = (f2 | 0) != 0; i: do if (s2) { if (t2) { b2 = Pl(q2 << 2) | 0; if (!b2) { e2 = 0; N2 = 152; break b; } } else b2 = x2; k[I2 >> 2] = 0; k[C2 >> 2] = 0; e2 = 0; j: while (1) { n2 = (b2 | 0) == 0; do { k: while (1) { h2 = k[K2 >> 2] | 0; if (h2 >>> 0 < (k[L2 >> 2] | 0) >>> 0) { k[K2 >> 2] = h2 + 1; h2 = l[h2 >> 0] | 0; } else h2 = rk(a2) | 0; if (!(i2[H2 + (h2 + 1) >> 0] | 0)) break j; i2[y2 >> 0] = h2; switch (Kk(J2, y2, 1, I2) | 0) { case -1: { e2 = 0; N2 = 152; break b; } case -2: break; default: break k; } } if (!n2) { k[b2 + (e2 << 2) >> 2] = k[J2 >> 2]; e2 = e2 + 1 | 0; } } while (!(t2 & (e2 | 0) == (q2 | 0))); e2 = q2 << 1 | 1; h2 = Sl(b2, e2 << 2) | 0; if (!h2) { e2 = 0; N2 = 152; break b; } Q2 = q2; q2 = e2; b2 = h2; e2 = Q2; } if (!(Lk(I2) | 0)) { e2 = 0; N2 = 152; break b; } else { n2 = e2; e2 = 0; } } else { if (t2) { e2 = Pl(q2) | 0; if (!e2) { e2 = 0; b2 = 0; N2 = 152; break b; } else h2 = 0; while (1) { do { b2 = k[K2 >> 2] | 0; if (b2 >>> 0 < (k[L2 >> 2] | 0) >>> 0) { k[K2 >> 2] = b2 + 1; b2 = l[b2 >> 0] | 0; } else b2 = rk(a2) | 0; if (!(i2[H2 + (b2 + 1) >> 0] | 0)) { n2 = h2; b2 = 0; break i; } i2[e2 + h2 >> 0] = b2; h2 = h2 + 1 | 0; } while ((h2 | 0) != (q2 | 0)); b2 = q2 << 1 | 1; h2 = Sl(e2, b2) | 0; if (!h2) { b2 = 0; N2 = 152; break b; } else { Q2 = q2; q2 = b2; e2 = h2; h2 = Q2; } } } if (!x2) { e2 = n2; while (1) { b2 = k[K2 >> 2] | 0; if (b2 >>> 0 < e2 >>> 0) { k[K2 >> 2] = b2 + 1; b2 = l[b2 >> 0] | 0; } else b2 = rk(a2) | 0; if (!(i2[H2 + (b2 + 1) >> 0] | 0)) { n2 = 0; e2 = 0; b2 = 0; break i; } e2 = k[L2 >> 2] | 0; } } else { e2 = 0; while (1) { b2 = k[K2 >> 2] | 0; if (b2 >>> 0 < n2 >>> 0) { k[K2 >> 2] = b2 + 1; b2 = l[b2 >> 0] | 0; } else b2 = rk(a2) | 0; if (!(i2[H2 + (b2 + 1) >> 0] | 0)) { n2 = e2; e2 = x2; b2 = 0; break i; } i2[x2 + e2 >> 0] = b2; n2 = k[L2 >> 2] | 0; e2 = e2 + 1 | 0; } } } while (0); h2 = k[K2 >> 2] | 0; if (k[L2 >> 2] | 0) { h2 = h2 + -1 | 0; k[K2 >> 2] = h2; } h2 = h2 - (k[z2 >> 2] | 0) + (k[F2 >> 2] | 0) | 0; if (!h2) break b; if (!((h2 | 0) == (v2 | 0) | u2 ^ 1)) break b; do if (t2) if (s2) { k[x2 >> 2] = b2; break; } else { k[x2 >> 2] = e2; break; } while (0); if (!u2) { if (b2) k[b2 + (n2 << 2) >> 2] = 0; if (!e2) { e2 = 0; break f; } i2[e2 + n2 >> 0] = 0; } break; } case 120: case 88: case 112: { h2 = 16; N2 = 134; break; } case 111: { h2 = 8; N2 = 134; break; } case 117: case 100: { h2 = 10; N2 = 134; break; } case 105: { h2 = 0; N2 = 134; break; } case 71: case 103: case 70: case 102: case 69: case 101: case 65: case 97: { m2 = +ok(a2, t2, 0); if ((k[F2 >> 2] | 0) == ((k[z2 >> 2] | 0) - (k[K2 >> 2] | 0) | 0)) break b; if (x2) switch (t2 | 0) { case 0: { o[x2 >> 2] = m2; break f; } case 1: { p[x2 >> 3] = m2; break f; } case 2: { p[x2 >> 3] = m2; break f; } default: break f; } break; } default: { } } while (0); l: do if ((N2 | 0) == 134) { N2 = 0; h2 = pk(a2, h2, 0, -1, -1) | 0; if ((k[F2 >> 2] | 0) == ((k[z2 >> 2] | 0) - (k[K2 >> 2] | 0) | 0)) break b; if ((x2 | 0) != 0 & (q2 | 0) == 112) { k[x2 >> 2] = h2; break; } if (x2) switch (t2 | 0) { case -2: { i2[x2 >> 0] = h2; break l; } case -1: { j[x2 >> 1] = h2; break l; } case 0: { k[x2 >> 2] = h2; break l; } case 1: { k[x2 >> 2] = h2; break l; } case 3: { Q2 = x2; k[Q2 >> 2] = h2; k[Q2 + 4 >> 2] = M; break l; } default: break l; } } while (0); d2 = ((x2 | 0) != 0 & 1) + d2 | 0; h2 = (k[F2 >> 2] | 0) + w2 + (k[K2 >> 2] | 0) - (k[z2 >> 2] | 0) | 0; break c; } while (0); g2 = g2 + (f2 & 1) | 0; qk(a2, 0); f2 = k[K2 >> 2] | 0; if (f2 >>> 0 < (k[L2 >> 2] | 0) >>> 0) { k[K2 >> 2] = f2 + 1; f2 = l[f2 >> 0] | 0; } else f2 = rk(a2) | 0; if ((f2 | 0) != (l[g2 >> 0] | 0)) { N2 = 21; break b; } h2 = s2 + 1 | 0; } else { while (1) { f2 = g2 + 1 | 0; if (!(kk(l[f2 >> 0] | 0) | 0)) break; else g2 = f2; } qk(a2, 0); do { f2 = k[K2 >> 2] | 0; if (f2 >>> 0 < (k[L2 >> 2] | 0) >>> 0) { k[K2 >> 2] = f2 + 1; f2 = l[f2 >> 0] | 0; } else f2 = rk(a2) | 0; } while ((kk(f2) | 0) != 0); f2 = k[K2 >> 2] | 0; if (k[L2 >> 2] | 0) { f2 = f2 + -1 | 0; k[K2 >> 2] = f2; } h2 = (k[F2 >> 2] | 0) + s2 + f2 - (k[z2 >> 2] | 0) | 0; } while (0); g2 = g2 + 1 | 0; f2 = i2[g2 >> 0] | 0; if (!(f2 << 24 >> 24)) break a; else s2 = h2; } if ((N2 | 0) == 21) { if (k[L2 >> 2] | 0) k[K2 >> 2] = (k[K2 >> 2] | 0) + -1; if ((d2 | 0) != 0 | (f2 | 0) > -1) break; else { d2 = 0; N2 = 153; } } else if ((N2 | 0) == 152) { if (!d2) { d2 = f2; N2 = 153; } } if ((N2 | 0) == 153) { f2 = d2; d2 = -1; } if (f2) { Ql(e2); Ql(b2); } } else d2 = 0; while (0); if (O2) Uk(a2); r = P2; return d2 | 0; } function ol(a2, b2, c2, d2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; d2 = d2 | 0; var e2 = 0, f2 = 0, g2 = 0, h2 = 0, j2 = 0, l2 = 0, m2 = 0; m2 = r; r = r + 128 | 0; e2 = m2 + 112 | 0; l2 = m2; f2 = l2; g2 = 37352; h2 = f2 + 112 | 0; do { k[f2 >> 2] = k[g2 >> 2]; f2 = f2 + 4 | 0; g2 = g2 + 4 | 0; } while ((f2 | 0) < (h2 | 0)); if ((b2 + -1 | 0) >>> 0 > 2147483646) if (!b2) { b2 = 1; j2 = 4; } else { b2 = mk() | 0; k[b2 >> 2] = 75; b2 = -1; } else { e2 = a2; j2 = 4; } if ((j2 | 0) == 4) { j2 = -2 - e2 | 0; j2 = b2 >>> 0 > j2 >>> 0 ? j2 : b2; k[l2 + 48 >> 2] = j2; a2 = l2 + 20 | 0; k[a2 >> 2] = e2; k[l2 + 44 >> 2] = e2; b2 = e2 + j2 | 0; e2 = l2 + 16 | 0; k[e2 >> 2] = b2; k[l2 + 28 >> 2] = b2; b2 = ml(l2, c2, d2) | 0; if (j2) { c2 = k[a2 >> 2] | 0; i2[c2 + (((c2 | 0) == (k[e2 >> 2] | 0)) << 31 >> 31) >> 0] = 0; } } r = m2; return b2 | 0; } function pl(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0; f2 = r; r = r + 112 | 0; d2 = f2; e2 = d2; g2 = e2 + 112 | 0; do { k[e2 >> 2] = 0; e2 = e2 + 4 | 0; } while ((e2 | 0) < (g2 | 0)); k[d2 + 32 >> 2] = 29; k[d2 + 44 >> 2] = a2; k[d2 + 76 >> 2] = -1; k[d2 + 84 >> 2] = a2; g2 = nl(d2, b2, c2) | 0; r = f2; return g2 | 0; } function ql(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; return + +Jl(a2, b2, 2); } function rl(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; a2 = Kl(a2, b2, c2, -1, -1) | 0; return a2 | 0; } function sl(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; a2 = Kl(a2, b2, c2, 0, -2147483648) | 0; return a2 | 0; } function tl(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0, f2 = 0, g2 = 0; f2 = b2 & 255; d2 = (c2 | 0) != 0; a: do if (d2 & (a2 & 3 | 0) != 0) { e2 = b2 & 255; while (1) { if ((i2[a2 >> 0] | 0) == e2 << 24 >> 24) { g2 = 6; break a; } a2 = a2 + 1 | 0; c2 = c2 + -1 | 0; d2 = (c2 | 0) != 0; if (!(d2 & (a2 & 3 | 0) != 0)) { g2 = 5; break; } } } else g2 = 5; while (0); if ((g2 | 0) == 5) if (d2) g2 = 6; else c2 = 0; b: do if ((g2 | 0) == 6) { e2 = b2 & 255; if ((i2[a2 >> 0] | 0) != e2 << 24 >> 24) { d2 = ia(f2, 16843009) | 0; c: do if (c2 >>> 0 > 3) while (1) { f2 = k[a2 >> 2] ^ d2; if ((f2 & -2139062144 ^ -2139062144) & f2 + -16843009) break; a2 = a2 + 4 | 0; c2 = c2 + -4 | 0; if (c2 >>> 0 <= 3) { g2 = 11; break c; } } else g2 = 11; while (0); if ((g2 | 0) == 11) { if (!c2) { c2 = 0; break; } } while (1) { if ((i2[a2 >> 0] | 0) == e2 << 24 >> 24) break b; a2 = a2 + 1 | 0; c2 = c2 + -1 | 0; if (!c2) { c2 = 0; break; } } } } while (0); return ((c2 | 0) != 0 ? a2 : 0) | 0; } function ul(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0; c2 = b2; a: do if (!((c2 ^ a2) & 3)) { if (c2 & 3) do { c2 = i2[b2 >> 0] | 0; i2[a2 >> 0] = c2; if (!(c2 << 24 >> 24)) break a; b2 = b2 + 1 | 0; a2 = a2 + 1 | 0; } while ((b2 & 3 | 0) != 0); c2 = k[b2 >> 2] | 0; if (!((c2 & -2139062144 ^ -2139062144) & c2 + -16843009)) { d2 = a2; while (1) { b2 = b2 + 4 | 0; a2 = d2 + 4 | 0; k[d2 >> 2] = c2; c2 = k[b2 >> 2] | 0; if ((c2 & -2139062144 ^ -2139062144) & c2 + -16843009) break; else d2 = a2; } } d2 = 8; } else d2 = 8; while (0); if ((d2 | 0) == 8) { d2 = i2[b2 >> 0] | 0; i2[a2 >> 0] = d2; if (d2 << 24 >> 24) do { b2 = b2 + 1 | 0; a2 = a2 + 1 | 0; d2 = i2[b2 >> 0] | 0; i2[a2 >> 0] = d2; } while (d2 << 24 >> 24 != 0); } return a2 | 0; } function vl(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0; d2 = i2[a2 >> 0] | 0; c2 = i2[b2 >> 0] | 0; if (d2 << 24 >> 24 == 0 ? 1 : d2 << 24 >> 24 != c2 << 24 >> 24) b2 = d2; else { do { a2 = a2 + 1 | 0; b2 = b2 + 1 | 0; d2 = i2[a2 >> 0] | 0; c2 = i2[b2 >> 0] | 0; } while (!(d2 << 24 >> 24 == 0 ? 1 : d2 << 24 >> 24 != c2 << 24 >> 24)); b2 = d2; } return (b2 & 255) - (c2 & 255) | 0; } function wl(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; ul(a2, b2) | 0; return a2 | 0; } function xl(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0; d2 = a2; a: do if (!(d2 & 3)) c2 = 4; else { b2 = a2; a2 = d2; while (1) { if (!(i2[b2 >> 0] | 0)) break a; b2 = b2 + 1 | 0; a2 = b2; if (!(a2 & 3)) { a2 = b2; c2 = 4; break; } } } while (0); if ((c2 | 0) == 4) { while (1) { b2 = k[a2 >> 2] | 0; if (!((b2 & -2139062144 ^ -2139062144) & b2 + -16843009)) a2 = a2 + 4 | 0; else break; } if ((b2 & 255) << 24 >> 24) do a2 = a2 + 1 | 0; while ((i2[a2 >> 0] | 0) != 0); } return a2 - d2 | 0; } function yl(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0, e2 = 0; if (!c2) b2 = 0; else { d2 = i2[a2 >> 0] | 0; a: do if (!(d2 << 24 >> 24)) d2 = 0; else while (1) { c2 = c2 + -1 | 0; e2 = i2[b2 >> 0] | 0; if (!(d2 << 24 >> 24 == e2 << 24 >> 24 & ((c2 | 0) != 0 & e2 << 24 >> 24 != 0))) break a; a2 = a2 + 1 | 0; b2 = b2 + 1 | 0; d2 = i2[a2 >> 0] | 0; if (!(d2 << 24 >> 24)) { d2 = 0; break; } } while (0); b2 = (d2 & 255) - (l[b2 >> 0] | 0) | 0; } return b2 | 0; } function zl(a2) { a2 = a2 | 0; var b2 = 0; b2 = a2; while (1) if (!(k[b2 >> 2] | 0)) break; else b2 = b2 + 4 | 0; return b2 - a2 >> 2 | 0; } function Al(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0; if (c2) { d2 = a2; while (1) { c2 = c2 + -1 | 0; k[d2 >> 2] = k[b2 >> 2]; if (!c2) break; else { b2 = b2 + 4 | 0; d2 = d2 + 4 | 0; } } } return a2 | 0; } function Bl(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0; d2 = (c2 | 0) == 0; if (a2 - b2 >> 2 >>> 0 < c2 >>> 0) { if (!d2) do { c2 = c2 + -1 | 0; k[a2 + (c2 << 2) >> 2] = k[b2 + (c2 << 2) >> 2]; } while ((c2 | 0) != 0); } else if (!d2) { d2 = b2; b2 = a2; while (1) { c2 = c2 + -1 | 0; k[b2 >> 2] = k[d2 >> 2]; if (!c2) break; else { d2 = d2 + 4 | 0; b2 = b2 + 4 | 0; } } } return a2 | 0; } function Cl(a2, b2, c2) { a2 = a2 | 0; b2 = b2 | 0; c2 = c2 | 0; var d2 = 0; if (c2) { d2 = a2; while (1) { c2 = c2 + -1 | 0; k[d2 >> 2] = b2; if (!c2) break; else d2 = d2 + 4 | 0; } } return a2 | 0; } function Dl(a2, b2) { a2 = a2 | 0; b2 = b2 | 0; var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h2 = 0; g2 = a2 + 4 | 0; c2 = k[g2 >> 2] | 0; h2 = a2 + 100 | 0; if (c2 >>> 0 < (k[h2 >> 2] | 0) >>> 0) { k[g2 >> 2] = c2 + 1; c2 = l[c2 >> 0] | 0; } else c2 = rk(a2) | 0; switch (c2 | 0) { case 43: case 45: { d2 = (c2 | 0) == 45 & 1; c2 = k[g2 >> 2] | 0; if (c2 >>> 0 < (k[h2 >> 2] | 0) >>> 0) { k[g2 >> 2] = c2 + 1; c2 = l[c2 >> 0] | 0; } else c2 = rk(a2) | 0; if ((b2 | 0) != 0 & (c2 + -48 | 0) >>> 0 > 9 ? (k[h2 >> 2] | 0) != 0 : 0) { k[g2 >> 2] = (k[g2 >> 2] | 0) + -1; f2 = d2; } else f2 = d2; break; } default: f2 = 0; } if ((c2 + -48 | 0) >>> 0 > 9) if (!(k[h2 >> 2] | 0)) { d2 = -2147483648; c2 = 0; } else { k[g2 >> 2] = (k[g2 >> 2] | 0) + -1; d2 = -2147483648; c2 = 0; } else { d2 = 0; do { d2 = c2 + -48 + (d2 * 10 | 0) | 0; c2 = k[g2 >> 2] | 0; if (c2 >>> 0 < (k[h2 >> 2] | 0) >>> 0) { k[g2 >> 2] = c2 + 1; c2 = l[c2 >> 0] | 0; } else c2 = rk(a2) | 0; } while ((c2 + -48 | 0) >>> 0 < 10 & (d2 | 0) < 214748364); b2 = ((d2 | 0) < 0) << 31 >> 31; if ((c2 + -48 | 0) >>> 0 < 10) { do { b2 = Dw(d2 | 0, b2 | 0, 10, 0) | 0; d2 = M; c2 = tw(c2 | 0, ((c2 | 0) < 0) << 31 >> 31 | 0, -48, -1) | 0; d2 = tw(c2 | 0, M | 0, b2 | 0, d2 | 0) | 0; b2 = M; c2 = k[g2 >> 2] | 0; if (c2 >>> 0 < (k[h2 >> 2] | 0) >>> 0) { k[g2 >> 2] = c2 + 1; c2 = l[c2 >> 0] | 0; } else c2 = rk(a2) | 0; } while ((c2 + -48 | 0) >>> 0 < 10 & ((b2 | 0) < 21474836 | (b2 | 0) == 21474836 & d2 >>> 0 < 2061584302)); e2 = d2; } else e2 = d2; if ((c2 + -48 | 0) >>> 0 < 10) do { c2 = k[g2 >> 2] | 0; if (c2 >>> 0 < (k[h2 >> 2] | 0) >>> 0) { k[g2 >> 2] = c2 + 1; c2 = l[c2 >> 0] | 0; } else c2 = rk(a2) | 0; } while ((c2 + -48 | 0) >>> 0 < 10); if (k[h2 >> 2] | 0) k[g2 >> 2] = (k[g2 >> 2] | 0) + -1; a2 = (f2 | 0) != 0; c2 = rw(0, 0, e2 | 0, b2 | 0) | 0; d2 = a2 ? M : b2; c2 = a2 ? c2 : e2; } M = d2; return c2 | 0; } function El(a2) { a2 = a2 | 0; if (!(k[a2 + 68 >> 2] | 0)) Uk(a2); return; } function Fl(a2) { a2 = a2 | 0; if (!(k[a2 + 68 >> 2] | 0)) Uk(a2); return; } function Gl(a2) { a2 = a2 | 0; var b2 = 0, c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; b2 = a2 + 20 | 0; f2 = a2 + 28 | 0; if ((k[b2 >> 2] | 0) >>> 0 > (k[f2 >> 2] | 0) >>> 0 ? (Qb[k[a2 + 36 >> 2] & 63](a2, 0, 0) | 0, (k[b2 >> 2] | 0) == 0) : 0) b2 = -1; else { g2 = a2 + 4 | 0; c2 = k[g2 >> 2] | 0; d2 = a2 + 8 | 0; e2 = k[d2 >> 2] | 0; if (c2 >>> 0 < e2 >>> 0) Qb[k[a2 + 40 >> 2] & 63](a2, c2 - e2 | 0, 1) | 0; k[a2 + 16 >> 2] = 0; k[f2 >> 2] = 0; k[b2 >> 2] = 0; k[d2 >> 2] = 0; k[g2 >> 2] = 0; b2 = 0; } return b2 | 0; } var Ib = [cx, _q, cr, Yr, as, fs, hs, Hu, Su, cx, cx, cx, cx, cx, cx, cx]; var Jb = [dx, si, gi, Wh, Kh, yh, mh, ah, Lg, Wj, Vj, Sj, dx, dx, dx, dx]; var Kb = [ex, ls, rs, ex]; var Lb = [fx, oi, pi, ci, di, Sh, Th, Gh, Hh, uh, vh, ih, jh, Yg, Zg, Hg, Ig, ug, vg, ig, jg, Yf, Zf, Mf, Nf, Af, Bf, Ie, Je, ve, we, Dc, Ec, Zd, be, _d, mo, oo, no, po, ud, vd, _i, wd, nd, od, Sc, Tc, _c, $c, fd, gd, xd, yd, Ed, Fd, Ld, Md, Sd, Td, te, ue, Re, Se, Ye, Ze, df, ef, lf, mf, Wg, Xg, Nm, Ai, Ki, Li, $i, aj, pj, qj, wj, xj, Bj, Cj, Ej, Hj, Fj, Gj, Ij, Jj, Mn, bm, hm, xn, mm, sm, Lm, Mm, yn, Nn, $n, bo, ao, co, go, io, ho, jo, uo, wo, vo, xo, Eo, Fo, pn, Go, Ho, Io, Ko, Us, Oo, Po, To, Uo, gp, hp, Ap, Bp, Pp, Qp, aq, bq, zq, Aq, Xq, Zq, ar, br, er, fr, pr, qr, Ar, Br, Lr, Mr, Wr, Xr, ds, es, js, ks, ps, qs, vs, ws, As, Bs, Is, Js, kt, lt, Gu, Dt, du, eu, fu, gu, Jo, Ts, Ws, ut, Lt, Tt, $t, au, bj, Si, jj, Cc, zn, fo, ie, Og, ek, El, Fl, Wl, wk, Zr, $r, Vs, Qv, Xv, Yv, Zv, _v, $v, aw, Sm, en, Ql, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx, fx]; var Mb = [gx, ri, fi, Vh, Jh, xh, lh, $g, Kg, wg, kg, _f, Of, Cf, Ke, xe, Fc, An, Mi, Pi, cm, gm, nm, rm, Pn, ir, jr, kr, lr, nr, or, tr, ur, vr, wr, yr, zr, Er, Fr, Gr, Hr, Jr, Kr, Pr, Qr, Rr, Sr, Ur, Vr, zs, Es, lu, nu, pu, mu, ou, qu, uc, cj, Qi, Ri, Ti, un, Mc, Oc, qo, on, _m, he, Be, tf, Gf, Sf, cg, og, Ag, Ng, ch, oh, Ah, Mh, Yh, ii, ui, Ii, hj, Cm, Am, sn, yo, Bm, Ym, jn, hn, kv, lv, mv, nv, ov, pv, Ct, qv, rv, sv, tv, uv, vv, wv, xv, yv, zv, Av, Bv, Cv, Dv, Ev, Fv, Gv, Hv, Iv, Jv, Kv, Lv, Mv, Ov, gw, gx, gx]; var Nb = [hx, Vo, Wo, Xo, Yo, Zo, _o, $o, ap, bp, cp, dp, ip, jp, kp, lp, mp, np, op, pp, qp, rp, sp, Hp, Jp, Up, Wp, dq, eq, fq, hq, jq, Cq, Dq, Eq, Gq, Iq, os, us, md, cv, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx, hx]; var Ob = [ix, En, Fn, rd, In, Bi, rj, yj, Dj, Wk, dm, Un, Wn, Xn, Tn, im, jm, om, Hn, tm, um, Ao, cq, su, uu, wu, Cu, Eu, yu, Au, Bq, tu, vu, xu, Du, Fu, zu, Bu, gr, hr, mr, rr, sr, xr, Cr, Dr, Ir, Nr, Or, Tr, Ht, It, Kt, hu, ju, iu, ku, yt, zt, Bt, Pt, Qt, St, Xt, Yt, _t, Ei, lj, tn, Vi, eo, ko, jx, kx, lx, Ak, zl, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix, ix]; var Pb = [mx, _r, gs, mx]; var Qb = [nx, Bn, Gn, Kn, Em, Fm, Kj, Ll, Zk, Yk, Xk, _k, Qn, Vn, em, Zn, pm, No, So, xs, Cs, nt, pt, st, Xs, ct, ft, it, Nc, Il, $m, zk, hv, jv, Pk, Ok, Jk, ll, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx, nx]; var Rb = [ox, ns, ts, ox]; var Sb = [px, pd, Zj, Yj, Xj, Rn, Cn, ys, Ds, px, px, px, px, px, px, px]; var Tb = [qx, Gp, Mp, Tp, Yp, qx, qx, qx]; var Ub = [rx, bs, is, ms, ss, rx, rx, rx]; var Vb = [sx, qi, ei, Uh, Ih, wh, kh, _g, Jg, yg, mg, ag, Qf, Ef, Me, ze, Hc, sd, td, Yn, fm, km, _n, Jn, qm, vm, Ln, mt, ot, qt, at, dt, gt, dj, yc, Ac, so, Ss, to, yk, xk, Um, fn, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx, sx]; var Wb = [tx, Lo, Qo, Cp, Dp, Ip, Op, Rp, Sp, Vp, _p, tt, Gt, Jt, jt, xt, At, Ot, Rt, Wt, Zt, Qk, Mk, tx, tx, tx, tx, tx, tx, tx, tx, tx]; var Xb = [ux, jw, iw, hw]; var Yb = [vx, vc, kj, fp, Ls, Ms, Ns, hk, jk, ik, vx, vx, vx, vx, vx, vx]; var Zb = [wx, xg, lg, $f, Pf, Df, Le, ye, Gc, rt, Zs, _s, $s, ht, Di, Ji, Ru, bv, Nk, uk, Kk, pw, ow, nw, mw, lw, kw, wx, wx, wx, wx, wx]; var _b = [xx, Dm, Ci, Bo, ej, Qm, yx, Km, Wm, Ui, Hm, Do, fv, gv, iv, cn]; var $b = [zx, Ax, bk, Bx, ck, Cx, ak, zx]; var ac = [Dx, lq, Kq, Et, Ft, vt, wt, Mt, Nt, Ut, Vt, Dx, Dx, Dx, Dx, Dx]; var bc = [Ex, Kp, Np, Xp, Zp, Ex, Ex, Ex]; var cc = [Fx, ce, de, $d, ae, qd, Uc, Vc, ad, bd, hd, id, zd, Ad, Gd, Hd, Nd, Od, Ud, Vd, Te, Ue, _e, $e, ff, gf, nf, of, Mj, Nj, Pj, Sn, Dn, Mo, Ro, nc, Jm, Ic, Jc, Kc, Lc, Pc, Qc, Rc, Ne, Oe, Pe, Qe, Fx, Fx, Fx, Fx, Fx, Fx, Fx, Fx, Fx, Fx, Fx, Fx, Fx, Fx, Fx, Fx]; return { _jpegls_encode: gj, ___cxa_can_catch: _j, _free: Ql, _jpegls_decode: fj, ___cxa_is_pointer_type: $j, _i64Add: tw, _memmove: xw, _i64Subtract: rw, _memset: sw, _malloc: Pl, _memcpy: vw, _bitshift64Lshr: uw, _bitshift64Shl: ww, __GLOBAL__I_000101: Xl, __GLOBAL__sub_I_jpegls_cpp: Bc, __GLOBAL__sub_I_iostream_cpp: Yl, runPostSets: qw, _emscripten_replace_memory: Hb, stackAlloc: dc, stackSave: ec, stackRestore: fc, establishStackSpace: gc, setThrew: hc, setTempRet0: kc, getTempRet0: lc, dynCall_iiiiiiii: Hw, dynCall_viiiii: Iw, dynCall_iiiiiid: Jw, dynCall_vi: Kw, dynCall_vii: Lw, dynCall_iiiiiii: Mw, dynCall_ii: Nw, dynCall_iiiiiiiiiiii: Ow, dynCall_iiii: Pw, dynCall_viiiiiiiiiiiiiii: Qw, dynCall_viiiiii: Rw, dynCall_viiiiiii: Sw, dynCall_viiiiiiiiii: Tw, dynCall_iii: Uw, dynCall_iiiiii: Vw, dynCall_diii: Ww, dynCall_i: Xw, dynCall_iiiii: Yw, dynCall_viii: Zw, dynCall_v: _w, dynCall_iiiiiiiii: $w, dynCall_iiiiid: ax, dynCall_viiii: bx }; }(Module.asmGlobalArg, Module.asmLibraryArg, buffer); var _jpegls_encode = Module["_jpegls_encode"] = asm["_jpegls_encode"]; var ___cxa_can_catch = Module["___cxa_can_catch"] = asm["___cxa_can_catch"]; var _free = Module["_free"] = asm["_free"]; var _jpegls_decode = Module["_jpegls_decode"] = asm["_jpegls_decode"]; var ___cxa_is_pointer_type = Module["___cxa_is_pointer_type"] = asm["___cxa_is_pointer_type"]; var _i64Add = Module["_i64Add"] = asm["_i64Add"]; var _memmove = Module["_memmove"] = asm["_memmove"]; var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"]; var _memset = Module["_memset"] = asm["_memset"]; var _malloc = Module["_malloc"] = asm["_malloc"]; var _memcpy = Module["_memcpy"] = asm["_memcpy"]; var _emscripten_replace_memory = Module["_emscripten_replace_memory"] = asm["_emscripten_replace_memory"]; var runPostSets = Module["runPostSets"] = asm["runPostSets"]; var __GLOBAL__sub_I_iostream_cpp = Module["__GLOBAL__sub_I_iostream_cpp"] = asm["__GLOBAL__sub_I_iostream_cpp"]; var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"]; var __GLOBAL__sub_I_jpegls_cpp = Module["__GLOBAL__sub_I_jpegls_cpp"] = asm["__GLOBAL__sub_I_jpegls_cpp"]; var __GLOBAL__I_000101 = Module["__GLOBAL__I_000101"] = asm["__GLOBAL__I_000101"]; var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"]; var dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = asm["dynCall_iiiiiiii"]; var dynCall_viiiii = Module["dynCall_viiiii"] = asm["dynCall_viiiii"]; var dynCall_iiiiiid = Module["dynCall_iiiiiid"] = asm["dynCall_iiiiiid"]; var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"]; var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"]; var dynCall_iiiiiii = Module["dynCall_iiiiiii"] = asm["dynCall_iiiiiii"]; var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"]; var dynCall_iiiiiiiiiiii = Module["dynCall_iiiiiiiiiiii"] = asm["dynCall_iiiiiiiiiiii"]; var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"]; var dynCall_viiiiiiiiiiiiiii = Module["dynCall_viiiiiiiiiiiiiii"] = asm["dynCall_viiiiiiiiiiiiiii"]; var dynCall_viiiiii = Module["dynCall_viiiiii"] = asm["dynCall_viiiiii"]; var dynCall_viiiiiii = Module["dynCall_viiiiiii"] = asm["dynCall_viiiiiii"]; var dynCall_viiiiiiiiii = Module["dynCall_viiiiiiiiii"] = asm["dynCall_viiiiiiiiii"]; var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"]; var dynCall_iiiiii = Module["dynCall_iiiiii"] = asm["dynCall_iiiiii"]; var dynCall_diii = Module["dynCall_diii"] = asm["dynCall_diii"]; var dynCall_i = Module["dynCall_i"] = asm["dynCall_i"]; var dynCall_iiiii = Module["dynCall_iiiii"] = asm["dynCall_iiiii"]; var dynCall_viii = Module["dynCall_viii"] = asm["dynCall_viii"]; var dynCall_v = Module["dynCall_v"] = asm["dynCall_v"]; var dynCall_iiiiiiiii = Module["dynCall_iiiiiiiii"] = asm["dynCall_iiiiiiiii"]; var dynCall_iiiiid = Module["dynCall_iiiiid"] = asm["dynCall_iiiiid"]; var dynCall_viiii = Module["dynCall_viiii"] = asm["dynCall_viiii"]; Runtime.stackAlloc = asm["stackAlloc"]; Runtime.stackSave = asm["stackSave"]; Runtime.stackRestore = asm["stackRestore"]; Runtime.establishStackSpace = asm["establishStackSpace"]; Runtime.setTempRet0 = asm["setTempRet0"]; Runtime.getTempRet0 = asm["getTempRet0"]; function ExitStatus(status) { this.name = "ExitStatus"; this.message = "Program terminated with exit(" + status + ")"; this.status = status; } ExitStatus.prototype = new Error(); ExitStatus.prototype.constructor = ExitStatus; var initialStackTop; var preloadStartTime = null; var calledMain = false; dependenciesFulfilled = function runCaller() { if (!Module["calledRun"]) run(); if (!Module["calledRun"]) dependenciesFulfilled = runCaller; }; Module["callMain"] = Module.callMain = function callMain(args) { assert(runDependencies == 0, "cannot call main when async dependencies remain! (listen on __ATMAIN__)"); assert(__ATPRERUN__.length == 0, "cannot call main when preRun functions remain to be called"); args = args || []; ensureInitRuntime(); var argc = args.length + 1; function pad() { for (var i3 = 0; i3 < 4 - 1; i3++) { argv.push(0); } } var argv = [allocate(intArrayFromString(Module["thisProgram"]), "i8", ALLOC_NORMAL)]; pad(); for (var i2 = 0; i2 < argc - 1; i2 = i2 + 1) { argv.push(allocate(intArrayFromString(args[i2]), "i8", ALLOC_NORMAL)); pad(); } argv.push(0); argv = allocate(argv, "i32", ALLOC_NORMAL); try { var ret = Module["_main"](argc, argv, 0); exit(ret, true); } catch (e) { if (e instanceof ExitStatus) { return; } else if (e == "SimulateInfiniteLoop") { Module["noExitRuntime"] = true; return; } else { if (e && typeof e === "object" && e.stack) Module.printErr("exception thrown: " + [e, e.stack]); throw e; } } finally { calledMain = true; } }; function run(args) { args = args || Module["arguments"]; if (preloadStartTime === null) preloadStartTime = Date.now(); if (runDependencies > 0) { return; } preRun(); if (runDependencies > 0) return; if (Module["calledRun"]) return; function doRun() { if (Module["calledRun"]) return; Module["calledRun"] = true; if (ABORT) return; ensureInitRuntime(); preMain(); if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"](); if (Module["_main"] && shouldRunNow) Module["callMain"](args); postRun(); } if (Module["setStatus"]) { Module["setStatus"]("Running..."); setTimeout(function() { setTimeout(function() { Module["setStatus"](""); }, 1); doRun(); }, 1); } else { doRun(); } } Module["run"] = Module.run = run; function exit(status, implicit) { if (implicit && Module["noExitRuntime"]) { return; } if (Module["noExitRuntime"]) { } else { ABORT = true; EXITSTATUS = status; STACKTOP = initialStackTop; exitRuntime(); if (Module["onExit"]) Module["onExit"](status); } if (ENVIRONMENT_IS_NODE) { process["stdout"]["once"]("drain", function() { process["exit"](status); }); console.log(" "); setTimeout(function() { process["exit"](status); }, 500); } else if (ENVIRONMENT_IS_SHELL && typeof quit === "function") { quit(status); } throw new ExitStatus(status); } Module["exit"] = Module.exit = exit; var abortDecorators = []; function abort(what) { if (what !== void 0) { Module.print(what); Module.printErr(what); what = JSON.stringify(what); } else { what = ""; } ABORT = true; EXITSTATUS = 1; var extra = "\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information."; var output = "abort(" + what + ") at " + stackTrace() + extra; if (abortDecorators) { abortDecorators.forEach(function(decorator) { output = decorator(output, what); }); } throw output; } Module["abort"] = Module.abort = abort; if (Module["preInit"]) { if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]]; while (Module["preInit"].length > 0) { Module["preInit"].pop()(); } } var shouldRunNow = true; if (Module["noInitialRun"]) { shouldRunNow = false; } run(); return Module; }; var moduleType = typeof module; if (moduleType !== "undefined" && module.exports) { module.exports = CharLS; } } }); // lib/jpeg-ls.js var require_jpeg_ls = __commonJS({ "lib/jpeg-ls.js"(exports2, module2) { "use strict"; var CharLS3 = CharLS3 || (typeof require !== "undefined" ? require_charLS_DynamicMemory_browser() : null); var JpegLS = function() { var charLS; function constructor() { } constructor.prototype = { decodeJPEGLS: function(pixelData, signed) { return decodeJPEGLS(pixelData, signed); } }; function jpegLSDecode(data, isSigned) { var dataPtr = charLS._malloc(data.length); charLS.writeArrayToMemory(data, dataPtr); var imagePtrPtr = charLS._malloc(4); var imageSizePtr = charLS._malloc(4); var widthPtr = charLS._malloc(4); var heightPtr = charLS._malloc(4); var bitsPerSamplePtr = charLS._malloc(4); var stridePtr = charLS._malloc(4); var allowedLossyErrorPtr = charLS._malloc(4); var componentsPtr = charLS._malloc(4); var interleaveModePtr = charLS._malloc(4); var result = charLS.ccall( "jpegls_decode", "number", ["number", "number", "number", "number", "number", "number", "number", "number", "number", "number", "number"], [dataPtr, data.length, imagePtrPtr, imageSizePtr, widthPtr, heightPtr, bitsPerSamplePtr, stridePtr, componentsPtr, allowedLossyErrorPtr, interleaveModePtr] ); var image = { result, width: charLS.getValue(widthPtr, "i32"), height: charLS.getValue(heightPtr, "i32"), bitsPerSample: charLS.getValue(bitsPerSamplePtr, "i32"), stride: charLS.getValue(stridePtr, "i32"), components: charLS.getValue(componentsPtr, "i32"), allowedLossyError: charLS.getValue(allowedLossyErrorPtr, "i32"), interleaveMode: charLS.getValue(interleaveModePtr, "i32"), pixelData: void 0 }; var imagePtr = charLS.getValue(imagePtrPtr, "*"); if (image.bitsPerSample <= 8) { image.pixelData = new Uint8Array(image.width * image.height * image.components); image.pixelData.set(new Uint8Array(charLS.HEAP8.buffer, imagePtr, image.pixelData.length)); } else { if (isSigned) { image.pixelData = new Int16Array(image.width * image.height * image.components); image.pixelData.set(new Int16Array(charLS.HEAP16.buffer, imagePtr, image.pixelData.length)); } else { image.pixelData = new Uint16Array(image.width * image.height * image.components); image.pixelData.set(new Uint16Array(charLS.HEAP16.buffer, imagePtr, image.pixelData.length)); } } charLS._free(dataPtr); charLS._free(imagePtr); charLS._free(imagePtrPtr); charLS._free(imageSizePtr); charLS._free(widthPtr); charLS._free(heightPtr); charLS._free(bitsPerSamplePtr); charLS._free(stridePtr); charLS._free(componentsPtr); charLS._free(interleaveModePtr); return image; } function initializeJPEGLS() { if (typeof CharLS3 === "undefined") { throw "No JPEG-LS decoder loaded"; } if (!charLS) { charLS = CharLS3(); if (!charLS || !charLS._jpegls_decode) { throw "JPEG-LS failed to initialize"; } } } function decodeJPEGLS(pixelData, signed) { initializeJPEGLS(); var image = jpegLSDecode(pixelData, signed); if (image.result !== 0 && image.result !== 6) { throw "JPEG-LS decoder failed to decode frame (error code " + image.result + ")"; } var imageFrame = {}; imageFrame.columns = image.width; imageFrame.rows = image.height; imageFrame.pixelData = image.pixelData; return imageFrame; } return constructor; }(); var moduleType3 = typeof module2; if (moduleType3 !== "undefined" && module2.exports) { module2.exports = JpegLS; } } }); // node_modules/pako/lib/utils/common.js var require_common = __commonJS({ "node_modules/pako/lib/utils/common.js"(exports2) { "use strict"; var TYPED_OK = typeof Uint8Array !== "undefined" && typeof Uint16Array !== "undefined" && typeof Int32Array !== "undefined"; function _has(obj, key2) { return Object.prototype.hasOwnProperty.call(obj, key2); } exports2.assign = function(obj) { var sources = Array.prototype.slice.call(arguments, 1); while (sources.length) { var source = sources.shift(); if (!source) { continue; } if (typeof source !== "object") { throw new TypeError(source + "must be non-object"); } for (var p in source) { if (_has(source, p)) { obj[p] = source[p]; } } } return obj; }; exports2.shrinkBuf = function(buf, size) { if (buf.length === size) { return buf; } if (buf.subarray) { return buf.subarray(0, size); } buf.length = size; return buf; }; var fnTyped = { arraySet: function(dest, src, src_offs, len, dest_offs) { if (src.subarray && dest.subarray) { dest.set(src.subarray(src_offs, src_offs + len), dest_offs); return; } for (var i2 = 0; i2 < len; i2++) { dest[dest_offs + i2] = src[src_offs + i2]; } }, // Join array of chunks to single array. flattenChunks: function(chunks) { var i2, l, len, pos, chunk, result; len = 0; for (i2 = 0, l = chunks.length; i2 < l; i2++) { len += chunks[i2].length; } result = new Uint8Array(len); pos = 0; for (i2 = 0, l = chunks.length; i2 < l; i2++) { chunk = chunks[i2]; result.set(chunk, pos); pos += chunk.length; } return result; } }; var fnUntyped = { arraySet: function(dest, src, src_offs, len, dest_offs) { for (var i2 = 0; i2 < len; i2++) { dest[dest_offs + i2] = src[src_offs + i2]; } }, // Join array of chunks to single array. flattenChunks: function(chunks) { return [].concat.apply([], chunks); } }; exports2.setTyped = function(on) { if (on) { exports2.Buf8 = Uint8Array; exports2.Buf16 = Uint16Array; exports2.Buf32 = Int32Array; exports2.assign(exports2, fnTyped); } else { exports2.Buf8 = Array; exports2.Buf16 = Array; exports2.Buf32 = Array; exports2.assign(exports2, fnUntyped); } }; exports2.setTyped(TYPED_OK); } }); // node_modules/pako/lib/zlib/trees.js var require_trees = __commonJS({ "node_modules/pako/lib/zlib/trees.js"(exports2) { "use strict"; var utils = require_common(); var Z_FIXED = 4; var Z_BINARY = 0; var Z_TEXT = 1; var Z_UNKNOWN = 2; function zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } } var STORED_BLOCK = 0; var STATIC_TREES = 1; var DYN_TREES = 2; var MIN_MATCH = 3; var MAX_MATCH = 258; var LENGTH_CODES = 29; var LITERALS = 256; var L_CODES = LITERALS + 1 + LENGTH_CODES; var D_CODES = 30; var BL_CODES = 19; var HEAP_SIZE = 2 * L_CODES + 1; var MAX_BITS = 15; var Buf_size = 16; var MAX_BL_BITS = 7; var END_BLOCK = 256; var REP_3_6 = 16; var REPZ_3_10 = 17; var REPZ_11_138 = 18; var extra_lbits = ( /* extra bits for each length code */ [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0] ); var extra_dbits = ( /* extra bits for each distance code */ [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] ); var extra_blbits = ( /* extra bits for each bit length code */ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7] ); var bl_order = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]; var DIST_CODE_LEN = 512; var static_ltree = new Array((L_CODES + 2) * 2); zero(static_ltree); var static_dtree = new Array(D_CODES * 2); zero(static_dtree); var _dist_code = new Array(DIST_CODE_LEN); zero(_dist_code); var _length_code = new Array(MAX_MATCH - MIN_MATCH + 1); zero(_length_code); var base_length = new Array(LENGTH_CODES); zero(base_length); var base_dist = new Array(D_CODES); zero(base_dist); function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) { this.static_tree = static_tree; this.extra_bits = extra_bits; this.extra_base = extra_base; this.elems = elems; this.max_length = max_length; this.has_stree = static_tree && static_tree.length; } var static_l_desc; var static_d_desc; var static_bl_desc; function TreeDesc(dyn_tree, stat_desc) { this.dyn_tree = dyn_tree; this.max_code = 0; this.stat_desc = stat_desc; } function d_code(dist) { return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)]; } function put_short(s, w) { s.pending_buf[s.pending++] = w & 255; s.pending_buf[s.pending++] = w >>> 8 & 255; } function send_bits(s, value, length) { if (s.bi_valid > Buf_size - length) { s.bi_buf |= value << s.bi_valid & 65535; put_short(s, s.bi_buf); s.bi_buf = value >> Buf_size - s.bi_valid; s.bi_valid += length - Buf_size; } else { s.bi_buf |= value << s.bi_valid & 65535; s.bi_valid += length; } } function send_code(s, c, tree) { send_bits( s, tree[c * 2], tree[c * 2 + 1] /*.Len*/ ); } function bi_reverse(code, len) { var res = 0; do { res |= code & 1; code >>>= 1; res <<= 1; } while (--len > 0); return res >>> 1; } function bi_flush(s) { if (s.bi_valid === 16) { put_short(s, s.bi_buf); s.bi_buf = 0; s.bi_valid = 0; } else if (s.bi_valid >= 8) { s.pending_buf[s.pending++] = s.bi_buf & 255; s.bi_buf >>= 8; s.bi_valid -= 8; } } function gen_bitlen(s, desc) { var tree = desc.dyn_tree; var max_code = desc.max_code; var stree = desc.stat_desc.static_tree; var has_stree = desc.stat_desc.has_stree; var extra = desc.stat_desc.extra_bits; var base = desc.stat_desc.extra_base; var max_length = desc.stat_desc.max_length; var h; var n, m; var bits; var xbits; var f; var overflow = 0; for (bits = 0; bits <= MAX_BITS; bits++) { s.bl_count[bits] = 0; } tree[s.heap[s.heap_max] * 2 + 1] = 0; for (h = s.heap_max + 1; h < HEAP_SIZE; h++) { n = s.heap[h]; bits = tree[tree[n * 2 + 1] * 2 + 1] + 1; if (bits > max_length) { bits = max_length; overflow++; } tree[n * 2 + 1] = bits; if (n > max_code) { continue; } s.bl_count[bits]++; xbits = 0; if (n >= base) { xbits = extra[n - base]; } f = tree[n * 2]; s.opt_len += f * (bits + xbits); if (has_stree) { s.static_len += f * (stree[n * 2 + 1] + xbits); } } if (overflow === 0) { return; } do { bits = max_length - 1; while (s.bl_count[bits] === 0) { bits--; } s.bl_count[bits]--; s.bl_count[bits + 1] += 2; s.bl_count[max_length]--; overflow -= 2; } while (overflow > 0); for (bits = max_length; bits !== 0; bits--) { n = s.bl_count[bits]; while (n !== 0) { m = s.heap[--h]; if (m > max_code) { continue; } if (tree[m * 2 + 1] !== bits) { s.opt_len += (bits - tree[m * 2 + 1]) * tree[m * 2]; tree[m * 2 + 1] = bits; } n--; } } } function gen_codes(tree, max_code, bl_count) { var next_code = new Array(MAX_BITS + 1); var code = 0; var bits; var n; for (bits = 1; bits <= MAX_BITS; bits++) { next_code[bits] = code = code + bl_count[bits - 1] << 1; } for (n = 0; n <= max_code; n++) { var len = tree[n * 2 + 1]; if (len === 0) { continue; } tree[n * 2] = bi_reverse(next_code[len]++, len); } } function tr_static_init() { var n; var bits; var length; var code; var dist; var bl_count = new Array(MAX_BITS + 1); length = 0; for (code = 0; code < LENGTH_CODES - 1; code++) { base_length[code] = length; for (n = 0; n < 1 << extra_lbits[code]; n++) { _length_code[length++] = code; } } _length_code[length - 1] = code; dist = 0; for (code = 0; code < 16; code++) { base_dist[code] = dist; for (n = 0; n < 1 << extra_dbits[code]; n++) { _dist_code[dist++] = code; } } dist >>= 7; for (; code < D_CODES; code++) { base_dist[code] = dist << 7; for (n = 0; n < 1 << extra_dbits[code] - 7; n++) { _dist_code[256 + dist++] = code; } } for (bits = 0; bits <= MAX_BITS; bits++) { bl_count[bits] = 0; } n = 0; while (n <= 143) { static_ltree[n * 2 + 1] = 8; n++; bl_count[8]++; } while (n <= 255) { static_ltree[n * 2 + 1] = 9; n++; bl_count[9]++; } while (n <= 279) { static_ltree[n * 2 + 1] = 7; n++; bl_count[7]++; } while (n <= 287) { static_ltree[n * 2 + 1] = 8; n++; bl_count[8]++; } gen_codes(static_ltree, L_CODES + 1, bl_count); for (n = 0; n < D_CODES; n++) { static_dtree[n * 2 + 1] = 5; static_dtree[n * 2] = bi_reverse(n, 5); } static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS); static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS); static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS); } function init_block(s) { var n; for (n = 0; n < L_CODES; n++) { s.dyn_ltree[n * 2] = 0; } for (n = 0; n < D_CODES; n++) { s.dyn_dtree[n * 2] = 0; } for (n = 0; n < BL_CODES; n++) { s.bl_tree[n * 2] = 0; } s.dyn_ltree[END_BLOCK * 2] = 1; s.opt_len = s.static_len = 0; s.last_lit = s.matches = 0; } function bi_windup(s) { if (s.bi_valid > 8) { put_short(s, s.bi_buf); } else if (s.bi_valid > 0) { s.pending_buf[s.pending++] = s.bi_buf; } s.bi_buf = 0; s.bi_valid = 0; } function copy_block(s, buf, len, header) { bi_windup(s); if (header) { put_short(s, len); put_short(s, ~len); } utils.arraySet(s.pending_buf, s.window, buf, len, s.pending); s.pending += len; } function smaller(tree, n, m, depth) { var _n2 = n * 2; var _m2 = m * 2; return tree[_n2] < tree[_m2] || tree[_n2] === tree[_m2] && depth[n] <= depth[m]; } function pqdownheap(s, tree, k) { var v = s.heap[k]; var j = k << 1; while (j <= s.heap_len) { if (j < s.heap_len && smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) { j++; } if (smaller(tree, v, s.heap[j], s.depth)) { break; } s.heap[k] = s.heap[j]; k = j; j <<= 1; } s.heap[k] = v; } function compress_block(s, ltree, dtree) { var dist; var lc; var lx = 0; var code; var extra; if (s.last_lit !== 0) { do { dist = s.pending_buf[s.d_buf + lx * 2] << 8 | s.pending_buf[s.d_buf + lx * 2 + 1]; lc = s.pending_buf[s.l_buf + lx]; lx++; if (dist === 0) { send_code(s, lc, ltree); } else { code = _length_code[lc]; send_code(s, code + LITERALS + 1, ltree); extra = extra_lbits[code]; if (extra !== 0) { lc -= base_length[code]; send_bits(s, lc, extra); } dist--; code = d_code(dist); send_code(s, code, dtree); extra = extra_dbits[code]; if (extra !== 0) { dist -= base_dist[code]; send_bits(s, dist, extra); } } } while (lx < s.last_lit); } send_code(s, END_BLOCK, ltree); } function build_tree(s, desc) { var tree = desc.dyn_tree; var stree = desc.stat_desc.static_tree; var has_stree = desc.stat_desc.has_stree; var elems = desc.stat_desc.elems; var n, m; var max_code = -1; var node; s.heap_len = 0; s.heap_max = HEAP_SIZE; for (n = 0; n < elems; n++) { if (tree[n * 2] !== 0) { s.heap[++s.heap_len] = max_code = n; s.depth[n] = 0; } else { tree[n * 2 + 1] = 0; } } while (s.heap_len < 2) { node = s.heap[++s.heap_len] = max_code < 2 ? ++max_code : 0; tree[node * 2] = 1; s.depth[node] = 0; s.opt_len--; if (has_stree) { s.static_len -= stree[node * 2 + 1]; } } desc.max_code = max_code; for (n = s.heap_len >> 1; n >= 1; n--) { pqdownheap(s, tree, n); } node = elems; do { n = s.heap[ 1 /*SMALLEST*/ ]; s.heap[ 1 /*SMALLEST*/ ] = s.heap[s.heap_len--]; pqdownheap( s, tree, 1 /*SMALLEST*/ ); m = s.heap[ 1 /*SMALLEST*/ ]; s.heap[--s.heap_max] = n; s.heap[--s.heap_max] = m; tree[node * 2] = tree[n * 2] + tree[m * 2]; s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1; tree[n * 2 + 1] = tree[m * 2 + 1] = node; s.heap[ 1 /*SMALLEST*/ ] = node++; pqdownheap( s, tree, 1 /*SMALLEST*/ ); } while (s.heap_len >= 2); s.heap[--s.heap_max] = s.heap[ 1 /*SMALLEST*/ ]; gen_bitlen(s, desc); gen_codes(tree, max_code, s.bl_count); } function scan_tree(s, tree, max_code) { var n; var prevlen = -1; var curlen; var nextlen = tree[0 * 2 + 1]; var count = 0; var max_count = 7; var min_count = 4; if (nextlen === 0) { max_count = 138; min_count = 3; } tree[(max_code + 1) * 2 + 1] = 65535; for (n = 0; n <= max_code; n++) { curlen = nextlen; nextlen = tree[(n + 1) * 2 + 1]; if (++count < max_count && curlen === nextlen) { continue; } else if (count < min_count) { s.bl_tree[curlen * 2] += count; } else if (curlen !== 0) { if (curlen !== prevlen) { s.bl_tree[curlen * 2]++; } s.bl_tree[REP_3_6 * 2]++; } else if (count <= 10) { s.bl_tree[REPZ_3_10 * 2]++; } else { s.bl_tree[REPZ_11_138 * 2]++; } count = 0; prevlen = curlen; if (nextlen === 0) { max_count = 138; min_count = 3; } else if (curlen === nextlen) { max_count = 6; min_count = 3; } else { max_count = 7; min_count = 4; } } } function send_tree(s, tree, max_code) { var n; var prevlen = -1; var curlen; var nextlen = tree[0 * 2 + 1]; var count = 0; var max_count = 7; var min_count = 4; if (nextlen === 0) { max_count = 138; min_count = 3; } for (n = 0; n <= max_code; n++) { curlen = nextlen; nextlen = tree[(n + 1) * 2 + 1]; if (++count < max_count && curlen === nextlen) { continue; } else if (count < min_count) { do { send_code(s, curlen, s.bl_tree); } while (--count !== 0); } else if (curlen !== 0) { if (curlen !== prevlen) { send_code(s, curlen, s.bl_tree); count--; } send_code(s, REP_3_6, s.bl_tree); send_bits(s, count - 3, 2); } else if (count <= 10) { send_code(s, REPZ_3_10, s.bl_tree); send_bits(s, count - 3, 3); } else { send_code(s, REPZ_11_138, s.bl_tree); send_bits(s, count - 11, 7); } count = 0; prevlen = curlen; if (nextlen === 0) { max_count = 138; min_count = 3; } else if (curlen === nextlen) { max_count = 6; min_count = 3; } else { max_count = 7; min_count = 4; } } } function build_bl_tree(s) { var max_blindex; scan_tree(s, s.dyn_ltree, s.l_desc.max_code); scan_tree(s, s.dyn_dtree, s.d_desc.max_code); build_tree(s, s.bl_desc); for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) { if (s.bl_tree[bl_order[max_blindex] * 2 + 1] !== 0) { break; } } s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4; return max_blindex; } function send_all_trees(s, lcodes, dcodes, blcodes) { var rank; send_bits(s, lcodes - 257, 5); send_bits(s, dcodes - 1, 5); send_bits(s, blcodes - 4, 4); for (rank = 0; rank < blcodes; rank++) { send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1], 3); } send_tree(s, s.dyn_ltree, lcodes - 1); send_tree(s, s.dyn_dtree, dcodes - 1); } function detect_data_type(s) { var black_mask = 4093624447; var n; for (n = 0; n <= 31; n++, black_mask >>>= 1) { if (black_mask & 1 && s.dyn_ltree[n * 2] !== 0) { return Z_BINARY; } } if (s.dyn_ltree[9 * 2] !== 0 || s.dyn_ltree[10 * 2] !== 0 || s.dyn_ltree[13 * 2] !== 0) { return Z_TEXT; } for (n = 32; n < LITERALS; n++) { if (s.dyn_ltree[n * 2] !== 0) { return Z_TEXT; } } return Z_BINARY; } var static_init_done = false; function _tr_init(s) { if (!static_init_done) { tr_static_init(); static_init_done = true; } s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc); s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc); s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc); s.bi_buf = 0; s.bi_valid = 0; init_block(s); } function _tr_stored_block(s, buf, stored_len, last) { send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); copy_block(s, buf, stored_len, true); } function _tr_align(s) { send_bits(s, STATIC_TREES << 1, 3); send_code(s, END_BLOCK, static_ltree); bi_flush(s); } function _tr_flush_block(s, buf, stored_len, last) { var opt_lenb, static_lenb; var max_blindex = 0; if (s.level > 0) { if (s.strm.data_type === Z_UNKNOWN) { s.strm.data_type = detect_data_type(s); } build_tree(s, s.l_desc); build_tree(s, s.d_desc); max_blindex = build_bl_tree(s); opt_lenb = s.opt_len + 3 + 7 >>> 3; static_lenb = s.static_len + 3 + 7 >>> 3; if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; } } else { opt_lenb = static_lenb = stored_len + 5; } if (stored_len + 4 <= opt_lenb && buf !== -1) { _tr_stored_block(s, buf, stored_len, last); } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) { send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3); compress_block(s, static_ltree, static_dtree); } else { send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3); send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1); compress_block(s, s.dyn_ltree, s.dyn_dtree); } init_block(s); if (last) { bi_windup(s); } } function _tr_tally(s, dist, lc) { s.pending_buf[s.d_buf + s.last_lit * 2] = dist >>> 8 & 255; s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 255; s.pending_buf[s.l_buf + s.last_lit] = lc & 255; s.last_lit++; if (dist === 0) { s.dyn_ltree[lc * 2]++; } else { s.matches++; dist--; s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]++; s.dyn_dtree[d_code(dist) * 2]++; } return s.last_lit === s.lit_bufsize - 1; } exports2._tr_init = _tr_init; exports2._tr_stored_block = _tr_stored_block; exports2._tr_flush_block = _tr_flush_block; exports2._tr_tally = _tr_tally; exports2._tr_align = _tr_align; } }); // node_modules/pako/lib/zlib/adler32.js var require_adler32 = __commonJS({ "node_modules/pako/lib/zlib/adler32.js"(exports2, module2) { "use strict"; function adler32(adler, buf, len, pos) { var s1 = adler & 65535 | 0, s2 = adler >>> 16 & 65535 | 0, n = 0; while (len !== 0) { n = len > 2e3 ? 2e3 : len; len -= n; do { s1 = s1 + buf[pos++] | 0; s2 = s2 + s1 | 0; } while (--n); s1 %= 65521; s2 %= 65521; } return s1 | s2 << 16 | 0; } module2.exports = adler32; } }); // node_modules/pako/lib/zlib/crc32.js var require_crc32 = __commonJS({ "node_modules/pako/lib/zlib/crc32.js"(exports2, module2) { "use strict"; function makeTable() { var c, table = []; for (var n = 0; n < 256; n++) { c = n; for (var k = 0; k < 8; k++) { c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1; } table[n] = c; } return table; } var crcTable = makeTable(); function crc32(crc, buf, len, pos) { var t = crcTable, end = pos + len; crc ^= -1; for (var i2 = pos; i2 < end; i2++) { crc = crc >>> 8 ^ t[(crc ^ buf[i2]) & 255]; } return crc ^ -1; } module2.exports = crc32; } }); // node_modules/pako/lib/zlib/messages.js var require_messages = __commonJS({ "node_modules/pako/lib/zlib/messages.js"(exports2, module2) { "use strict"; module2.exports = { 2: "need dictionary", /* Z_NEED_DICT 2 */ 1: "stream end", /* Z_STREAM_END 1 */ 0: "", /* Z_OK 0 */ "-1": "file error", /* Z_ERRNO (-1) */ "-2": "stream error", /* Z_STREAM_ERROR (-2) */ "-3": "data error", /* Z_DATA_ERROR (-3) */ "-4": "insufficient memory", /* Z_MEM_ERROR (-4) */ "-5": "buffer error", /* Z_BUF_ERROR (-5) */ "-6": "incompatible version" /* Z_VERSION_ERROR (-6) */ }; } }); // node_modules/pako/lib/zlib/deflate.js var require_deflate = __commonJS({ "node_modules/pako/lib/zlib/deflate.js"(exports2) { "use strict"; var utils = require_common(); var trees = require_trees(); var adler32 = require_adler32(); var crc32 = require_crc32(); var msg = require_messages(); var Z_NO_FLUSH = 0; var Z_PARTIAL_FLUSH = 1; var Z_FULL_FLUSH = 3; var Z_FINISH = 4; var Z_BLOCK = 5; var Z_OK = 0; var Z_STREAM_END = 1; var Z_STREAM_ERROR = -2; var Z_DATA_ERROR = -3; var Z_BUF_ERROR = -5; var Z_DEFAULT_COMPRESSION = -1; var Z_FILTERED = 1; var Z_HUFFMAN_ONLY = 2; var Z_RLE = 3; var Z_FIXED = 4; var Z_DEFAULT_STRATEGY = 0; var Z_UNKNOWN = 2; var Z_DEFLATED = 8; var MAX_MEM_LEVEL = 9; var MAX_WBITS = 15; var DEF_MEM_LEVEL = 8; var LENGTH_CODES = 29; var LITERALS = 256; var L_CODES = LITERALS + 1 + LENGTH_CODES; var D_CODES = 30; var BL_CODES = 19; var HEAP_SIZE = 2 * L_CODES + 1; var MAX_BITS = 15; var MIN_MATCH = 3; var MAX_MATCH = 258; var MIN_LOOKAHEAD = MAX_MATCH + MIN_MATCH + 1; var PRESET_DICT = 32; var INIT_STATE = 42; var EXTRA_STATE = 69; var NAME_STATE = 73; var COMMENT_STATE = 91; var HCRC_STATE = 103; var BUSY_STATE = 113; var FINISH_STATE = 666; var BS_NEED_MORE = 1; var BS_BLOCK_DONE = 2; var BS_FINISH_STARTED = 3; var BS_FINISH_DONE = 4; var OS_CODE = 3; function err(strm, errorCode) { strm.msg = msg[errorCode]; return errorCode; } function rank(f) { return (f << 1) - (f > 4 ? 9 : 0); } function zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } } function flush_pending(strm) { var s = strm.state; var len = s.pending; if (len > strm.avail_out) { len = strm.avail_out; } if (len === 0) { return; } utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out); strm.next_out += len; s.pending_out += len; strm.total_out += len; strm.avail_out -= len; s.pending -= len; if (s.pending === 0) { s.pending_out = 0; } } function flush_block_only(s, last) { trees._tr_flush_block(s, s.block_start >= 0 ? s.block_start : -1, s.strstart - s.block_start, last); s.block_start = s.strstart; flush_pending(s.strm); } function put_byte(s, b) { s.pending_buf[s.pending++] = b; } function putShortMSB(s, b) { s.pending_buf[s.pending++] = b >>> 8 & 255; s.pending_buf[s.pending++] = b & 255; } function read_buf(strm, buf, start, size) { var len = strm.avail_in; if (len > size) { len = size; } if (len === 0) { return 0; } strm.avail_in -= len; utils.arraySet(buf, strm.input, strm.next_in, len, start); if (strm.state.wrap === 1) { strm.adler = adler32(strm.adler, buf, len, start); } else if (strm.state.wrap === 2) { strm.adler = crc32(strm.adler, buf, len, start); } strm.next_in += len; strm.total_in += len; return len; } function longest_match(s, cur_match) { var chain_length = s.max_chain_length; var scan = s.strstart; var match; var len; var best_len = s.prev_length; var nice_match = s.nice_match; var limit = s.strstart > s.w_size - MIN_LOOKAHEAD ? s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0; var _win = s.window; var wmask = s.w_mask; var prev = s.prev; var strend = s.strstart + MAX_MATCH; var scan_end1 = _win[scan + best_len - 1]; var scan_end = _win[scan + best_len]; if (s.prev_length >= s.good_match) { chain_length >>= 2; } if (nice_match > s.lookahead) { nice_match = s.lookahead; } do { match = cur_match; if (_win[match + best_len] !== scan_end || _win[match + best_len - 1] !== scan_end1 || _win[match] !== _win[scan] || _win[++match] !== _win[scan + 1]) { continue; } scan += 2; match++; do { } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && scan < strend); len = MAX_MATCH - (strend - scan); scan = strend - MAX_MATCH; if (len > best_len) { s.match_start = cur_match; best_len = len; if (len >= nice_match) { break; } scan_end1 = _win[scan + best_len - 1]; scan_end = _win[scan + best_len]; } } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0); if (best_len <= s.lookahead) { return best_len; } return s.lookahead; } function fill_window(s) { var _w_size = s.w_size; var p, n, m, more, str; do { more = s.window_size - s.lookahead - s.strstart; if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) { utils.arraySet(s.window, s.window, _w_size, _w_size, 0); s.match_start -= _w_size; s.strstart -= _w_size; s.block_start -= _w_size; n = s.hash_size; p = n; do { m = s.head[--p]; s.head[p] = m >= _w_size ? m - _w_size : 0; } while (--n); n = _w_size; p = n; do { m = s.prev[--p]; s.prev[p] = m >= _w_size ? m - _w_size : 0; } while (--n); more += _w_size; } if (s.strm.avail_in === 0) { break; } n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more); s.lookahead += n; if (s.lookahead + s.insert >= MIN_MATCH) { str = s.strstart - s.insert; s.ins_h = s.window[str]; s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + 1]) & s.hash_mask; while (s.insert) { s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask; s.prev[str & s.w_mask] = s.head[s.ins_h]; s.head[s.ins_h] = str; str++; s.insert--; if (s.lookahead + s.insert < MIN_MATCH) { break; } } } } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0); } function deflate_stored(s, flush) { var max_block_size = 65535; if (max_block_size > s.pending_buf_size - 5) { max_block_size = s.pending_buf_size - 5; } for (; ; ) { if (s.lookahead <= 1) { fill_window(s); if (s.lookahead === 0 && flush === Z_NO_FLUSH) { return BS_NEED_MORE; } if (s.lookahead === 0) { break; } } s.strstart += s.lookahead; s.lookahead = 0; var max_start = s.block_start + max_block_size; if (s.strstart === 0 || s.strstart >= max_start) { s.lookahead = s.strstart - max_start; s.strstart = max_start; flush_block_only(s, false); if (s.strm.avail_out === 0) { return BS_NEED_MORE; } } if (s.strstart - s.block_start >= s.w_size - MIN_LOOKAHEAD) { flush_block_only(s, false); if (s.strm.avail_out === 0) { return BS_NEED_MORE; } } } s.insert = 0; if (flush === Z_FINISH) { flush_block_only(s, true); if (s.strm.avail_out === 0) { return BS_FINISH_STARTED; } return BS_FINISH_DONE; } if (s.strstart > s.block_start) { flush_block_only(s, false); if (s.strm.avail_out === 0) { return BS_NEED_MORE; } } return BS_NEED_MORE; } function deflate_fast(s, flush) { var hash_head; var bflush; for (; ; ) { if (s.lookahead < MIN_LOOKAHEAD) { fill_window(s); if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) { return BS_NEED_MORE; } if (s.lookahead === 0) { break; } } hash_head = 0; if (s.lookahead >= MIN_MATCH) { s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; s.head[s.ins_h] = s.strstart; } if (hash_head !== 0 && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) { s.match_length = longest_match(s, hash_head); } if (s.match_length >= MIN_MATCH) { bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH); s.lookahead -= s.match_length; if (s.match_length <= s.max_lazy_match && s.lookahead >= MIN_MATCH) { s.match_length--; do { s.strstart++; s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; s.head[s.ins_h] = s.strstart; } while (--s.match_length !== 0); s.strstart++; } else { s.strstart += s.match_length; s.match_length = 0; s.ins_h = s.window[s.strstart]; s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + 1]) & s.hash_mask; } } else { bflush = trees._tr_tally(s, 0, s.window[s.strstart]); s.lookahead--; s.strstart++; } if (bflush) { flush_block_only(s, false); if (s.strm.avail_out === 0) { return BS_NEED_MORE; } } } s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1; if (flush === Z_FINISH) { flush_block_only(s, true); if (s.strm.avail_out === 0) { return BS_FINISH_STARTED; } return BS_FINISH_DONE; } if (s.last_lit) { flush_block_only(s, false); if (s.strm.avail_out === 0) { return BS_NEED_MORE; } } return BS_BLOCK_DONE; } function deflate_slow(s, flush) { var hash_head; var bflush; var max_insert; for (; ; ) { if (s.lookahead < MIN_LOOKAHEAD) { fill_window(s); if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) { return BS_NEED_MORE; } if (s.lookahead === 0) { break; } } hash_head = 0; if (s.lookahead >= MIN_MATCH) { s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; s.head[s.ins_h] = s.strstart; } s.prev_length = s.match_length; s.prev_match = s.match_start; s.match_length = MIN_MATCH - 1; if (hash_head !== 0 && s.prev_length < s.max_lazy_match && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) { s.match_length = longest_match(s, hash_head); if (s.match_length <= 5 && (s.strategy === Z_FILTERED || s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096)) { s.match_length = MIN_MATCH - 1; } } if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) { max_insert = s.strstart + s.lookahead - MIN_MATCH; bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH); s.lookahead -= s.prev_length - 1; s.prev_length -= 2; do { if (++s.strstart <= max_insert) { s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; s.head[s.ins_h] = s.strstart; } } while (--s.prev_length !== 0); s.match_available = 0; s.match_length = MIN_MATCH - 1; s.strstart++; if (bflush) { flush_block_only(s, false); if (s.strm.avail_out === 0) { return BS_NEED_MORE; } } } else if (s.match_available) { bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]); if (bflush) { flush_block_only(s, false); } s.strstart++; s.lookahead--; if (s.strm.avail_out === 0) { return BS_NEED_MORE; } } else { s.match_available = 1; s.strstart++; s.lookahead--; } } if (s.match_available) { bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]); s.match_available = 0; } s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1; if (flush === Z_FINISH) { flush_block_only(s, true); if (s.strm.avail_out === 0) { return BS_FINISH_STARTED; } return BS_FINISH_DONE; } if (s.last_lit) { flush_block_only(s, false); if (s.strm.avail_out === 0) { return BS_NEED_MORE; } } return BS_BLOCK_DONE; } function deflate_rle(s, flush) { var bflush; var prev; var scan, strend; var _win = s.window; for (; ; ) { if (s.lookahead <= MAX_MATCH) { fill_window(s); if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) { return BS_NEED_MORE; } if (s.lookahead === 0) { break; } } s.match_length = 0; if (s.lookahead >= MIN_MATCH && s.strstart > 0) { scan = s.strstart - 1; prev = _win[scan]; if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) { strend = s.strstart + MAX_MATCH; do { } while (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && scan < strend); s.match_length = MAX_MATCH - (strend - scan); if (s.match_length > s.lookahead) { s.match_length = s.lookahead; } } } if (s.match_length >= MIN_MATCH) { bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH); s.lookahead -= s.match_length; s.strstart += s.match_length; s.match_length = 0; } else { bflush = trees._tr_tally(s, 0, s.window[s.strstart]); s.lookahead--; s.strstart++; } if (bflush) { flush_block_only(s, false); if (s.strm.avail_out === 0) { return BS_NEED_MORE; } } } s.insert = 0; if (flush === Z_FINISH) { flush_block_only(s, true); if (s.strm.avail_out === 0) { return BS_FINISH_STARTED; } return BS_FINISH_DONE; } if (s.last_lit) { flush_block_only(s, false); if (s.strm.avail_out === 0) { return BS_NEED_MORE; } } return BS_BLOCK_DONE; } function deflate_huff(s, flush) { var bflush; for (; ; ) { if (s.lookahead === 0) { fill_window(s); if (s.lookahead === 0) { if (flush === Z_NO_FLUSH) { return BS_NEED_MORE; } break; } } s.match_length = 0; bflush = trees._tr_tally(s, 0, s.window[s.strstart]); s.lookahead--; s.strstart++; if (bflush) { flush_block_only(s, false); if (s.strm.avail_out === 0) { return BS_NEED_MORE; } } } s.insert = 0; if (flush === Z_FINISH) { flush_block_only(s, true); if (s.strm.avail_out === 0) { return BS_FINISH_STARTED; } return BS_FINISH_DONE; } if (s.last_lit) { flush_block_only(s, false); if (s.strm.avail_out === 0) { return BS_NEED_MORE; } } return BS_BLOCK_DONE; } function Config(good_length, max_lazy, nice_length, max_chain, func2) { this.good_length = good_length; this.max_lazy = max_lazy; this.nice_length = nice_length; this.max_chain = max_chain; this.func = func2; } var configuration_table; configuration_table = [ /* good lazy nice chain */ new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */ new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */ new Config(4, 5, 16, 8, deflate_fast), /* 2 */ new Config(4, 6, 32, 32, deflate_fast), /* 3 */ new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */ new Config(8, 16, 32, 32, deflate_slow), /* 5 */ new Config(8, 16, 128, 128, deflate_slow), /* 6 */ new Config(8, 32, 128, 256, deflate_slow), /* 7 */ new Config(32, 128, 258, 1024, deflate_slow), /* 8 */ new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */ ]; function lm_init(s) { s.window_size = 2 * s.w_size; zero(s.head); s.max_lazy_match = configuration_table[s.level].max_lazy; s.good_match = configuration_table[s.level].good_length; s.nice_match = configuration_table[s.level].nice_length; s.max_chain_length = configuration_table[s.level].max_chain; s.strstart = 0; s.block_start = 0; s.lookahead = 0; s.insert = 0; s.match_length = s.prev_length = MIN_MATCH - 1; s.match_available = 0; s.ins_h = 0; } function DeflateState() { this.strm = null; this.status = 0; this.pending_buf = null; this.pending_buf_size = 0; this.pending_out = 0; this.pending = 0; this.wrap = 0; this.gzhead = null; this.gzindex = 0; this.method = Z_DEFLATED; this.last_flush = -1; this.w_size = 0; this.w_bits = 0; this.w_mask = 0; this.window = null; this.window_size = 0; this.prev = null; this.head = null; this.ins_h = 0; this.hash_size = 0; this.hash_bits = 0; this.hash_mask = 0; this.hash_shift = 0; this.block_start = 0; this.match_length = 0; this.prev_match = 0; this.match_available = 0; this.strstart = 0; this.match_start = 0; this.lookahead = 0; this.prev_length = 0; this.max_chain_length = 0; this.max_lazy_match = 0; this.level = 0; this.strategy = 0; this.good_match = 0; this.nice_match = 0; this.dyn_ltree = new utils.Buf16(HEAP_SIZE * 2); this.dyn_dtree = new utils.Buf16((2 * D_CODES + 1) * 2); this.bl_tree = new utils.Buf16((2 * BL_CODES + 1) * 2); zero(this.dyn_ltree); zero(this.dyn_dtree); zero(this.bl_tree); this.l_desc = null; this.d_desc = null; this.bl_desc = null; this.bl_count = new utils.Buf16(MAX_BITS + 1); this.heap = new utils.Buf16(2 * L_CODES + 1); zero(this.heap); this.heap_len = 0; this.heap_max = 0; this.depth = new utils.Buf16(2 * L_CODES + 1); zero(this.depth); this.l_buf = 0; this.lit_bufsize = 0; this.last_lit = 0; this.d_buf = 0; this.opt_len = 0; this.static_len = 0; this.matches = 0; this.insert = 0; this.bi_buf = 0; this.bi_valid = 0; } function deflateResetKeep(strm) { var s; if (!strm || !strm.state) { return err(strm, Z_STREAM_ERROR); } strm.total_in = strm.total_out = 0; strm.data_type = Z_UNKNOWN; s = strm.state; s.pending = 0; s.pending_out = 0; if (s.wrap < 0) { s.wrap = -s.wrap; } s.status = s.wrap ? INIT_STATE : BUSY_STATE; strm.adler = s.wrap === 2 ? 0 : 1; s.last_flush = Z_NO_FLUSH; trees._tr_init(s); return Z_OK; } function deflateReset(strm) { var ret = deflateResetKeep(strm); if (ret === Z_OK) { lm_init(strm.state); } return ret; } function deflateSetHeader(strm, head) { if (!strm || !strm.state) { return Z_STREAM_ERROR; } if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; } strm.state.gzhead = head; return Z_OK; } function deflateInit2(strm, level, method, windowBits, memLevel, strategy) { if (!strm) { return Z_STREAM_ERROR; } var wrap = 1; if (level === Z_DEFAULT_COMPRESSION) { level = 6; } if (windowBits < 0) { wrap = 0; windowBits = -windowBits; } else if (windowBits > 15) { wrap = 2; windowBits -= 16; } if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED || windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED) { return err(strm, Z_STREAM_ERROR); } if (windowBits === 8) { windowBits = 9; } var s = new DeflateState(); strm.state = s; s.strm = strm; s.wrap = wrap; s.gzhead = null; s.w_bits = windowBits; s.w_size = 1 << s.w_bits; s.w_mask = s.w_size - 1; s.hash_bits = memLevel + 7; s.hash_size = 1 << s.hash_bits; s.hash_mask = s.hash_size - 1; s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH); s.window = new utils.Buf8(s.w_size * 2); s.head = new utils.Buf16(s.hash_size); s.prev = new utils.Buf16(s.w_size); s.lit_bufsize = 1 << memLevel + 6; s.pending_buf_size = s.lit_bufsize * 4; s.pending_buf = new utils.Buf8(s.pending_buf_size); s.d_buf = 1 * s.lit_bufsize; s.l_buf = (1 + 2) * s.lit_bufsize; s.level = level; s.strategy = strategy; s.method = method; return deflateReset(strm); } function deflateInit(strm, level) { return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY); } function deflate(strm, flush) { var old_flush, s; var beg, val; if (!strm || !strm.state || flush > Z_BLOCK || flush < 0) { return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR; } s = strm.state; if (!strm.output || !strm.input && strm.avail_in !== 0 || s.status === FINISH_STATE && flush !== Z_FINISH) { return err(strm, strm.avail_out === 0 ? Z_BUF_ERROR : Z_STREAM_ERROR); } s.strm = strm; old_flush = s.last_flush; s.last_flush = flush; if (s.status === INIT_STATE) { if (s.wrap === 2) { strm.adler = 0; put_byte(s, 31); put_byte(s, 139); put_byte(s, 8); if (!s.gzhead) { put_byte(s, 0); put_byte(s, 0); put_byte(s, 0); put_byte(s, 0); put_byte(s, 0); put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0); put_byte(s, OS_CODE); s.status = BUSY_STATE; } else { put_byte( s, (s.gzhead.text ? 1 : 0) + (s.gzhead.hcrc ? 2 : 0) + (!s.gzhead.extra ? 0 : 4) + (!s.gzhead.name ? 0 : 8) + (!s.gzhead.comment ? 0 : 16) ); put_byte(s, s.gzhead.time & 255); put_byte(s, s.gzhead.time >> 8 & 255); put_byte(s, s.gzhead.time >> 16 & 255); put_byte(s, s.gzhead.time >> 24 & 255); put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0); put_byte(s, s.gzhead.os & 255); if (s.gzhead.extra && s.gzhead.extra.length) { put_byte(s, s.gzhead.extra.length & 255); put_byte(s, s.gzhead.extra.length >> 8 & 255); } if (s.gzhead.hcrc) { strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0); } s.gzindex = 0; s.status = EXTRA_STATE; } } else { var header = Z_DEFLATED + (s.w_bits - 8 << 4) << 8; var level_flags = -1; if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) { level_flags = 0; } else if (s.level < 6) { level_flags = 1; } else if (s.level === 6) { level_flags = 2; } else { level_flags = 3; } header |= level_flags << 6; if (s.strstart !== 0) { header |= PRESET_DICT; } header += 31 - header % 31; s.status = BUSY_STATE; putShortMSB(s, header); if (s.strstart !== 0) { putShortMSB(s, strm.adler >>> 16); putShortMSB(s, strm.adler & 65535); } strm.adler = 1; } } if (s.status === EXTRA_STATE) { if (s.gzhead.extra) { beg = s.pending; while (s.gzindex < (s.gzhead.extra.length & 65535)) { if (s.pending === s.pending_buf_size) { if (s.gzhead.hcrc && s.pending > beg) { strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); } flush_pending(strm); beg = s.pending; if (s.pending === s.pending_buf_size) { break; } } put_byte(s, s.gzhead.extra[s.gzindex] & 255); s.gzindex++; } if (s.gzhead.hcrc && s.pending > beg) { strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); } if (s.gzindex === s.gzhead.extra.length) { s.gzindex = 0; s.status = NAME_STATE; } } else { s.status = NAME_STATE; } } if (s.status === NAME_STATE) { if (s.gzhead.name) { beg = s.pending; do { if (s.pending === s.pending_buf_size) { if (s.gzhead.hcrc && s.pending > beg) { strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); } flush_pending(strm); beg = s.pending; if (s.pending === s.pending_buf_size) { val = 1; break; } } if (s.gzindex < s.gzhead.name.length) { val = s.gzhead.name.charCodeAt(s.gzindex++) & 255; } else { val = 0; } put_byte(s, val); } while (val !== 0); if (s.gzhead.hcrc && s.pending > beg) { strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); } if (val === 0) { s.gzindex = 0; s.status = COMMENT_STATE; } } else { s.status = COMMENT_STATE; } } if (s.status === COMMENT_STATE) { if (s.gzhead.comment) { beg = s.pending; do { if (s.pending === s.pending_buf_size) { if (s.gzhead.hcrc && s.pending > beg) { strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); } flush_pending(strm); beg = s.pending; if (s.pending === s.pending_buf_size) { val = 1; break; } } if (s.gzindex < s.gzhead.comment.length) { val = s.gzhead.comment.charCodeAt(s.gzindex++) & 255; } else { val = 0; } put_byte(s, val); } while (val !== 0); if (s.gzhead.hcrc && s.pending > beg) { strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); } if (val === 0) { s.status = HCRC_STATE; } } else { s.status = HCRC_STATE; } } if (s.status === HCRC_STATE) { if (s.gzhead.hcrc) { if (s.pending + 2 > s.pending_buf_size) { flush_pending(strm); } if (s.pending + 2 <= s.pending_buf_size) { put_byte(s, strm.adler & 255); put_byte(s, strm.adler >> 8 & 255); strm.adler = 0; s.status = BUSY_STATE; } } else { s.status = BUSY_STATE; } } if (s.pending !== 0) { flush_pending(strm); if (strm.avail_out === 0) { s.last_flush = -1; return Z_OK; } } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) && flush !== Z_FINISH) { return err(strm, Z_BUF_ERROR); } if (s.status === FINISH_STATE && strm.avail_in !== 0) { return err(strm, Z_BUF_ERROR); } if (strm.avail_in !== 0 || s.lookahead !== 0 || flush !== Z_NO_FLUSH && s.status !== FINISH_STATE) { var bstate = s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush) : s.strategy === Z_RLE ? deflate_rle(s, flush) : configuration_table[s.level].func(s, flush); if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) { s.status = FINISH_STATE; } if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) { if (strm.avail_out === 0) { s.last_flush = -1; } return Z_OK; } if (bstate === BS_BLOCK_DONE) { if (flush === Z_PARTIAL_FLUSH) { trees._tr_align(s); } else if (flush !== Z_BLOCK) { trees._tr_stored_block(s, 0, 0, false); if (flush === Z_FULL_FLUSH) { zero(s.head); if (s.lookahead === 0) { s.strstart = 0; s.block_start = 0; s.insert = 0; } } } flush_pending(strm); if (strm.avail_out === 0) { s.last_flush = -1; return Z_OK; } } } if (flush !== Z_FINISH) { return Z_OK; } if (s.wrap <= 0) { return Z_STREAM_END; } if (s.wrap === 2) { put_byte(s, strm.adler & 255); put_byte(s, strm.adler >> 8 & 255); put_byte(s, strm.adler >> 16 & 255); put_byte(s, strm.adler >> 24 & 255); put_byte(s, strm.total_in & 255); put_byte(s, strm.total_in >> 8 & 255); put_byte(s, strm.total_in >> 16 & 255); put_byte(s, strm.total_in >> 24 & 255); } else { putShortMSB(s, strm.adler >>> 16); putShortMSB(s, strm.adler & 65535); } flush_pending(strm); if (s.wrap > 0) { s.wrap = -s.wrap; } return s.pending !== 0 ? Z_OK : Z_STREAM_END; } function deflateEnd(strm) { var status; if (!strm || !strm.state) { return Z_STREAM_ERROR; } status = strm.state.status; if (status !== INIT_STATE && status !== EXTRA_STATE && status !== NAME_STATE && status !== COMMENT_STATE && status !== HCRC_STATE && status !== BUSY_STATE && status !== FINISH_STATE) { return err(strm, Z_STREAM_ERROR); } strm.state = null; return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK; } function deflateSetDictionary(strm, dictionary) { var dictLength = dictionary.length; var s; var str, n; var wrap; var avail; var next; var input; var tmpDict; if (!strm || !strm.state) { return Z_STREAM_ERROR; } s = strm.state; wrap = s.wrap; if (wrap === 2 || wrap === 1 && s.status !== INIT_STATE || s.lookahead) { return Z_STREAM_ERROR; } if (wrap === 1) { strm.adler = adler32(strm.adler, dictionary, dictLength, 0); } s.wrap = 0; if (dictLength >= s.w_size) { if (wrap === 0) { zero(s.head); s.strstart = 0; s.block_start = 0; s.insert = 0; } tmpDict = new utils.Buf8(s.w_size); utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0); dictionary = tmpDict; dictLength = s.w_size; } avail = strm.avail_in; next = strm.next_in; input = strm.input; strm.avail_in = dictLength; strm.next_in = 0; strm.input = dictionary; fill_window(s); while (s.lookahead >= MIN_MATCH) { str = s.strstart; n = s.lookahead - (MIN_MATCH - 1); do { s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask; s.prev[str & s.w_mask] = s.head[s.ins_h]; s.head[s.ins_h] = str; str++; } while (--n); s.strstart = str; s.lookahead = MIN_MATCH - 1; fill_window(s); } s.strstart += s.lookahead; s.block_start = s.strstart; s.insert = s.lookahead; s.lookahead = 0; s.match_length = s.prev_length = MIN_MATCH - 1; s.match_available = 0; strm.next_in = next; strm.input = input; strm.avail_in = avail; s.wrap = wrap; return Z_OK; } exports2.deflateInit = deflateInit; exports2.deflateInit2 = deflateInit2; exports2.deflateReset = deflateReset; exports2.deflateResetKeep = deflateResetKeep; exports2.deflateSetHeader = deflateSetHeader; exports2.deflate = deflate; exports2.deflateEnd = deflateEnd; exports2.deflateSetDictionary = deflateSetDictionary; exports2.deflateInfo = "pako deflate (from Nodeca project)"; } }); // node_modules/pako/lib/utils/strings.js var require_strings = __commonJS({ "node_modules/pako/lib/utils/strings.js"(exports2) { "use strict"; var utils = require_common(); var STR_APPLY_OK = true; var STR_APPLY_UIA_OK = true; try { String.fromCharCode.apply(null, [0]); } catch (__) { STR_APPLY_OK = false; } try { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; } var _utf8len = new utils.Buf8(256); for (q = 0; q < 256; q++) { _utf8len[q] = q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1; } var q; _utf8len[254] = _utf8len[254] = 1; exports2.string2buf = function(str) { var buf, c, c2, m_pos, i2, str_len = str.length, buf_len = 0; for (m_pos = 0; m_pos < str_len; m_pos++) { c = str.charCodeAt(m_pos); if ((c & 64512) === 55296 && m_pos + 1 < str_len) { c2 = str.charCodeAt(m_pos + 1); if ((c2 & 64512) === 56320) { c = 65536 + (c - 55296 << 10) + (c2 - 56320); m_pos++; } } buf_len += c < 128 ? 1 : c < 2048 ? 2 : c < 65536 ? 3 : 4; } buf = new utils.Buf8(buf_len); for (i2 = 0, m_pos = 0; i2 < buf_len; m_pos++) { c = str.charCodeAt(m_pos); if ((c & 64512) === 55296 && m_pos + 1 < str_len) { c2 = str.charCodeAt(m_pos + 1); if ((c2 & 64512) === 56320) { c = 65536 + (c - 55296 << 10) + (c2 - 56320); m_pos++; } } if (c < 128) { buf[i2++] = c; } else if (c < 2048) { buf[i2++] = 192 | c >>> 6; buf[i2++] = 128 | c & 63; } else if (c < 65536) { buf[i2++] = 224 | c >>> 12; buf[i2++] = 128 | c >>> 6 & 63; buf[i2++] = 128 | c & 63; } else { buf[i2++] = 240 | c >>> 18; buf[i2++] = 128 | c >>> 12 & 63; buf[i2++] = 128 | c >>> 6 & 63; buf[i2++] = 128 | c & 63; } } return buf; }; function buf2binstring(buf, len) { if (len < 65534) { if (buf.subarray && STR_APPLY_UIA_OK || !buf.subarray && STR_APPLY_OK) { return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len)); } } var result = ""; for (var i2 = 0; i2 < len; i2++) { result += String.fromCharCode(buf[i2]); } return result; } exports2.buf2binstring = function(buf) { return buf2binstring(buf, buf.length); }; exports2.binstring2buf = function(str) { var buf = new utils.Buf8(str.length); for (var i2 = 0, len = buf.length; i2 < len; i2++) { buf[i2] = str.charCodeAt(i2); } return buf; }; exports2.buf2string = function(buf, max) { var i2, out, c, c_len; var len = max || buf.length; var utf16buf = new Array(len * 2); for (out = 0, i2 = 0; i2 < len; ) { c = buf[i2++]; if (c < 128) { utf16buf[out++] = c; continue; } c_len = _utf8len[c]; if (c_len > 4) { utf16buf[out++] = 65533; i2 += c_len - 1; continue; } c &= c_len === 2 ? 31 : c_len === 3 ? 15 : 7; while (c_len > 1 && i2 < len) { c = c << 6 | buf[i2++] & 63; c_len--; } if (c_len > 1) { utf16buf[out++] = 65533; continue; } if (c < 65536) { utf16buf[out++] = c; } else { c -= 65536; utf16buf[out++] = 55296 | c >> 10 & 1023; utf16buf[out++] = 56320 | c & 1023; } } return buf2binstring(utf16buf, out); }; exports2.utf8border = function(buf, max) { var pos; max = max || buf.length; if (max > buf.length) { max = buf.length; } pos = max - 1; while (pos >= 0 && (buf[pos] & 192) === 128) { pos--; } if (pos < 0) { return max; } if (pos === 0) { return max; } return pos + _utf8len[buf[pos]] > max ? pos : max; }; } }); // node_modules/pako/lib/zlib/zstream.js var require_zstream = __commonJS({ "node_modules/pako/lib/zlib/zstream.js"(exports2, module2) { "use strict"; function ZStream() { this.input = null; this.next_in = 0; this.avail_in = 0; this.total_in = 0; this.output = null; this.next_out = 0; this.avail_out = 0; this.total_out = 0; this.msg = ""; this.state = null; this.data_type = 2; this.adler = 0; } module2.exports = ZStream; } }); // node_modules/pako/lib/deflate.js var require_deflate2 = __commonJS({ "node_modules/pako/lib/deflate.js"(exports2) { "use strict"; var zlib_deflate = require_deflate(); var utils = require_common(); var strings = require_strings(); var msg = require_messages(); var ZStream = require_zstream(); var toString = Object.prototype.toString; var Z_NO_FLUSH = 0; var Z_FINISH = 4; var Z_OK = 0; var Z_STREAM_END = 1; var Z_SYNC_FLUSH = 2; var Z_DEFAULT_COMPRESSION = -1; var Z_DEFAULT_STRATEGY = 0; var Z_DEFLATED = 8; function Deflate(options) { if (!(this instanceof Deflate)) return new Deflate(options); this.options = utils.assign({ level: Z_DEFAULT_COMPRESSION, method: Z_DEFLATED, chunkSize: 16384, windowBits: 15, memLevel: 8, strategy: Z_DEFAULT_STRATEGY, to: "" }, options || {}); var opt = this.options; if (opt.raw && opt.windowBits > 0) { opt.windowBits = -opt.windowBits; } else if (opt.gzip && opt.windowBits > 0 && opt.windowBits < 16) { opt.windowBits += 16; } this.err = 0; this.msg = ""; this.ended = false; this.chunks = []; this.strm = new ZStream(); this.strm.avail_out = 0; var status = zlib_deflate.deflateInit2( this.strm, opt.level, opt.method, opt.windowBits, opt.memLevel, opt.strategy ); if (status !== Z_OK) { throw new Error(msg[status]); } if (opt.header) { zlib_deflate.deflateSetHeader(this.strm, opt.header); } if (opt.dictionary) { var dict; if (typeof opt.dictionary === "string") { dict = strings.string2buf(opt.dictionary); } else if (toString.call(opt.dictionary) === "[object ArrayBuffer]") { dict = new Uint8Array(opt.dictionary); } else { dict = opt.dictionary; } status = zlib_deflate.deflateSetDictionary(this.strm, dict); if (status !== Z_OK) { throw new Error(msg[status]); } this._dict_set = true; } } Deflate.prototype.push = function(data, mode) { var strm = this.strm; var chunkSize = this.options.chunkSize; var status, _mode; if (this.ended) { return false; } _mode = mode === ~~mode ? mode : mode === true ? Z_FINISH : Z_NO_FLUSH; if (typeof data === "string") { strm.input = strings.string2buf(data); } else if (toString.call(data) === "[object ArrayBuffer]") { strm.input = new Uint8Array(data); } else { strm.input = data; } strm.next_in = 0; strm.avail_in = strm.input.length; do { if (strm.avail_out === 0) { strm.output = new utils.Buf8(chunkSize); strm.next_out = 0; strm.avail_out = chunkSize; } status = zlib_deflate.deflate(strm, _mode); if (status !== Z_STREAM_END && status !== Z_OK) { this.onEnd(status); this.ended = true; return false; } if (strm.avail_out === 0 || strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH)) { if (this.options.to === "string") { this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output, strm.next_out))); } else { this.onData(utils.shrinkBuf(strm.output, strm.next_out)); } } } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END); if (_mode === Z_FINISH) { status = zlib_deflate.deflateEnd(this.strm); this.onEnd(status); this.ended = true; return status === Z_OK; } if (_mode === Z_SYNC_FLUSH) { this.onEnd(Z_OK); strm.avail_out = 0; return true; } return true; }; Deflate.prototype.onData = function(chunk) { this.chunks.push(chunk); }; Deflate.prototype.onEnd = function(status) { if (status === Z_OK) { if (this.options.to === "string") { this.result = this.chunks.join(""); } else { this.result = utils.flattenChunks(this.chunks); } } this.chunks = []; this.err = status; this.msg = this.strm.msg; }; function deflate(input, options) { var deflator = new Deflate(options); deflator.push(input, true); if (deflator.err) { throw deflator.msg || msg[deflator.err]; } return deflator.result; } function deflateRaw(input, options) { options = options || {}; options.raw = true; return deflate(input, options); } function gzip(input, options) { options = options || {}; options.gzip = true; return deflate(input, options); } exports2.Deflate = Deflate; exports2.deflate = deflate; exports2.deflateRaw = deflateRaw; exports2.gzip = gzip; } }); // node_modules/pako/lib/zlib/inffast.js var require_inffast = __commonJS({ "node_modules/pako/lib/zlib/inffast.js"(exports2, module2) { "use strict"; var BAD = 30; var TYPE = 12; module2.exports = function inflate_fast(strm, start) { var state; var _in; var last; var _out; var beg; var end; var dmax; var wsize; var whave; var wnext; var s_window; var hold; var bits; var lcode; var dcode; var lmask; var dmask; var here; var op; var len; var dist; var from; var from_source; var input, output; state = strm.state; _in = strm.next_in; input = strm.input; last = _in + (strm.avail_in - 5); _out = strm.next_out; output = strm.output; beg = _out - (start - strm.avail_out); end = _out + (strm.avail_out - 257); dmax = state.dmax; wsize = state.wsize; whave = state.whave; wnext = state.wnext; s_window = state.window; hold = state.hold; bits = state.bits; lcode = state.lencode; dcode = state.distcode; lmask = (1 << state.lenbits) - 1; dmask = (1 << state.distbits) - 1; top: do { if (bits < 15) { hold += input[_in++] << bits; bits += 8; hold += input[_in++] << bits; bits += 8; } here = lcode[hold & lmask]; dolen: for (; ; ) { op = here >>> 24; hold >>>= op; bits -= op; op = here >>> 16 & 255; if (op === 0) { output[_out++] = here & 65535; } else if (op & 16) { len = here & 65535; op &= 15; if (op) { if (bits < op) { hold += input[_in++] << bits; bits += 8; } len += hold & (1 << op) - 1; hold >>>= op; bits -= op; } if (bits < 15) { hold += input[_in++] << bits; bits += 8; hold += input[_in++] << bits; bits += 8; } here = dcode[hold & dmask]; dodist: for (; ; ) { op = here >>> 24; hold >>>= op; bits -= op; op = here >>> 16 & 255; if (op & 16) { dist = here & 65535; op &= 15; if (bits < op) { hold += input[_in++] << bits; bits += 8; if (bits < op) { hold += input[_in++] << bits; bits += 8; } } dist += hold & (1 << op) - 1; if (dist > dmax) { strm.msg = "invalid distance too far back"; state.mode = BAD; break top; } hold >>>= op; bits -= op; op = _out - beg; if (dist > op) { op = dist - op; if (op > whave) { if (state.sane) { strm.msg = "invalid distance too far back"; state.mode = BAD; break top; } } from = 0; from_source = s_window; if (wnext === 0) { from += wsize - op; if (op < len) { len -= op; do { output[_out++] = s_window[from++]; } while (--op); from = _out - dist; from_source = output; } } else if (wnext < op) { from += wsize + wnext - op; op -= wnext; if (op < len) { len -= op; do { output[_out++] = s_window[from++]; } while (--op); from = 0; if (wnext < len) { op = wnext; len -= op; do { output[_out++] = s_window[from++]; } while (--op); from = _out - dist; from_source = output; } } } else { from += wnext - op; if (op < len) { len -= op; do { output[_out++] = s_window[from++]; } while (--op); from = _out - dist; from_source = output; } } while (len > 2) { output[_out++] = from_source[from++]; output[_out++] = from_source[from++]; output[_out++] = from_source[from++]; len -= 3; } if (len) { output[_out++] = from_source[from++]; if (len > 1) { output[_out++] = from_source[from++]; } } } else { from = _out - dist; do { output[_out++] = output[from++]; output[_out++] = output[from++]; output[_out++] = output[from++]; len -= 3; } while (len > 2); if (len) { output[_out++] = output[from++]; if (len > 1) { output[_out++] = output[from++]; } } } } else if ((op & 64) === 0) { here = dcode[(here & 65535) + (hold & (1 << op) - 1)]; continue dodist; } else { strm.msg = "invalid distance code"; state.mode = BAD; break top; } break; } } else if ((op & 64) === 0) { here = lcode[(here & 65535) + (hold & (1 << op) - 1)]; continue dolen; } else if (op & 32) { state.mode = TYPE; break top; } else { strm.msg = "invalid literal/length code"; state.mode = BAD; break top; } break; } } while (_in < last && _out < end); len = bits >> 3; _in -= len; bits -= len << 3; hold &= (1 << bits) - 1; strm.next_in = _in; strm.next_out = _out; strm.avail_in = _in < last ? 5 + (last - _in) : 5 - (_in - last); strm.avail_out = _out < end ? 257 + (end - _out) : 257 - (_out - end); state.hold = hold; state.bits = bits; return; }; } }); // node_modules/pako/lib/zlib/inftrees.js var require_inftrees = __commonJS({ "node_modules/pako/lib/zlib/inftrees.js"(exports2, module2) { "use strict"; var utils = require_common(); var MAXBITS = 15; var ENOUGH_LENS = 852; var ENOUGH_DISTS = 592; var CODES = 0; var LENS = 1; var DISTS = 2; var lbase = [ /* Length codes 257..285 base */ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 ]; var lext = [ /* Length codes 257..285 extra */ 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78 ]; var dbase = [ /* Distance codes 0..29 base */ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0 ]; var dext = [ /* Distance codes 0..29 extra */ 16, 16, 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, 64, 64 ]; module2.exports = function inflate_table(type2, lens, lens_index, codes, table, table_index, work, opts) { var bits = opts.bits; var len = 0; var sym = 0; var min = 0, max = 0; var root = 0; var curr = 0; var drop = 0; var left = 0; var used = 0; var huff = 0; var incr; var fill; var low; var mask; var next; var base = null; var base_index = 0; var end; var count = new utils.Buf16(MAXBITS + 1); var offs = new utils.Buf16(MAXBITS + 1); var extra = null; var extra_index = 0; var here_bits, here_op, here_val; for (len = 0; len <= MAXBITS; len++) { count[len] = 0; } for (sym = 0; sym < codes; sym++) { count[lens[lens_index + sym]]++; } root = bits; for (max = MAXBITS; max >= 1; max--) { if (count[max] !== 0) { break; } } if (root > max) { root = max; } if (max === 0) { table[table_index++] = 1 << 24 | 64 << 16 | 0; table[table_index++] = 1 << 24 | 64 << 16 | 0; opts.bits = 1; return 0; } for (min = 1; min < max; min++) { if (count[min] !== 0) { break; } } if (root < min) { root = min; } left = 1; for (len = 1; len <= MAXBITS; len++) { left <<= 1; left -= count[len]; if (left < 0) { return -1; } } if (left > 0 && (type2 === CODES || max !== 1)) { return -1; } offs[1] = 0; for (len = 1; len < MAXBITS; len++) { offs[len + 1] = offs[len] + count[len]; } for (sym = 0; sym < codes; sym++) { if (lens[lens_index + sym] !== 0) { work[offs[lens[lens_index + sym]]++] = sym; } } if (type2 === CODES) { base = extra = work; end = 19; } else if (type2 === LENS) { base = lbase; base_index -= 257; extra = lext; extra_index -= 257; end = 256; } else { base = dbase; extra = dext; end = -1; } huff = 0; sym = 0; len = min; next = table_index; curr = root; drop = 0; low = -1; used = 1 << root; mask = used - 1; if (type2 === LENS && used > ENOUGH_LENS || type2 === DISTS && used > ENOUGH_DISTS) { return 1; } for (; ; ) { here_bits = len - drop; if (work[sym] < end) { here_op = 0; here_val = work[sym]; } else if (work[sym] > end) { here_op = extra[extra_index + work[sym]]; here_val = base[base_index + work[sym]]; } else { here_op = 32 + 64; here_val = 0; } incr = 1 << len - drop; fill = 1 << curr; min = fill; do { fill -= incr; table[next + (huff >> drop) + fill] = here_bits << 24 | here_op << 16 | here_val | 0; } while (fill !== 0); incr = 1 << len - 1; while (huff & incr) { incr >>= 1; } if (incr !== 0) { huff &= incr - 1; huff += incr; } else { huff = 0; } sym++; if (--count[len] === 0) { if (len === max) { break; } len = lens[lens_index + work[sym]]; } if (len > root && (huff & mask) !== low) { if (drop === 0) { drop = root; } next += min; curr = len - drop; left = 1 << curr; while (curr + drop < max) { left -= count[curr + drop]; if (left <= 0) { break; } curr++; left <<= 1; } used += 1 << curr; if (type2 === LENS && used > ENOUGH_LENS || type2 === DISTS && used > ENOUGH_DISTS) { return 1; } low = huff & mask; table[low] = root << 24 | curr << 16 | next - table_index | 0; } } if (huff !== 0) { table[next + huff] = len - drop << 24 | 64 << 16 | 0; } opts.bits = root; return 0; }; } }); // node_modules/pako/lib/zlib/inflate.js var require_inflate = __commonJS({ "node_modules/pako/lib/zlib/inflate.js"(exports2) { "use strict"; var utils = require_common(); var adler32 = require_adler32(); var crc32 = require_crc32(); var inflate_fast = require_inffast(); var inflate_table = require_inftrees(); var CODES = 0; var LENS = 1; var DISTS = 2; var Z_FINISH = 4; var Z_BLOCK = 5; var Z_TREES = 6; var Z_OK = 0; var Z_STREAM_END = 1; var Z_NEED_DICT = 2; var Z_STREAM_ERROR = -2; var Z_DATA_ERROR = -3; var Z_MEM_ERROR = -4; var Z_BUF_ERROR = -5; var Z_DEFLATED = 8; var HEAD = 1; var FLAGS = 2; var TIME = 3; var OS = 4; var EXLEN = 5; var EXTRA = 6; var NAME = 7; var COMMENT = 8; var HCRC = 9; var DICTID = 10; var DICT = 11; var TYPE = 12; var TYPEDO = 13; var STORED = 14; var COPY_ = 15; var COPY = 16; var TABLE = 17; var LENLENS = 18; var CODELENS = 19; var LEN_ = 20; var LEN = 21; var LENEXT = 22; var DIST = 23; var DISTEXT = 24; var MATCH = 25; var LIT = 26; var CHECK = 27; var LENGTH = 28; var DONE = 29; var BAD = 30; var MEM = 31; var SYNC = 32; var ENOUGH_LENS = 852; var ENOUGH_DISTS = 592; var MAX_WBITS = 15; var DEF_WBITS = MAX_WBITS; function zswap32(q) { return (q >>> 24 & 255) + (q >>> 8 & 65280) + ((q & 65280) << 8) + ((q & 255) << 24); } function InflateState() { this.mode = 0; this.last = false; this.wrap = 0; this.havedict = false; this.flags = 0; this.dmax = 0; this.check = 0; this.total = 0; this.head = null; this.wbits = 0; this.wsize = 0; this.whave = 0; this.wnext = 0; this.window = null; this.hold = 0; this.bits = 0; this.length = 0; this.offset = 0; this.extra = 0; this.lencode = null; this.distcode = null; this.lenbits = 0; this.distbits = 0; this.ncode = 0; this.nlen = 0; this.ndist = 0; this.have = 0; this.next = null; this.lens = new utils.Buf16(320); this.work = new utils.Buf16(288); this.lendyn = null; this.distdyn = null; this.sane = 0; this.back = 0; this.was = 0; } function inflateResetKeep(strm) { var state; if (!strm || !strm.state) { return Z_STREAM_ERROR; } state = strm.state; strm.total_in = strm.total_out = state.total = 0; strm.msg = ""; if (state.wrap) { strm.adler = state.wrap & 1; } state.mode = HEAD; state.last = 0; state.havedict = 0; state.dmax = 32768; state.head = null; state.hold = 0; state.bits = 0; state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS); state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS); state.sane = 1; state.back = -1; return Z_OK; } function inflateReset(strm) { var state; if (!strm || !strm.state) { return Z_STREAM_ERROR; } state = strm.state; state.wsize = 0; state.whave = 0; state.wnext = 0; return inflateResetKeep(strm); } function inflateReset2(strm, windowBits) { var wrap; var state; if (!strm || !strm.state) { return Z_STREAM_ERROR; } state = strm.state; if (windowBits < 0) { wrap = 0; windowBits = -windowBits; } else { wrap = (windowBits >> 4) + 1; if (windowBits < 48) { windowBits &= 15; } } if (windowBits && (windowBits < 8 || windowBits > 15)) { return Z_STREAM_ERROR; } if (state.window !== null && state.wbits !== windowBits) { state.window = null; } state.wrap = wrap; state.wbits = windowBits; return inflateReset(strm); } function inflateInit2(strm, windowBits) { var ret; var state; if (!strm) { return Z_STREAM_ERROR; } state = new InflateState(); strm.state = state; state.window = null; ret = inflateReset2(strm, windowBits); if (ret !== Z_OK) { strm.state = null; } return ret; } function inflateInit(strm) { return inflateInit2(strm, DEF_WBITS); } var virgin = true; var lenfix; var distfix; function fixedtables(state) { if (virgin) { var sym; lenfix = new utils.Buf32(512); distfix = new utils.Buf32(32); sym = 0; while (sym < 144) { state.lens[sym++] = 8; } while (sym < 256) { state.lens[sym++] = 9; } while (sym < 280) { state.lens[sym++] = 7; } while (sym < 288) { state.lens[sym++] = 8; } inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 }); sym = 0; while (sym < 32) { state.lens[sym++] = 5; } inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 }); virgin = false; } state.lencode = lenfix; state.lenbits = 9; state.distcode = distfix; state.distbits = 5; } function updatewindow(strm, src, end, copy) { var dist; var state = strm.state; if (state.window === null) { state.wsize = 1 << state.wbits; state.wnext = 0; state.whave = 0; state.window = new utils.Buf8(state.wsize); } if (copy >= state.wsize) { utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0); state.wnext = 0; state.whave = state.wsize; } else { dist = state.wsize - state.wnext; if (dist > copy) { dist = copy; } utils.arraySet(state.window, src, end - copy, dist, state.wnext); copy -= dist; if (copy) { utils.arraySet(state.window, src, end - copy, copy, 0); state.wnext = copy; state.whave = state.wsize; } else { state.wnext += dist; if (state.wnext === state.wsize) { state.wnext = 0; } if (state.whave < state.wsize) { state.whave += dist; } } } return 0; } function inflate(strm, flush) { var state; var input, output; var next; var put; var have, left; var hold; var bits; var _in, _out; var copy; var from; var from_source; var here = 0; var here_bits, here_op, here_val; var last_bits, last_op, last_val; var len; var ret; var hbuf = new utils.Buf8(4); var opts; var n; var order = ( /* permutation of code lengths */ [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15] ); if (!strm || !strm.state || !strm.output || !strm.input && strm.avail_in !== 0) { return Z_STREAM_ERROR; } state = strm.state; if (state.mode === TYPE) { state.mode = TYPEDO; } put = strm.next_out; output = strm.output; left = strm.avail_out; next = strm.next_in; input = strm.input; have = strm.avail_in; hold = state.hold; bits = state.bits; _in = have; _out = left; ret = Z_OK; inf_leave: for (; ; ) { switch (state.mode) { case HEAD: if (state.wrap === 0) { state.mode = TYPEDO; break; } while (bits < 16) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } if (state.wrap & 2 && hold === 35615) { state.check = 0; hbuf[0] = hold & 255; hbuf[1] = hold >>> 8 & 255; state.check = crc32(state.check, hbuf, 2, 0); hold = 0; bits = 0; state.mode = FLAGS; break; } state.flags = 0; if (state.head) { state.head.done = false; } if (!(state.wrap & 1) || /* check if zlib header allowed */ (((hold & 255) << 8) + (hold >> 8)) % 31) { strm.msg = "incorrect header check"; state.mode = BAD; break; } if ((hold & 15) !== Z_DEFLATED) { strm.msg = "unknown compression method"; state.mode = BAD; break; } hold >>>= 4; bits -= 4; len = (hold & 15) + 8; if (state.wbits === 0) { state.wbits = len; } else if (len > state.wbits) { strm.msg = "invalid window size"; state.mode = BAD; break; } state.dmax = 1 << len; strm.adler = state.check = 1; state.mode = hold & 512 ? DICTID : TYPE; hold = 0; bits = 0; break; case FLAGS: while (bits < 16) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } state.flags = hold; if ((state.flags & 255) !== Z_DEFLATED) { strm.msg = "unknown compression method"; state.mode = BAD; break; } if (state.flags & 57344) { strm.msg = "unknown header flags set"; state.mode = BAD; break; } if (state.head) { state.head.text = hold >> 8 & 1; } if (state.flags & 512) { hbuf[0] = hold & 255; hbuf[1] = hold >>> 8 & 255; state.check = crc32(state.check, hbuf, 2, 0); } hold = 0; bits = 0; state.mode = TIME; case TIME: while (bits < 32) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } if (state.head) { state.head.time = hold; } if (state.flags & 512) { hbuf[0] = hold & 255; hbuf[1] = hold >>> 8 & 255; hbuf[2] = hold >>> 16 & 255; hbuf[3] = hold >>> 24 & 255; state.check = crc32(state.check, hbuf, 4, 0); } hold = 0; bits = 0; state.mode = OS; case OS: while (bits < 16) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } if (state.head) { state.head.xflags = hold & 255; state.head.os = hold >> 8; } if (state.flags & 512) { hbuf[0] = hold & 255; hbuf[1] = hold >>> 8 & 255; state.check = crc32(state.check, hbuf, 2, 0); } hold = 0; bits = 0; state.mode = EXLEN; case EXLEN: if (state.flags & 1024) { while (bits < 16) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } state.length = hold; if (state.head) { state.head.extra_len = hold; } if (state.flags & 512) { hbuf[0] = hold & 255; hbuf[1] = hold >>> 8 & 255; state.check = crc32(state.check, hbuf, 2, 0); } hold = 0; bits = 0; } else if (state.head) { state.head.extra = null; } state.mode = EXTRA; case EXTRA: if (state.flags & 1024) { copy = state.length; if (copy > have) { copy = have; } if (copy) { if (state.head) { len = state.head.extra_len - state.length; if (!state.head.extra) { state.head.extra = new Array(state.head.extra_len); } utils.arraySet( state.head.extra, input, next, // extra field is limited to 65536 bytes // - no need for additional size check copy, /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/ len ); } if (state.flags & 512) { state.check = crc32(state.check, input, copy, next); } have -= copy; next += copy; state.length -= copy; } if (state.length) { break inf_leave; } } state.length = 0; state.mode = NAME; case NAME: if (state.flags & 2048) { if (have === 0) { break inf_leave; } copy = 0; do { len = input[next + copy++]; if (state.head && len && state.length < 65536) { state.head.name += String.fromCharCode(len); } } while (len && copy < have); if (state.flags & 512) { state.check = crc32(state.check, input, copy, next); } have -= copy; next += copy; if (len) { break inf_leave; } } else if (state.head) { state.head.name = null; } state.length = 0; state.mode = COMMENT; case COMMENT: if (state.flags & 4096) { if (have === 0) { break inf_leave; } copy = 0; do { len = input[next + copy++]; if (state.head && len && state.length < 65536) { state.head.comment += String.fromCharCode(len); } } while (len && copy < have); if (state.flags & 512) { state.check = crc32(state.check, input, copy, next); } have -= copy; next += copy; if (len) { break inf_leave; } } else if (state.head) { state.head.comment = null; } state.mode = HCRC; case HCRC: if (state.flags & 512) { while (bits < 16) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } if (hold !== (state.check & 65535)) { strm.msg = "header crc mismatch"; state.mode = BAD; break; } hold = 0; bits = 0; } if (state.head) { state.head.hcrc = state.flags >> 9 & 1; state.head.done = true; } strm.adler = state.check = 0; state.mode = TYPE; break; case DICTID: while (bits < 32) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } strm.adler = state.check = zswap32(hold); hold = 0; bits = 0; state.mode = DICT; case DICT: if (state.havedict === 0) { strm.next_out = put; strm.avail_out = left; strm.next_in = next; strm.avail_in = have; state.hold = hold; state.bits = bits; return Z_NEED_DICT; } strm.adler = state.check = 1; state.mode = TYPE; case TYPE: if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; } case TYPEDO: if (state.last) { hold >>>= bits & 7; bits -= bits & 7; state.mode = CHECK; break; } while (bits < 3) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } state.last = hold & 1; hold >>>= 1; bits -= 1; switch (hold & 3) { case 0: state.mode = STORED; break; case 1: fixedtables(state); state.mode = LEN_; if (flush === Z_TREES) { hold >>>= 2; bits -= 2; break inf_leave; } break; case 2: state.mode = TABLE; break; case 3: strm.msg = "invalid block type"; state.mode = BAD; } hold >>>= 2; bits -= 2; break; case STORED: hold >>>= bits & 7; bits -= bits & 7; while (bits < 32) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } if ((hold & 65535) !== (hold >>> 16 ^ 65535)) { strm.msg = "invalid stored block lengths"; state.mode = BAD; break; } state.length = hold & 65535; hold = 0; bits = 0; state.mode = COPY_; if (flush === Z_TREES) { break inf_leave; } case COPY_: state.mode = COPY; case COPY: copy = state.length; if (copy) { if (copy > have) { copy = have; } if (copy > left) { copy = left; } if (copy === 0) { break inf_leave; } utils.arraySet(output, input, next, copy, put); have -= copy; next += copy; left -= copy; put += copy; state.length -= copy; break; } state.mode = TYPE; break; case TABLE: while (bits < 14) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } state.nlen = (hold & 31) + 257; hold >>>= 5; bits -= 5; state.ndist = (hold & 31) + 1; hold >>>= 5; bits -= 5; state.ncode = (hold & 15) + 4; hold >>>= 4; bits -= 4; if (state.nlen > 286 || state.ndist > 30) { strm.msg = "too many length or distance symbols"; state.mode = BAD; break; } state.have = 0; state.mode = LENLENS; case LENLENS: while (state.have < state.ncode) { while (bits < 3) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } state.lens[order[state.have++]] = hold & 7; hold >>>= 3; bits -= 3; } while (state.have < 19) { state.lens[order[state.have++]] = 0; } state.lencode = state.lendyn; state.lenbits = 7; opts = { bits: state.lenbits }; ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts); state.lenbits = opts.bits; if (ret) { strm.msg = "invalid code lengths set"; state.mode = BAD; break; } state.have = 0; state.mode = CODELENS; case CODELENS: while (state.have < state.nlen + state.ndist) { for (; ; ) { here = state.lencode[hold & (1 << state.lenbits) - 1]; here_bits = here >>> 24; here_op = here >>> 16 & 255; here_val = here & 65535; if (here_bits <= bits) { break; } if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } if (here_val < 16) { hold >>>= here_bits; bits -= here_bits; state.lens[state.have++] = here_val; } else { if (here_val === 16) { n = here_bits + 2; while (bits < n) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } hold >>>= here_bits; bits -= here_bits; if (state.have === 0) { strm.msg = "invalid bit length repeat"; state.mode = BAD; break; } len = state.lens[state.have - 1]; copy = 3 + (hold & 3); hold >>>= 2; bits -= 2; } else if (here_val === 17) { n = here_bits + 3; while (bits < n) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } hold >>>= here_bits; bits -= here_bits; len = 0; copy = 3 + (hold & 7); hold >>>= 3; bits -= 3; } else { n = here_bits + 7; while (bits < n) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } hold >>>= here_bits; bits -= here_bits; len = 0; copy = 11 + (hold & 127); hold >>>= 7; bits -= 7; } if (state.have + copy > state.nlen + state.ndist) { strm.msg = "invalid bit length repeat"; state.mode = BAD; break; } while (copy--) { state.lens[state.have++] = len; } } } if (state.mode === BAD) { break; } if (state.lens[256] === 0) { strm.msg = "invalid code -- missing end-of-block"; state.mode = BAD; break; } state.lenbits = 9; opts = { bits: state.lenbits }; ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts); state.lenbits = opts.bits; if (ret) { strm.msg = "invalid literal/lengths set"; state.mode = BAD; break; } state.distbits = 6; state.distcode = state.distdyn; opts = { bits: state.distbits }; ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts); state.distbits = opts.bits; if (ret) { strm.msg = "invalid distances set"; state.mode = BAD; break; } state.mode = LEN_; if (flush === Z_TREES) { break inf_leave; } case LEN_: state.mode = LEN; case LEN: if (have >= 6 && left >= 258) { strm.next_out = put; strm.avail_out = left; strm.next_in = next; strm.avail_in = have; state.hold = hold; state.bits = bits; inflate_fast(strm, _out); put = strm.next_out; output = strm.output; left = strm.avail_out; next = strm.next_in; input = strm.input; have = strm.avail_in; hold = state.hold; bits = state.bits; if (state.mode === TYPE) { state.back = -1; } break; } state.back = 0; for (; ; ) { here = state.lencode[hold & (1 << state.lenbits) - 1]; here_bits = here >>> 24; here_op = here >>> 16 & 255; here_val = here & 65535; if (here_bits <= bits) { break; } if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } if (here_op && (here_op & 240) === 0) { last_bits = here_bits; last_op = here_op; last_val = here_val; for (; ; ) { here = state.lencode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)]; here_bits = here >>> 24; here_op = here >>> 16 & 255; here_val = here & 65535; if (last_bits + here_bits <= bits) { break; } if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } hold >>>= last_bits; bits -= last_bits; state.back += last_bits; } hold >>>= here_bits; bits -= here_bits; state.back += here_bits; state.length = here_val; if (here_op === 0) { state.mode = LIT; break; } if (here_op & 32) { state.back = -1; state.mode = TYPE; break; } if (here_op & 64) { strm.msg = "invalid literal/length code"; state.mode = BAD; break; } state.extra = here_op & 15; state.mode = LENEXT; case LENEXT: if (state.extra) { n = state.extra; while (bits < n) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } state.length += hold & (1 << state.extra) - 1; hold >>>= state.extra; bits -= state.extra; state.back += state.extra; } state.was = state.length; state.mode = DIST; case DIST: for (; ; ) { here = state.distcode[hold & (1 << state.distbits) - 1]; here_bits = here >>> 24; here_op = here >>> 16 & 255; here_val = here & 65535; if (here_bits <= bits) { break; } if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } if ((here_op & 240) === 0) { last_bits = here_bits; last_op = here_op; last_val = here_val; for (; ; ) { here = state.distcode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)]; here_bits = here >>> 24; here_op = here >>> 16 & 255; here_val = here & 65535; if (last_bits + here_bits <= bits) { break; } if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } hold >>>= last_bits; bits -= last_bits; state.back += last_bits; } hold >>>= here_bits; bits -= here_bits; state.back += here_bits; if (here_op & 64) { strm.msg = "invalid distance code"; state.mode = BAD; break; } state.offset = here_val; state.extra = here_op & 15; state.mode = DISTEXT; case DISTEXT: if (state.extra) { n = state.extra; while (bits < n) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } state.offset += hold & (1 << state.extra) - 1; hold >>>= state.extra; bits -= state.extra; state.back += state.extra; } if (state.offset > state.dmax) { strm.msg = "invalid distance too far back"; state.mode = BAD; break; } state.mode = MATCH; case MATCH: if (left === 0) { break inf_leave; } copy = _out - left; if (state.offset > copy) { copy = state.offset - copy; if (copy > state.whave) { if (state.sane) { strm.msg = "invalid distance too far back"; state.mode = BAD; break; } } if (copy > state.wnext) { copy -= state.wnext; from = state.wsize - copy; } else { from = state.wnext - copy; } if (copy > state.length) { copy = state.length; } from_source = state.window; } else { from_source = output; from = put - state.offset; copy = state.length; } if (copy > left) { copy = left; } left -= copy; state.length -= copy; do { output[put++] = from_source[from++]; } while (--copy); if (state.length === 0) { state.mode = LEN; } break; case LIT: if (left === 0) { break inf_leave; } output[put++] = state.length; left--; state.mode = LEN; break; case CHECK: if (state.wrap) { while (bits < 32) { if (have === 0) { break inf_leave; } have--; hold |= input[next++] << bits; bits += 8; } _out -= left; strm.total_out += _out; state.total += _out; if (_out) { strm.adler = state.check = /*UPDATE(state.check, put - _out, _out);*/ state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out); } _out = left; if ((state.flags ? hold : zswap32(hold)) !== state.check) { strm.msg = "incorrect data check"; state.mode = BAD; break; } hold = 0; bits = 0; } state.mode = LENGTH; case LENGTH: if (state.wrap && state.flags) { while (bits < 32) { if (have === 0) { break inf_leave; } have--; hold += input[next++] << bits; bits += 8; } if (hold !== (state.total & 4294967295)) { strm.msg = "incorrect length check"; state.mode = BAD; break; } hold = 0; bits = 0; } state.mode = DONE; case DONE: ret = Z_STREAM_END; break inf_leave; case BAD: ret = Z_DATA_ERROR; break inf_leave; case MEM: return Z_MEM_ERROR; case SYNC: default: return Z_STREAM_ERROR; } } strm.next_out = put; strm.avail_out = left; strm.next_in = next; strm.avail_in = have; state.hold = hold; state.bits = bits; if (state.wsize || _out !== strm.avail_out && state.mode < BAD && (state.mode < CHECK || flush !== Z_FINISH)) { if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) { state.mode = MEM; return Z_MEM_ERROR; } } _in -= strm.avail_in; _out -= strm.avail_out; strm.total_in += _in; strm.total_out += _out; state.total += _out; if (state.wrap && _out) { strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/ state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out); } strm.data_type = state.bits + (state.last ? 64 : 0) + (state.mode === TYPE ? 128 : 0) + (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0); if ((_in === 0 && _out === 0 || flush === Z_FINISH) && ret === Z_OK) { ret = Z_BUF_ERROR; } return ret; } function inflateEnd(strm) { if (!strm || !strm.state) { return Z_STREAM_ERROR; } var state = strm.state; if (state.window) { state.window = null; } strm.state = null; return Z_OK; } function inflateGetHeader(strm, head) { var state; if (!strm || !strm.state) { return Z_STREAM_ERROR; } state = strm.state; if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; } state.head = head; head.done = false; return Z_OK; } function inflateSetDictionary(strm, dictionary) { var dictLength = dictionary.length; var state; var dictid; var ret; if (!strm || !strm.state) { return Z_STREAM_ERROR; } state = strm.state; if (state.wrap !== 0 && state.mode !== DICT) { return Z_STREAM_ERROR; } if (state.mode === DICT) { dictid = 1; dictid = adler32(dictid, dictionary, dictLength, 0); if (dictid !== state.check) { return Z_DATA_ERROR; } } ret = updatewindow(strm, dictionary, dictLength, dictLength); if (ret) { state.mode = MEM; return Z_MEM_ERROR; } state.havedict = 1; return Z_OK; } exports2.inflateReset = inflateReset; exports2.inflateReset2 = inflateReset2; exports2.inflateResetKeep = inflateResetKeep; exports2.inflateInit = inflateInit; exports2.inflateInit2 = inflateInit2; exports2.inflate = inflate; exports2.inflateEnd = inflateEnd; exports2.inflateGetHeader = inflateGetHeader; exports2.inflateSetDictionary = inflateSetDictionary; exports2.inflateInfo = "pako inflate (from Nodeca project)"; } }); // node_modules/pako/lib/zlib/constants.js var require_constants = __commonJS({ "node_modules/pako/lib/zlib/constants.js"(exports2, module2) { "use strict"; module2.exports = { /* Allowed flush values; see deflate() and inflate() below for details */ Z_NO_FLUSH: 0, Z_PARTIAL_FLUSH: 1, Z_SYNC_FLUSH: 2, Z_FULL_FLUSH: 3, Z_FINISH: 4, Z_BLOCK: 5, Z_TREES: 6, /* Return codes for the compression/decompression functions. Negative values * are errors, positive values are used for special but normal events. */ Z_OK: 0, Z_STREAM_END: 1, Z_NEED_DICT: 2, Z_ERRNO: -1, Z_STREAM_ERROR: -2, Z_DATA_ERROR: -3, //Z_MEM_ERROR: -4, Z_BUF_ERROR: -5, //Z_VERSION_ERROR: -6, /* compression levels */ Z_NO_COMPRESSION: 0, Z_BEST_SPEED: 1, Z_BEST_COMPRESSION: 9, Z_DEFAULT_COMPRESSION: -1, Z_FILTERED: 1, Z_HUFFMAN_ONLY: 2, Z_RLE: 3, Z_FIXED: 4, Z_DEFAULT_STRATEGY: 0, /* Possible values of the data_type field (though see inflate()) */ Z_BINARY: 0, Z_TEXT: 1, //Z_ASCII: 1, // = Z_TEXT (deprecated) Z_UNKNOWN: 2, /* The deflate compression method */ Z_DEFLATED: 8 //Z_NULL: null // Use -1 or null inline, depending on var type }; } }); // node_modules/pako/lib/zlib/gzheader.js var require_gzheader = __commonJS({ "node_modules/pako/lib/zlib/gzheader.js"(exports2, module2) { "use strict"; function GZheader() { this.text = 0; this.time = 0; this.xflags = 0; this.os = 0; this.extra = null; this.extra_len = 0; this.name = ""; this.comment = ""; this.hcrc = 0; this.done = false; } module2.exports = GZheader; } }); // node_modules/pako/lib/inflate.js var require_inflate2 = __commonJS({ "node_modules/pako/lib/inflate.js"(exports2) { "use strict"; var zlib_inflate = require_inflate(); var utils = require_common(); var strings = require_strings(); var c = require_constants(); var msg = require_messages(); var ZStream = require_zstream(); var GZheader = require_gzheader(); var toString = Object.prototype.toString; function Inflate(options) { if (!(this instanceof Inflate)) return new Inflate(options); this.options = utils.assign({ chunkSize: 16384, windowBits: 0, to: "" }, options || {}); var opt = this.options; if (opt.raw && opt.windowBits >= 0 && opt.windowBits < 16) { opt.windowBits = -opt.windowBits; if (opt.windowBits === 0) { opt.windowBits = -15; } } if (opt.windowBits >= 0 && opt.windowBits < 16 && !(options && options.windowBits)) { opt.windowBits += 32; } if (opt.windowBits > 15 && opt.windowBits < 48) { if ((opt.windowBits & 15) === 0) { opt.windowBits |= 15; } } this.err = 0; this.msg = ""; this.ended = false; this.chunks = []; this.strm = new ZStream(); this.strm.avail_out = 0; var status = zlib_inflate.inflateInit2( this.strm, opt.windowBits ); if (status !== c.Z_OK) { throw new Error(msg[status]); } this.header = new GZheader(); zlib_inflate.inflateGetHeader(this.strm, this.header); if (opt.dictionary) { if (typeof opt.dictionary === "string") { opt.dictionary = strings.string2buf(opt.dictionary); } else if (toString.call(opt.dictionary) === "[object ArrayBuffer]") { opt.dictionary = new Uint8Array(opt.dictionary); } if (opt.raw) { status = zlib_inflate.inflateSetDictionary(this.strm, opt.dictionary); if (status !== c.Z_OK) { throw new Error(msg[status]); } } } } Inflate.prototype.push = function(data, mode) { var strm = this.strm; var chunkSize = this.options.chunkSize; var dictionary = this.options.dictionary; var status, _mode; var next_out_utf8, tail, utf8str; var allowBufError = false; if (this.ended) { return false; } _mode = mode === ~~mode ? mode : mode === true ? c.Z_FINISH : c.Z_NO_FLUSH; if (typeof data === "string") { strm.input = strings.binstring2buf(data); } else if (toString.call(data) === "[object ArrayBuffer]") { strm.input = new Uint8Array(data); } else { strm.input = data; } strm.next_in = 0; strm.avail_in = strm.input.length; do { if (strm.avail_out === 0) { strm.output = new utils.Buf8(chunkSize); strm.next_out = 0; strm.avail_out = chunkSize; } status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH); if (status === c.Z_NEED_DICT && dictionary) { status = zlib_inflate.inflateSetDictionary(this.strm, dictionary); } if (status === c.Z_BUF_ERROR && allowBufError === true) { status = c.Z_OK; allowBufError = false; } if (status !== c.Z_STREAM_END && status !== c.Z_OK) { this.onEnd(status); this.ended = true; return false; } if (strm.next_out) { if (strm.avail_out === 0 || status === c.Z_STREAM_END || strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH)) { if (this.options.to === "string") { next_out_utf8 = strings.utf8border(strm.output, strm.next_out); tail = strm.next_out - next_out_utf8; utf8str = strings.buf2string(strm.output, next_out_utf8); strm.next_out = tail; strm.avail_out = chunkSize - tail; if (tail) { utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); } this.onData(utf8str); } else { this.onData(utils.shrinkBuf(strm.output, strm.next_out)); } } } if (strm.avail_in === 0 && strm.avail_out === 0) { allowBufError = true; } } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== c.Z_STREAM_END); if (status === c.Z_STREAM_END) { _mode = c.Z_FINISH; } if (_mode === c.Z_FINISH) { status = zlib_inflate.inflateEnd(this.strm); this.onEnd(status); this.ended = true; return status === c.Z_OK; } if (_mode === c.Z_SYNC_FLUSH) { this.onEnd(c.Z_OK); strm.avail_out = 0; return true; } return true; }; Inflate.prototype.onData = function(chunk) { this.chunks.push(chunk); }; Inflate.prototype.onEnd = function(status) { if (status === c.Z_OK) { if (this.options.to === "string") { this.result = this.chunks.join(""); } else { this.result = utils.flattenChunks(this.chunks); } } this.chunks = []; this.err = status; this.msg = this.strm.msg; }; function inflate(input, options) { var inflator = new Inflate(options); inflator.push(input, true); if (inflator.err) { throw inflator.msg || msg[inflator.err]; } return inflator.result; } function inflateRaw(input, options) { options = options || {}; options.raw = true; return inflate(input, options); } exports2.Inflate = Inflate; exports2.inflate = inflate; exports2.inflateRaw = inflateRaw; exports2.ungzip = inflate; } }); // node_modules/pako/index.js var require_pako = __commonJS({ "node_modules/pako/index.js"(exports2, module2) { "use strict"; var assign = require_common().assign; var deflate = require_deflate2(); var inflate = require_inflate2(); var constants = require_constants(); var pako2 = {}; assign(pako2, deflate, inflate, constants); module2.exports = pako2; } }); // src/parser.js var require_parser3 = __commonJS({ "src/parser.js"(exports2, module2) { "use strict"; var daikon2 = daikon2 || {}; daikon2.Tag = daikon2.Tag || (typeof require !== "undefined" ? require_tag() : null); daikon2.Utils = daikon2.Utils || (typeof require !== "undefined" ? require_utilities() : null); daikon2.Dictionary = daikon2.Dictionary || (typeof require !== "undefined" ? require_dictionary() : null); daikon2.Image = daikon2.Image || (typeof require !== "undefined" ? require_image() : null); var pako2 = pako2 || (typeof require !== "undefined" ? require_pako() : null); daikon2.Parser = daikon2.Parser || function() { this.littleEndian = true; this.explicit = true; this.metaFound = false; this.metaFinished = false; this.metaFinishedOffset = -1; this.needsDeflate = false; this.inflated = null; this.encapsulation = false; this.level = 0; this.error = null; }; daikon2.Parser.verbose = false; daikon2.Parser.MAGIC_COOKIE_OFFSET = 128; daikon2.Parser.MAGIC_COOKIE = [68, 73, 67, 77]; daikon2.Parser.VRS = ["AE", "AS", "AT", "CS", "DA", "DS", "DT", "FL", "FD", "IS", "LO", "LT", "OB", "OD", "OF", "OW", "PN", "SH", "SL", "SS", "ST", "TM", "UI", "UL", "UN", "US", "UT", "UC"]; daikon2.Parser.DATA_VRS = ["OB", "OW", "OF", "SQ", "UT", "UN", "UC"]; daikon2.Parser.RAW_DATA_VRS = ["OB", "OD", "OF", "OW", "UN"]; daikon2.Parser.TRANSFER_SYNTAX_IMPLICIT_LITTLE = "1.2.840.10008.1.2"; daikon2.Parser.TRANSFER_SYNTAX_EXPLICIT_LITTLE = "1.2.840.10008.1.2.1"; daikon2.Parser.TRANSFER_SYNTAX_EXPLICIT_BIG = "1.2.840.10008.1.2.2"; daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG = "1.2.840.10008.1.2.4"; daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LOSSLESS = "1.2.840.10008.1.2.4.57"; daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LOSSLESS_SEL1 = "1.2.840.10008.1.2.4.70"; daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_BASELINE_8BIT = "1.2.840.10008.1.2.4.50"; daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_BASELINE_12BIT = "1.2.840.10008.1.2.4.51"; daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LS_LOSSLESS = "1.2.840.10008.1.2.4.80"; daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LS = "1.2.840.10008.1.2.4.81"; daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_2000_LOSSLESS = "1.2.840.10008.1.2.4.90"; daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_2000 = "1.2.840.10008.1.2.4.91"; daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_RLE = "1.2.840.10008.1.2.5"; daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_DEFLATE = "1.2.840.10008.1.2.1.99"; daikon2.Parser.UNDEFINED_LENGTH = 4294967295; daikon2.Parser.isMagicCookieFound = function(data) { var offset = daikon2.Parser.MAGIC_COOKIE_OFFSET, magicCookieLength = daikon2.Parser.MAGIC_COOKIE.length, ctr; for (ctr = 0; ctr < magicCookieLength; ctr += 1) { if (data.getUint8(offset + ctr) !== daikon2.Parser.MAGIC_COOKIE[ctr]) { return false; } } return true; }; daikon2.Parser.prototype.parse = function(data) { var image = null, offset, tag, copyMeta, copyDeflated; try { image = new daikon2.Image(); offset = this.findFirstTagOffset(data); tag = this.getNextTag(data, offset); while (tag !== null) { if (daikon2.Parser.verbose) { console.log(tag.toString()); } image.putTag(tag); if (tag.isPixelData()) { break; } if (this.needsDeflate && tag.offsetEnd >= this.metaFinishedOffset) { this.needsDeflate = false; copyMeta = data.buffer.slice(0, tag.offsetEnd); copyDeflated = data.buffer.slice(tag.offsetEnd); this.inflated = daikon2.Utils.concatArrayBuffers(copyMeta, pako2.inflateRaw(copyDeflated)); data = new DataView(this.inflated); } tag = this.getNextTag(data, tag.offsetEnd); } } catch (err) { this.error = err; } if (image !== null) { image.littleEndian = this.littleEndian; } return image; }; daikon2.Parser.prototype.parseEncapsulated = function(data) { var offset = 0, tag, tags = []; this.encapsulation = true; try { tag = this.getNextTag(data, offset); while (tag !== null) { if (tag.isSublistItem()) { tags.push(tag); } if (daikon2.Parser.verbose) { console.log(tag.toString()); } tag = this.getNextTag(data, tag.offsetEnd); } } catch (err) { this.error = err; } return tags; }; daikon2.Parser.prototype.testForValidTag = function(data) { var offset, tag = null; try { offset = this.findFirstTagOffset(data); tag = this.getNextTag(data, offset, false); } catch (err) { this.error = err; } return tag; }; daikon2.Parser.prototype.getNextTag = function(data, offset, testForTag) { var group = 0, element, value = null, offsetStart = offset, offsetValue, length = 0, little = true, vr = null, tag; if (offset >= data.byteLength) { return null; } if (this.metaFinished) { little = this.littleEndian; group = data.getUint16(offset, little); } else { group = data.getUint16(offset, true); if (this.metaFinishedOffset !== -1 && offset >= this.metaFinishedOffset || group !== 2) { this.metaFinished = true; little = this.littleEndian; group = data.getUint16(offset, little); } else { little = true; } } if (!this.metaFound && group === 2) { this.metaFound = true; } offset += 2; element = data.getUint16(offset, little); offset += 2; if (this.explicit || !this.metaFinished) { vr = daikon2.Utils.getStringAt(data, offset, 2); if (!this.metaFound && this.metaFinished && daikon2.Parser.VRS.indexOf(vr) === -1) { vr = daikon2.Dictionary.getVR(group, element); length = data.getUint32(offset, little); offset += 4; this.explicit = false; } else { offset += 2; if (daikon2.Parser.DATA_VRS.indexOf(vr) !== -1) { offset += 2; length = data.getUint32(offset, little); offset += 4; } else { length = data.getUint16(offset, little); offset += 2; } } } else { vr = daikon2.Dictionary.getVR(group, element); length = data.getUint32(offset, little); if (length === daikon2.Parser.UNDEFINED_LENGTH) { vr = "SQ"; } offset += 4; } offsetValue = offset; var isPixelData = group === daikon2.Tag.TAG_PIXEL_DATA[0] && element === daikon2.Tag.TAG_PIXEL_DATA[1]; var isLookupTableData = 40 === group && element >= 4609 && element < 4864; if (vr === "SQ" || !isLookupTableData && !isPixelData && !this.encapsulation && daikon2.Parser.DATA_VRS.indexOf(vr) !== -1 && vr !== "UC") { value = this.parseSublist(data, offset, length, vr !== "SQ"); if (length === daikon2.Parser.UNDEFINED_LENGTH) { length = value[value.length - 1].offsetEnd - offset; } } else if (length > 0 && !testForTag) { if (length === daikon2.Parser.UNDEFINED_LENGTH) { if (isPixelData) { length = data.byteLength - offset; } } value = data.buffer.slice(offset, offset + length); } offset += length; tag = new daikon2.Tag(group, element, vr, value, offsetStart, offsetValue, offset, this.littleEndian, this.charset); if (tag.value) { if (tag.isTransformSyntax()) { this.transformSyntaxAlreadyExist = true; if (tag.value[0] === daikon2.Parser.TRANSFER_SYNTAX_IMPLICIT_LITTLE) { this.explicit = false; this.littleEndian = true; } else if (tag.value[0] === daikon2.Parser.TRANSFER_SYNTAX_EXPLICIT_BIG) { this.explicit = true; this.littleEndian = false; } else if (tag.value[0] === daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_DEFLATE) { this.needsDeflate = true; this.explicit = true; this.littleEndian = true; } else { this.explicit = true; this.littleEndian = true; } } else if (tag.isMetaLength()) { this.metaFinishedOffset = tag.value[0] + offset; } else if (tag.isCharset()) { var charset = tag.value; if (charset.length == 2) { charset = (charset[0] || "ISO 2022 IR 6") + "\\" + charset[1]; } else if (charset.length == 1) { charset = charset[0]; } this.charset = charset; } } return tag; }; daikon2.Parser.prototype.parseSublist = function(data, offset, length, raw) { var sublistItem, offsetEnd = offset + length, tags = []; this.level++; if (length === daikon2.Parser.UNDEFINED_LENGTH) { sublistItem = this.parseSublistItem(data, offset, raw); while (!sublistItem.isSequenceDelim()) { tags.push(sublistItem); offset = sublistItem.offsetEnd; sublistItem = this.parseSublistItem(data, offset, raw); } tags.push(sublistItem); } else { while (offset < offsetEnd) { sublistItem = this.parseSublistItem(data, offset, raw); tags.push(sublistItem); offset = sublistItem.offsetEnd; } } this.level--; return tags; }; daikon2.Parser.prototype.parseSublistItem = function(data, offset, raw) { var group, element, length, offsetEnd, tag, offsetStart = offset, value = null, offsetValue, sublistItemTag, tags = []; group = data.getUint16(offset, this.littleEndian); offset += 2; element = data.getUint16(offset, this.littleEndian); offset += 2; length = data.getUint32(offset, this.littleEndian); offset += 4; offsetValue = offset; if (length === daikon2.Parser.UNDEFINED_LENGTH) { tag = this.getNextTag(data, offset); while (tag && !tag.isSublistItemDelim()) { tags.push(tag); offset = tag.offsetEnd; tag = this.getNextTag(data, offset); } tag && tags.push(tag); tag && (offset = tag.offsetEnd); } else if (raw) { value = data.buffer.slice(offset, offset + length); offset = offset + length; } else { offsetEnd = offset + length; while (offset < offsetEnd) { tag = this.getNextTag(data, offset); tags.push(tag); offset = tag.offsetEnd; } } sublistItemTag = new daikon2.Tag(group, element, null, value || tags, offsetStart, offsetValue, offset, this.littleEndian); return sublistItemTag; }; daikon2.Parser.prototype.findFirstTagOffset = function(data) { var offset = 0, magicCookieLength = daikon2.Parser.MAGIC_COOKIE.length, searchOffsetMax = daikon2.Parser.MAGIC_COOKIE_OFFSET * 5, found = false, ctr = 0, ctrIn = 0, ch = 0; if (daikon2.Parser.isMagicCookieFound(data)) { offset = daikon2.Parser.MAGIC_COOKIE_OFFSET + magicCookieLength; } else { for (ctr = 0; ctr < searchOffsetMax; ctr += 1) { ch = data.getUint8(ctr); if (ch === daikon2.Parser.MAGIC_COOKIE[0]) { found = true; for (ctrIn = 1; ctrIn < magicCookieLength; ctrIn += 1) { if (data.getUint8(ctr + ctrIn) !== daikon2.Parser.MAGIC_COOKIE[ctrIn]) { found = false; } } if (found) { offset = ctr + magicCookieLength; break; } } } } return offset; }; daikon2.Parser.prototype.hasError = function() { return this.error !== null; }; var moduleType3 = typeof module2; if (moduleType3 !== "undefined" && module2.exports) { module2.exports = daikon2.Parser; } } }); // src/image.js var require_image = __commonJS({ "src/image.js"(exports2, module2) { "use strict"; var daikon2 = daikon2 || {}; daikon2.Tag = daikon2.Tag || (typeof require !== "undefined" ? require_tag() : null); daikon2.CompressionUtils = daikon2.CompressionUtils || (typeof require !== "undefined" ? require_compression_utils() : null); daikon2.Utils = daikon2.Utils || (typeof require !== "undefined" ? require_utilities() : null); daikon2.RLE = daikon2.RLE || (typeof require !== "undefined" ? require_rle() : null); var jpeg2 = typeof require !== "undefined" ? require_main() : null; var JpegDecoder2 = JpegDecoder2 || (typeof require !== "undefined" ? require_jpeg_baseline().JpegImage : null); var JpxImage2 = JpxImage2 || (typeof require !== "undefined" ? require_jpx() : null); var JpegLSDecoder2 = JpegLSDecoder2 || (typeof require !== "undefined" ? require_jpeg_ls() : null); daikon2.Image = daikon2.Image || function() { this.tags = {}; this.tagsFlat = {}; this.littleEndian = false; this.index = -1; this.decompressed = false; this.privateDataAll = null; this.convertedPalette = false; }; daikon2.Image.SLICE_DIRECTION_UNKNOWN = -1; daikon2.Image.SLICE_DIRECTION_AXIAL = 2; daikon2.Image.SLICE_DIRECTION_CORONAL = 1; daikon2.Image.SLICE_DIRECTION_SAGITTAL = 0; daikon2.Image.SLICE_DIRECTION_OBLIQUE = 3; daikon2.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE = 0.8; daikon2.Image.BYTE_TYPE_UNKNOWN = 0; daikon2.Image.BYTE_TYPE_BINARY = 1; daikon2.Image.BYTE_TYPE_INTEGER = 2; daikon2.Image.BYTE_TYPE_INTEGER_UNSIGNED = 3; daikon2.Image.BYTE_TYPE_FLOAT = 4; daikon2.Image.BYTE_TYPE_COMPLEX = 5; daikon2.Image.BYTE_TYPE_RGB = 6; daikon2.Image.skipPaletteConversion = false; daikon2.Image.getSingleValueSafely = function(tag, index) { if (tag && tag.value) { return tag.value[index]; } return null; }; daikon2.Image.getValueSafely = function(tag) { if (tag) { return tag.value; } return null; }; daikon2.Image.getMajorAxisFromPatientRelativeDirectionCosine = function(x, y, z) { var axis, orientationX, orientationY, orientationZ, absX, absY, absZ; orientationX = x < 0 ? "R" : "L"; orientationY = y < 0 ? "A" : "P"; orientationZ = z < 0 ? "F" : "H"; absX = Math.abs(x); absY = Math.abs(y); absZ = Math.abs(z); if (absX > daikon2.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE && absX > absY && absX > absZ) { axis = orientationX; } else if (absY > daikon2.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE && absY > absX && absY > absZ) { axis = orientationY; } else if (absZ > daikon2.Image.OBLIQUITY_THRESHOLD_COSINE_VALUE && absZ > absX && absZ > absY) { axis = orientationZ; } else { axis = null; } return axis; }; daikon2.Image.prototype.getCols = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_COLS[0], daikon2.Tag.TAG_COLS[1]), 0); }; daikon2.Image.prototype.getRows = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_ROWS[0], daikon2.Tag.TAG_ROWS[1]), 0); }; daikon2.Image.prototype.getSeriesDescription = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_SERIES_DESCRIPTION[0], daikon2.Tag.TAG_SERIES_DESCRIPTION[1]), 0); }; daikon2.Image.prototype.getSeriesInstanceUID = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_SERIES_INSTANCE_UID[0], daikon2.Tag.TAG_SERIES_INSTANCE_UID[1]), 0); }; daikon2.Image.prototype.getSeriesNumber = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_SERIES_NUMBER[0], daikon2.Tag.TAG_SERIES_NUMBER[1]), 0); }; daikon2.Image.prototype.getEchoNumber = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_ECHO_NUMBER[0], daikon2.Tag.TAG_ECHO_NUMBER[1]), 0); }; daikon2.Image.prototype.getImagePosition = function() { return daikon2.Image.getValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_POSITION[0], daikon2.Tag.TAG_IMAGE_POSITION[1])); }; daikon2.Image.prototype.getImageDirections = function() { return daikon2.Image.getValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_ORIENTATION[0], daikon2.Tag.TAG_IMAGE_ORIENTATION[1])); }; daikon2.Image.prototype.getImagePositionSliceDir = function(sliceDir) { var imagePos = daikon2.Image.getValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_POSITION[0], daikon2.Tag.TAG_IMAGE_POSITION[1])); if (imagePos) { if (sliceDir >= 0) { return imagePos[sliceDir]; } } return 0; }; daikon2.Image.prototype.getModality = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_MODALITY[0], daikon2.Tag.TAG_MODALITY[1]), 0); }; daikon2.Image.prototype.getSliceLocation = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_SLICE_LOCATION[0], daikon2.Tag.TAG_SLICE_LOCATION[1]), 0); }; daikon2.Image.prototype.getSliceLocationVector = function() { return daikon2.Image.getValueSafely(this.getTag(daikon2.Tag.TAG_SLICE_LOCATION_VECTOR[0], daikon2.Tag.TAG_SLICE_LOCATION_VECTOR[1])); }; daikon2.Image.prototype.getImageNumber = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_NUM[0], daikon2.Tag.TAG_IMAGE_NUM[1]), 0); }; daikon2.Image.prototype.getTemporalPosition = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_TEMPORAL_POSITION[0], daikon2.Tag.TAG_TEMPORAL_POSITION[1]), 0); }; daikon2.Image.prototype.getTemporalNumber = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_NUMBER_TEMPORAL_POSITIONS[0], daikon2.Tag.TAG_NUMBER_TEMPORAL_POSITIONS[1]), 0); }; daikon2.Image.prototype.getSliceGap = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_SLICE_GAP[0], daikon2.Tag.TAG_SLICE_GAP[1]), 0); }; daikon2.Image.prototype.getSliceThickness = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_SLICE_THICKNESS[0], daikon2.Tag.TAG_SLICE_THICKNESS[1]), 0); }; daikon2.Image.prototype.getImageMax = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_MAX[0], daikon2.Tag.TAG_IMAGE_MAX[1]), 0); }; daikon2.Image.prototype.getImageMin = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_MIN[0], daikon2.Tag.TAG_IMAGE_MIN[1]), 0); }; daikon2.Image.prototype.getDataScaleSlope = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_DATA_SCALE_SLOPE[0], daikon2.Tag.TAG_DATA_SCALE_SLOPE[1]), 0); }; daikon2.Image.prototype.getDataScaleIntercept = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_DATA_SCALE_INTERCEPT[0], daikon2.Tag.TAG_DATA_SCALE_INTERCEPT[1]), 0); }; daikon2.Image.prototype.getDataScaleElscint = function() { var scale = daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_DATA_SCALE_ELSCINT[0], daikon2.Tag.TAG_DATA_SCALE_ELSCINT[1]), 0); if (!scale) { scale = 1; } var bandwidth = this.getPixelBandwidth(); scale = Math.sqrt(bandwidth) / (10 * scale); if (scale <= 0) { scale = 1; } return scale; }; daikon2.Image.prototype.getWindowWidth = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_WINDOW_WIDTH[0], daikon2.Tag.TAG_WINDOW_WIDTH[1]), 0); }; daikon2.Image.prototype.getWindowCenter = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_WINDOW_CENTER[0], daikon2.Tag.TAG_WINDOW_CENTER[1]), 0); }; daikon2.Image.prototype.getPixelBandwidth = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_PIXEL_BANDWIDTH[0], daikon2.Tag.TAG_PIXEL_BANDWIDTH[1]), 0); }; daikon2.Image.prototype.getSeriesId = function() { var des = this.getSeriesDescription(); var uid = this.getSeriesInstanceUID(); var num = this.getSeriesNumber(); var echo = this.getEchoNumber(); var orientation = this.getOrientation(); var cols = this.getCols(); var rows = this.getRows(); var id = ""; if (des !== null) { id += " " + des; } if (uid !== null) { id += " " + uid; } if (num !== null) { id += " " + num; } if (echo !== null) { id += " " + echo; } if (orientation !== null) { id += " " + orientation; } id += " (" + cols + " x " + rows + ")"; return id; }; daikon2.Image.prototype.getPixelSpacing = function() { return daikon2.Image.getValueSafely(this.getTag(daikon2.Tag.TAG_PIXEL_SPACING[0], daikon2.Tag.TAG_PIXEL_SPACING[1])); }; daikon2.Image.prototype.getImageType = function() { return daikon2.Image.getValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_TYPE[0], daikon2.Tag.TAG_IMAGE_TYPE[1])); }; daikon2.Image.prototype.getBitsStored = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_BITS_STORED[0], daikon2.Tag.TAG_BITS_STORED[1]), 0); }; daikon2.Image.prototype.getBitsAllocated = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_BITS_ALLOCATED[0], daikon2.Tag.TAG_BITS_ALLOCATED[1]), 0); }; daikon2.Image.prototype.getFrameTime = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_FRAME_TIME[0], daikon2.Tag.TAG_FRAME_TIME[1]), 0); }; daikon2.Image.prototype.getAcquisitionMatrix = function() { var mat, matPrivate, start, end, str; mat = [0, 0]; mat[0] = daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_ACQUISITION_MATRIX[0], daikon2.Tag.TAG_ACQUISITION_MATRIX[1]), 0); if (this.privateDataAll === null) { this.privateDataAll = this.getAllInterpretedPrivateData(); } if (this.privateDataAll !== null && this.privateDataAll.length > 0) { start = this.privateDataAll.indexOf("AcquisitionMatrixText"); if (start !== -1) { end = this.privateDataAll.indexOf("\n", start); if (end !== -1) { str = this.privateDataAll.substring(start, end); matPrivate = str.match(/\d+/g); if (matPrivate !== null && matPrivate.length === 2) { mat[0] = matPrivate[0]; mat[1] = matPrivate[1]; } else if (matPrivate !== null && matPrivate.length === 1) { mat[0] = matPrivate[0]; } } } } if (mat[1] === 0) { mat[1] = mat[0]; } return mat; }; daikon2.Image.prototype.getTR = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_TR, daikon2.Tag.TAG_TR[1]), 0); }; daikon2.Image.prototype.putTag = function(tag) { if (this.tags[tag.id] && this.tags[tag.id].value[0] !== tag.value[0]) { return; } this.tags[tag.id] = tag; this.putFlattenedTag(this.tagsFlat, tag); }; daikon2.Image.prototype.putFlattenedTag = function(tags, tag) { var ctr; if (tag.sublist) { for (ctr = 0; ctr < tag.value.length; ctr += 1) { this.putFlattenedTag(tags, tag.value[ctr]); } } else { if (!tags[tag.id]) { tags[tag.id] = tag; } } }; daikon2.Image.prototype.getTag = function(group, element) { var tagId = daikon2.Tag.createId(group, element); if (this.tags[tagId]) { return this.tags[tagId]; } return this.tagsFlat[tagId]; }; daikon2.Image.prototype.getPixelData = function() { return this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])]; }; daikon2.Image.prototype.getPixelDataBytes = function() { if (this.isCompressed()) { this.decompress(); } if (this.isPalette() && !daikon2.Image.skipPaletteConversion) { this.convertPalette(); } return this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])].value.buffer; }; daikon2.Image.prototype.getRawData = function() { return this.getPixelDataBytes(); }; daikon2.Image.prototype.getInterpretedData = function(asArray, asObject, frameIndex) { var datatype, numBytes, numElements, dataView, data, ctr, mask, slope, intercept, min, max, value, minIndex, maxIndex, littleEndian, rawValue, rawData, allFrames, elementsPerFrame, totalElements, offset, dataCtr; allFrames = arguments.length < 3; mask = daikon2.Utils.createBitMask( this.getBitsAllocated() / 8, this.getBitsStored(), this.getDataType() === daikon2.Image.BYTE_TYPE_INTEGER_UNSIGNED ); datatype = this.getPixelRepresentation() ? daikon2.Image.BYTE_TYPE_INTEGER : daikon2.Image.BYTE_TYPE_INTEGER_UNSIGNED; numBytes = this.getBitsAllocated() / 8; rawData = this.getRawData(); dataView = new DataView(rawData); totalElements = rawData.byteLength / numBytes; elementsPerFrame = totalElements / this.getNumberOfFrames(); numElements = allFrames ? totalElements : elementsPerFrame; offset = allFrames ? 0 : frameIndex * elementsPerFrame; slope = this.getDataScaleSlope() || 1; intercept = this.getDataScaleIntercept() || 0; min = daikon2.Utils.MAX_VALUE; max = daikon2.Utils.MIN_VALUE; minIndex = -1; maxIndex = -1; littleEndian = this.littleEndian; if (asArray) { data = new Array(numElements); } else { data = new Float32Array(numElements); } var getWord; if (datatype === daikon2.Image.BYTE_TYPE_INTEGER) { if (numBytes === 1) { getWord = dataView.getInt8.bind(dataView); } else if (numBytes === 2) { getWord = dataView.getInt16.bind(dataView); } } else if (datatype === daikon2.Image.BYTE_TYPE_INTEGER_UNSIGNED) { if (numBytes === 1) { getWord = dataView.getUint8.bind(dataView); } else if (numBytes === 2) { getWord = dataView.getUint16.bind(dataView); } } var invert = daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_LUT_SHAPE[0], daikon2.Tag.TAG_LUT_SHAPE[1]), 0) === "INVERSE"; invert = invert || this.getPhotometricInterpretation() === "MONOCHROME1"; if (invert) { var maxVal = Math.pow(2, this.getBitsStored()) - 1; var minVal = 0; if (datatype === daikon2.Image.BYTE_TYPE_INTEGER) { maxVal /= 2; minVal = -maxVal; } var originalGetWord = getWord; getWord = function(offset2, endian) { var val = maxVal - originalGetWord(offset2, endian); return Math.min(maxVal, Math.max(minVal, val)); }; } for (ctr = offset, dataCtr = 0; dataCtr < numElements; ctr++, dataCtr++) { rawValue = getWord(ctr * numBytes, littleEndian); value = (rawValue & mask) * slope + intercept; data[dataCtr] = value; if (value < min) { min = value; minIndex = dataCtr; } if (value > max) { max = value; maxIndex = dataCtr; } } if (asObject) { return { data, min, minIndex, max, maxIndex, numCols: this.getCols(), numRows: this.getRows() }; } return data; }; daikon2.Image.prototype.convertPalette = function() { var data, reds, greens, blues, rgb, numBytes, numElements, ctr, index, rVal, gVal, bVal; data = this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])].value; reds = this.getPalleteValues(daikon2.Tag.TAG_PALETTE_RED); greens = this.getPalleteValues(daikon2.Tag.TAG_PALETTE_GREEN); blues = this.getPalleteValues(daikon2.Tag.TAG_PALETTE_BLUE); if (reds !== null && reds.length > 0 && greens !== null && greens.length > 0 && blues !== null && blues.length > 0 && !this.convertedPalette) { rgb = new DataView(new ArrayBuffer(this.getRows() * this.getCols() * this.getNumberOfFrames() * 3)); numBytes = parseInt(Math.ceil(this.getBitsAllocated() / 8)); numElements = data.byteLength / numBytes; if (numBytes === 1) { for (ctr = 0; ctr < numElements; ctr += 1) { index = data.getUint8(ctr); rVal = reds[index]; gVal = greens[index]; bVal = blues[index]; rgb.setUint8(ctr * 3, rVal); rgb.setUint8(ctr * 3 + 1, gVal); rgb.setUint8(ctr * 3 + 2, bVal); } } else if (numBytes === 2) { for (ctr = 0; ctr < numElements; ctr += 1) { index = data.getUint16(ctr * 2); rVal = reds[index]; gVal = greens[index]; bVal = blues[index]; rgb.setUint8(ctr * 3, rVal); rgb.setUint8(ctr * 3 + 1, gVal); rgb.setUint8(ctr * 3 + 2, bVal); } } data = rgb; this.convertedPalette = true; } this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])].value = data; }; daikon2.Image.prototype.decompressJPEG = function(jpg) { if (this.isCompressedJPEGLossless()) { var decoder = new jpeg2.lossless.Decoder(); return decoder.decode(jpg); } else if (this.isCompressedJPEGBaseline()) { var decoder = new JpegDecoder2(); decoder.parse(new Uint8Array(jpg)); var width = decoder.width; var height = decoder.height; var decoded; if (this.getBitsAllocated() === 8) { decoded = decoder.getData(width, height); } else if (this.getBitsAllocated() === 16) { decoded = decoder.getData16(width, height); } return decoded; } else if (this.isCompressedJPEG2000()) { var decoder = new JpxImage2(); decoder.parse(new Uint8Array(jpg)); return decoder.tiles[0].items; } else if (this.isCompressedJPEGLS()) { var decoder = new JpegLSDecoder2(); return decoder.decodeJPEGLS(new Uint8Array(jpg), this.getDataType() === daikon2.Image.BYTE_TYPE_INTEGER); } }; daikon2.Image.prototype.decompress = function() { var jpegs, rle, decoder, decompressed, numFrames, frameSize, temp, ctr, width, height, numComponents, decoded; decompressed = null; if (!this.decompressed) { this.decompressed = true; frameSize = this.getRows() * this.getCols() * parseInt(Math.ceil(this.getBitsAllocated() / 8)); numFrames = this.getNumberOfFrames(); if (this.isCompressedJPEGLossless()) { jpegs = this.getJpegs(); for (ctr = 0; ctr < jpegs.length; ctr += 1) { decoder = new jpeg2.lossless.Decoder(); temp = decoder.decode(jpegs[ctr]); numComponents = decoder.numComp; if (decompressed === null) { decompressed = new DataView(new ArrayBuffer(frameSize * numFrames * numComponents)); } new Uint8Array(decompressed.buffer).set(new Uint8Array(temp.buffer), ctr * frameSize * numComponents); temp = null; } this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])].value = decompressed; } else if (this.isCompressedJPEGBaseline()) { jpegs = this.getJpegs(); for (ctr = 0; ctr < jpegs.length; ctr += 1) { decoder = new JpegDecoder2(); decoder.parse(new Uint8Array(jpegs[ctr])); width = decoder.width; height = decoder.height; numComponents = decoder.components.length; if (decompressed === null) { decompressed = new DataView(new ArrayBuffer(frameSize * numFrames * numComponents)); } if (this.getBitsAllocated() === 8) { decoded = decoder.getData(width, height); } else if (this.getBitsAllocated() === 16) { decoded = decoder.getData16(width, height); } daikon2.Utils.fillBuffer( decoded, decompressed, ctr * frameSize * numComponents, parseInt(Math.ceil(this.getBitsAllocated() / 8)) ); decoded = null; } this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])].value = decompressed; } else if (this.isCompressedJPEG2000()) { jpegs = this.getJpegs(); for (ctr = 0; ctr < jpegs.length; ctr += 1) { decoder = new JpxImage2(); decoder.parse(new Uint8Array(jpegs[ctr])); width = decoder.width; height = decoder.height; decoded = decoder.tiles[0].items; numComponents = decoder.componentsCount; if (decompressed === null) { decompressed = new DataView(new ArrayBuffer(frameSize * numFrames * numComponents)); } daikon2.Utils.fillBuffer( decoded, decompressed, ctr * frameSize * numComponents, parseInt(Math.ceil(this.getBitsAllocated() / 8)) ); decoded = null; } this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])].value = decompressed; } else if (this.isCompressedJPEGLS()) { jpegs = this.getJpegs(); for (ctr = 0; ctr < jpegs.length; ctr += 1) { decoder = new JpegLSDecoder2(); var decoded = decoder.decodeJPEGLS(new Uint8Array(jpegs[ctr]), this.getDataType() === daikon2.Image.BYTE_TYPE_INTEGER); width = decoded.columns; height = decoded.rows; decoded = decoded.pixelData; numComponents = this.getNumberOfSamplesPerPixel(); if (decompressed === null) { decompressed = new DataView(new ArrayBuffer(frameSize * numFrames * numComponents)); } daikon2.Utils.fillBuffer( decoded, decompressed, ctr * frameSize * numComponents, parseInt(Math.ceil(this.getBitsAllocated() / 8)) ); decoded = null; } this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])].value = decompressed; } else if (this.isCompressedRLE()) { rle = this.getRLE(); for (ctr = 0; ctr < rle.length; ctr += 1) { decoder = new daikon2.RLE(); temp = decoder.decode(rle[ctr], this.littleEndian, this.getRows() * this.getCols()); numComponents = decoder.numSegments === 3 ? 3 : 1; if (decompressed === null) { decompressed = new DataView(new ArrayBuffer(frameSize * numFrames * numComponents)); } new Uint8Array(decompressed.buffer).set(new Uint8Array(temp.buffer), ctr * frameSize * numComponents); temp = null; } this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])].value = decompressed; } } }; daikon2.Image.prototype.hasPixelData = function() { return this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])] !== void 0; }; daikon2.Image.prototype.clearPixelData = function() { this.tags[daikon2.Tag.createId(daikon2.Tag.TAG_PIXEL_DATA[0], daikon2.Tag.TAG_PIXEL_DATA[1])].value = null; }; daikon2.Image.prototype.getOrientation = function() { var orientation = null, dirCos = daikon2.Image.getValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_ORIENTATION[0], daikon2.Tag.TAG_IMAGE_ORIENTATION[1])), ctr, spacing, rowSpacing, swapZ, bigRow = 0, bigCol = 0, biggest = 0, orient = ""; if (!dirCos || dirCos.length !== 6) { return null; } spacing = this.getPixelSpacing(); if (!spacing) { return null; } rowSpacing = spacing[0]; swapZ = true; for (ctr = 0; ctr < 3; ctr += 1) { if (Math.abs(dirCos[ctr]) > biggest) { biggest = Math.abs(dirCos[ctr]); bigRow = ctr; } } biggest = 0; for (; ctr < 6; ctr += 1) { if (Math.abs(dirCos[ctr]) > biggest) { biggest = Math.abs(dirCos[ctr]); bigCol = ctr; } } switch (bigRow) { case 0: orient += "X"; if (bigCol === 4) { orient += "YZ"; } else { orient += "ZY"; } break; case 1: orient += "Y"; if (bigCol === 3) { orient += "XZ"; } else { orient += "ZX"; } break; case 2: orient += "Z"; if (bigCol === 3) { orient += "XY"; } else { orient += "YX"; } break; default: break; } switch (bigRow) { case 0: if (dirCos[bigRow] > 0) { orient += "-"; } else { orient += "+"; } if (bigCol === 4) { if (dirCos[bigCol] > 0) { orient += "-"; } else { orient += "+"; } } else { if (dirCos[bigCol] > 0) { orient += "+"; } else { orient += "-"; } } break; case 1: if (dirCos[bigRow] > 0) { orient += "-"; } else { orient += "+"; } if (bigCol === 3) { if (dirCos[bigCol] > 0) { orient += "-"; } else { orient += "+"; } } else { if (dirCos[bigCol] > 0) { orient += "+"; } else { orient += "-"; } } break; case 2: if (dirCos[bigRow] > 0) { orient += "+"; } else { orient += "-"; } if (dirCos[bigCol] > 0) { orient += "-"; } else { orient += "+"; } break; default: break; } if (rowSpacing === 0) { orient += "+"; orientation = orient; } else { if (swapZ) { switch (orient.charAt(2)) { case "X": if (rowSpacing > 0) { orient += "-"; } else { orient += "+"; } break; case "Y": case "Z": if (rowSpacing > 0) { orient += "+"; } else { orient += "-"; } break; default: break; } } else { switch (orient.charAt(2)) { case "X": if (rowSpacing > 0) { orient += "+"; } else { orient += "-"; } break; case "Y": case "Z": if (rowSpacing > 0) { orient += "-"; } else { orient += "+"; } break; default: break; } } orientation = orient; } return orientation; }; daikon2.Image.prototype.isMosaic = function() { var imageType, labeledAsMosaic = false, canReadAsMosaic, ctr, matSize; imageType = this.getImageType(); if (imageType !== null) { for (ctr = 0; ctr < imageType.length; ctr += 1) { if (imageType[ctr].toUpperCase().indexOf("MOSAIC") !== -1) { labeledAsMosaic = true; break; } } } matSize = this.getAcquisitionMatrix(); canReadAsMosaic = matSize[0] > 0 && (matSize[0] < this.getRows() || matSize[1] < this.getCols()); return labeledAsMosaic && canReadAsMosaic; }; daikon2.Image.prototype.isPalette = function() { var value = daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_PHOTOMETRIC_INTERPRETATION[0], daikon2.Tag.TAG_PHOTOMETRIC_INTERPRETATION[1]), 0); if (value !== null) { if (value.toLowerCase().indexOf("palette") !== -1) { return true; } } return false; }; daikon2.Image.prototype.getMosaicCols = function() { return this.getCols() / this.getAcquisitionMatrix()[1]; }; daikon2.Image.prototype.getMosaicRows = function() { return this.getRows() / this.getAcquisitionMatrix()[0]; }; daikon2.Image.prototype.isElscint = function() { var tag = this.getTag(daikon2.Tag.TAG_DATA_SCALE_ELSCINT[0], daikon2.Tag.TAG_DATA_SCALE_ELSCINT[1]); return tag !== void 0; }; daikon2.Image.prototype.isCompressed = function() { daikon2.Parser = daikon2.Parser || (typeof require !== "undefined" ? require_parser3() : null); var transferSyntax = this.getTransferSyntax(); if (transferSyntax) { if (transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG) !== -1) { return true; } else if (transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_RLE) !== -1) { return true; } } return false; }; daikon2.Image.prototype.isCompressedJPEG = function() { daikon2.Parser = daikon2.Parser || (typeof require !== "undefined" ? require_parser3() : null); var transferSyntax = this.getTransferSyntax(); if (transferSyntax) { if (transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG) !== -1) { return true; } } return false; }; daikon2.Image.prototype.isCompressedJPEGLossless = function() { daikon2.Parser = daikon2.Parser || (typeof require !== "undefined" ? require_parser3() : null); var transferSyntax = this.getTransferSyntax(); if (transferSyntax) { if (transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LOSSLESS) !== -1 || transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LOSSLESS_SEL1) !== -1) { return true; } } return false; }; daikon2.Image.prototype.isCompressedJPEGBaseline = function() { daikon2.Parser = daikon2.Parser || (typeof require !== "undefined" ? require_parser3() : null); var transferSyntax = this.getTransferSyntax(); if (transferSyntax) { if (transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_BASELINE_8BIT) !== -1 || transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_BASELINE_12BIT) !== -1) { return true; } } return false; }; daikon2.Image.prototype.isCompressedJPEG2000 = function() { daikon2.Parser = daikon2.Parser || (typeof require !== "undefined" ? require_parser3() : null); var transferSyntax = this.getTransferSyntax(); if (transferSyntax) { if (transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_2000) !== -1 || transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_2000_LOSSLESS) !== -1) { return true; } } return false; }; daikon2.Image.prototype.isCompressedJPEGLS = function() { daikon2.Parser = daikon2.Parser || (typeof require !== "undefined" ? require_parser3() : null); var transferSyntax = this.getTransferSyntax(); if (transferSyntax) { if (transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LS) !== -1 || transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_JPEG_LS_LOSSLESS) !== -1) { return true; } } return false; }; daikon2.Image.prototype.isCompressedRLE = function() { daikon2.Parser = daikon2.Parser || (typeof require !== "undefined" ? require_parser3() : null); var transferSyntax = this.getTransferSyntax(); if (transferSyntax) { if (transferSyntax.indexOf(daikon2.Parser.TRANSFER_SYNTAX_COMPRESSION_RLE) !== -1) { return true; } } return false; }; daikon2.Image.prototype.getNumberOfFrames = function() { var value = daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_NUMBER_OF_FRAMES[0], daikon2.Tag.TAG_NUMBER_OF_FRAMES[1]), 0); if (value !== null) { return value; } return 1; }; daikon2.Image.prototype.getNumberOfSamplesPerPixel = function() { var value = daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_SAMPLES_PER_PIXEL[0], daikon2.Tag.TAG_SAMPLES_PER_PIXEL[1]), 0); if (value !== null) { return value; } return 1; }; daikon2.Image.prototype.getNumberOfImplicitFrames = function() { var pixelData, length, size; if (this.isCompressed()) { return 1; } pixelData = this.getPixelData(); length = pixelData.offsetEnd - pixelData.offsetValue; size = this.getCols() * this.getRows() * parseInt(this.getBitsAllocated() / 8); return parseInt(length / size); }; daikon2.Image.prototype.getPixelRepresentation = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_PIXEL_REPRESENTATION[0], daikon2.Tag.TAG_PIXEL_REPRESENTATION[1]), 0); }; daikon2.Image.prototype.getPhotometricInterpretation = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_PHOTOMETRIC_INTERPRETATION[0], daikon2.Tag.TAG_PHOTOMETRIC_INTERPRETATION[1]), 0); }; daikon2.Image.prototype.getPatientName = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_PATIENT_NAME[0], daikon2.Tag.TAG_PATIENT_NAME[1]), 0); }; daikon2.Image.prototype.getPatientID = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_PATIENT_ID[0], daikon2.Tag.TAG_PATIENT_ID[1]), 0); }; daikon2.Image.prototype.getStudyTime = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_STUDY_TIME[0], daikon2.Tag.TAG_STUDY_TIME[1]), 0); }; daikon2.Image.prototype.getTransferSyntax = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_TRANSFER_SYNTAX[0], daikon2.Tag.TAG_TRANSFER_SYNTAX[1]), 0); }; daikon2.Image.prototype.getStudyDate = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_STUDY_DATE[0], daikon2.Tag.TAG_STUDY_DATE[1]), 0); }; daikon2.Image.prototype.getPlanarConfig = function() { return daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_PLANAR_CONFIG[0], daikon2.Tag.TAG_PLANAR_CONFIG[1]), 0); }; daikon2.Image.prototype.getImageDescription = function() { var value, string = ""; value = daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_STUDY_DES[0], daikon2.Tag.TAG_STUDY_DES[1]), 0); if (value !== null) { string += " " + value; } value = daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_SERIES_DESCRIPTION[0], daikon2.Tag.TAG_SERIES_DESCRIPTION[1]), 0); if (value !== null) { string += " " + value; } value = daikon2.Image.getSingleValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_COMMENTS[0], daikon2.Tag.TAG_IMAGE_COMMENTS[1]), 0); if (value !== null) { string += " " + value; } return string.trim(); }; daikon2.Image.prototype.getDataType = function() { var interp, dataType; dataType = this.getPixelRepresentation(); if (dataType === null) { return daikon2.Image.BYTE_TYPE_UNKNOWN; } interp = this.getPhotometricInterpretation(); if (interp !== null) { if (interp.trim().indexOf("RGB") !== -1 || interp.trim().indexOf("YBR") !== -1 || interp.trim().toLowerCase().indexOf("palette") !== -1) { return daikon2.Image.BYTE_TYPE_RGB; } } if (dataType === 0) { return daikon2.Image.BYTE_TYPE_INTEGER_UNSIGNED; } else if (dataType === 1) { return daikon2.Image.BYTE_TYPE_INTEGER; } else { return daikon2.Image.BYTE_TYPE_UNKNOWN; } }; daikon2.Image.prototype.getAcquiredSliceDirection = function() { var dirCos, rowAxis, colAxis, label; dirCos = daikon2.Image.getValueSafely(this.getTag(daikon2.Tag.TAG_IMAGE_ORIENTATION[0], daikon2.Tag.TAG_IMAGE_ORIENTATION[1])); if (!dirCos || dirCos.length !== 6) { return daikon2.Image.SLICE_DIRECTION_UNKNOWN; } rowAxis = daikon2.Image.getMajorAxisFromPatientRelativeDirectionCosine(dirCos[0], dirCos[1], dirCos[2]); colAxis = daikon2.Image.getMajorAxisFromPatientRelativeDirectionCosine(dirCos[3], dirCos[4], dirCos[5]); if (rowAxis !== null && colAxis !== null) { if ((rowAxis === "R" || rowAxis === "L") && (colAxis === "A" || colAxis === "P")) { label = daikon2.Image.SLICE_DIRECTION_AXIAL; } else if ((colAxis === "R" || colAxis === "L") && (rowAxis === "A" || rowAxis === "P")) { label = daikon2.Image.SLICE_DIRECTION_AXIAL; } else if ((rowAxis === "R" || rowAxis === "L") && (colAxis === "H" || colAxis === "F")) { label = daikon2.Image.SLICE_DIRECTION_CORONAL; } else if ((colAxis === "R" || colAxis === "L") && (rowAxis === "H" || rowAxis === "F")) { label = daikon2.Image.SLICE_DIRECTION_CORONAL; } else if ((rowAxis === "A" || rowAxis === "P") && (colAxis === "H" || colAxis === "F")) { label = daikon2.Image.SLICE_DIRECTION_SAGITTAL; } else if ((colAxis === "A" || colAxis === "P") && (rowAxis === "H" || rowAxis === "F")) { label = daikon2.Image.SLICE_DIRECTION_SAGITTAL; } } else { label = daikon2.Image.SLICE_DIRECTION_OBLIQUE; } return label; }; daikon2.Image.prototype.getEncapsulatedData = function() { var buffer2, parser; daikon2.Parser = daikon2.Parser || (typeof require !== "undefined" ? require_parser3() : null); buffer2 = this.getPixelData().value.buffer; parser = new daikon2.Parser(); return parser.parseEncapsulated(new DataView(buffer2)); }; daikon2.Image.prototype.getJpegs = function() { var encapTags, numTags, ctr, currentJpeg, data = [], dataConcat = []; encapTags = this.getEncapsulatedData(); if (encapTags) { numTags = encapTags.length; for (ctr = 0; ctr < numTags; ctr += 1) { if (daikon2.CompressionUtils.isHeaderJPEG(encapTags[ctr].value) || daikon2.CompressionUtils.isHeaderJPEG2000(encapTags[ctr].value)) { currentJpeg = []; currentJpeg.push(encapTags[ctr].value.buffer); data.push(currentJpeg); } else if (currentJpeg && encapTags[ctr].value) { currentJpeg.push(encapTags[ctr].value.buffer); } } } for (ctr = 0; ctr < data.length; ctr += 1) { if (data[ctr].length > 1) { dataConcat[ctr] = daikon2.Utils.concatArrayBuffers2(data[ctr]); } else { dataConcat[ctr] = data[ctr][0]; } data[ctr] = null; } return dataConcat; }; daikon2.Image.prototype.getRLE = function() { var encapTags, numTags, ctr, data = []; encapTags = this.getEncapsulatedData(); if (encapTags) { numTags = encapTags.length; for (ctr = 1; ctr < numTags; ctr += 1) { if (encapTags[ctr].value) { data.push(encapTags[ctr].value.buffer); } } } return data; }; daikon2.Image.prototype.getAllInterpretedPrivateData = function() { var ctr, key2, tag, str = ""; var sorted_keys = Object.keys(this.tags).sort(); for (ctr = 0; ctr < sorted_keys.length; ctr += 1) { key2 = sorted_keys[ctr]; if (this.tags.hasOwnProperty(key2)) { tag = this.tags[key2]; if (tag.hasInterpretedPrivateData()) { str += tag.value; } } } return str; }; daikon2.Image.prototype.toString = function() { var ctr, tag, key2, str = ""; var sorted_keys = Object.keys(this.tags).sort(); for (ctr = 0; ctr < sorted_keys.length; ctr += 1) { key2 = sorted_keys[ctr]; if (this.tags.hasOwnProperty(key2)) { tag = this.tags[key2]; str += tag.toHTMLString() + "
"; } } str = str.replace(/\n\s*\n/g, "\n"); str = str.replace(/(?:\r\n|\r|\n)/g, "
"); return str; }; daikon2.Image.prototype.getPalleteValues = function(tagID) { var valsBig, valsLittle, value, numVals, ctr, valsBigMax, valsBigMin, valsLittleMax, valsLittleMin, valsBigDiff, valsLittleDiff; valsBig = null; valsLittle = null; value = daikon2.Image.getValueSafely(this.getTag(tagID[0], tagID[1])); if (value !== null) { numVals = value.buffer.byteLength / 2; valsBig = []; valsLittle = []; for (ctr = 0; ctr < numVals; ctr += 1) { valsBig[ctr] = value.getUint16(ctr * 2, false) & 65535; valsLittle[ctr] = value.getUint16(ctr * 2, true) & 65535; } valsBigMax = Math.max.apply(Math, valsBig); valsBigMin = Math.min.apply(Math, valsBig); valsLittleMax = Math.max.apply(Math, valsLittle); valsLittleMin = Math.min.apply(Math, valsLittle); valsBigDiff = Math.abs(valsBigMax - valsBigMin); valsLittleDiff = Math.abs(valsLittleMax - valsLittleMin); if (valsBigDiff < valsLittleDiff) { return this.scalePalette(valsBig); } else { return this.scalePalette(valsLittle); } } return null; }; daikon2.Image.prototype.scalePalette = function(pal) { var min, max, ctr, slope, intercept; max = Math.max.apply(Math, pal); min = Math.min.apply(Math, pal); if (max > 255 || min < 0) { slope = 255 / (max - min); intercept = min; for (ctr = 0; ctr < pal.length; ctr += 1) { pal[ctr] = parseInt(Math.round((pal[ctr] - intercept) * slope)); } } return pal; }; var moduleType3 = typeof module2; if (moduleType3 !== "undefined" && module2.exports) { module2.exports = daikon2.Image; } } }); // src/iterator.js var require_iterator = __commonJS({ "src/iterator.js"(exports2, module2) { "use strict"; var daikon2 = daikon2 || {}; daikon2.OrderedMapIterator = daikon2.OrderedMapIterator || function(orderedMap) { this.orderedMap = orderedMap; this.index = 0; }; daikon2.OrderedMapIterator.prototype.hasNext = function() { return this.index < this.orderedMap.orderedKeys.length; }; daikon2.OrderedMapIterator.prototype.next = function() { var item = this.orderedMap.get(this.orderedMap.orderedKeys[this.index]); this.index += 1; return item; }; var moduleType3 = typeof module2; if (moduleType3 !== "undefined" && module2.exports) { module2.exports = daikon2.OrderedMapIterator; } } }); // src/orderedmap.js var require_orderedmap = __commonJS({ "src/orderedmap.js"(exports2, module2) { "use strict"; var daikon2 = daikon2 || {}; daikon2.OrderedMapIterator = daikon2.OrderedMapIterator || (typeof require !== "undefined" ? require_iterator() : null); daikon2.OrderedMap = daikon2.OrderedMap || function() { this.map = {}; this.orderedKeys = []; }; daikon2.OrderedMap.prototype.put = function(key2, value) { if (key2 in this.map) { this.map[key2] = value; } else { this.orderedKeys.push(key2); this.orderedKeys.sort(function(a, b) { return parseFloat(a) - parseFloat(b); }); this.map[key2] = value; } }; daikon2.OrderedMap.prototype.remove = function(key2) { var index = this.orderedKeys.indexOf(key2); if (index === -1) { throw new Error("key does not exist"); } this.orderedKeys.splice(index, 1); delete this.map[key2]; }; daikon2.OrderedMap.prototype.get = function(key2) { if (key2 in this.map) { return this.map[key2]; } return null; }; daikon2.OrderedMap.prototype.iterator = function() { return new daikon2.OrderedMapIterator(this); }; daikon2.OrderedMap.prototype.getOrderedValues = function() { var orderedValues = [], it = this.iterator(); while (it.hasNext()) { orderedValues.push(it.next()); } return orderedValues; }; var moduleType3 = typeof module2; if (moduleType3 !== "undefined" && module2.exports) { module2.exports = daikon2.OrderedMap; } } }); // src/series.js var require_series = __commonJS({ "src/series.js"(exports2, module2) { "use strict"; var daikon2 = daikon2 || {}; daikon2.Parser = daikon2.Parser || (typeof require !== "undefined" ? require_parser3() : null); daikon2.Image = daikon2.Image || (typeof require !== "undefined" ? require_image() : null); daikon2.OrderedMap = daikon2.OrderedMap || (typeof require !== "undefined" ? require_orderedmap() : null); daikon2.OrderedMapIterator = daikon2.OrderedMapIterator || (typeof require !== "undefined" ? require_iterator() : null); daikon2.Utils = daikon2.Utils || (typeof require !== "undefined" ? require_utilities() : null); daikon2.Series = daikon2.Series || function() { this.images = []; this.imagesOriginalOrder = null; this.isMosaic = false; this.isElscint = false; this.isCompressed = false; this.numberOfFrames = 0; this.numberOfFramesInFile = 0; this.isMultiFrame = false; this.isMultiFrameVolume = false; this.isMultiFrameTimeseries = false; this.isImplicitTimeseries = false; this.sliceSense = false; this.sliceDir = daikon2.Image.SLICE_DIRECTION_UNKNOWN; this.error = null; }; daikon2.Series.parserError = null; daikon2.Series.useExplicitOrdering = false; daikon2.Series.useExplicitSpacing = 0; daikon2.Series.parseImage = function(data) { var parser, image; parser = new daikon2.Parser(); image = parser.parse(data); if (parser.hasError()) { daikon2.Series.parserError = parser.error; return null; } if (parser.inflated) { image.inflated = parser.inflated; } return image; }; daikon2.Series.getMosaicOffset = function(mosaicCols, mosaicColWidth, mosaicRowHeight, mosaicWidth, xLocVal, yLocVal, zLocVal) { var xLoc, yLoc, zLoc; xLoc = xLocVal; yLoc = yLocVal; zLoc = zLocVal; xLoc = zLoc % mosaicCols * mosaicColWidth + xLoc; yLoc = (parseInt(zLoc / mosaicCols) * mosaicRowHeight + yLoc) * mosaicWidth; return xLoc + yLoc; }; daikon2.Series.orderDicoms = function(images, numFrames, sliceDir) { var hasImagePosition, hasSliceLocation, hasImageNumber, timeMap, timeIt, ctr, ctrIn, dg, ordered, imagesOrderedByTimeAndSpace; hasImagePosition = images[0].getImagePosition() !== null; hasSliceLocation = images[0].getSliceLocation() !== null; hasImageNumber = images[0].getImageNumber() !== null; timeMap = daikon2.Series.orderByTime(images, numFrames, sliceDir, hasImagePosition, hasSliceLocation); timeIt = timeMap.orderedKeys; imagesOrderedByTimeAndSpace = []; for (ctr = 0; ctr < timeIt.length; ctr += 1) { dg = timeMap.get(timeIt[ctr]); if (hasImagePosition) { ordered = daikon2.Series.orderByImagePosition(dg, sliceDir); } else if (hasSliceLocation) { ordered = daikon2.Series.orderBySliceLocation(dg); } else if (hasImageNumber) { ordered = daikon2.Series.orderByImageNumber(dg); } else { ordered = dg; } for (ctrIn = 0; ctrIn < ordered.length; ctrIn += 1) { imagesOrderedByTimeAndSpace.push(ordered[ctrIn]); } } for (ctrIn = 0; ctrIn < imagesOrderedByTimeAndSpace.length; ctrIn += 1) { imagesOrderedByTimeAndSpace[ctrIn].index = ctrIn; } return imagesOrderedByTimeAndSpace; }; daikon2.Series.orderByImagePosition = function(images, sliceDir) { var dicomMap, ctr; dicomMap = new daikon2.OrderedMap(); for (ctr = 0; ctr < images.length; ctr += 1) { dicomMap.put(images[ctr].getImagePositionSliceDir(sliceDir), images[ctr]); } return dicomMap.getOrderedValues(); }; daikon2.Series.orderBySliceLocation = function(images) { var dicomMap, ctr; dicomMap = new daikon2.OrderedMap(); for (ctr = 0; ctr < images.length; ctr += 1) { dicomMap.put(images[ctr].getSliceLocation(), images[ctr]); } return dicomMap.getOrderedValues(); }; daikon2.Series.orderByImageNumber = function(images) { var dicomMap, ctr; dicomMap = new daikon2.OrderedMap(); for (ctr = 0; ctr < images.length; ctr += 1) { dicomMap.put(images[ctr].getImageNumber(), images[ctr]); } return dicomMap.getOrderedValues(); }; daikon2.Series.hasMatchingSlice = function(dg, image, sliceDir, doImagePos, doSliceLoc) { var matchingNum = 0, ctr, current, imagePos, sliceLoc, imageNum; if (doImagePos) { matchingNum = image.getImagePositionSliceDir(sliceDir); } else if (doSliceLoc) { matchingNum = image.getSliceLocation(); } else { matchingNum = image.getImageNumber(); } for (ctr = 0; ctr < dg.length; ctr += 1) { current = dg[ctr]; if (doImagePos) { imagePos = current.getImagePositionSliceDir(sliceDir); if (imagePos === matchingNum) { return true; } } else if (doSliceLoc) { sliceLoc = current.getSliceLocation(); if (sliceLoc === matchingNum) { return true; } } else { imageNum = current.getImageNumber(); if (imageNum === matchingNum) { return true; } } } return false; }; daikon2.Series.orderByTime = function(images, numFrames, sliceDir, hasImagePosition, hasSliceLocation) { var dicomMap, hasTemporalPosition, hasTemporalNumber, ctr, image, tempPos, dg, timeBySliceMap, imageNum, sliceMarker, slice, dicomsCopy, dicomsCopyIndex, sliceIt, timeIt, dgFound, it; dicomMap = new daikon2.OrderedMap(); hasTemporalPosition = numFrames > 1 && images[0].getTemporalPosition() !== null; hasTemporalNumber = numFrames > 1 && images[0].getTemporalNumber() !== null && images[0].getTemporalNumber() === numFrames; if (hasTemporalPosition && hasTemporalNumber) { for (ctr = 0; ctr < images.length; ctr += 1) { image = images[ctr]; tempPos = image.getTemporalPosition(); dg = dicomMap.get(tempPos); if (!dg) { dg = []; dicomMap.put(tempPos, dg); } dg.push(image); } } else { timeBySliceMap = new daikon2.OrderedMap(); for (ctr = 0; ctr < images.length; ctr += 1) { if (images[ctr] !== null) { imageNum = images[ctr].getImageNumber(); sliceMarker = ctr; if (hasImagePosition) { sliceMarker = images[ctr].getImagePositionSliceDir(sliceDir); } else if (hasSliceLocation) { sliceMarker = images[ctr].getSliceLocation(); } slice = timeBySliceMap.get(sliceMarker); if (slice === null) { slice = new daikon2.OrderedMap(); timeBySliceMap.put(sliceMarker, slice); } slice.put(ctr, images[ctr]); } } dicomsCopy = []; dicomsCopyIndex = 0; sliceIt = timeBySliceMap.iterator(); while (sliceIt.hasNext()) { slice = sliceIt.next(); timeIt = slice.iterator(); while (timeIt.hasNext()) { dicomsCopy[dicomsCopyIndex] = timeIt.next(); dicomsCopyIndex += 1; } } for (ctr = 0; ctr < dicomsCopy.length; ctr += 1) { if (dicomsCopy[ctr] !== null) { dgFound = null; it = dicomMap.iterator(); while (it.hasNext()) { dg = it.next(); if (!daikon2.Series.hasMatchingSlice(dg, dicomsCopy[ctr], sliceDir, hasImagePosition, hasSliceLocation)) { dgFound = dg; break; } } if (dgFound === null) { dgFound = []; dicomMap.put(dicomMap.orderedKeys.length, dgFound); } dgFound.push(dicomsCopy[ctr]); } } } return dicomMap; }; daikon2.Series.prototype.getOrder = function() { var ctr, order = []; for (ctr = 0; ctr < this.imagesOriginalOrder.length; ctr += 1) { order[ctr] = this.imagesOriginalOrder[ctr].index; } return order; }; daikon2.Series.prototype.toString = function() { return this.images[0].getSeriesId(); }; daikon2.Series.prototype.getName = function() { var des = this.images[0].getSeriesDescription(); var uid = this.images[0].getSeriesInstanceUID(); if (des !== null) { return des; } if (uid !== null) { return uid; } return null; }; daikon2.Series.prototype.addImage = function(image) { this.images.push(image); }; daikon2.Series.prototype.matchesSeries = function(image) { if (this.images.length === 0) { return true; } return this.images[0].getSeriesId() === image.getSeriesId(); }; daikon2.Series.prototype.buildSeries = function() { var hasFrameTime, ctr, sliceLoc, orderedImages, sliceLocationFirst, sliceLocationLast, sliceLocDiff, sliceLocations, orientation, imagePos; this.isMosaic = this.images[0].isMosaic(); this.isElscint = this.images[0].isElscint(); this.isCompressed = this.images[0].isCompressed(); this.numberOfFrames = this.images[0].getNumberOfFrames(); this.numberOfFramesInFile = this.images[0].getNumberOfImplicitFrames(); this.isMultiFrame = this.numberOfFrames > 1 || this.isMosaic && this.images[0].length > 1; this.isMultiFrameVolume = false; this.isMultiFrameTimeseries = false; this.isImplicitTimeseries = false; if (this.isMultiFrame) { hasFrameTime = this.images[0].getFrameTime() > 0; if (this.isMosaic) { this.isMultiFrameTimeseries = true; } else { if (hasFrameTime) { this.isMultiFrameTimeseries = true; } else if (this.numberOfFramesInFile > 1) { this.isMultiFrameTimeseries = true; this.numberOfFrames = this.images.length; } else { this.isMultiFrameVolume = true; } } } if (!this.isMosaic && this.numberOfFrames <= 1) { imagePos = this.images[0].getImagePosition() || []; sliceLoc = imagePos.toString(); this.numberOfFrames = 0; for (ctr = 0; ctr < this.images.length; ctr += 1) { imagePos = this.images[ctr].getImagePosition() || []; if (imagePos.toString() === sliceLoc) { this.numberOfFrames += 1; } } if (this.numberOfFrames > 1) { this.isImplicitTimeseries = true; } } this.sliceDir = this.images[0].getAcquiredSliceDirection(); if (daikon2.Series.useExplicitOrdering) { orderedImages = this.images.slice(); } else { orderedImages = daikon2.Series.orderDicoms(this.images, this.numberOfFrames, this.sliceDir); } sliceLocationFirst = orderedImages[0].getImagePositionSliceDir(this.sliceDir); sliceLocationLast = orderedImages[orderedImages.length - 1].getImagePositionSliceDir(this.sliceDir); sliceLocDiff = sliceLocationLast - sliceLocationFirst; if (daikon2.Series.useExplicitOrdering) { this.sliceSense = false; } else if (this.isMosaic) { this.sliceSense = true; } else if (this.isMultiFrame) { sliceLocations = orderedImages[0].getSliceLocationVector(); if (sliceLocations !== null) { orientation = orderedImages[0].getOrientation(); if (orientation.charAt(2) === "Z") { this.sliceSense = sliceLocations[0] - sliceLocations[sliceLocations.length - 1] < 0; } else { this.sliceSense = sliceLocations[0] - sliceLocations[sliceLocations.length - 1] > 0; } } else { this.sliceSense = sliceLocationFirst < 0 ? false : true; } } else { if (this.sliceDir === daikon2.Image.SLICE_DIRECTION_SAGITTAL || this.sliceDir === daikon2.Image.SLICE_DIRECTION_CORONAL) { if (sliceLocDiff > 0) { this.sliceSense = false; } else { this.sliceSense = true; } } else { if (sliceLocDiff > 0) { this.sliceSense = true; } else { this.sliceSense = false; } } } this.imagesOriginalOrder = this.images; this.images = orderedImages; }; daikon2.Series.prototype.concatenateImageData = function(progressMeter, onFinishedImageRead) { var buffer2, data, length; if (this.isMosaic) { data = this.getMosaicData(this.images[0], this.images[0].getPixelDataBytes()); } else { data = this.images[0].getPixelDataBytes(); } length = this.validatePixelDataLength(this.images[0]); this.images[0].clearPixelData(); buffer2 = new Uint8Array(new ArrayBuffer(length * this.images.length)); buffer2.set(new Uint8Array(data, 0, length), 0); setTimeout(daikon2.Utils.bind(this, function() { this.concatenateNextImageData(buffer2, length, progressMeter, 1, onFinishedImageRead); }), 0); }; daikon2.Series.prototype.concatenateNextImageData = function(buffer2, frameSize, progressMeter, index, onFinishedImageRead) { var data, length; if (index >= this.images.length) { if (progressMeter) { progressMeter.drawProgress(1, "Reading DICOM Images"); } onFinishedImageRead(buffer2.buffer); } else { if (progressMeter) { progressMeter.drawProgress(index / this.images.length, "Reading DICOM Images"); } if (this.isMosaic) { data = this.getMosaicData(this.images[index], this.images[index].getPixelDataBytes()); } else { data = this.images[index].getPixelDataBytes(); } length = this.validatePixelDataLength(this.images[index]); this.images[index].clearPixelData(); buffer2.set(new Uint8Array(data, 0, length), frameSize * index); setTimeout(daikon2.Utils.bind(this, function() { this.concatenateNextImageData( buffer2, frameSize, progressMeter, index + 1, onFinishedImageRead ); }), 0); } }; daikon2.Series.prototype.validatePixelDataLength = function(image) { var length = image.getPixelDataBytes().byteLength, sliceLength = image.getCols() * image.getRows(); if (length % sliceLength === 0) { return length; } return sliceLength * image.getNumberOfFrames() * image.getNumberOfSamplesPerPixel() * (image.getBitsAllocated() / 8); }; daikon2.Series.prototype.getMosaicData = function(image, data) { var mosaicWidth, mosaicHeight, mosaicRows, mosaicCols, mosaicRowHeight, mosaicColWidth, numBytes, ctrS, ctrR, ctrC, numSlices, numRows, numCols, buffer2, dataTyped, offset, ctr, index = 0; numBytes = parseInt(this.images[0].getBitsAllocated() / 8); numSlices = this.images[0].getMosaicCols() * this.images[0].getMosaicRows(); numRows = parseInt(this.images[0].getRows() / this.images[0].getMosaicRows()); numCols = parseInt(this.images[0].getCols() / this.images[0].getMosaicCols()); mosaicWidth = this.images[0].getCols(); mosaicHeight = this.images[0].getRows(); mosaicRows = this.images[0].getMosaicRows(); mosaicCols = this.images[0].getMosaicCols(); mosaicRowHeight = parseInt(mosaicHeight / mosaicRows); mosaicColWidth = parseInt(mosaicWidth / mosaicCols); buffer2 = new Uint8Array(new ArrayBuffer(numSlices * numRows * numCols * numBytes)); dataTyped = new Uint8Array(data); for (ctrS = 0; ctrS < numSlices; ctrS += 1) { for (ctrR = 0; ctrR < numRows; ctrR += 1) { for (ctrC = 0; ctrC < numCols; ctrC += 1) { offset = daikon2.Series.getMosaicOffset( mosaicCols, mosaicColWidth, mosaicRowHeight, mosaicWidth, ctrC, ctrR, ctrS ); for (ctr = 0; ctr < numBytes; ctr += 1) { buffer2[index] = dataTyped[offset * numBytes + ctr]; index += 1; } } } } return buffer2.buffer; }; var moduleType3 = typeof module2; if (moduleType3 !== "undefined" && module2.exports) { module2.exports = daikon2.Series; } } }); // src/main.js var daikon = daikon || {}; daikon.CompressionUtils = daikon.CompressionUtils || (typeof require !== "undefined" ? require_compression_utils() : null); daikon.Dictionary = daikon.Dictionary || (typeof require !== "undefined" ? require_dictionary() : null); daikon.Image = daikon.Image || (typeof require !== "undefined" ? require_image() : null); daikon.OrderedMapIterator = daikon.OrderedMapIterator || (typeof require !== "undefined" ? require_iterator() : null); daikon.OrderedMap = daikon.OrderedMap || (typeof require !== "undefined" ? require_orderedmap() : null); daikon.Parser = daikon.Parser || (typeof require !== "undefined" ? require_parser3() : null); daikon.RLE = daikon.RLE || (typeof require !== "undefined" ? require_rle() : null); daikon.Series = daikon.Series || (typeof require !== "undefined" ? require_series() : null); daikon.Tag = daikon.Tag || (typeof require !== "undefined" ? require_tag() : null); daikon.Utils = daikon.Utils || (typeof require !== "undefined" ? require_utilities() : null); daikon.Siemens = daikon.Siemens || (typeof require !== "undefined" ? require_siemens() : null); var jpeg = jpeg || {}; jpeg.lossless = jpeg.lossless || {}; jpeg.lossless.Decoder = typeof require !== "undefined" ? require_main() : null; var JpegDecoder = JpegDecoder || (typeof require !== "undefined" ? require_jpeg_baseline().JpegImage : null); var JpxImage = JpxImage || (typeof require !== "undefined" ? require_jpx() : null); var CharLS2 = CharLS2 || (typeof require !== "undefined" ? require_charLS_DynamicMemory_browser() : null); var JpegLSDecoder = JpegLSDecoder || (typeof require !== "undefined" ? require_jpeg_ls() : null); var pako = pako || (typeof require !== "undefined" ? require_pako() : null); var moduleType2 = typeof module; if (moduleType2 !== "undefined" && module.exports) { module.exports = daikon; } /*! image-JPEG2000 - v0.3.1 - 2015-08-26 | https://github.com/OHIF/image-JPEG2000 */ /*! CharLS.js - v2.0.1 - 2016-06-08 | (c) 2016 Chris Hafey | https://github.com/chafey/charls */ /*! Copyright (c) 2007-2010, Jan de Vaan All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of my employer, nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /*! The MIT License (MIT) Copyright (c) 2014 Chris Hafey (chafey@gmail.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */