{"version":3,"sources":["webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/eos_validator.js","webpack:///./node_modules/bs58check/base.js","webpack:///./node_modules/bs58/index.js","webpack:///./node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack:///./node_modules/sha.js/sha.js","webpack:///./node_modules/@iota/signing/out/signing/src/index.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/wallet_address_validator.js","webpack:///./node_modules/stream-browserify/node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/jssha/src/sha256.js","webpack:///./node_modules/readable-stream/lib/internal/streams/state.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/lumen_validator.js","webpack:///./node_modules/@iota/kerl/out/kerl/src/index.js","webpack:///./node_modules/@iota/validators/out/validators/src/index.js","webpack:///./node_modules/@iota/converter/out/converter/src/index.js","webpack:///./node_modules/@iota/curl/out/typed-array.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/iost_validator.js","webpack:///./node_modules/@iota/transaction/out/typed-array.js","webpack:///./node_modules/@iota/pad/out/errors.js","webpack:///./node_modules/c32check/lib/checksum.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/currencies.js","webpack:///./node_modules/@iota/kerl/out/typed-array.js","webpack:///./node_modules/@iota/checksum/out/checksum/src/index.js","webpack:///./node_modules/node-libs-browser/node_modules/safe-buffer/index.js","webpack:///./node_modules/@iota/converter/out/converter/src/trits.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/bitcoincash_validator.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/cardano_validator.js","webpack:///./node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/nem_validator.js","webpack:///./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/aud_validator.js","webpack:///./node_modules/@iota/transaction/out/constants.js","webpack:///./node_modules/@iota/validators/out/constants.js","webpack:///./node_modules/@iota/signing/out/signing/src/signing.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/monero_validator.js","webpack:///./node_modules/@iota/pad/out/typed-array.js","webpack:///./node_modules/@iota/transaction/out/transaction/src/index.js","webpack:///./node_modules/core-util-is/lib/util.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/@iota/kerl/out/kerl/src/kerl.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/bitcoin_validator.js","webpack:///./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/base-x/src/index.js","webpack:///./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/cashaddrjs-slp/src/cashaddr.js","webpack:///./node_modules/@iota/validators/out/errors.js","webpack:///./src/views/dashboard-new/pages/rewards.vue","webpack:///./src/views/dashboard-new/pages/add-bank.vue","webpack:///./src/views/dashboard-new/pages/add-bank.vue?8dc1","webpack:///./src/views/dashboard-new/pages/rewards.vue?8563","webpack:///./node_modules/sha.js/sha512.js","webpack:///./node_modules/stream-browserify/node_modules/readable-stream/passthrough.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/crypto/bech32.js","webpack:///./node_modules/rfc4648/lib/rfc4648.js","webpack:///./node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/atom_validator.js","webpack:///./node_modules/cipher-base/index.js","webpack:///./node_modules/sha.js/index.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/nxs_validator.js","webpack:///./node_modules/@iota/checksum/out/guards.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/algo_validator.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/sys_validator.js","webpack:///./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/bs58check/index.js","webpack:///./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/@iota/validators/out/guards.js","webpack:///./node_modules/sha.js/sha224.js","webpack:///./node_modules/big-integer/BigInteger.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/ripple_validator.js","webpack:///./node_modules/cashaddrjs-slp/src/base32.js","webpack:///./node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/xtz_validator.js","webpack:///./node_modules/@iota/signing/out/signing/src/add.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/icx_validator.js","webpack:///./node_modules/stream-browserify/node_modules/readable-stream/duplex-browser.js","webpack:///./node_modules/sha.js/sha1.js","webpack:///./node_modules/@iota/pad/out/pad/src/index.js","webpack:///./node_modules/safe-buffer/index.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/stx_validator.js","webpack:///./node_modules/stream-browserify/node_modules/readable-stream/transform.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/lisk_validator.js","webpack:///./node_modules/c32check/lib/base58check.js","webpack:///./node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/iota_validator.js","webpack:///./node_modules/@iota/signing/out/errors.js","webpack:///./node_modules/hash-base/index.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/ethereum_validator.js","webpack:///./node_modules/process-nextick-args/index.js","webpack:///./node_modules/@iota/transaction/out/guards.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/hbar_validator.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/bts_validator.js","webpack:///./node_modules/create-hash/browser.js","webpack:///./node_modules/@iota/kerl/out/kerl/src/word-converter.js","webpack:///./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack:///./node_modules/stream-browserify/node_modules/isarray/index.js","webpack:///./node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/crypto/base58.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/crypto/cnBase58.js","webpack:///./node_modules/crc/create_buffer.js","webpack:///./node_modules/crc/define_crc.js","webpack:///./node_modules/crc/crc1.js","webpack:///./node_modules/crc/crc8.js","webpack:///./node_modules/crc/crc81wire.js","webpack:///./node_modules/crc/crc16.js","webpack:///./node_modules/crc/crc16ccitt.js","webpack:///./node_modules/crc/crc16modbus.js","webpack:///./node_modules/crc/crc16xmodem.js","webpack:///./node_modules/crc/crc16kermit.js","webpack:///./node_modules/crc/crc24.js","webpack:///./node_modules/crc/crc32.js","webpack:///./node_modules/crc/crcjam.js","webpack:///./node_modules/crc/index.js","webpack:///./node_modules/sha.js/sha256.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/crypto/blake256.js","webpack:///./node_modules/node-libs-browser/node_modules/string_decoder/lib/string_decoder.js","webpack:///./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/bchaddrjs-slp/src/bchaddr.js","webpack:///./node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/stream-browserify/node_modules/readable-stream/writable-browser.js","webpack:///./node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/cashaddrjs-slp/src/convertBits.js","webpack:///./node_modules/cross-sha256/index.js","webpack:///./node_modules/@iota/transaction/out/transaction/src/transaction.js","webpack:///./node_modules/ripemd160/index.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/ardr_validator.js","webpack:///./node_modules/sha.js/hash.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/crypto/blake2b.js","webpack:///./node_modules/util-deprecate/browser.js","webpack:///./node_modules/sha.js/sha384.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/crypto/sha3.js","webpack:///./node_modules/@iota/checksum/out/constants.js","webpack:///./node_modules/@iota/signing/out/typed-array.js","webpack:///./node_modules/@iota/curl/out/curl/src/index.js","webpack:///./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/@iota/checksum/out/errors.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/crypto/biginteger.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/nano_validator.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/ae_validator.js","webpack:///./node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///./node_modules/readable-stream/errors-browser.js","webpack:///./node_modules/js-sha512/src/sha512.js","webpack:///./node_modules/@iota/kerl/out/kerl/src/errors.js","webpack:///./node_modules/cbor-js/cbor.js","webpack:///./node_modules/@iota/converter/out/converter/src/errors.js","webpack:///./node_modules/c32check/lib/address.js","webpack:///./node_modules/stream-browserify/index.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/crypto/segwit_addr.js","webpack:///./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/bnb_validator.js","webpack:///./node_modules/c32check/lib/encoding.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/zil_validator.js","webpack:///./node_modules/warning/warning.js","webpack:///./node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/@iota/converter/out/converter/src/ascii.js","webpack:///./node_modules/@iota/transaction/out/errors.js","webpack:///./node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/c32check/lib/index.js","webpack:///./node_modules/cashaddrjs-slp/src/validation.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/crypto/utils.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/steem_validator.js","webpack:///./node_modules/@swyftx/api-crypto-address-validator/src/sc_validator.js","webpack:///./node_modules/md5.js/index.js","webpack:///./node_modules/stream-browserify/node_modules/safe-buffer/index.js","webpack:///./node_modules/@iota/converter/out/typed-array.js","webpack:///./node_modules/bluebird/js/browser/bluebird.js","webpack:///./node_modules/events/events.js"],"names":["isValidEOSAddress","address","currency","networkType","regex","search","length","module","exports","isValidAddress","base58","Buffer","checksumFn","encode","payload","checksum","concat","decodeRaw","buffer","slice","newChecksum","decodeUnsafe","string","decode","Error","basex","ALPHABET","inherits","Hash","K","W","Array","Sha","this","init","_w","call","rotl5","num","rotl30","ft","s","b","c","d","prototype","_a","_b","_c","_d","_e","_update","M","a","e","i","readInt32BE","j","t","_hash","H","allocUnsafe","writeInt32BE","__export","m","p","hasOwnProperty","__esModule","add_1","add","increment","currencies","DEFAULT_CURRENCY_NAME","validate","currencyNameOrSymbol","addressFormats","getByNameOrSymbol","validator","isArray","CURRENCIES","Stream","Readable","Writable","Duplex","Transform","PassThrough","I","w","f","n","k","h","q","y","u","l","g","r","z","encoding","numRounds","parseInt","lastIndexOf","A","push","B","x","setHMACKey","binLen","value","update","getHash","C","D","E","F","ArrayBuffer","v","G","getHMAC","charAt","outputUpper","toUpperCase","b64Pad","String","fromCharCode","Uint8Array","shakeLen","substr","isNaN","charCodeAt","indexOf","replace","byteLength","J","L","N","O","P","Q","R","Number","ERR_INVALID_OPT_VALUE","codes","highWaterMarkFrom","options","isDuplex","duplexKey","highWaterMark","getHighWaterMark","state","hwm","isFinite","Math","floor","name","objectMode","crc","ALLOWED_CHARS","codec","baseX","regexp","RegExp","test","verifyChecksum","encodedAddress","decodedAddress","versionByte","calculatedChecksum","alloc","writeUInt16LE","crc16xmodem","compare","kerl_1","errors","checksum_1","isAddress","isValid","isValidChecksum","err","addressValidator","guards_1","arrayValidator","depthValidator","hashValidator","inputValidator","isHash","isInput","isNinesTrytes","isEmpty","isSecurityLevel","isStartEndOptions","isTag","isTransfer","isTrytes","isTrytesOfExactLength","isTrytesOfMaxLength","isUri","minWeightMagnitudeValidator","securityLevelValidator","seedValidator","tagValidator","transferValidator","trytesValidator","uriValidator","guards_2","isAddressArray","isHashArray","isInputArray","isTagArray","isTransferArray","isTransfersArray","isTrytesArray","isUriArray","transaction_1","isAttached","isTail","isHead","isTransaction","bytesToTrits","bytes","Int8Array","from","tritsToBytes","trits","Object","defineProperty","subarray","map","every","some","fill","input","TypeError","len","start","arguments","relativeStart","max","min","end","relativeEnd","undefined","last","Uint32Array","reverse","iostRegex","ILLEGAL_LENGTH","ILLEGAL_SUBSEED_INDEX","ILLEGAL_SUBSEED_LENGTH","ILLEGAL_NUMBER_OF_FRAGMENTS","ILLEGAL_KEY_LENGTH","ILLEGAL_DIGESTS_LENGTH","ILLEGAL_NORMALIZED_FRAGMENT_LENGTH","ILLEGAL_SIGNATURE_FRAGMENT_LENGTH","ILLEGAL_BUNDLE_HASH_LENGTH","ILLEGAL_KEY_FRAGMENT_LENGTH","ILLEGAL_TRIT_CONVERSION_INPUT","ILLEGAL_TRYTE_CONVERSION_INPUT","ILLEGAL_MIN_WEIGHT_MAGNITUDE","ILLEGAL_ADDRESS_LAST_TRIT","ILLEGAL_ADDRESS_LENGTH","ILLEGAL_BUNDLE_LENGTH","ILLEGAL_OBSOLETE_TAG_LENGTH","ILLEGAL_SIGNATURE_OR_MESSAGE","ILLEGAL_SIGNATURE_OR_MESSAGE_LENGTH","ILLEGAL_TAG_LENGTH","ILLEGAL_ISSUANCE_TIMESTAMP","ILLEGAL_ISSUANCE_TIMESTAMP_LENGTH","ILLEGAL_VALUE_LENGTH","ILLEGAL_TRANSACTION_FIELD_OFFSET","ILLEGAL_TRANSACTION_FIELD_LENGTH","ILLEGAL_LENGTH_OR_OFFSET","ILLEGAL_TRANSACTION_BUFFER","ILLEGAL_TRANSACTION_BUFFER_LENGTH","ILLEGAL_TRANSACTION_OFFSET","ILLEGAL_TRANSACTION_LENGTH","ILLEGAL_TRANSACTION_ORDER","ILLEGAL_TRANSACTION_INDEX","ILLEGAL_SEED_LENGTH","ILLEGAL_KEY_INDEX","ILLEGAL_CDA_LENGTH","ILLEGAL_BATCH","CDA_ALREADY_IN_STORE","ILLEGAL_PERSISTENCE_ID","ILLEGAL_PERSISTENCE_PATH","ILLEGAL_PADDING_LENGTH","INCONSISTENT_SUBTANGLE","INSUFFICIENT_BALANCE","INVALID_ADDRESS","INVALID_REMAINDER_ADDRESS","INVALID_BRANCH_TRANSACTION","INVALID_BUNDLE","INVALID_BUNDLE_HASH","INVALID_CHECKSUM","INVALID_COMMAND","INVALID_DEPTH","INVALID_HASH","INVALID_INDEX","INVALID_TOTAL_OPTION","INVALID_INPUT","INVALID_KEY","INVALID_MIN_WEIGHT_MAGNITUDE","INVALID_SEARCH_KEY","INVALID_SECURITY_LEVEL","INVALID_SECURITY_OPTION","INVALID_SEED","INVALID_START_END_OPTIONS","INVALID_START_OPTION","INVALID_TAG","INVALID_TRANSACTION","INVALID_TRANSACTION_TRYTES","INVALID_ATTACHED_TRYTES","INVALID_TRANSACTION_HASH","INVALID_TAIL_TRANSACTION","INVALID_THRESHOLD","INVALID_TRANSFER","INVALID_TRUNK_TRANSACTION","INVALID_REFERENCE_HASH","INVALID_TRYTES","INVALID_URI","INVALID_ASCII_INPUT","INVALID_ODD_LENGTH","INVALID_TRYTE_ENCODED_JSON","NOT_INT","SENDING_BACK_TO_INPUTS","INVALID_TRANSACTIONS_TO_APPROVE","NO_INPUTS","invalidChecksum","inconsistentTransaction","reason","INVALID_DELAY","c32checkDecode","c32checkEncode","buffer_1","encoding_1","cross_sha256_1","c32checksum","dataHex","dataHash","hashSha256","toString","version","data","match","toLowerCase","versionHex","checksumHex","c32str","c32encode","c32","c32data","c32normalize","c32decode","versionChar","substring","XRPValidator","ETHValidator","BTCValidator","ADAValidator","XMRValidator","NANOValidator","LSKValidator","IOTAValidator","EOSValidator","XLMValidator","AUDValidator","NEMValidator","BTSValidator","ICXValidator","AEValidator","SCValidator","ATOMValidator","STEEMValidator","ARDRValidator","BNBValidator","ZILValidator","NXSValidator","IOSTValidator","XTZValidator","HBARValidator","STXValidator","ALGOValidator","BCHValidator","SYSValidator","symbol","addressTypes","prod","testnet","expectedLength","hashFunction","iAddressTypes","nameOrSymbol","find","converter_1","errors_1","INVALID_CHECKSUM_LENGTH","HASH_TRYTES_LENGTH","ADDRESS_CHECKSUM_TRYTES_LENGTH","ADDRESS_WITH_CHECKSUM_TRYTES_LENGTH","MIN_CHECKSUM_TRYTES_LENGTH","addChecksum","checksumLength","isInteger","paddedInputTrytes","inputTrits","checksumTrits","HASH_LENGTH","kerl","initialize","absorb","squeeze","trytes","removeChecksum","addressWithChecksum","copyProps","src","dst","key","SafeBuffer","arg","encodingOrOffset","allocUnsafeSlow","size","buf","SlowBuffer","RADIX","MAX_TRIT_VALUE","MIN_TRIT_VALUE","fromValue","result","TRYTE_WIDTH","index","TRYTE_ALPHABET","TRYTES_TRITS_LUT","INVALID_TRITS","pow","returnValue","destination","log","abs","absoluteValue","remainder","trytesToTrits","tritsToTrytes","tritsToValue","valueToTrits","BCH","DEFAULT_ADDRESS_FORMAT","DEFAULT_NETWORK_TYPE","isAValidAddress","decodeAddress","error","isValidAddressFormat","addressFormat","validAddressFormat","Format","Legacy","Bitpay","Cashaddr","Slpaddr","isValidNetworkType","trim","isMainnetAddress","isTestnetAddress","isValidBitcoinCashAddress","isLegacyAddress","isBitpayAddress","isCashAddress","isSlpAddress","cbor","CRC","getDecoded","decoded","tagged","validCrc","crc32","_require$codes","ERR_METHOD_NOT_IMPLEMENTED","ERR_MULTIPLE_CALLBACK","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","er","ts","_transformState","transforming","cb","writecb","emit","writechunk","rs","_readableState","reading","needReadable","_read","bind","needTransform","writeencoding","sync","transform","_transform","flush","_flush","on","prefinish","_this","destroyed","done","stream","_writableState","chunk","_write","_destroy","err2","EventEmitter","isValidLiskAddress","HASH_TRYTE_SIZE","TAG_TRYTE_SIZE","SIGNATURE_MESSAGE_FRAGMENT_TRYTE_SIZE","TRANSACTION_TRYTE_SIZE","MAX_INDEX_DIFF","NULL_HASH_TRYTES","repeat","NULL_TAG_TRYTES","NULL_SIGNATURE_MESSAGE_FRAGMENT_TRYTES","NULL_TRANSACTION_TRYTES","pad_1","Promise","subseed","seed","pad","padTrits","ceil","subseedPreimage","subseedTrits","sponge","numberOfFragments","keyTrits","FRAGMENT_LENGTH","digests","digestsTrits","NUMBER_OF_FRAGMENT_CHUNKS","MAX_TRYTE_VALUE","MIN_TRYTE_VALUE","reset","addressTrits","digest","normalizedBundleFragment","signatureFragment","normalizedBundleFragmentOffset","signatureFragmentOffset","NORMALIZED_FRAGMENT_LENGTH","digestTrits","keyFragment","keyFragmentOffset","signatureFragmentTrits","signatureFragments","bundle","nativeGenerateSignatureFunction","then","nativeSignature","normalizedBundleHash","normalizedBundle","signature","set","resolve","validateSignatures","expectedAddress","normalizedBundleFragments","NUMBER_OF_SECURITY_LEVELS","digestBuffer","actualAddress","trit","output","sum","cryptoUtils","cnBase58","addressRegTest","integratedAddressRegTest","validateNetwork","addressType","network","networkByte","hextobin","hex","res","decodedAddrStr","addrChecksum","hashChecksum","keccak256Checksum","attachmentTimestamp","attachmentTimestampLowerBound","attachmentTimestampUpperBound","branchTransaction","currentIndex","lastIndex","obsoleteTag","isMultipleOfTransactionLength","issuanceTimestamp","signatureOrMessage","tag","transactionEssence","transactionHash","transactionNonce","trunkTransaction","SIGNATURE_OR_MESSAGE_OFFSET","SIGNATURE_OR_MESSAGE_LENGTH","ADDRESS_OFFSET","ADDRESS_LENGTH","VALUE_OFFSET","VALUE_LENGTH","OBSOLETE_TAG_OFFSET","OBSOLETE_TAG_LENGTH","ISSUANCE_TIMESTAMP_OFFSET","ISSUANCE_TIMESTAMP_LENGTH","CURRENT_INDEX_OFFSET","CURRENT_INDEX_LENGTH","LAST_INDEX_OFFSET","LAST_INDEX_LENGTH","BUNDLE_OFFSET","BUNDLE_LENGTH","TRUNK_TRANSACTION_OFFSET","TRUNK_TRANSACTION_LENGTH","BRANCH_TRANSACTION_OFFSET","BRANCH_TRANSACTION_LENGTH","TAG_OFFSET","TAG_LENGTH","ATTACHMENT_TIMESTAMP_OFFSET","ATTACHMENT_TIMESTAMP_LENGTH","ATTACHMENT_TIMESTAMP_LOWER_BOUND_OFFSET","ATTACHMENT_TIMESTAMP_LOWER_BOUND_LENGTH","ATTACHMENT_TIMESTAMP_UPPER_BOUND_OFFSET","ATTACHMENT_TIMESTAMP_UPPER_BOUND_LENGTH","TRANSACTION_NONCE_OFFSET","TRANSACTION_NONCE_LENGTH","TRANSACTION_ESSENCE_OFFSET","TRANSACTION_ESSENCE_LENGTH","TRANSACTION_LENGTH","TRANSACTION_HASH_LENGTH","objectToString","isBoolean","isNull","isNullOrUndefined","isNumber","isString","isSymbol","isUndefined","isRegExp","re","isObject","isDate","isError","isFunction","isPrimitive","o","isBuffer","__webpack_amd_options__","create","ctor","superCtor","super_","constructor","enumerable","writable","configurable","TempCtor","CryptoJS","word_converter_1","BIT_HASH_LENGTH","Kerl","algo","SHA3","outputLength","offset","ILLEGAL_TRITS_LENGTH","limit","trit_state","wordsToAbsorb","tritsToWords","lib","WordArray","kCopy","clone","final","finalize","wordsToTrits","words","segwit","getChecksum","blake","blake2b256","blake256Checksum","sha256Checksum","getAddressType","toHex","body","goodChecksum","isValidP2PKHandP2SHAddress","correctAddressTypes","_Buffer","base","BASE_MAP","xc","BASE","LEADER","FACTOR","iFACTOR","source","zeroes","pbegin","pend","b58","carry","it1","it2","str","psz","b256","it3","it4","vch","destroy","readableDestroyed","writableDestroyed","errorEmitted","process","nextTick","emitErrorNT","emitCloseNT","emitErrorAndCloseNT","self","emitClose","undestroy","ended","endEmitted","ending","finalCalled","prefinished","finished","errorOrDestroy","rState","wState","autoDestroy","base32","bigInt","convertBits","validation","prefix","type","hash","isValidPrefix","prefixData","prefixToUint5Array","getTypeBits","getHashSizeBits","payloadData","toUint5Array","of","checksumData","checksumToUint5Array","polymod","hasSingleCase","pieces","split","validChecksum","fromUint5Array","getHashSize","getType","ValidationError","VALID_PREFIXES","and","toJSNumber","shiftRight","ab","GENERATOR","topBits","shiftLeft","xor","equals","class","for","_createElementVNode","style","_createElementBlock","keys","$setup","store","rewardsDetails","$data","step","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_toDisplayString","_ctx","$t","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","totalCopiers","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","outstandingPayment","onClick","_cache","$event","$options","withdrawalFunds","_hoisted_15","_hoisted_16","href","withdrawalHistory","_hoisted_17","_hoisted_18","_createVNode","_component_v_lazy_image","alt","_hoisted_19","_hoisted_20","_hoisted_21","_component_vue_feather","rewardsHistory","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","historyFilter","_hoisted_31","content","_hoisted_32","_hoisted_33","placeholder","historyFilterData","_hoisted_35","_Fragment","_renderList","item","_hoisted_36","_hoisted_37","paymentAccountType","_createBlock","width","height","_hoisted_38","_hoisted_39","_normalizeClass","paymentStatus","_hoisted_40","historyDateFormat","requestedDate","_hoisted_41","_hoisted_42","totalPayableAmount","confirmCancel","_component_Nodata","_hoisted_43","_hoisted_44","_hoisted_45","_hoisted_46","_hoisted_47","_hoisted_48","_hoisted_49","_hoisted_50","dateFormat","period","_hoisted_51","username","_hoisted_52","amount","toFixed","_hoisted_53","_hoisted_54","_hoisted_55","_hoisted_56","_hoisted_57","_hoisted_58","_hoisted_59","_hoisted_60","_hoisted_61","_hoisted_62","_hoisted_63","id","withdraw_method","_hoisted_64","_hoisted_65","_component_Form","onSubmit","paymentRequest","_component_Field","walletAddress","aria-required","aria-invalid","rules","_component_ErrorMessage","addressValid","_hoisted_66","_hoisted_67","_hoisted_68","_hoisted_69","_hoisted_70","_hoisted_71","_hoisted_72","_hoisted_73","_hoisted_74","userDetail","email","readOnly","_hoisted_75","_hoisted_76","_hoisted_77","_hoisted_78","_hoisted_79","_hoisted_80","_hoisted_81","internalBankAcc","_hoisted_82","_hoisted_83","bankAccount","accountNumber","_hoisted_85","onChange","isOpen","_hoisted_86","_hoisted_87","detailDiv","_hoisted_88","isEdit","_hoisted_90","_hoisted_91","_hoisted_92","beneficiaryName","_hoisted_93","_hoisted_94","countryIso","_hoisted_95","_hoisted_96","bankName","_hoisted_97","_hoisted_98","code","_hoisted_99","existingPayment","records","_hoisted_100","showAddBank","_component_AddBank","edit","_hoisted_101","_hoisted_102","_hoisted_103","_hoisted_104","_hoisted_105","_hoisted_106","_hoisted_107","_hoisted_108","cancelRequest","role","disabled","$props","$parent","addbank","bank","as","countriesList","list","isoCode","setup","myStore","props","internal","components","Form","Field","ErrorMessage","methods","created","__exports__","WAValidator","require","toast","useToast","AddBank","account","filter","val","date","moment","format","getWithdrawalHistory","getRewardsHistory","getWithdrawalFunds","payLoad","valid","paymentAccountTypeId","bankAccountNo","bankBeneficiary","bankCountryIso","getWithdrawalPayment","cancelWithdrawalRequest","getRewardsDetails","render","Sha512","Ch","maj","sigma0","xl","sigma1","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","ah","bh","ch","dh","eh","fh","gh","hh","al","bl","cl","dl","el","fl","gl","hl","xh","gamma0","gamma0l","gamma1","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","writeInt64BE","CHARSET","values","chk","top","hrpExpand","hrp","ret","createChecksum","mod","combined","bechString","hasLower","hasUpper","pos","parse","opts","_opts$out","chars","loose","bits","SyntaxError","out","written","_i","stringify","_opts","_opts$pad","mask","base16Encoding","base32Encoding","base32HexEncoding","base64Encoding","base64UrlEncoding","base16","base32hex","base64","base64url","eos","once","callback","called","apply","ERR_MISSING_ARGS","ERR_STREAM_DESTROYED","noop","isRequest","setHeader","abort","destroyer","writing","closed","readable","fn","pipe","to","popCallback","streams","pop","pipeline","_len","_key","destroys","forEach","reduce","utils","exec","bech32","StringDecoder","CipherBase","hashMode","_finalOrDigest","_final","__final","_decoder","_encoding","inputEnc","outputEnc","outData","_toString","setAutoPadding","getAuthTag","setAuthTag","setAAD","_","next","enc","fin","write","algorithm","Algorithm","sha","sha1","sha224","sha256","sha384","sha512","constants_1","isTrits","isNullTrits","security","balance","keyIndex","transfer","message","uri","getInside","stripBrackets","uriTest","validators","msg","JSON","arr","customMsg","depth","minWeightMagnitude","remainderAddressValidator","errorMessage","integerValidator","integer","indexValidator","startOptionValidator","startEndOptionsValidator","getInputsThresholdValidator","threshold","sha512256","sha512_256","correctPadding","addr","btcValidator","pna","ReadableState","EElistenerCount","emitter","listeners","OurUint8Array","global","window","_uint8ArrayToBuffer","_isUint8Array","obj","util","debugUtil","debug","debuglog","BufferList","destroyImpl","kProxyEvents","prependListener","event","_events","unshift","readableObjectMode","readableHwm","readableHighWaterMark","defaultHwm","pipes","pipesCount","flowing","emittedReadable","readableListening","resumeScheduled","defaultEncoding","awaitDrain","readingMore","decoder","read","readableAddChunk","addToFront","skipChunkCheck","onEofChunk","chunkInvalid","getPrototypeOf","addChunk","maybeReadMore","needMoreData","emitReadable","get","_undestroy","isPaused","setEncoding","MAX_HWM","computeNewHighWaterMark","howMuchToRead","head","emitReadable_","flow","maybeReadMore_","pipeOnDrain","nReadingNextTick","resume","resume_","fromList","shift","join","clear","fromListPartial","hasStrings","copyFromBufferString","copyFromBuffer","nb","tail","copy","endReadable","endReadableNT","xs","nOrig","doRead","dest","pipeOpts","doEnd","stdout","stderr","endFn","onend","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanup","ondrain","cleanedUp","removeListener","onclose","onfinish","onerror","ondata","needDrain","increasedAwaitDrain","pause","dests","splice","ev","addListener","wrap","paused","method","_fromList","createHash","bs58checkBase","sha256x2","tmp","CorkedRequest","entry","finish","onCorkedFinish","asyncWrite","browser","setImmediate","WritableState","internalUtil","deprecate","realHasInstance","nop","writableObjectMode","writableHwm","writableHighWaterMark","noDecode","decodeStrings","corked","bufferProcessing","onwrite","writelen","bufferedRequest","lastBufferedRequest","pendingcb","bufferedRequestCount","corkedRequestsFree","writev","_writev","writeAfterEnd","validChunk","decodeChunk","writeOrBuffer","isBuf","newChunk","doWrite","onwriteError","finishMaybe","onwriteStateUpdate","needFinish","clearBuffer","afterWrite","onwriteDrain","holder","count","allBuffers","callFinal","need","endWritable","corkReq","getBuffer","current","Symbol","hasInstance","Function","object","cork","uncork","setDefaultEncoding","Sha256","Sha224","_f","_g","_h","LOG_BASE","MAX_INT","MAX_INT_ARR","smallToArray","DEFAULT_ALPHABET","supportsNativeBigInt","BigInt","Integer","radix","alphabet","caseSensitive","parseBase","parseValue","BigInteger","sign","isSmall","SmallInteger","NativeBigInt","isPrecise","arrayToSmall","compareAbs","createArray","truncate","l_a","l_b","addAny","addSmall","subtract","difference","a_l","b_l","borrow","subtractAny","subtractSmall","multiplyLong","product","a_i","b_j","multiplySmall","multiplyKaratsuba","ac","bd","abcd","useKaratsuba","l1","l2","multiplySmallAndArray","square","a_j","divMod1","quotientDigit","divisorMostSignificantDigit","lambda","divisor","divModSmall","divMod2","guess","xlen","highx","highy","check","part","quotient","divModAny","negate","comparison","qSign","mSign","isBasicPrime","isUnit","isEven","isDivisibleBy","lesser","millerRabinTest","nPrev","prev","divide","modPow","plus","minus","small","multiply","times","_multiplyBySmall","divmod","over","_0","_1","_2","isNegative","exp","isZero","modInv","isPositive","isOdd","Infinity","compareTo","eq","notEquals","neq","greater","gt","lt","greaterOrEquals","geq","lesserOrEquals","leq","isPrime","strict","bitLength","logN","isProbablePrime","iterations","rng","randBetween","lastT","lastR","zero","newT","one","newR","powersOfTwo","powers2Length","highestPower2","shift_isSmall","bitwise","xSign","ySign","xRem","not","yRem","xDigit","yDigit","xDivMod","yDivMod","remQuo","or","LOBMASK_I","LOBMASK_BI","roughLOB","integerLogarithm","gcd","lcm","usedRNG","random","low","high","range","digits","toBase","restricted","digit","fromArray","text","absBase","alphabetValues","parseBaseFromArray","valueOf","neg","left","toBaseString","parseStringValue","decimalPlace","parseNumberValue","toArray","zeros","toJSON","minusOne","isInstance","computedChecksum","CHARSET_INVERSE_INDEX","cons","any","full_add","s_a","c_a","c_b","c_out","s_out","b_i","f_a","isValidICXAddress","Sha1","rotl1","padTrytes","tritsCopy","padTag","padTagArray","tags","c32addressDecode","ERR_STREAM_PREMATURE_CLOSE","args","onlegacyfinish","writableEnded","readableEnded","onrequest","req","IOTA","isValidIotaAddress","throwIfNotStringOrBuffer","HashBase","blockSize","_block","_blockSize","_blockOffset","_length","_finalized","block","_digest","addressHash","keccak256","arg1","arg2","arg3","isValidHBarAddress","isValidBTSAddress","MD5","RIPEMD160","Base","alg","INT_LENGTH","HALF_3","clone_uint32Array","array","ta_slice","ta_reverse","middle","temp","bigint_not","rshift","swap32","lh","rh","carry1","carry2","bigint_sub","noborrow","vc","bigint_cmp","bigint_add","is_null","bigint_add_small","other","vc2","ILLEGAL_WORDS_LENGTH","flip_trits","rem","lhs","rhs","allMinusOne","tritSlice","sz","_classCallCheck","instance","Constructor","copyBuffer","target","inspect","custom","_Object$setPrototypeO","_defineProperty","_toPropertyKey","_toPrimitive","hint","prim","toPrimitive","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","iter","onReadable","wrapForNext","lastPromise","reject","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","setPrototypeOf","promise","asyncIterator","_this2","createReadableStreamAsyncIterator","_Object$create","iterator","ALPHABET_MAP","JSBigInt","alphabet_str","encoded_block_sizes","alphabet_size","full_block_size","full_encoded_block_size","UINT64_MAX","bintohex","bin","strtobin","bintostr","uint8_be_to_64","ZERO","twopow8","uint64_to_8be","toJSValue","encode_block","div","divRem","full_block_count","last_block_size","res_size","decode_block","res_num","order","last_block_decoded_size","data_size","createBuffer","previous","calc","signed","unsigned","model","crc1","accum","byte","TABLE","Int32Array","crc8","crc81wire","crc16","crc16ccitt","crc16modbus","crc16kermit","crc24","crcjam","T1","T2","Blake256","sigma","u256","padding","_length_carry","_compress","zo","oo","rot","_s","_nullt","_zo","_oo","readUInt32BE","_padding","lo","hi","msglen","writeUInt32BE","isEncoding","_normalizeEncoding","retried","normalizeEncoding","nenc","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","utf8CheckIncomplete","utf8CheckExtraBytes","utf8Text","total","utf8End","bs58check","cashaddr","Network","Type","detectAddressFormat","detectAddressNetwork","detectAddressType","toLegacyAddress","encodeAsLegacy","toBitpayAddress","encodeAsBitpay","toCashAddress","encodeAsCashaddr","toSlpAddress","encodeAsSlpaddr","toMainnetAddress","encodeAsMainnetaddr","toTestnetAddress","encodeAsTestnetaddr","toRegtestAddress","encodeAsRegtestaddr","toSlpRegtestAddress","encodeAsSlpRegtestaddr","P2PKH","P2SH","VERSION_BYTE","decodeBase58Address","decodeCashAddress","decodeSlpAddress","InvalidAddressError","Mainnet","Testnet","BASE_58_CHECK_PAYLOAD_LENGTH","decodeCashAddressWithPrefix","prefixes","decodeSlpAddressWithPrefix","isP2PKHAddress","isP2SHAddress","stack","_require","ERR_INVALID_ARG_TYPE","ERR_STREAM_PUSH_AFTER_EOF","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","updateReadableListening","listenerCount","first","consume","removeAllListeners","iterable","objectKeys","allowHalfOpen","onEndNT","strictMode","accumulator","sha256nodeCrypto","sha256js","_finalSize","assigned","lowBits","highBits","useCryptoModuleCache","nodeCryptoCreateHash","_nodeCryptoAvailable","isNodeCryptoAvailable","isAvailable","cryptoModule","default","curl_1","signing_1","warning","lengthOrOffset","transactionBufferSlice","transactionFieldOffset","transactionFieldLength","RangeError","transactionBuffer","transactionOffset","createObsoleteTag","warn","createCurrentIndex","createLastIndex","createBundle","transaction","ARRAY16","zl","zr","sl","sr","hr","rotl","fn1","fn2","fn3","fn4","fn5","readInt32LE","ar","br","cr","dr","tl","tr","writeUInt32LE","writeInt32LE","ardorRegex","finalSize","ADD64AA","o0","o1","ADD64AC","b0","b1","B2B_GET32","B2B_G","ix","iy","x0","x1","y0","y1","xor0","xor1","BLAKE2B_IV32","SIGMA8","SIGMA82","blake2bCompress","ctx","parameter_block","Blake2b","outlen","salt","personal","blake2bUpdate","blake2bFinal","hexSlice","config","warned","deprecated","console","trace","localStorage","SHA512","Sha384","ERROR","WINDOW","root","JS_SHA3_NO_WINDOW","WEB_WORKER","NODE_JS","JS_SHA3_NO_NODE_JS","versions","node","ARRAY_BUFFER","JS_SHA3_NO_ARRAY_BUFFER","HEX_CHARS","SHAKE_PADDING","CSHAKE_PADDING","KECCAK_PADDING","PADDING","SHIFT","RC","BITS","SHAKE_BITS","OUTPUT_TYPES","CSHAKE_BYTEPAD","JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW","isView","createOutputMethod","outputType","Keccak","createShakeOutputMethod","outputBits","createCshakeOutputMethod","createKmacOutputMethod","createOutputMethods","createMethod","createShakeMethod","createCshakeMethod","bytepad","createKmacMethod","Kmac","algorithms","methodNames","methodName","newMethodName","blocks","finalized","blockCount","byteCount","outputBlocks","extraBytes","notString","lastByteIndex","right","encodeString","strs","paddingBytes","arrayBuffer","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","b2","b3","b4","b5","b6","b7","b8","b9","b10","b11","b12","b13","b14","b15","b16","b17","b18","b19","b20","b21","b22","b23","b24","b25","b26","b27","b28","b29","b30","b31","b32","b33","b34","b35","b36","b37","b38","b39","b40","b41","b42","b43","b44","b45","b46","b47","b48","b49","NUMBER_OF_ROUNDS","STATE_LENGTH","TRUTH_TABLE","Curl","rounds","stateCopy","round","CONSTRUCT","token","_construct","BigInteger_base","BigInteger_base_log10","base_log10","ONE","M_ONE","group","numerals","radixRegex","expandExponential","prefixRE","parts","baseSection","diff","addOne","subtractOne","nl","cmp","pl","partial","bi","jlimit","multiplySingleDigit","imult1","divRemSmall","b_digits","b_index","quot","ylen","n_s","exp10","MAX_EXP","aux","two","exponent","modulus","NaN","firstNdigits","lowVal","makeUnary","makeBinary","makeTrinary","unary","binary","trinary","blake2b","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread","getOwnPropertyDescriptors","defineProperties","_defineProperties","descriptor","_createClass","protoProps","staticProps","_require2","_getString","_getBuffer","customInspect","_inheritsLoose","subClass","superClass","__proto__","createErrorType","getMessage","NodeError","_Base","oneOf","expected","thing","startsWith","endsWith","this_len","includes","actual","determiner","INPUT_ERROR","FINALIZE_ERROR","JS_SHA512_NO_WINDOW","JS_SHA512_NO_NODE_JS","COMMON_JS","JS_SHA512_NO_COMMON_JS","AMD","JS_SHA512_NO_ARRAY_BUFFER","EXTRA","JS_SHA512_NO_ARRAY_BUFFER_IS_VIEW","createHmacOutputMethod","HmacSha512","createHmacMethod","sharedMemory","h0h","h0l","h1h","h1l","h2h","h2l","h3h","h3l","h4h","h4l","h5h","h5l","h6h","h6l","h7h","h7l","hBytes","hashed","oKeyPad","iKeyPad","inner","s0h","s0l","s1h","s1l","abh","abl","dah","dal","cdh","cdl","bch","bcl","dataView","DataView","setUint32","copyTo","attrs","innerHash","sha512_224","hmac","POW_2_24","POW_2_32","POW_2_53","lastLength","ensureSpace","newByteLength","requiredLength","oldDataView","uint32count","getUint32","writeFloat64","setFloat64","writeUint8","setUint8","writeUint8Array","writeUint16","setUint16","writeUint32","writeUint64","writeTypeAndLength","encodeItem","utf8data","charCode","retView","getUint8","tagger","simpleValue","readArrayBuffer","readFloat16","tempArrayBuffer","tempDataView","readUint16","fraction","getFloat32","readFloat32","readFloat64","getFloat64","readUint8","getUint16","readUint32","readUint64","readBreak","readLength","additionalInformation","readIndefiniteStringLength","majorType","initialByte","appendUtf16data","utf16data","decodeItem","elements","fullArrayLength","fullArray","fullArrayOffset","retArray","retObject","INVALID_ASCII_CHARS","c32ToB58","b58ToC32","c32address","base58check","mainnet","p2pkh","p2sh","ADDR_BITCOIN_TO_STACKS","ADDR_STACKS_TO_BITCOIN","hash160hex","c32string","c32addr","b58check","stacksVersion","addrInfo","hash160String","addrVersion","bitcoinVersion","EE","_isStdio","didOnEnd","convertbits","frombits","tobits","acc","maxv","dec","program","recreate","inputHex","minLength","currentCode","nextCode","nextBits","nextLowBits","curC32Digit","C32leadingZeros","zeroPrefix","numLeadingZeroBytesInHex","c32input","numLeadingZeroBytes","carryBits","currentValue","currentHexDigit","hexLeadingZeros","hexStr","__DEV__","printWarning","argIndex","condition","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","asciiToTrytes","trytesToAscii","ascii","address_1","Blake2B","BECH32","numberToHex","number","arrayOfBytes","hexString","JsSHA","blake256","accountRegex","segmentRegex","doubleDashRegex","segments","segment","isValidSCAddress","fnF","fnG","fnH","fnI","define","_dereq_","1","SomePromiseArray","_SomePromiseArray","promises","setHowMany","setUnwrap","2","firstLineError","schedule","Queue","Async","_customScheduler","_isTickUsed","_lateQueue","_normalQueue","_haveDrainedQueues","drainQueues","_drainQueues","_schedule","AsyncInvokeLater","receiver","_queueTick","AsyncInvoke","AsyncSettlePromises","_pushOne","_drainQueue","queue","_drainQueueStep","_settlePromises","setScheduler","hasCustomScheduler","haveItemsQueued","fatalError","isNode","exit","throwLater","setTimeout","invokeLater","invoke","settlePromises","_reset","3","INTERNAL","tryConvertToPromise","calledBind","rejectThis","_reject","targetRejected","context","promiseRejectionQueued","bindingPromise","_then","bindingResolved","thisArg","_bitField","_resolveCallback","bindingRejected","_propagateFrom","propagateFromFunction","_boundValue","boundValueFunction","maybePromise","_target","_setBoundTo","_setOnCancel","_boundTo","_isBound","4","old","noConflict","bluebird","5","callerCache","getterCache","getGetter","canEvaluate","isIdentifier","ensureMethod","classString","caller","namedGetter","indexedGetter","propertyName","getter","isIndex","maybeGetter","6","PromiseArray","apiRejection","tryCatch","errorObj","async","_async","cancel","cancellation","_warn","child","_isCancellable","_cancelBy","_isFollowing","_followee","_cancelBranched","parent","_cancellationParent","_setWillBeCancelled","_branchHasCancelled","_branchesRemainingToCancel","_enoughBranchesHaveCancelled","canceller","_invokeOnCancel","_cancel","_setCancelled","_cancelPromises","_unsetOnCancel","_onCancelField","isPending","_isCancelled","isCancellable","isCancelled","_doInvokeOnCancel","onCancelCallback","internalOnly","_attachExtraTrace","_resultCancelled","_onCancel","_invokeInternalOnCancel","7","NEXT_FILTER","getKeys","catchFilter","instances","boundTo","predicateLoop","matchesPredicate","8","longStackTraces","contextStack","Context","_trace","CapturedTrace","peekContext","createContext","_promiseCreated","_pushContext","_popContext","_peekContext","deactivateLongStackTraces","activateLongStackTraces","Promise_pushContext","Promise_popContext","Promise_PeekContext","Promise_peekContext","Promise_promiseCreated","9","enableAsyncHooks","disableAsyncHooks","unhandledRejectionHandled","possiblyUnhandledRejection","deferUnhandledRejectionCheck","Warning","es5","canAttachTrace","bluebirdFramePattern","nodeFramePattern","parseLinePattern","stackFramePattern","formatStack","indentStackFrames","debugging","env","warnings","wForgottenReturn","unhandledRejectionCheck","_notifyUnhandledRejection","unhandledRejectionClear","suppressUnhandledRejections","_ensurePossibleRejectionHandled","_setRejectionIsUnhandled","_notifyUnhandledRejectionIsHandled","fireRejectionEvent","_setReturnedNonUndefined","_returnedNonUndefined","_isRejectionUnhandled","_settledValue","_setUnhandledRejectionIsNotified","_unsetUnhandledRejectionIsNotified","_isUnhandledRejectionNotified","_unsetRejectionIsUnhandled","shouldUseOwnTrace","onPossiblyUnhandledRejection","_getContext","contextBind","onUnhandledRejectionHandled","disableLongStackTraces","longStackTracesIsSupported","Promise_captureStackTrace","_captureStackTrace","Promise_attachExtraTrace","Promise_dereferenceTrace","_dereferenceTrace","longStackTracesCaptureStackTrace","longStackTracesAttachExtraTrace","longStackTracesDereferenceTrace","hasLongStackTraces","legacyHandlers","unhandledrejection","before","onunhandledrejection","after","rejectionhandled","onrejectionhandled","fireDomEvent","dispatch","legacy","dispatchEvent","CustomEvent","eventData","detail","cancelable","domEvent","Event","document","createEvent","initCustomEvent","fireGlobalEvent","generatePromiseLifecycleEventObject","eventToObjectGenerator","promiseCreated","promiseFulfilled","promiseRejected","promiseResolved","promiseCancelled","promiseChained","unhandledRejection","rejectionHandled","activeFireEvent","globalEventFired","domEventFired","defaultFireEvent","cancellationExecute","executor","onCancel","_attachCancellationCallback","cancellationAttachCancellationCallback","previousOnCancel","cancellationOnCancel","cancellationSetOnCancel","cancellationClearCancellationData","cancellationPropagateFrom","flags","branchesRemainingToCancel","bindingPropagateFrom","warningsOption","_clearCancellationData","_execute","monitoring","_fireEvent","nodeSupportsAsyncResource","asyncHooks","cur","handler","isFulfilled","ignoreSelf","_parent","attachExtraTrace","__stackCleaned__","parsed","parseStackAndMessage","notEnumerableProp","checkForgottenReturns","handlerLine","creatorLine","traceLines","cleanStack","line","lineMatches","firstUserLine","replacement","formatAndLogError","reconstructStack","stacks","removeDuplicateOrEmptyJumps","removeCommonRoots","currentLastIndex","currentLastLine","commonRootMeetPoint","isTraceLine","isInternalFrame","shouldIgnore","stackFramesAsArray","title","isSoft","localHandler","localEventFired","formatNonError","ruselessToString","newStr","snip","maxChars","captureStackTrace","parseLineInfoRegex","parseLineInfo","matches","fileName","setBounds","lastLineError","firstFileName","lastFileName","firstStackLines","lastStackLines","firstIndex","info","_promisesCreated","uncycle","nodes","stackToIndex","currentStack","cycleEdgeNode","currentChildLength","v8stackFramePattern","v8stackFormatter","stackTraceLimit","ignoreUntil","hasStackAfterThrow","isTTY","color","10","returner","thrower","thenReturn","thenThrow","catchThrow","_reason","caught","catchReturn","_value","11","PromiseReduce","PromiseAll","all","promiseAllThis","PromiseMapSeries","each","mapSeries","12","_TypeError","_RangeError","Objectfreeze","freeze","subError","nameProperty","defaultMessage","SubError","CancellationError","TimeoutError","AggregateError","level","OperationalError","cause","indent","lines","errorTypes","RejectionError","13","isES5","getDescriptor","names","getOwnPropertyNames","propertyIsWritable","prop","has","proto","ObjectKeys","ObjectGetDescriptor","ObjectDefineProperty","desc","ObjectFreeze","ObjectGetPrototypeOf","ArrayIsArray","14","PromiseMap","15","PassThroughHandlerContext","cancelPromise","FinallyHandlerCancelReaction","finallyHandler","checkCancel","succeed","fail","reasonOrValue","isFinallyHandler","isRejected","_passThrough","success","lastly","tap","tapCatch","handlerOrPredicate","catchInstances","16","Proxyable","yieldHandlers","promiseFromYieldHandler","traceParent","PromiseSpawn","generatorFunction","yieldHandler","_finallyPromise","_promise","_stack","_generatorFunction","_receiver","_generator","_yieldHandlers","_yieldedPromise","_cancellationPhase","_isResolved","_cleanup","_fulfill","_promiseCancelled","implementsReturn","coroutine","returnSentinel","_continue","_promiseFulfilled","_promiseRejected","_run","_rejectCallback","bitField","_proxy","PromiseSpawn$","generator","spawn","addYieldHandler","17","spread","18","MappingPromiseArray","_filter","constructor$","_callback","_preservedValues","_limit","_inFlight","_queue","_asyncInit","concurrency","_init$","_init","_values","preservedValues","totalResolved","_totalResolved","_resolve","booleans","19","_resolveFromSyncValue","attempt","20","maybeWrapAsError","isUntypedError","rErrorKey","wrapAsOperationalError","markAsOriginatingFromRejection","nodebackForPromise","multiArgs","wrapped","21","spreadAdapter","nodeback","successAdapter","errorAdapter","newReason","asCallback","nodeify","adapter","22","makeSelfResolutionError","reflectHandler","PromiseInspection","UNDEFINED_BINDING","setReflectHandler","getDomain","domain","getContextDefault","getContextDomain","AsyncResource","getContextAsyncHooks","getContext","APPLY","_fulfillmentHandler0","_rejectionHandler0","_promise0","_receiver0","_resolveFromExecutor","deferResolve","deferReject","fillTypes","reflect","didFulfill","didReject","_setIsFinal","fulfillmentValue","rejectionReason","originatesFromRejection","getNewLibraryCopy","is","fromNode","fromCallback","_isFateSealed","_setAsyncGuaranteed","cast","_setFulfilled","fulfilled","rejected","internalData","haveInternalData","settler","_settlePromiseCtx","_settlePromiseLateCancellationObserver","_addCallbacks","_setLength","_setRejected","_setFollowing","_isFinal","_unsetCancelled","_setNoAsyncGuarantee","_receiverAt","_promiseAt","_fulfillmentHandlerAt","_rejectionHandlerAt","_migrateCallback0","follower","fulfill","_migrateCallbackAt","proxyable","shouldBind","_setFollowee","synchronous","ignoreNonErrorWarnings","ensureErrorObject","hasStack","_settlePromiseFromHandler","_settlePromise","isPromise","asyncGuaranteed","_settlePromise0","_clearCallbackDataAtIndex","_fulfillPromises","_rejectPromises","toStringTag","defer","pending","toFastProperties","23","toResolutionValue","Map","resolveValueIfEmpty","asArray","_iterate","_resolveEmptyArray","getActualLength","shouldCopyValues","isResolved","24","THIS","withAppended","defaultSuffix","defaultPromisified","__isPromisified__","noCopyProps","noCopyPropsPattern","defaultFilter","propsFilter","isPromisified","hasPromisified","suffix","getDataPropertyOrDefault","checkValid","suffixRegexp","keyWithoutAsyncSuffix","promisifiableMethods","inheritedDataKeys","passesDefaultFilter","makeNodePromisifiedEval","escapeIdentRegex","makeNodePromisifiedClosure","__","defaultThis","promisified","makeNodePromisified","promisifyAll","promisifier","promisifiedKey","promisify","copyDescriptors","isClass","25","Es6Map","mapToEntries","extractEntry","entriesToMap","entries","PropertiesPromiseArray","isMap","_isMap","castValue","keyOffset","26","arrayMove","srcIndex","dstIndex","capacity","_capacity","_front","_willBeOverCapacity","_checkCapacity","wrapMask","front","_resizeTo","oldCapacity","moveItemsCount","27","raceLater","race","28","ReductionPromiseArray","initialValue","_each","_fn","_initialValue","_currentCancellable","_eachValues","completed","valueOrReason","gotAccum","_gotAccum","gotValue","_eachComplete","sender","_resultCancelled$","29","noAsyncScheduler","NativePromise","getNativePromise","MutationObserver","GlobalSetImmediate","ProcessNextTick","isRecentNode","nativePromise","navigator","standalone","cordova","documentElement","createElement","attributes","toggleScheduled","div2","o2","classList","toggle","observe","scheduleToggle","disconnect","30","SettledPromiseArray","_promiseResolved","inspection","_settledValueField","settle","allSettled","31","CANCELLATION","_howMany","_unwrap","_initialized","howMany","isArrayResolved","_canPossiblyFulfill","_getRangeError","_addFulfilled","_fulfilled","_addRejected","_checkOutcome","_rejected","32","__isCancelled","33","getThen","isAnyBluebirdPromise","doThenable","doGetThen","hasProp","34","HandleWrapper","handle","clearTimeout","afterValue","delay","ms","afterTimeout","successClear","failureClear","timeout","handleWrapper","35","NULL","castPreservingDisposable","thenable","_isDisposable","_getDisposer","_setDisposable","dispose","resources","tryDispose","Disposer","_data","_context","FunctionDisposer","maybeUnwrapDisposer","isDisposer","ResourceList","resource","doDispose","_unsetDisposable","using","spreadArgs","disposer","reflectedResources","resultPromise","inspections","_disposer","36","tryCatchTarget","globalObject","tryCatcher","Child","Parent","T","maybeError","safeToString","appendee","defaultValue","excludedPrototypes","isExcludedProto","visitedKeys","enumeration","thisAssignmentPattern","hasMethods","hasMethodsOtherThanConstructor","hasThisAssignmentAndStaticMethods","FakeConstructor","ic","foo","rident","filledRange","ignore","ArrayFrom","itResult","it","hasEnvVariables","runInAsyncScope","supportsAsync","ReflectOwnKeys","Reflect","ReflectApply","ProcessEmitWarning","NumberIsNaN","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","that","_addListener","prepend","events","existing","newListener","onceWrapper","fired","wrapFn","_onceWrap","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","spliceOne","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","addEventListener","wrapListener","removeEventListener","setMaxListeners","getMaxListeners","doError","prependOnceListener","position","originalListener","off","rawListeners","eventNames"],"mappings":"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AM,GAAM,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAC1F,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAC1F,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAC1F,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAC1F,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAC1F,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,EAAM,EAAM,GAAM,GAC1F,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAC1F,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAC1F,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAC1F,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAC1F,GAAM,GAAM,GAAM,GAAM,EAAM,EAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAC1F,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAC1F,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,EAAM,EAAM,EAAM,GAAM,GAAM,GAAM,GAAM,GAC1F,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAC1F,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,KAGlE,qBAAfC,aAA4B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Q,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,KAAQ,MAAQ,KAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,KAAQ,KAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,KAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,KAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,KACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,KACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,KAAQ,IAAQ,MAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,IAAQ,KAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,KAAQ,KAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,KAAQ,MAAQ,KAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,KAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,KAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,KACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,MAGhC,qBAAfohD,aAA4B,EAAQ,IAAIA,WAAW,IAE9D,MAAMI,EAAa,EAAU,SAAS,SAAS7wC,EAAKgwC,GAC7C,YAAOxhC,SAASxO,KAAMA,EAAM,EAAaA,IAE9C,IAAI3Q,EAA0B,qBAAb2gD,IAA6BA,EAAW,MAEzD,IAAK,IAAIxvC,EAAQ,EAAGA,EAAQR,EAAIla,OAAQ0a,IAAS,CAC/C,MAAM+vC,EAAOvwC,EAAIQ,GACjBnR,EAAyD,OAAlD,EAA4B,KAApBA,GAAO,EAAKkhD,IAAiBlhD,GAAO,GAGrD,OAAOA,KAGM,QClDf,IAAI,EAAQ,CACV,EAAQ,MAAQ,MAAQ,IAAQ,MAAQ,IAAQ,IAAQ,MACxD,MAAQ,KAAQ,KAAQ,MAAQ,KAAQ,MAAQ,MAAQ,KACxD,MAAQ,KAAQ,KAAQ,MAAQ,KAAQ,MAAQ,MAAQ,KACxD,KAAQ,MAAQ,MAAQ,KAAQ,MAAQ,KAAQ,KAAQ,MACxD,MAAQ,KAAQ,KAAQ,MAAQ,KAAQ,MAAQ,MAAQ,KACxD,KAAQ,MAAQ,MAAQ,IAAQ,MAAQ,KAAQ,KAAQ,MACxD,KAAQ,MAAQ,MAAQ,KAAQ,MAAQ,KAAQ,KAAQ,MACxD,MAAQ,KAAQ,KAAQ,MAAQ,KAAQ,MAAQ,MAAQ,KACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,KAAQ,KAAQ,MAAQ,KAAQ,MAAQ,MAAQ,KACxD,KAAQ,MAAQ,MAAQ,KAAQ,MAAQ,KAAQ,KAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,OAGhC,qBAAfohD,aAA4B,EAAQ,IAAIA,WAAW,IAE9D,MAAMK,EAAc,EAAU,iBAAiB,SAAS9wC,EAAKgwC,GACtD,YAAOxhC,SAASxO,KAAMA,EAAM,EAAaA,IAE9C,IAAI3Q,EAA0B,qBAAb2gD,IAA6BA,EAAW,MAEzD,IAAK,IAAIxvC,EAAQ,EAAGA,EAAQR,EAAIla,OAAQ0a,IAAS,CAC/C,MAAM+vC,EAAOvwC,EAAIQ,GACjBnR,EAAkD,OAA3C,EAAqB,KAAdA,EAAMkhD,IAAiBlhD,GAAO,GAG9C,OAAOA,KAGM,QCpDf,MAAMc,EAAc,EAAU,UAAU,SAAS6P,EAAKgwC,GAC/C,YAAOxhC,SAASxO,KAAMA,EAAM,EAAaA,IAE9C,IAAI3Q,EAA0B,qBAAb2gD,IAA6BA,EAAW,EAEzD,IAAK,IAAIxvC,EAAQ,EAAGA,EAAQR,EAAIla,OAAQ0a,IAAS,CAC/C,MAAM+vC,EAAOvwC,EAAIQ,GACjB,IAAIugB,EAAQ1xB,IAAQ,EAAK,IAEzB0xB,GAAe,IAAPwvB,EACRxvB,GAAQA,IAAS,EACjB1xB,EAAOA,GAAO,EAAK,MACnBA,GAAO0xB,EACPA,EAAQA,GAAQ,EAAK,MACrB1xB,GAAO0xB,EACPA,EAAQA,GAAQ,EAAK,MACrB1xB,GAAO0xB,EAGT,OAAO1xB,KAGM,QCpBf,IAAI,EAAQ,CACV,EAAQ,KAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,KAAQ,IAAQ,MAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,KAAQ,MAAQ,IAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,KAAQ,KAAQ,IAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,KAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,KAAQ,MAAQ,KACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,MAAQ,KAAQ,KACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,KAAQ,KACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,KAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,KAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,KAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,KAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,KAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,KAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACxD,MAAQ,MAAQ,MAA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I,EAAG,EAAG,GAAI,EAAG,EAAG,GACpD,CAAC,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GACpD,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GACpD,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,IACnD,CAAC,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GACpD,CAAC,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IACnD,CAAC,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,IACnD,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GACpD,CAAC,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GACpD,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IACnD,CAAC,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GACpD,CAAC,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GACpD,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GACpD,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,IACnD,CAAC,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAGtDD,EAASE,KAAO,CACd,UAAY,WAAY,UAAY,SACpC,WAAY,UAAY,UAAY,WACpC,WAAY,UAAY,WAAY,UACpC,WAAY,WAAY,WAAY,YAGtCF,EAASG,QAAUprD,EAAOmN,KAAK,CAC7B,IAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAChD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAChD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAChD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAChD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAChD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAChD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAChD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAGhC89C,EAAS/oD,UAAUmpD,cAAgB,SAAUvhB,GAC3C,IAAK,IAAIhnC,EAAI,EAAGA,EAAIgnC,EAAInqC,SAAUmD,EAAG,CACnC,GAAIgnC,EAAIhnC,GAAK,WAAc,MAC3BgnC,EAAIhnC,IAAM,WACVgnC,EAAIhnC,EAAI,IAAM,IAIlBmoD,EAAS/oD,UAAUiE,OAAS,SAAUyO,EAAMpP,GAC1CoP,EAAO5U,EAAOmN,KAAKyH,EAAMpP,GACzB,IAAIs9C,EAAQxhD,KAAKmhD,OACbl5B,EAAS,EAEb,MAAOjoB,KAAKqhD,aAAe/tC,EAAKjV,OAAS4pB,GAAUu5B,EAAMnjD,OAAQ,CAC/D,IAAK,IAAIiD,EAAItB,KAAKqhD,aAAc//C,EAAIkgD,EAAMnjD,QAASmjD,EAAMlgD,KAAOgS,EAAK2U,KAErEjoB,KAAKshD,QAAQ,IAAqB,EAAfE,EAAMnjD,OACzB2B,KAAK+pD,cAAc/pD,KAAKshD,SAExBthD,KAAKgqD,YACLhqD,KAAKqhD,aAAe,EAGtB,MAAOp5B,EAAS3U,EAAKjV,OAAQmjD,EAAMxhD,KAAKqhD,gBAAkB/tC,EAAK2U,KAC/D,OAAOjoB,MAGT,IAAIiqD,EAAKvrD,EAAOmN,KAAK,CAAC,IAClBq+C,EAAKxrD,EAAOmN,KAAK,CAAC,MAEtB,SAASs+C,EAAK1lD,EAAGjB,GACf,OAASiB,GAAM,GAAKjB,EAAOiB,IAAMjB,KAAQ,EAG3C,SAASO,EAAGqB,EAAGrD,EAAGT,EAAGF,EAAGX,EAAGC,EAAGC,EAAGU,GAC/B,IAAIuoD,EAAQD,EAASC,MACjBC,EAAOF,EAASE,KAEpBzkD,EAAEhE,GAAMgE,EAAEhE,KAAOW,EAAE6nD,EAAMtoD,GAAGD,IAAMwoD,EAAKD,EAAMtoD,GAAGD,EAAI,OAAS,GAAK+D,EAAE3E,KAAQ,EAC5E2E,EAAEzE,GAAKwpD,EAAI/kD,EAAEzE,GAAKyE,EAAEhE,GAAI,IACxBgE,EAAE1E,GAAM0E,EAAE1E,GAAK0E,EAAEzE,KAAQ,EACzByE,EAAE3E,GAAK0pD,EAAI/kD,EAAE3E,GAAK2E,EAAE1E,GAAI,IACxB0E,EAAEhE,GAAMgE,EAAEhE,KAAOW,EAAE6nD,EAAMtoD,GAAGD,EAAI,IAAMwoD,EAAKD,EAAMtoD,GAAGD,OAAS,GAAK+D,EAAE3E,KAAQ,EAC5E2E,EAAEzE,GAAKwpD,EAAI/kD,EAAEzE,GAAKyE,EAAEhE,GAAI,GACxBgE,EAAE1E,GAAM0E,EAAE1E,GAAK0E,EAAEzE,KAAQ,EACzByE,EAAE3E,GAAK0pD,EAAI/kD,EAAE3E,GAAK2E,EAAE1E,GAAI,GAG1B,SAASipD,IACP3pD,KAAKw0C,GAAK,CACR,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,YAGtCx0C,KAAKoqD,GAAK,CAAC,EAAG,EAAG,EAAG,GAEpBpqD,KAAKmhD,OAASziD,EAAO8J,MAAM,IAC3BxI,KAAKqhD,aAAe,EACpBrhD,KAAKshD,QAAU,CAAC,EAAG,GAEnBthD,KAAKqqD,QAAS,EAEdrqD,KAAKsqD,IAAML,EACXjqD,KAAKuqD,IAAML,EAGbP,EAAS/oD,UAAUopD,UAAY,WAC7B,IAGI1oD,EAHAuoD,EAAOF,EAASE,KAChBzkD,EAAI,IAAItF,MAAM,IACdiC,EAAI,IAAIjC,MAAM,IAGlB,IAAKwB,EAAI,EAAGA,EAAI,KAAMA,EAAGS,EAAET,GAAKtB,KAAKmhD,OAAOqJ,aAAiB,EAAJlpD,GACzD,IAAKA,EAAI,EAAGA,EAAI,IAAKA,EAAG8D,EAAE9D,GAAKtB,KAAKw0C,GAAGlzC,KAAO,EAC9C,IAAKA,EAAI,EAAGA,EAAI,KAAMA,EAAG8D,EAAE9D,IAAMtB,KAAKoqD,GAAG9oD,EAAI,GAAKuoD,EAAKvoD,EAAI,MAAQ,EACnE,IAAKA,EAAI,GAAIA,EAAI,KAAMA,EAAG8D,EAAE9D,GAAKuoD,EAAKvoD,EAAI,GAS1C,IAPKtB,KAAKqqD,SACRjlD,EAAE,KAAOA,EAAE,IAAMpF,KAAKshD,QAAQ,MAAQ,EACtCl8C,EAAE,KAAOA,EAAE,IAAMpF,KAAKshD,QAAQ,MAAQ,EACtCl8C,EAAE,KAAOA,EAAE,IAAMpF,KAAKshD,QAAQ,MAAQ,EACtCl8C,EAAE,KAAOA,EAAE,IAAMpF,KAAKshD,QAAQ,MAAQ,GAGnChgD,EAAI,EAAGA,EAAI,KAAMA,EAEpByC,EAAEqB,EAAGrD,EAAGT,EAAG,EAAG,EAAG,EAAG,GAAI,GACxByC,EAAEqB,EAAGrD,EAAGT,EAAG,EAAG,EAAG,EAAG,GAAI,GACxByC,EAAEqB,EAAGrD,EAAGT,EAAG,EAAG,EAAG,GAAI,GAAI,GACzByC,EAAEqB,EAAGrD,EAAGT,EAAG,EAAG,EAAG,GAAI,GAAI,GAEzByC,EAAEqB,EAAGrD,EAAGT,EAAG,EAAG,EAAG,GAAI,GAAI,GACzByC,EAAEqB,EAAGrD,EAAGT,EAAG,EAAG,EAAG,GAAI,GAAI,IACzByC,EAAEqB,EAAGrD,EAAGT,EAAG,EAAG,EAAG,EAAG,GAAI,IACxByC,EAAEqB,EAAGrD,EAAGT,EAAG,EAAG,EAAG,EAAG,GAAI,IAG1B,IAAKA,EAAI,EAAGA,EAAI,KAAMA,EAAGtB,KAAKw0C,GAAGlzC,EAAI,IAAMtB,KAAKw0C,GAAGlzC,EAAI,GAAK8D,EAAE9D,MAAQ,EACtE,IAAKA,EAAI,EAAGA,EAAI,IAAKA,EAAGtB,KAAKw0C,GAAGlzC,IAAMtB,KAAKw0C,GAAGlzC,GAAKtB,KAAKoqD,GAAG9oD,EAAI,MAAQ,GAGzEqoD,EAAS/oD,UAAU6pD,SAAW,WAC5B,IAAIC,EAAK1qD,KAAKshD,QAAQ,GAAyB,EAApBthD,KAAKqhD,aAC5BsJ,EAAK3qD,KAAKshD,QAAQ,GAClBoJ,GAAM,aACRA,GAAM,WACNC,GAAM,GAGR,IAAIC,EAASlsD,EAAO8J,MAAM,GAC1BoiD,EAAOC,cAAcF,EAAI,GACzBC,EAAOC,cAAcH,EAAI,GAEC,KAAtB1qD,KAAKqhD,cACPrhD,KAAKshD,QAAQ,IAAM,EACnBthD,KAAK6E,OAAO7E,KAAKuqD,OAEbvqD,KAAKqhD,aAAe,IACI,IAAtBrhD,KAAKqhD,eAAoBrhD,KAAKqqD,QAAS,GAC3CrqD,KAAKshD,QAAQ,IAAiC,GAA1B,GAAKthD,KAAKqhD,cAC9BrhD,KAAK6E,OAAO8kD,EAASG,QAAQ5qD,MAAM,EAAG,GAAKc,KAAKqhD,iBAEhDrhD,KAAKshD,QAAQ,IAAiC,GAA1B,GAAKthD,KAAKqhD,cAC9BrhD,KAAK6E,OAAO8kD,EAASG,QAAQ5qD,MAAM,EAAG,GAAKc,KAAKqhD,eAChDrhD,KAAKshD,QAAQ,IAAM,IACnBthD,KAAK6E,OAAO8kD,EAASG,QAAQ5qD,MAAM,EAAG,KACtCc,KAAKqqD,QAAS,GAGhBrqD,KAAK6E,OAAO7E,KAAKsqD,KACjBtqD,KAAKshD,QAAQ,IAAM,GAGrBthD,KAAKshD,QAAQ,IAAM,GACnBthD,KAAK6E,OAAO+lD,IAGdjB,EAAS/oD,UAAUsf,OAAS,SAAUhc,GACpClE,KAAKyqD,WAGL,IADA,IAAIxrD,EAASP,EAAO8J,MAAM,IACjBlH,EAAI,EAAGA,EAAI,IAAKA,EAAGrC,EAAO4rD,cAAc7qD,KAAKw0C,GAAGlzC,GAAQ,EAAJA,GAC7D,OAAOrC,EAAOmU,SAASlP,IAGzB5F,EAAOC,QAAUorD,I,+DClKjB,IAAIjrD,EAAS,EAAQ,QAAeA,OAGhCosD,EAAapsD,EAAOosD,YAAc,SAAU5mD,GAE9C,OADAA,EAAW,GAAKA,EACRA,GAAYA,EAASsP,eAC3B,IAAK,MAAM,IAAK,OAAO,IAAK,QAAQ,IAAK,QAAQ,IAAK,SAAS,IAAK,SAAS,IAAK,OAAO,IAAK,QAAQ,IAAK,UAAU,IAAK,WAAW,IAAK,MACxI,OAAO,EACT,QACE,OAAO,IAIb,SAASu3C,EAAmBjkB,GAC1B,IAAKA,EAAK,MAAO,OACjB,IAAIkkB,EACJ,MAAO,EACL,OAAQlkB,GACN,IAAK,OACL,IAAK,QACH,MAAO,OACT,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,MAAO,UACT,IAAK,SACL,IAAK,SACH,MAAO,SACT,IAAK,SACL,IAAK,QACL,IAAK,MACH,OAAOA,EACT,QACE,GAAIkkB,EAAS,OACblkB,GAAO,GAAKA,GAAKtzB,cACjBw3C,GAAU,GAOlB,SAASC,EAAkBnkB,GACzB,IAAIokB,EAAOH,EAAmBjkB,GAC9B,GAAoB,kBAATokB,IAAsBxsD,EAAOosD,aAAeA,IAAeA,EAAWhkB,IAAO,MAAM,IAAIvnC,MAAM,qBAAuBunC,GAC/H,OAAOokB,GAAQpkB,EAOjB,SAASlB,EAAc1hC,GAErB,IAAI8pC,EACJ,OAFAhuC,KAAKkE,SAAW+mD,EAAkB/mD,GAE1BlE,KAAKkE,UACX,IAAK,UACHlE,KAAKk+C,KAAOiN,EACZnrD,KAAK+M,IAAMq+C,EACXpd,EAAK,EACL,MACF,IAAK,OACHhuC,KAAKqrD,SAAWC,EAChBtd,EAAK,EACL,MACF,IAAK,SACHhuC,KAAKk+C,KAAOqN,EACZvrD,KAAK+M,IAAMy+C,EACXxd,EAAK,EACL,MACF,QAGE,OAFAhuC,KAAKgnC,MAAQykB,OACbzrD,KAAK+M,IAAM2+C,GAGf1rD,KAAK2rD,SAAW,EAChB3rD,KAAK4rD,UAAY,EACjB5rD,KAAK6rD,SAAWntD,EAAOkD,YAAYosC,GAoCrC,SAAS8d,EAAchD,GACrB,OAAIA,GAAQ,IAAa,EAAWA,GAAQ,IAAM,EAAa,EAAWA,GAAQ,IAAM,GAAa,EAAWA,GAAQ,IAAM,GAAa,EACpIA,GAAQ,IAAM,GAAQ,GAAK,EAMpC,SAASiD,EAAoBrgC,EAAMnT,EAAKjX,GACtC,IAAIE,EAAI+W,EAAIla,OAAS,EACrB,GAAImD,EAAIF,EAAG,OAAO,EAClB,IAAI0sC,EAAK8d,EAAcvzC,EAAI/W,IAC3B,OAAIwsC,GAAM,GACJA,EAAK,IAAGtiB,EAAKigC,SAAW3d,EAAK,GAC1BA,KAEHxsC,EAAIF,IAAa,IAAR0sC,EAAkB,GACjCA,EAAK8d,EAAcvzC,EAAI/W,IACnBwsC,GAAM,GACJA,EAAK,IAAGtiB,EAAKigC,SAAW3d,EAAK,GAC1BA,KAEHxsC,EAAIF,IAAa,IAAR0sC,EAAkB,GACjCA,EAAK8d,EAAcvzC,EAAI/W,IACnBwsC,GAAM,GACJA,EAAK,IACI,IAAPA,EAAUA,EAAK,EAAOtiB,EAAKigC,SAAW3d,EAAK,GAE1CA,GAEF,IAWT,SAASge,EAAoBtgC,EAAMnT,EAAKvW,GACtC,GAAwB,OAAV,IAATuW,EAAI,IAEP,OADAmT,EAAKigC,SAAW,EACT,IAET,GAAIjgC,EAAKigC,SAAW,GAAKpzC,EAAIla,OAAS,EAAG,CACvC,GAAwB,OAAV,IAATka,EAAI,IAEP,OADAmT,EAAKigC,SAAW,EACT,IAET,GAAIjgC,EAAKigC,SAAW,GAAKpzC,EAAIla,OAAS,GACZ,OAAV,IAATka,EAAI,IAEP,OADAmT,EAAKigC,SAAW,EACT,KAOf,SAASL,EAAa/yC,GACpB,IAAIvW,EAAIhC,KAAK4rD,UAAY5rD,KAAK2rD,SAC1B3nD,EAAIgoD,EAAoBhsD,KAAMuY,EAAKvW,GACvC,YAAUiL,IAANjJ,EAAwBA,EACxBhE,KAAK2rD,UAAYpzC,EAAIla,QACvBka,EAAI21B,KAAKluC,KAAK6rD,SAAU7pD,EAAG,EAAGhC,KAAK2rD,UAC5B3rD,KAAK6rD,SAASz4C,SAASpT,KAAKkE,SAAU,EAAGlE,KAAK4rD,aAEvDrzC,EAAI21B,KAAKluC,KAAK6rD,SAAU7pD,EAAG,EAAGuW,EAAIla,aAClC2B,KAAK2rD,UAAYpzC,EAAIla,SAMvB,SAAS4tD,EAAS1zC,EAAKjX,GACrB,IAAI4qD,EAAQH,EAAoB/rD,KAAMuY,EAAKjX,GAC3C,IAAKtB,KAAK2rD,SAAU,OAAOpzC,EAAInF,SAAS,OAAQ9R,GAChDtB,KAAK4rD,UAAYM,EACjB,IAAIn/C,EAAMwL,EAAIla,QAAU6tD,EAAQlsD,KAAK2rD,UAErC,OADApzC,EAAI21B,KAAKluC,KAAK6rD,SAAU,EAAG9+C,GACpBwL,EAAInF,SAAS,OAAQ9R,EAAGyL,GAKjC,SAASo/C,EAAQ5zC,GACf,IAAIvU,EAAIuU,GAAOA,EAAIla,OAAS2B,KAAKgnC,MAAMzuB,GAAO,GAC9C,OAAIvY,KAAK2rD,SAAiB3nD,EAAI,IACvBA,EAOT,SAASmnD,EAAU5yC,EAAKjX,GACtB,IAAKiX,EAAIla,OAASiD,GAAK,IAAM,EAAG,CAC9B,IAAI0C,EAAIuU,EAAInF,SAAS,UAAW9R,GAChC,GAAI0C,EAAG,CACL,IAAItD,EAAIsD,EAAEiC,WAAWjC,EAAE3F,OAAS,GAChC,GAAIqC,GAAK,OAAUA,GAAK,MAKtB,OAJAV,KAAK2rD,SAAW,EAChB3rD,KAAK4rD,UAAY,EACjB5rD,KAAK6rD,SAAS,GAAKtzC,EAAIA,EAAIla,OAAS,GACpC2B,KAAK6rD,SAAS,GAAKtzC,EAAIA,EAAIla,OAAS,GAC7B2F,EAAE9E,MAAM,GAAI,GAGvB,OAAO8E,EAKT,OAHAhE,KAAK2rD,SAAW,EAChB3rD,KAAK4rD,UAAY,EACjB5rD,KAAK6rD,SAAS,GAAKtzC,EAAIA,EAAIla,OAAS,GAC7Bka,EAAInF,SAAS,UAAW9R,EAAGiX,EAAIla,OAAS,GAKjD,SAAS+sD,EAAS7yC,GAChB,IAAIvU,EAAIuU,GAAOA,EAAIla,OAAS2B,KAAKgnC,MAAMzuB,GAAO,GAC9C,GAAIvY,KAAK2rD,SAAU,CACjB,IAAI5+C,EAAM/M,KAAK4rD,UAAY5rD,KAAK2rD,SAChC,OAAO3nD,EAAIhE,KAAK6rD,SAASz4C,SAAS,UAAW,EAAGrG,GAElD,OAAO/I,EAGT,SAASunD,EAAWhzC,EAAKjX,GACvB,IAAIkC,GAAK+U,EAAIla,OAASiD,GAAK,EAC3B,OAAU,IAANkC,EAAgB+U,EAAInF,SAAS,SAAU9R,IAC3CtB,KAAK2rD,SAAW,EAAInoD,EACpBxD,KAAK4rD,UAAY,EACP,IAANpoD,EACFxD,KAAK6rD,SAAS,GAAKtzC,EAAIA,EAAIla,OAAS,IAEpC2B,KAAK6rD,SAAS,GAAKtzC,EAAIA,EAAIla,OAAS,GACpC2B,KAAK6rD,SAAS,GAAKtzC,EAAIA,EAAIla,OAAS,IAE/Bka,EAAInF,SAAS,SAAU9R,EAAGiX,EAAIla,OAASmF,IAGhD,SAASgoD,EAAUjzC,GACjB,IAAIvU,EAAIuU,GAAOA,EAAIla,OAAS2B,KAAKgnC,MAAMzuB,GAAO,GAC9C,OAAIvY,KAAK2rD,SAAiB3nD,EAAIhE,KAAK6rD,SAASz4C,SAAS,SAAU,EAAG,EAAIpT,KAAK2rD,UACpE3nD,EAIT,SAASynD,EAAYlzC,GACnB,OAAOA,EAAInF,SAASpT,KAAKkE,UAG3B,SAASwnD,EAAUnzC,GACjB,OAAOA,GAAOA,EAAIla,OAAS2B,KAAKgnC,MAAMzuB,GAAO,GAzN/Cha,EAAQqnC,cAAgBA,EA6BxBA,EAAchlC,UAAUomC,MAAQ,SAAUzuB,GACxC,GAAmB,IAAfA,EAAIla,OAAc,MAAO,GAC7B,IAAI2F,EACA1C,EACJ,GAAItB,KAAK2rD,SAAU,CAEjB,GADA3nD,EAAIhE,KAAKqrD,SAAS9yC,QACRtL,IAANjJ,EAAiB,MAAO,GAC5B1C,EAAItB,KAAK2rD,SACT3rD,KAAK2rD,SAAW,OAEhBrqD,EAAI,EAEN,OAAIA,EAAIiX,EAAIla,OAAe2F,EAAIA,EAAIhE,KAAKk+C,KAAK3lC,EAAKjX,GAAKtB,KAAKk+C,KAAK3lC,EAAKjX,GAC/D0C,GAAK,IAGd4hC,EAAchlC,UAAUmM,IAAMo/C,EAG9BvmB,EAAchlC,UAAUs9C,KAAO+N,EAG/BrmB,EAAchlC,UAAUyqD,SAAW,SAAU9yC,GAC3C,GAAIvY,KAAK2rD,UAAYpzC,EAAIla,OAEvB,OADAka,EAAI21B,KAAKluC,KAAK6rD,SAAU7rD,KAAK4rD,UAAY5rD,KAAK2rD,SAAU,EAAG3rD,KAAK2rD,UACzD3rD,KAAK6rD,SAASz4C,SAASpT,KAAKkE,SAAU,EAAGlE,KAAK4rD,WAEvDrzC,EAAI21B,KAAKluC,KAAK6rD,SAAU7rD,KAAK4rD,UAAY5rD,KAAK2rD,SAAU,EAAGpzC,EAAIla,QAC/D2B,KAAK2rD,UAAYpzC,EAAIla,S,kCC3GvBC,EAAOC,QAAU6E,EAEjB,IAAID,EAAY,EAAQ,QAGpBknC,EAAOr+B,OAAOib,OAAO,EAAQ,SAMjC,SAAS7jB,EAAY4D,GACnB,KAAMhH,gBAAgBoD,GAAc,OAAO,IAAIA,EAAY4D,GAE3D7D,EAAUhD,KAAKH,KAAMgH,GARvBqjC,EAAK3qC,SAAW,EAAQ,QAGxB2qC,EAAK3qC,SAAS0D,EAAaD,GAQ3BC,EAAYxC,UAAUwc,WAAa,SAAUU,EAAO5Z,EAAUoY,GAC5DA,EAAG,KAAMwB,K,sBC7CX;;;;;;;;AAQA,IAAIsuC,EAAY,EAAQ,QACpBC,EAAW,EAAQ,QAkBnB9xC,EAAS,CACb,OAAgB,SAChB,OAAgB,SAChB,SAAkB,WAClB,QAAiB,WAMb+xC,EAAU,CACd,QAAkB,UAClB,QAAkB,WAMdC,EAAO,GAUX,SAAS/tD,EAAgB+N,GACvB,IAEE,OADA2N,EAAc3N,IACP,EACP,MAAO4N,GACP,OAAO,GAWX,SAASqyC,EAAqBxuD,GAC5B,OAAOkc,EAAclc,GAASs+B,OAUhC,SAASmwB,EAAsBzuD,GAC7B,OAAOkc,EAAclc,GAASqkB,QAUhC,SAASqqC,EAAmB1uD,GAC1B,OAAOkc,EAAclc,GAAS4uB,KAUhC,SAAS+/B,EAAiB3uD,GACxB,IAAIwd,EAAUtB,EAAclc,GAC5B,OAAIwd,EAAQ8gB,SAAW/hB,EAAOC,OACrBxc,EAEF4uD,EAAepxC,GAUxB,SAASqxC,EAAiB7uD,GACxB,IAAIwd,EAAUtB,EAAclc,GAC5B,OAAIwd,EAAQ8gB,SAAW/hB,EAAOE,OACrBzc,EAEF8uD,EAAetxC,GAUxB,SAASuxC,EAAe/uD,GACtB,IAAIwd,EAAUtB,EAAclc,GAC5B,OAAOgvD,EAAiBxxC,GAU1B,SAASyxC,EAAcjvD,GACrB,IAAIwd,EAAUtB,EAAclc,GAC5B,OAAOkvD,EAAgB1xC,GAUzB,SAAS2xC,EAAkBnvD,GACzB,IAAIwd,EAAUtB,EAAclc,GAC5B,OAAOovD,EAAoB5xC,GAU7B,SAAS6xC,EAAkBrvD,GACzB,IAAIwd,EAAUtB,EAAclc,GAC5B,OAAOsvD,EAAoB9xC,GAU7B,SAAS+xC,EAAkBvvD,GACzB,IAAIwd,EAAUtB,EAAclc,GAC5B,OAAOwvD,EAAoBhyC,GAU7B,SAASiyC,EAAqBzvD,GAC5B,IAAIwd,EAAUtB,EAAclc,GAC5B,OAAO0vD,EAAuBlyC,GAtJhC+wC,EAAKoB,MAAQ,QACbpB,EAAKqB,KAAO,OA4JZ,IAAIC,EAAe,GAuBnB,SAAS3zC,EAAelc,GACtB,IACE,OAAO8vD,EAAoB9vD,GAC3B,MAAOmc,IAET,IACE,OAAO4zC,EAAkB/vD,GACzB,MAAOmc,IAET,IACE,OAAO6zC,EAAiBhwD,GACxB,MAAOmc,IAET,MAAM,IAAI8zC,EAnCZJ,EAAatzC,EAAOC,QAAU,GAC9BqzC,EAAatzC,EAAOC,QAAQ8xC,EAAQ4B,SAAW,GAC/CL,EAAatzC,EAAOC,QAAQ8xC,EAAQ4B,SAAS3B,EAAKoB,OAAS,EAC3DE,EAAatzC,EAAOC,QAAQ8xC,EAAQ4B,SAAS3B,EAAKqB,MAAQ,EAC1DC,EAAatzC,EAAOC,QAAQ8xC,EAAQ6B,SAAW,GAC/CN,EAAatzC,EAAOC,QAAQ8xC,EAAQ6B,SAAS5B,EAAKoB,OAAS,IAC3DE,EAAatzC,EAAOC,QAAQ8xC,EAAQ6B,SAAS5B,EAAKqB,MAAQ,IAC1DC,EAAatzC,EAAOE,QAAU,GAC9BozC,EAAatzC,EAAOE,QAAQ6xC,EAAQ4B,SAAW,GAC/CL,EAAatzC,EAAOE,QAAQ6xC,EAAQ4B,SAAS3B,EAAKoB,OAAS,GAC3DE,EAAatzC,EAAOE,QAAQ6xC,EAAQ4B,SAAS3B,EAAKqB,MAAQ,GAC1DC,EAAatzC,EAAOE,QAAQ6xC,EAAQ6B,SAAW,GAC/CN,EAAatzC,EAAOE,QAAQ6xC,EAAQ6B,SAAS5B,EAAKoB,OAAS,IAC3DE,EAAatzC,EAAOE,QAAQ6xC,EAAQ6B,SAAS5B,EAAKqB,MAAQ,IA8B1D,IAAIQ,EAA+B,GASnC,SAASN,EAAqB9vD,GAC5B,IACE,IAAIa,EAAUutD,EAAU9sD,OAAOtB,GAC/B,GAAIa,EAAQR,SAAW+vD,EACrB,MAAM,IAAIH,EAEZ,IAAI3lD,EAAczJ,EAAQ,GACtBguB,EAAO/sB,MAAMc,UAAU1B,MAAMiB,KAAKtB,EAAS,GAC/C,OAAQyJ,GACN,KAAKulD,EAAatzC,EAAOC,QAAQ8xC,EAAQ4B,SAAS3B,EAAKoB,OACrD,MAAO,CACL9gC,KAAMA,EACNyP,OAAQ/hB,EAAOC,OACf6H,QAASiqC,EAAQ4B,QACjBthC,KAAM2/B,EAAKoB,OAEf,KAAKE,EAAatzC,EAAOC,QAAQ8xC,EAAQ4B,SAAS3B,EAAKqB,MACrD,MAAO,CACL/gC,KAAMA,EACNyP,OAAQ/hB,EAAOC,OACf6H,QAASiqC,EAAQ4B,QACjBthC,KAAM2/B,EAAKqB,MAEf,KAAKC,EAAatzC,EAAOC,QAAQ8xC,EAAQ6B,SAAS5B,EAAKoB,OACrD,MAAO,CACL9gC,KAAMA,EACNyP,OAAQ/hB,EAAOC,OACf6H,QAASiqC,EAAQ6B,QACjBvhC,KAAM2/B,EAAKoB,OAEf,KAAKE,EAAatzC,EAAOC,QAAQ8xC,EAAQ6B,SAAS5B,EAAKqB,MACrD,MAAO,CACL/gC,KAAMA,EACNyP,OAAQ/hB,EAAOC,OACf6H,QAASiqC,EAAQ6B,QACjBvhC,KAAM2/B,EAAKqB,MAEf,KAAKC,EAAatzC,EAAOE,QAAQ6xC,EAAQ4B,SAAS3B,EAAKoB,OACrD,MAAO,CACL9gC,KAAMA,EACNyP,OAAQ/hB,EAAOE,OACf4H,QAASiqC,EAAQ4B,QACjBthC,KAAM2/B,EAAKoB,OAEf,KAAKE,EAAatzC,EAAOE,QAAQ6xC,EAAQ4B,SAAS3B,EAAKqB,MACrD,MAAO,CACL/gC,KAAMA,EACNyP,OAAQ/hB,EAAOE,OACf4H,QAASiqC,EAAQ4B,QACjBthC,KAAM2/B,EAAKqB,OAGjB,MAAOzzC,IAET,MAAM,IAAI8zC,EAUZ,SAASF,EAAmB/vD,GAC1B,IAA8B,IAA1BA,EAAQkI,QAAQ,KAClB,IACE,OAAOmoD,EAA4BrwD,GACnC,MAAOmc,SAIT,IADA,IAAIm0C,EAAW,CAAC,cAAe,UAAW,UAAW,UAC5ChtD,EAAI,EAAGA,EAAIgtD,EAASjwD,SAAUiD,EACrC,IACE,IAAIqrB,EAAS2hC,EAAShtD,GACtB,OAAO+sD,EAA4B1hC,EAAS,IAAM3uB,GAClD,MAAOmc,IAIb,MAAM,IAAI8zC,EAUZ,SAASI,EAA6BrwD,GACpC,IACE,IAAIwd,EAAU6wC,EAAS/sD,OAAOtB,GAC1B6uB,EAAO/sB,MAAMc,UAAU1B,MAAMiB,KAAKqb,EAAQqR,KAAM,GAChDD,EAAwB,UAAjBpR,EAAQoR,KAAmB2/B,EAAKoB,MAAQpB,EAAKqB,KACxD,OAAQpyC,EAAQmR,QACd,IAAK,cACH,MAAO,CACLE,KAAMA,EACNyP,OAAQ/hB,EAAOG,SACf2H,QAASiqC,EAAQ4B,QACjBthC,KAAMA,GAEV,IAAK,UACL,IAAK,UACL,IAAK,SACH,MAAO,CACLC,KAAMA,EACNyP,OAAQ/hB,EAAOG,SACf2H,QAASiqC,EAAQ6B,QACjBvhC,KAAMA,IAGZ,MAAOzS,IAET,MAAM,IAAI8zC,EAUZ,SAASD,EAAkBhwD,GACzB,IAA8B,IAA1BA,EAAQkI,QAAQ,KAClB,IACE,OAAOqoD,EAA2BvwD,GAClC,MAAOmc,SAIT,IADA,IAAIm0C,EAAW,CAAC,eAAgB,UAAW,UAClChtD,EAAI,EAAGA,EAAIgtD,EAASjwD,SAAUiD,EACrC,IACE,IAAIqrB,EAAS2hC,EAAShtD,GACtB,OAAOitD,EAA2B5hC,EAAS,IAAM3uB,GACjD,MAAOmc,IAIb,MAAM,IAAI8zC,EAUZ,SAASM,EAA4BvwD,GACnC,IACE,IAAIwd,EAAU6wC,EAAS/sD,OAAOtB,GAC1B6uB,EAAO/sB,MAAMc,UAAU1B,MAAMiB,KAAKqb,EAAQqR,KAAM,GAChDD,EAAwB,UAAjBpR,EAAQoR,KAAmB2/B,EAAKoB,MAAQpB,EAAKqB,KACxD,OAAQpyC,EAAQmR,QACd,IAAK,eACH,MAAO,CACLE,KAAMA,EACNyP,OAAQ/hB,EAAOI,QACf0H,QAASiqC,EAAQ4B,QACjBthC,KAAMA,GAEV,IAAK,UACL,IAAK,SACH,MAAO,CACLC,KAAMA,EACNyP,OAAQ/hB,EAAOI,QACf0H,QAASiqC,EAAQ6B,QACjBvhC,KAAMA,IAGZ,MAAOzS,IAET,MAAM,IAAI8zC,EASZ,SAASrB,EAAgBpxC,GACvB,IAAIlT,EAAculD,EAAatzC,EAAOC,QAAQgB,EAAQ6G,SAAS7G,EAAQoR,MACnE3tB,EAASP,EAAO8J,MAAM,EAAIgT,EAAQqR,KAAKxuB,QAG3C,OAFAY,EAAO,GAAKqJ,EACZrJ,EAAOmiB,IAAI5F,EAAQqR,KAAM,GAClBu/B,EAAUxtD,OAAOK,GAS1B,SAAS6tD,EAAgBtxC,GACvB,IAAIlT,EAAculD,EAAatzC,EAAOE,QAAQe,EAAQ6G,SAAS7G,EAAQoR,MACnE3tB,EAASP,EAAO8J,MAAM,EAAIgT,EAAQqR,KAAKxuB,QAG3C,OAFAY,EAAO,GAAKqJ,EACZrJ,EAAOmiB,IAAI5F,EAAQqR,KAAM,GAClBu/B,EAAUxtD,OAAOK,GAS1B,SAAS+tD,EAAkBxxC,GACzB,IAAImR,EAASnR,EAAQ6G,UAAYiqC,EAAQ4B,QAAU,cAAgB,UAC/DthC,EAAOpR,EAAQoR,OAAS2/B,EAAKoB,MAAQ,QAAU,OAC/C9gC,EAAOhnB,WAAWgG,KAAK2P,EAAQqR,MACnC,OAAOw/B,EAASztD,OAAO+tB,EAAQC,EAAMC,GASvC,SAASqgC,EAAiB1xC,GACxB,IAAImR,EAASnR,EAAQ6G,UAAYiqC,EAAQ4B,QAAU,eAAiB,UAChEthC,EAAOpR,EAAQoR,OAAS2/B,EAAKoB,MAAQ,QAAU,OAC/C9gC,EAAOhnB,WAAWgG,KAAK2P,EAAQqR,MACnC,OAAOw/B,EAASztD,OAAO+tB,EAAQC,EAAMC,GASvC,SAASugC,EAAqB5xC,GAC5B,IAAImR,EAAS,cACTC,EAAOpR,EAAQoR,OAAS2/B,EAAKoB,MAAQ,QAAU,OAC/C9gC,EAAOhnB,WAAWgG,KAAK2P,EAAQqR,MAInC,OAHIrR,EAAQ8gB,SAAW/hB,EAAOI,UAC5BgS,EAAS,gBAEJ0/B,EAASztD,OAAO+tB,EAAQC,EAAMC,GASvC,SAASygC,EAAqB9xC,GAC5B,IAAImR,EAAS,UACTC,EAAOpR,EAAQoR,OAAS2/B,EAAKoB,MAAQ,QAAU,OAC/C9gC,EAAOhnB,WAAWgG,KAAK2P,EAAQqR,MAInC,OAHIrR,EAAQ8gB,SAAW/hB,EAAOI,UAC5BgS,EAAS,WAEJ0/B,EAASztD,OAAO+tB,EAAQC,EAAMC,GASvC,SAAS2gC,EAAqBhyC,GAC5B,IAAImR,EAAS,SACTC,EAAOpR,EAAQoR,OAAS2/B,EAAKoB,MAAQ,QAAU,OAC/C9gC,EAAOhnB,WAAWgG,KAAK2P,EAAQqR,MAInC,OAHIrR,EAAQ8gB,SAAW/hB,EAAOI,UAC5BgS,EAAS,UAEJ0/B,EAASztD,OAAO+tB,EAAQC,EAAMC,GASvC,SAAS6gC,EAAwBlyC,GAC/B,IAAImR,EAAS,SACTC,EAAOpR,EAAQoR,OAAS2/B,EAAKoB,MAAQ,QAAU,OAC/C9gC,EAAOhnB,WAAWgG,KAAK2P,EAAQqR,MACnC,OAAOw/B,EAASztD,OAAO+tB,EAAQC,EAAMC,GAUvC,SAAS5R,EAAiBjd,GACxB,OAAOwuD,EAAoBxuD,KAAauc,EAAOC,OAUjD,SAASU,EAAiBld,GACxB,OAAOwuD,EAAoBxuD,KAAauc,EAAOE,OAUjD,SAASU,EAAend,GACtB,OAAOwuD,EAAoBxuD,KAAauc,EAAOG,SAUjD,SAASU,EAAcpd,GACrB,OAAOwuD,EAAoBxuD,KAAauc,EAAOI,QAUjD,SAASG,EAAkB9c,GACzB,OAAOyuD,EAAqBzuD,KAAasuD,EAAQ4B,QAUnD,SAASnzC,EAAkB/c,GACzB,OAAOyuD,EAAqBzuD,KAAasuD,EAAQ6B,QAUnD,SAASK,EAAgBxwD,GACvB,OAAO0uD,EAAkB1uD,KAAauuD,EAAKoB,MAU7C,SAASc,EAAezwD,GACtB,OAAO0uD,EAAkB1uD,KAAauuD,EAAKqB,KAQ7C,SAASK,IACP,IAAI9zC,EAAQ,IAAI5a,MAChBS,KAAK0H,KAAOyS,EAAMzS,KAAO,sBACzB1H,KAAKgoC,QAAU7tB,EAAM6tB,QAAU,qDAC/BhoC,KAAK0uD,MAAQv0C,EAAMu0C,MAGrBT,EAAoBrtD,UAAYoL,OAAOib,OAAO1nB,MAAMqB,WAEpDtC,EAAOC,QAAU,CACfgc,OAAQA,EACR+xC,QAASA,EACTC,KAAMA,EACN/tD,eAAgBA,EAChBguD,oBAAqBA,EACrBC,qBAAsBA,EACtBC,kBAAmBA,EACnBxyC,cAAeA,EACfyyC,gBAAiBA,EACjBE,gBAAiBA,EACjBG,iBAAkBA,EAClBD,cAAeA,EACfG,gBAAiBA,EACjBD,aAAcA,EACdE,iBAAkBA,EAClBE,iBAAkBA,EAClBD,oBAAqBA,EACrBE,oBAAqBA,EACrBE,oBAAqBA,EACrBD,iBAAkBA,EAClBG,uBAAwBA,EACxBD,oBAAqBA,EACrBb,eAAgBA,EAChB3xC,gBAAiBA,EACjB6xC,eAAgBA,EAChB5xC,gBAAiBA,EACjBC,cAAeA,EACfC,aAAcA,EACdN,iBAAkBA,EAClBC,iBAAkBA,EAClByzC,eAAgBA,EAChBC,cAAeA,EACfR,oBAAqBA,K,gEC5qBvB,cA0BA,IAAI/qD,EAHJ5E,EAAOC,QAAUyE,EAMjBA,EAAS2mC,cAAgBA,EAGhB,EAAQ,QAAUzrB,aAA3B,IACI0rB,EAAkB,SAAyBC,EAASjd,GACtD,OAAOid,EAAQC,UAAUld,GAAMvuB,QAK7B0E,EAAS,EAAQ,QAGjBrE,EAAS,EAAQ,QAAUA,OAC3BqrC,GAAmC,qBAAXC,EAAyBA,EAA2B,qBAAXC,OAAyBA,OAAyB,qBAATve,KAAuBA,KAAO,IAAI7lB,YAAc,aAC9J,SAASqkC,EAAoBpsB,GAC3B,OAAOpf,EAAOmN,KAAKiS,GAErB,SAASqsB,EAAcC,GACrB,OAAO1rC,EAAOqoB,SAASqjB,IAAQA,aAAeL,EAIhD,IACIQ,EADAD,EAAY,EAAQ,GAGtBC,EADED,GAAaA,EAAUE,SACjBF,EAAUE,SAAS,UAEnB,aAIV,IAWI5E,EACA2gB,EACA16C,EAbA4+B,EAAa,EAAQ,QACrBC,EAAc,EAAQ,QACtBikB,EAAW,EAAQ,QACrBvnD,EAAmBunD,EAASvnD,iBAC1BwU,EAAiB,EAAQ,QAAa9U,MACxC8nD,EAAuBhzC,EAAegzC,qBACtCC,EAA4BjzC,EAAeizC,0BAC3ChzC,EAA6BD,EAAeC,2BAC5CizC,EAAqClzC,EAAekzC,mCAMtD,EAAQ,OAAR,CAAoB9rD,EAAUD,GAC9B,IAAIopB,EAAiBue,EAAYve,eAC7Bwe,EAAe,CAAC,QAAS,QAAS,UAAW,QAAS,UAC1D,SAASC,EAAgBf,EAASgB,EAAOhG,GAGvC,GAAuC,oBAA5BgF,EAAQe,gBAAgC,OAAOf,EAAQe,gBAAgBC,EAAOhG,GAMpFgF,EAAQiB,SAAYjB,EAAQiB,QAAQD,GAAuC/qC,MAAM+C,QAAQgnC,EAAQiB,QAAQD,IAAShB,EAAQiB,QAAQD,GAAOE,QAAQlG,GAASgF,EAAQiB,QAAQD,GAAS,CAAChG,EAAIgF,EAAQiB,QAAQD,IAA5JhB,EAAQtsB,GAAGstB,EAAOhG,GAErE,SAAS8E,EAAc3iC,EAAS4W,EAAQ3W,GACtC/D,EAASA,GAAU,EAAQ,QAC3B8D,EAAUA,GAAW,GAOG,mBAAbC,IAAwBA,EAAW2W,aAAkB1a,GAIhElD,KAAK2H,aAAeX,EAAQW,WACxBV,IAAUjH,KAAK2H,WAAa3H,KAAK2H,cAAgBX,EAAQgkC,oBAI7DhrC,KAAKmH,cAAgBC,EAAiBpH,KAAMgH,EAAS,wBAAyBC,GAK9EjH,KAAKf,OAAS,IAAIwrC,EAClBzqC,KAAK3B,OAAS,EACd2B,KAAKorC,MAAQ,KACbprC,KAAKqrC,WAAa,EAClBrrC,KAAKsrC,QAAU,KACftrC,KAAK6rB,OAAQ,EACb7rB,KAAK8rB,YAAa,EAClB9rB,KAAK4c,SAAU,EAMf5c,KAAKkd,MAAO,EAIZld,KAAK6c,cAAe,EACpB7c,KAAKurC,iBAAkB,EACvBvrC,KAAKwrC,mBAAoB,EACzBxrC,KAAKyrC,iBAAkB,EACvBzrC,KAAKmwC,QAAS,EAGdnwC,KAAK2rB,WAAkC,IAAtB3kB,EAAQ2kB,UAGzB3rB,KAAKssB,cAAgBtlB,EAAQslB,YAG7BtsB,KAAK0d,WAAY,EAKjB1d,KAAK0rC,gBAAkB1kC,EAAQ0kC,iBAAmB,OAGlD1rC,KAAK2rC,WAAa,EAGlB3rC,KAAK4rC,aAAc,EACnB5rC,KAAK6rC,QAAU,KACf7rC,KAAKkE,SAAW,KACZ8C,EAAQ9C,WACL0hC,IAAeA,EAAgB,EAAQ,QAAmBA,eAC/D5lC,KAAK6rC,QAAU,IAAIjG,EAAc5+B,EAAQ9C,UACzClE,KAAKkE,SAAW8C,EAAQ9C,UAG5B,SAASlB,EAASgE,GAEhB,GADA9D,EAASA,GAAU,EAAQ,UACrBlD,gBAAgBgD,GAAW,OAAO,IAAIA,EAASgE,GAIrD,IAAIC,EAAWjH,gBAAgBkD,EAC/BlD,KAAK2c,eAAiB,IAAIgtB,EAAc3iC,EAAShH,KAAMiH,GAGvDjH,KAAK4kC,UAAW,EACZ59B,IAC0B,oBAAjBA,EAAQ8kC,OAAqB9rC,KAAK8c,MAAQ9V,EAAQ8kC,MAC9B,oBAApB9kC,EAAQikB,UAAwBjrB,KAAKge,SAAWhX,EAAQikB,UAErEloB,EAAO5C,KAAKH,MAyDd,SAAS+rC,EAAiBnuB,EAAQE,EAAO5Z,EAAU8nC,EAAYC,GAC7D1B,EAAM,mBAAoBzsB,GAC1B,IAKM5B,EALF7U,EAAQuW,EAAOjB,eACnB,GAAc,OAAVmB,EACFzW,EAAMuV,SAAU,EAChBsvB,EAAWtuB,EAAQvW,QAInB,GADK4kC,IAAgB/vB,EAAKiwB,EAAa9kC,EAAOyW,IAC1C5B,EACFiQ,EAAevO,EAAQ1B,QAClB,GAAI7U,EAAMM,YAAcmW,GAASA,EAAMzf,OAAS,EAIrD,GAHqB,kBAAVyf,GAAuBzW,EAAMM,YAAcqE,OAAOogC,eAAetuB,KAAWpf,EAAOkC,YAC5Fkd,EAAQosB,EAAoBpsB,IAE1BkuB,EACE3kC,EAAMykB,WAAYK,EAAevO,EAAQ,IAAIkxC,GAA2CziB,EAASzuB,EAAQvW,EAAOyW,GAAO,QACtH,GAAIzW,EAAMwkB,MACfM,EAAevO,EAAQ,IAAIixC,OACtB,IAAIxnD,EAAMqW,UACf,OAAO,EAEPrW,EAAMuV,SAAU,EACZvV,EAAMwkC,UAAY3nC,GACpB4Z,EAAQzW,EAAMwkC,QAAQ7E,MAAMlpB,GACxBzW,EAAMM,YAA+B,IAAjBmW,EAAMzf,OAAcguC,EAASzuB,EAAQvW,EAAOyW,GAAO,GAAYwuB,EAAc1uB,EAAQvW,IAE7GglC,EAASzuB,EAAQvW,EAAOyW,GAAO,QAGzBkuB,IACV3kC,EAAMuV,SAAU,EAChB0vB,EAAc1uB,EAAQvW,IAO1B,OAAQA,EAAMwkB,QAAUxkB,EAAMhJ,OAASgJ,EAAMF,eAAkC,IAAjBE,EAAMhJ,QAEtE,SAASguC,EAASzuB,EAAQvW,EAAOyW,EAAOkuB,GAClC3kC,EAAMikC,SAA4B,IAAjBjkC,EAAMhJ,SAAiBgJ,EAAM6V,MAChD7V,EAAMskC,WAAa,EACnB/tB,EAAOpB,KAAK,OAAQsB,KAGpBzW,EAAMhJ,QAAUgJ,EAAMM,WAAa,EAAImW,EAAMzf,OACzC2tC,EAAY3kC,EAAMpI,OAAO8rC,QAAQjtB,GAAYzW,EAAMpI,OAAOsF,KAAKuZ,GAC/DzW,EAAMwV,cAAc2vB,EAAa5uB,IAEvC0uB,EAAc1uB,EAAQvW,GAExB,SAAS8kC,EAAa9kC,EAAOyW,GAC3B,IAAI5B,EAIJ,OAHKiuB,EAAcrsB,IAA2B,kBAAVA,QAAgC7Q,IAAV6Q,GAAwBzW,EAAMM,aACtFuU,EAAK,IAAI0yC,EAAqB,QAAS,CAAC,SAAU,SAAU,cAAe9wC,IAEtE5B,EAjHTlQ,OAAOC,eAAejJ,EAASpC,UAAW,YAAa,CAIrD0mB,YAAY,EACZmlB,IAAK,WACH,YAA4Bx/B,IAAxBjN,KAAK2c,gBAGF3c,KAAK2c,eAAee,WAE7B0D,IAAK,SAAaxc,GAGX5E,KAAK2c,iBAMV3c,KAAK2c,eAAee,UAAY9Y,MAGpC5B,EAASpC,UAAUqqB,QAAUyf,EAAYzf,QACzCjoB,EAASpC,UAAU8rC,WAAahC,EAAY9e,UAC5C5oB,EAASpC,UAAUod,SAAW,SAAU9U,EAAKoT,GAC3CA,EAAGpT,IAOLlG,EAASpC,UAAU2D,KAAO,SAAUuZ,EAAO5Z,GACzC,IACI+nC,EADA5kC,EAAQrH,KAAK2c,eAcjB,OAZKtV,EAAMM,WAUTskC,GAAiB,EATI,kBAAVnuB,IACT5Z,EAAWA,GAAYmD,EAAMqkC,gBACzBxnC,IAAamD,EAAMnD,WACrB4Z,EAAQpf,EAAOmN,KAAKiS,EAAO5Z,GAC3BA,EAAW,IAEb+nC,GAAiB,GAKdF,EAAiB/rC,KAAM8d,EAAO5Z,GAAU,EAAO+nC,IAIxDjpC,EAASpC,UAAUmqC,QAAU,SAAUjtB,GACrC,OAAOiuB,EAAiB/rC,KAAM8d,EAAO,MAAM,GAAM,IA8DnD9a,EAASpC,UAAU+rC,SAAW,WAC5B,OAAuC,IAAhC3sC,KAAK2c,eAAe2uB,SAI7BtoC,EAASpC,UAAUgsC,YAAc,SAAU9F,GACpClB,IAAeA,EAAgB,EAAQ,QAAmBA,eAC/D,IAAIiG,EAAU,IAAIjG,EAAckB,GAChC9mC,KAAK2c,eAAekvB,QAAUA,EAE9B7rC,KAAK2c,eAAezY,SAAWlE,KAAK2c,eAAekvB,QAAQ3nC,SAG3D,IAAIlC,EAAIhC,KAAK2c,eAAe1d,OAAO+tC,KAC/Bza,EAAU,GACd,MAAa,OAANvwB,EACLuwB,GAAWsZ,EAAQ7E,MAAMhlC,EAAEsR,MAC3BtR,EAAIA,EAAE6kC,KAKR,OAHA7mC,KAAK2c,eAAe1d,OAAO0uC,QACX,KAAZpb,GAAgBvyB,KAAK2c,eAAe1d,OAAOsF,KAAKguB,GACpDvyB,KAAK2c,eAAete,OAASk0B,EAAQl0B,OAC9B2B,MAIT,IAAI6sC,EAAU,WACd,SAASC,EAAwBtpC,GAe/B,OAdIA,GAAKqpC,EAEPrpC,EAAIqpC,GAIJrpC,IACAA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,GACXA,KAEKA,EAKT,SAASupC,EAAcvpC,EAAG6D,GACxB,OAAI7D,GAAK,GAAsB,IAAjB6D,EAAMhJ,QAAgBgJ,EAAMwkB,MAAc,EACpDxkB,EAAMM,WAAmB,EACzBnE,IAAMA,EAEJ6D,EAAMikC,SAAWjkC,EAAMhJ,OAAegJ,EAAMpI,OAAO+tC,KAAK15B,KAAKjV,OAAmBgJ,EAAMhJ,QAGxFmF,EAAI6D,EAAMF,gBAAeE,EAAMF,cAAgB2lC,EAAwBtpC,IACvEA,GAAK6D,EAAMhJ,OAAemF,EAEzB6D,EAAMwkB,MAIJxkB,EAAMhJ,QAHXgJ,EAAMwV,cAAe,EACd,IAmGX,SAASqvB,EAAWtuB,EAAQvW,GAE1B,GADAkjC,EAAM,eACFljC,EAAMwkB,MAAV,CACA,GAAIxkB,EAAMwkC,QAAS,CACjB,IAAI/tB,EAAQzW,EAAMwkC,QAAQ9+B,MACtB+Q,GAASA,EAAMzf,SACjBgJ,EAAMpI,OAAOsF,KAAKuZ,GAClBzW,EAAMhJ,QAAUgJ,EAAMM,WAAa,EAAImW,EAAMzf,QAGjDgJ,EAAMwkB,OAAQ,EACVxkB,EAAM6V,KAIRsvB,EAAa5uB,IAGbvW,EAAMwV,cAAe,EAChBxV,EAAMkkC,kBACTlkC,EAAMkkC,iBAAkB,EACxB0B,EAAcrvB,MAQpB,SAAS4uB,EAAa5uB,GACpB,IAAIvW,EAAQuW,EAAOjB,eACnB4tB,EAAM,eAAgBljC,EAAMwV,aAAcxV,EAAMkkC,iBAChDlkC,EAAMwV,cAAe,EAChBxV,EAAMkkC,kBACThB,EAAM,eAAgBljC,EAAMikC,SAC5BjkC,EAAMkkC,iBAAkB,EACxBlgB,EAAQC,SAAS2hB,EAAervB,IAGpC,SAASqvB,EAAcrvB,GACrB,IAAIvW,EAAQuW,EAAOjB,eACnB4tB,EAAM,gBAAiBljC,EAAMqW,UAAWrW,EAAMhJ,OAAQgJ,EAAMwkB,OACvDxkB,EAAMqW,YAAcrW,EAAMhJ,SAAUgJ,EAAMwkB,QAC7CjO,EAAOpB,KAAK,YACZnV,EAAMkkC,iBAAkB,GAS1BlkC,EAAMwV,cAAgBxV,EAAMikC,UAAYjkC,EAAMwkB,OAASxkB,EAAMhJ,QAAUgJ,EAAMF,cAC7E+lC,EAAKtvB,GASP,SAAS0uB,EAAc1uB,EAAQvW,GACxBA,EAAMukC,cACTvkC,EAAMukC,aAAc,EACpBvgB,EAAQC,SAAS6hB,EAAgBvvB,EAAQvW,IAG7C,SAAS8lC,EAAevvB,EAAQvW,GAwB9B,OAAQA,EAAMuV,UAAYvV,EAAMwkB,QAAUxkB,EAAMhJ,OAASgJ,EAAMF,eAAiBE,EAAMikC,SAA4B,IAAjBjkC,EAAMhJ,QAAe,CACpH,IAAIoO,EAAMpF,EAAMhJ,OAGhB,GAFAksC,EAAM,wBACN3sB,EAAOkuB,KAAK,GACRr/B,IAAQpF,EAAMhJ,OAEhB,MAEJgJ,EAAMukC,aAAc,EAgItB,SAASwB,EAAYr1B,GACnB,OAAO,WACL,IAAI1Q,EAAQ0Q,EAAI4E,eAChB4tB,EAAM,cAAeljC,EAAMskC,YACvBtkC,EAAMskC,YAAYtkC,EAAMskC,aACH,IAArBtkC,EAAMskC,YAAoB/B,EAAgB7xB,EAAK,UACjD1Q,EAAMikC,SAAU,EAChB4B,EAAKn1B,KA0GX,SAASg3C,EAAwBrjC,GAC/B,IAAIrkB,EAAQqkB,EAAK/O,eACjBtV,EAAMmkC,kBAAoB9f,EAAKsjC,cAAc,YAAc,EACvD3nD,EAAMokC,kBAAoBpkC,EAAM8oC,OAGlC9oC,EAAMikC,SAAU,EAGP5f,EAAKsjC,cAAc,QAAU,GACtCtjC,EAAK4hB,SAGT,SAASD,EAAiB3hB,GACxB6e,EAAM,4BACN7e,EAAKogB,KAAK,GAkBZ,SAASwB,EAAO1vB,EAAQvW,GACjBA,EAAMokC,kBACTpkC,EAAMokC,iBAAkB,EACxBpgB,EAAQC,SAASiiB,EAAS3vB,EAAQvW,IAGtC,SAASkmC,EAAQ3vB,EAAQvW,GACvBkjC,EAAM,SAAUljC,EAAMuV,SACjBvV,EAAMuV,SACTgB,EAAOkuB,KAAK,GAEdzkC,EAAMokC,iBAAkB,EACxB7tB,EAAOpB,KAAK,UACZ0wB,EAAKtvB,GACDvW,EAAMikC,UAAYjkC,EAAMuV,SAASgB,EAAOkuB,KAAK,GAYnD,SAASoB,EAAKtvB,GACZ,IAAIvW,EAAQuW,EAAOjB,eACnB4tB,EAAM,OAAQljC,EAAMikC,SACpB,MAAOjkC,EAAMikC,SAA6B,OAAlB1tB,EAAOkuB,SAoHjC,SAAS0B,EAAShqC,EAAG6D,GAEnB,OAAqB,IAAjBA,EAAMhJ,OAAqB,MAE3BgJ,EAAMM,WAAYo6B,EAAM16B,EAAMpI,OAAOwuC,SAAkBjqC,GAAKA,GAAK6D,EAAMhJ,QAEtD0jC,EAAf16B,EAAMwkC,QAAexkC,EAAMpI,OAAOyuC,KAAK,IAAqC,IAAxBrmC,EAAMpI,OAAOZ,OAAoBgJ,EAAMpI,OAAOgwD,QAAmB5nD,EAAMpI,OAAOF,OAAOsI,EAAMhJ,QACnJgJ,EAAMpI,OAAO0uC,SAGb5L,EAAM16B,EAAMpI,OAAOiwD,QAAQ1rD,EAAG6D,EAAMwkC,SAE/B9J,GATP,IAAIA,EAWN,SAASoM,EAAYvwB,GACnB,IAAIvW,EAAQuW,EAAOjB,eACnB4tB,EAAM,cAAeljC,EAAMykB,YACtBzkB,EAAMykB,aACTzkB,EAAMwkB,OAAQ,EACdR,EAAQC,SAAS8iB,EAAe/mC,EAAOuW,IAG3C,SAASwwB,EAAc/mC,EAAOuW,GAI5B,GAHA2sB,EAAM,gBAAiBljC,EAAMykB,WAAYzkB,EAAMhJ,SAG1CgJ,EAAMykB,YAA+B,IAAjBzkB,EAAMhJ,SAC7BgJ,EAAMykB,YAAa,EACnBlO,EAAOgnB,UAAW,EAClBhnB,EAAOpB,KAAK,OACRnV,EAAMilB,aAAa,CAGrB,IAAID,EAASzO,EAAOC,iBACfwO,GAAUA,EAAOC,aAAeD,EAAOH,WAC1CtO,EAAOqN,WAaf,SAAS/kB,EAAQmoC,EAAI5pC,GACnB,IAAK,IAAInD,EAAI,EAAGwC,EAAIuqC,EAAGhwC,OAAQiD,EAAIwC,EAAGxC,IACpC,GAAI+sC,EAAG/sC,KAAOmD,EAAG,OAAOnD,EAE1B,OAAQ,EAzpBV0B,EAASpC,UAAUkrC,KAAO,SAAUtoC,GAClC+mC,EAAM,OAAQ/mC,GACdA,EAAIY,SAASZ,EAAG,IAChB,IAAI6D,EAAQrH,KAAK2c,eACb2xB,EAAQ9qC,EAMZ,GALU,IAANA,IAAS6D,EAAMkkC,iBAAkB,GAK3B,IAAN/nC,GAAW6D,EAAMwV,gBAA0C,IAAxBxV,EAAMF,cAAsBE,EAAMhJ,QAAUgJ,EAAMF,cAAgBE,EAAMhJ,OAAS,IAAMgJ,EAAMwkB,OAGlI,OAFA0e,EAAM,qBAAsBljC,EAAMhJ,OAAQgJ,EAAMwkB,OAC3B,IAAjBxkB,EAAMhJ,QAAgBgJ,EAAMwkB,MAAOsiB,EAAYnuC,MAAWwsC,EAAaxsC,MACpE,KAKT,GAHAwD,EAAIupC,EAAcvpC,EAAG6D,GAGX,IAAN7D,GAAW6D,EAAMwkB,MAEnB,OADqB,IAAjBxkB,EAAMhJ,QAAc8vC,EAAYnuC,MAC7B,KA0BT,IA2BI+hC,EA3BAwM,EAASlnC,EAAMwV,aA6CnB,OA5CA0tB,EAAM,gBAAiBgE,IAGF,IAAjBlnC,EAAMhJ,QAAgBgJ,EAAMhJ,OAASmF,EAAI6D,EAAMF,iBACjDonC,GAAS,EACThE,EAAM,6BAA8BgE,IAKlClnC,EAAMwkB,OAASxkB,EAAMuV,SACvB2xB,GAAS,EACThE,EAAM,mBAAoBgE,IACjBA,IACThE,EAAM,WACNljC,EAAMuV,SAAU,EAChBvV,EAAM6V,MAAO,EAEQ,IAAjB7V,EAAMhJ,SAAcgJ,EAAMwV,cAAe,GAE7C7c,KAAK8c,MAAMzV,EAAMF,eACjBE,EAAM6V,MAAO,EAGR7V,EAAMuV,UAASpZ,EAAIupC,EAAcuB,EAAOjnC,KAGpC06B,EAAPv+B,EAAI,EAASgqC,EAAShqC,EAAG6D,GAAkB,KACnC,OAAR06B,GACF16B,EAAMwV,aAAexV,EAAMhJ,QAAUgJ,EAAMF,cAC3C3D,EAAI,IAEJ6D,EAAMhJ,QAAUmF,EAChB6D,EAAMskC,WAAa,GAEA,IAAjBtkC,EAAMhJ,SAGHgJ,EAAMwkB,QAAOxkB,EAAMwV,cAAe,GAGnCyxB,IAAU9qC,GAAK6D,EAAMwkB,OAAOsiB,EAAYnuC,OAElC,OAAR+hC,GAAc/hC,KAAKwc,KAAK,OAAQulB,GAC7BA,GA8GT/+B,EAASpC,UAAUkc,MAAQ,SAAUtZ,GACnC2oB,EAAensB,KAAM,IAAI6b,EAA2B,aAEtD7Y,EAASpC,UAAUkkC,KAAO,SAAU0J,EAAMC,GACxC,IAAI12B,EAAM/X,KACNqH,EAAQrH,KAAK2c,eACjB,OAAQtV,EAAMgkC,YACZ,KAAK,EACHhkC,EAAM+jC,MAAQoD,EACd,MACF,KAAK,EACHnnC,EAAM+jC,MAAQ,CAAC/jC,EAAM+jC,MAAOoD,GAC5B,MACF,QACEnnC,EAAM+jC,MAAM7mC,KAAKiqC,GACjB,MAEJnnC,EAAMgkC,YAAc,EACpBd,EAAM,wBAAyBljC,EAAMgkC,WAAYoD,GACjD,IAAIC,IAAUD,IAA6B,IAAjBA,EAAS1hC,MAAkByhC,IAASnjB,EAAQsjB,QAAUH,IAASnjB,EAAQujB,OAC7FC,EAAQH,EAAQI,EAAQC,EAG5B,SAASC,EAASpK,EAAUqK,GAC1B1E,EAAM,YACF3F,IAAa7sB,GACXk3B,IAAwC,IAA1BA,EAAWC,aAC3BD,EAAWC,YAAa,EACxBC,KAIN,SAASL,IACPvE,EAAM,SACNiE,EAAKzhC,MAbH1F,EAAMykB,WAAYT,EAAQC,SAASujB,GAAY92B,EAAIgsB,KAAK,MAAO8K,GACnEL,EAAKjxB,GAAG,SAAUyxB,GAmBlB,IAAII,EAAUhC,EAAYr1B,GAC1By2B,EAAKjxB,GAAG,QAAS6xB,GACjB,IAAIC,GAAY,EAChB,SAASF,IACP5E,EAAM,WAENiE,EAAKc,eAAe,QAASC,GAC7Bf,EAAKc,eAAe,SAAUE,GAC9BhB,EAAKc,eAAe,QAASF,GAC7BZ,EAAKc,eAAe,QAASG,GAC7BjB,EAAKc,eAAe,SAAUN,GAC9Bj3B,EAAIu3B,eAAe,MAAOR,GAC1B/2B,EAAIu3B,eAAe,MAAOP,GAC1Bh3B,EAAIu3B,eAAe,OAAQI,GAC3BL,GAAY,GAORhoC,EAAMskC,YAAgB6C,EAAK3wB,iBAAkB2wB,EAAK3wB,eAAe8xB,WAAYP,IAGnF,SAASM,EAAO5xB,GACdysB,EAAM,UACN,IAAIxI,EAAMyM,EAAKxH,MAAMlpB,GACrBysB,EAAM,aAAcxI,IACR,IAARA,KAKwB,IAArB16B,EAAMgkC,YAAoBhkC,EAAM+jC,QAAUoD,GAAQnnC,EAAMgkC,WAAa,IAAqC,IAAhCnlC,EAAQmB,EAAM+jC,MAAOoD,MAAkBa,IACpH9E,EAAM,8BAA+BljC,EAAMskC,YAC3CtkC,EAAMskC,cAER5zB,EAAI83B,SAMR,SAASJ,EAAQvzB,GACfquB,EAAM,UAAWruB,GACjB6yB,IACAP,EAAKc,eAAe,QAASG,GACU,IAAnC7F,EAAgB4E,EAAM,UAAgBriB,EAAeqiB,EAAMtyB,GAOjE,SAASqzB,IACPf,EAAKc,eAAe,SAAUE,GAC9BT,IAGF,SAASS,IACPjF,EAAM,YACNiE,EAAKc,eAAe,QAASC,GAC7BR,IAGF,SAASA,IACPxE,EAAM,UACNxyB,EAAIg3B,OAAOP,GAWb,OAvDAz2B,EAAIwF,GAAG,OAAQmyB,GA4Bf9E,EAAgB4D,EAAM,QAASiB,GAO/BjB,EAAKzK,KAAK,QAASwL,GAMnBf,EAAKzK,KAAK,SAAUyL,GAOpBhB,EAAKhyB,KAAK,OAAQzE,GAGb1Q,EAAMikC,UACTf,EAAM,eACNxyB,EAAIu1B,UAECkB,GAaTxrC,EAASpC,UAAUmuC,OAAS,SAAUP,GACpC,IAAInnC,EAAQrH,KAAK2c,eACbsyB,EAAa,CACfC,YAAY,GAId,GAAyB,IAArB7nC,EAAMgkC,WAAkB,OAAOrrC,KAGnC,GAAyB,IAArBqH,EAAMgkC,WAER,OAAImD,GAAQA,IAASnnC,EAAM+jC,QACtBoD,IAAMA,EAAOnnC,EAAM+jC,OAGxB/jC,EAAM+jC,MAAQ,KACd/jC,EAAMgkC,WAAa,EACnBhkC,EAAMikC,SAAU,EACZkD,GAAMA,EAAKhyB,KAAK,SAAUxc,KAAMivC,IAPKjvC,KAa3C,IAAKwuC,EAAM,CAET,IAAIsB,EAAQzoC,EAAM+jC,MACd3+B,EAAMpF,EAAMgkC,WAChBhkC,EAAM+jC,MAAQ,KACd/jC,EAAMgkC,WAAa,EACnBhkC,EAAMikC,SAAU,EAChB,IAAK,IAAIhqC,EAAI,EAAGA,EAAImL,EAAKnL,IAAKwuC,EAAMxuC,GAAGkb,KAAK,SAAUxc,KAAM,CAC1DkvC,YAAY,IAEd,OAAOlvC,KAIT,IAAI+Y,EAAQ7S,EAAQmB,EAAM+jC,MAAOoD,GACjC,OAAe,IAAXz1B,IACJ1R,EAAM+jC,MAAM2E,OAAOh3B,EAAO,GAC1B1R,EAAMgkC,YAAc,EACK,IAArBhkC,EAAMgkC,aAAkBhkC,EAAM+jC,MAAQ/jC,EAAM+jC,MAAM,IACtDoD,EAAKhyB,KAAK,SAAUxc,KAAMivC,IAJDjvC,MAU3BgD,EAASpC,UAAU2c,GAAK,SAAUyyB,EAAInL,GACpC,IAAIpiB,EAAM1f,EAAOnC,UAAU2c,GAAGpd,KAAKH,KAAMgwC,EAAInL,GACzCx9B,EAAQrH,KAAK2c,eAqBjB,MApBW,SAAPqzB,GAGF3oC,EAAMmkC,kBAAoBxrC,KAAKgvD,cAAc,YAAc,GAGrC,IAAlB3nD,EAAMikC,SAAmBtrC,KAAKstC,UAClB,aAAP0C,IACJ3oC,EAAMykB,YAAezkB,EAAMmkC,oBAC9BnkC,EAAMmkC,kBAAoBnkC,EAAMwV,cAAe,EAC/CxV,EAAMikC,SAAU,EAChBjkC,EAAMkkC,iBAAkB,EACxBhB,EAAM,cAAeljC,EAAMhJ,OAAQgJ,EAAMuV,SACrCvV,EAAMhJ,OACRmuC,EAAaxsC,MACHqH,EAAMuV,SAChByO,EAAQC,SAAS+hB,EAAkBrtC,QAIlCyiB,GAETzf,EAASpC,UAAUqvC,YAAcjtC,EAASpC,UAAU2c,GACpDva,EAASpC,UAAU0uC,eAAiB,SAAUU,EAAInL,GAChD,IAAIpiB,EAAM1f,EAAOnC,UAAU0uC,eAAenvC,KAAKH,KAAMgwC,EAAInL,GAUzD,MATW,aAAPmL,GAOF3kB,EAAQC,SAASyjC,EAAyB/uD,MAErCyiB,GAETzf,EAASpC,UAAUuuD,mBAAqB,SAAUnf,GAChD,IAAIvtB,EAAM1f,EAAOnC,UAAUuuD,mBAAmBjrB,MAAMlkC,KAAM2M,WAU1D,MATW,aAAPqjC,QAA4B/iC,IAAP+iC,GAOvB3kB,EAAQC,SAASyjC,EAAyB/uD,MAErCyiB,GAsBTzf,EAASpC,UAAU0sC,OAAS,WAC1B,IAAIjmC,EAAQrH,KAAK2c,eAUjB,OATKtV,EAAMikC,UACTf,EAAM,UAINljC,EAAMikC,SAAWjkC,EAAMmkC,kBACvB8B,EAAOttC,KAAMqH,IAEfA,EAAM8oC,QAAS,EACRnwC,MAkBTgD,EAASpC,UAAUivC,MAAQ,WAQzB,OAPAtF,EAAM,wBAAyBvqC,KAAK2c,eAAe2uB,UACf,IAAhCtrC,KAAK2c,eAAe2uB,UACtBf,EAAM,SACNvqC,KAAK2c,eAAe2uB,SAAU,EAC9BtrC,KAAKwc,KAAK,UAEZxc,KAAK2c,eAAewzB,QAAS,EACtBnwC,MAWTgD,EAASpC,UAAUsvC,KAAO,SAAUtyB,GAClC,IAAIH,EAAQzd,KACRqH,EAAQrH,KAAK2c,eACbwzB,GAAS,EAwBb,IAAK,IAAI7uC,KAvBTsc,EAAOL,GAAG,OAAO,WAEf,GADAgtB,EAAM,eACFljC,EAAMwkC,UAAYxkC,EAAMwkB,MAAO,CACjC,IAAI/N,EAAQzW,EAAMwkC,QAAQ9+B,MACtB+Q,GAASA,EAAMzf,QAAQof,EAAMlZ,KAAKuZ,GAExCL,EAAMlZ,KAAK,SAEbqZ,EAAOL,GAAG,QAAQ,SAAUO,GAK1B,GAJAysB,EAAM,gBACFljC,EAAMwkC,UAAS/tB,EAAQzW,EAAMwkC,QAAQ7E,MAAMlpB,MAG3CzW,EAAMM,YAAyB,OAAVmW,QAA4B7Q,IAAV6Q,KAAuCzW,EAAMM,YAAgBmW,GAAUA,EAAMzf,QAA3C,CAC7E,IAAI0jC,EAAMtkB,EAAMlZ,KAAKuZ,GAChBikB,IACHoO,GAAS,EACTvyB,EAAOiyB,aAMGjyB,OACI3Q,IAAZjN,KAAKsB,IAAyC,oBAAdsc,EAAOtc,KACzCtB,KAAKsB,GAAK,SAAoB8uC,GAC5B,OAAO,WACL,OAAOxyB,EAAOwyB,GAAQlM,MAAMtmB,EAAQjR,YAF9B,CAIRrL,IAKN,IAAK,IAAIkC,EAAI,EAAGA,EAAImnC,EAAatsC,OAAQmF,IACvCoa,EAAOL,GAAGotB,EAAannC,GAAIxD,KAAKwc,KAAKO,KAAK/c,KAAM2qC,EAAannC,KAY/D,OAPAxD,KAAK8c,MAAQ,SAAUtZ,GACrB+mC,EAAM,gBAAiB/mC,GACnB2sC,IACFA,GAAS,EACTvyB,EAAO0vB,WAGJttC,MAEa,oBAAX6zC,SACT7wC,EAASpC,UAAUizC,OAAOwS,eAAiB,WAIzC,YAH0Cp5C,IAAtCs5C,IACFA,EAAoC,EAAQ,SAEvCA,EAAkCvmD,QAG7CgM,OAAOC,eAAejJ,EAASpC,UAAW,wBAAyB,CAIjE0mB,YAAY,EACZmlB,IAAK,WACH,OAAOzsC,KAAK2c,eAAexV,iBAG/B6E,OAAOC,eAAejJ,EAASpC,UAAW,iBAAkB,CAI1D0mB,YAAY,EACZmlB,IAAK,WACH,OAAOzsC,KAAK2c,gBAAkB3c,KAAK2c,eAAe1d,UAGtD+M,OAAOC,eAAejJ,EAASpC,UAAW,kBAAmB,CAI3D0mB,YAAY,EACZmlB,IAAK,WACH,OAAOzsC,KAAK2c,eAAe2uB,SAE7BlqB,IAAK,SAAa/Z,GACZrH,KAAK2c,iBACP3c,KAAK2c,eAAe2uB,QAAUjkC,MAMpCrE,EAASqtC,UAAY7C,EACrBxhC,OAAOC,eAAejJ,EAASpC,UAAW,iBAAkB,CAI1D0mB,YAAY,EACZmlB,IAAK,WACH,OAAOzsC,KAAK2c,eAAete,UAgDT,oBAAXw1C,SACT7wC,EAAS6I,KAAO,SAAUujD,EAAU5sB,GAIlC,YAHav1B,IAATpB,IACFA,EAAO,EAAQ,SAEVA,EAAK7I,EAAUosD,EAAU5sB,O,qDC1/BpClkC,EAAOC,QAAU,EAAQ,S,mCCAzB,YA6BA,IAAI8wD,EAAarjD,OAAOgjB,MAAQ,SAAUob,GACxC,IAAIpb,EAAO,GACX,IAAK,IAAI/W,KAAOmyB,EAAKpb,EAAKzqB,KAAK0T,GAC/B,OAAO+W,GAIT1wB,EAAOC,QAAU2E,EACjB,IAAIF,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QACvB,EAAQ,OAAR,CAAoBC,EAAQF,GAI1B,IADA,IAAIgsB,EAAOqgC,EAAWpsD,EAASrC,WACtBwE,EAAI,EAAGA,EAAI4pB,EAAK3wB,OAAQ+G,IAAK,CACpC,IAAIgrC,EAASphB,EAAK5pB,GACblC,EAAOtC,UAAUwvC,KAASltC,EAAOtC,UAAUwvC,GAAUntC,EAASrC,UAAUwvC,IAGjF,SAASltC,EAAO8D,GACd,KAAMhH,gBAAgBkD,GAAS,OAAO,IAAIA,EAAO8D,GACjDhE,EAAS7C,KAAKH,KAAMgH,GACpB/D,EAAS9C,KAAKH,KAAMgH,GACpBhH,KAAKsvD,eAAgB,EACjBtoD,KACuB,IAArBA,EAAQ49B,WAAoB5kC,KAAK4kC,UAAW,IACvB,IAArB59B,EAAQugB,WAAoBvnB,KAAKunB,UAAW,IAClB,IAA1BvgB,EAAQsoD,gBACVtvD,KAAKsvD,eAAgB,EACrBtvD,KAAK+jC,KAAK,MAAO+K,KAiCvB,SAASA,IAEH9uC,KAAK6d,eAAegO,OAIxBR,EAAQC,SAASikC,EAASvvD,MAE5B,SAASuvD,EAAQ7jC,GACfA,EAAK3e,MAtCPf,OAAOC,eAAe/I,EAAOtC,UAAW,wBAAyB,CAI/D0mB,YAAY,EACZmlB,IAAK,WACH,OAAOzsC,KAAK6d,eAAe1W,iBAG/B6E,OAAOC,eAAe/I,EAAOtC,UAAW,iBAAkB,CAIxD0mB,YAAY,EACZmlB,IAAK,WACH,OAAOzsC,KAAK6d,gBAAkB7d,KAAK6d,eAAe81B,eAGtD3nC,OAAOC,eAAe/I,EAAOtC,UAAW,iBAAkB,CAIxD0mB,YAAY,EACZmlB,IAAK,WACH,OAAOzsC,KAAK6d,eAAexf,UAgB/B2N,OAAOC,eAAe/I,EAAOtC,UAAW,YAAa,CAInD0mB,YAAY,EACZmlB,IAAK,WACH,YAA4Bx/B,IAAxBjN,KAAK2c,qBAAwD1P,IAAxBjN,KAAK6d,iBAGvC7d,KAAK2c,eAAee,WAAa1d,KAAK6d,eAAeH,YAE9D0D,IAAK,SAAaxc,QAGYqI,IAAxBjN,KAAK2c,qBAAwD1P,IAAxBjN,KAAK6d,iBAM9C7d,KAAK2c,eAAee,UAAY9Y,EAChC5E,KAAK6d,eAAeH,UAAY9Y,Q,wDCpGpC,IAAIpC,EAAW,EAAQ,QAAgBA,SAevClE,EAAOC,QAAU,SAAS+U,EAAMzH,EAAMk5B,EAAIyqB,GASxC,IARA,IAAInxD,EAASmxD,EACThoD,KAAKC,MAAM6L,EAAKjV,OAASwN,EAAOk5B,GAChCv9B,KAAK4X,KAAK9L,EAAKjV,OAASwN,EAAOk5B,GAC/B3B,GAAQ,GAAK2B,GAAM,EACnBlsB,EAAS,IAAIhT,WAAWxH,GACxB0a,EAAQ,EACR02C,EAAc,EACd7sB,EAAO,EACFthC,EAAI,EAAGA,EAAIgS,EAAKjV,SAAUiD,EAAG,CACpC,IAAIsD,EAAQ0O,EAAKhS,GACjBkB,EAAS,GAAKoC,GAAUA,GAASiH,IAAU,EAAG,kBAAoBjH,EAAQ,KAC1E6qD,EAAeA,GAAe5jD,EAAQjH,EACtCg+B,GAAQ/2B,EACR,MAAO+2B,GAAQmC,EACbnC,GAAQmC,EACRlsB,EAAOE,GAAU02C,GAAe7sB,EAAQQ,IACtCrqB,EAcN,OAXKy2C,EAMHhtD,EACEogC,EAAO/2B,GAAkD,KAAxC4jD,GAAgB1qB,EAAKnC,EAASQ,GAC/C,gCAAkC2B,EAAK,oDAPrCnC,EAAO,IACT/pB,EAAOE,GAAU02C,GAAgB1qB,EAAKnC,EAASQ,IAC7CrqB,GAQCF,I,kCCpET7M,OAAOC,eAAe1N,EAAS,aAAc,CAAEqG,OAAO,IACtDrG,EAAQ4U,WAAa5U,EAAQ+oC,OAAS/oC,EAAQmxD,iBAAmBnxD,EAAQoxD,cAAW,EACpF,IAAI98C,EAAW,EAAQ,QAUnB88C,EAA0B,WAC1B,SAASA,IACL3vD,KAAKohD,WAAa,GAClBphD,KAAK4vD,WAAa,GAClB5vD,KAAKolC,KAAO,EACZplC,KAAKE,GAAK,IAAIJ,MAAM,IACpBE,KAAKa,GAAK,WACVb,KAAKc,GAAK,WACVd,KAAKe,GAAK,WACVf,KAAKgB,GAAK,WACVhB,KAAKiB,GAAK,WACVjB,KAAKs0C,GAAK,WACVt0C,KAAKu0C,GAAK,UACVv0C,KAAKw0C,GAAK,WACVx0C,KAAKmhD,OAAStuC,EAASnU,OAAO8J,MAAMxI,KAAKohD,YAoI7C,OAlIAuO,EAAS/uD,UAAUiE,OAAS,SAAUyO,EAAMpP,GACpB,kBAAToP,IACPpP,EAAWA,GAAY,OACvBoP,EAAOT,EAASnU,OAAOmN,KAAKyH,EAAMpP,IAMtC,IAJA,IAAIs9C,EAAQxhD,KAAKmhD,OACbD,EAAYlhD,KAAKohD,WACjB/iD,EAASiV,EAAKjV,OACdwqD,EAAQ7oD,KAAKolC,KACRnd,EAAS,EAAGA,EAAS5pB,GAAS,CAGnC,IAFA,IAAIwxD,EAAWhH,EAAQ3H,EACnBznC,EAAYjS,KAAKsF,IAAIzO,EAAS4pB,EAAQi5B,EAAY2O,GAC7CvuD,EAAI,EAAGA,EAAImY,EAAWnY,IAC3BkgD,EAAMqO,EAAWvuD,GAAKgS,EAAK2U,EAAS3mB,GAExCunD,GAASpvC,EACTwO,GAAUxO,EACLovC,EAAQ3H,IAAe,GACxBlhD,KAAKkB,QAAQsgD,GAIrB,OADAxhD,KAAKolC,MAAQ/mC,EACN2B,MAEX2vD,EAAS/uD,UAAUsf,OAAS,SAAUhc,GAClC,IAAI6/C,EAAM/jD,KAAKolC,KAAOplC,KAAKohD,WAC3BphD,KAAKmhD,OAAO4C,GAAO,IAGnB/jD,KAAKmhD,OAAO70C,KAAK,EAAGy3C,EAAM,GACtBA,GAAO/jD,KAAK4vD,aACZ5vD,KAAKkB,QAAQlB,KAAKmhD,QAClBnhD,KAAKmhD,OAAO70C,KAAK,IAErB,IAAIs2B,EAAmB,EAAZ5iC,KAAKolC,KAEhB,GAAIxC,GAAQ,WACR5iC,KAAKmhD,OAAO0J,cAAcjoB,EAAM5iC,KAAKohD,WAAa,OAGjD,CACD,IAAI0O,GAAkB,WAAPltB,KAAuB,EAClCmtB,GAAYntB,EAAOktB,GAAW,WAClC9vD,KAAKmhD,OAAO0J,cAAckF,EAAU/vD,KAAKohD,WAAa,GACtDphD,KAAKmhD,OAAO0J,cAAciF,EAAS9vD,KAAKohD,WAAa,GAEzDphD,KAAKkB,QAAQlB,KAAKmhD,QAClB,IAAIt0B,EAAOha,EAASnU,OAAO8J,MAAM,IASjC,OARAqkB,EAAKhrB,aAAa7B,KAAKa,GAAI,GAC3BgsB,EAAKhrB,aAAa7B,KAAKc,GAAI,GAC3B+rB,EAAKhrB,aAAa7B,KAAKe,GAAI,GAC3B8rB,EAAKhrB,aAAa7B,KAAKgB,GAAI,IAC3B6rB,EAAKhrB,aAAa7B,KAAKiB,GAAI,IAC3B4rB,EAAKhrB,aAAa7B,KAAKs0C,GAAI,IAC3BznB,EAAKhrB,aAAa7B,KAAKu0C,GAAI,IAC3B1nB,EAAKhrB,aAAa7B,KAAKw0C,GAAI,IACpBtwC,EAAW2oB,EAAKzZ,SAASlP,GAAY2oB,GAEhD8iC,EAAS/uD,UAAUq+B,GAAK,SAAUx6B,EAAGb,EAAGK,GACpC,OAAOA,EAAKQ,GAAKb,EAAIK,IAEzB0rD,EAAS/uD,UAAU08B,IAAM,SAAU74B,EAAGb,EAAGK,GACrC,OAAQQ,EAAIb,EAAMK,GAAKQ,EAAIb,IAE/B+rD,EAAS/uD,UAAU28B,OAAS,SAAU94B,GAClC,OAAQA,IAAM,EAAIA,GAAK,KAAOA,IAAM,GAAKA,GAAK,KAAOA,IAAM,GAAKA,GAAK,KAEzEkrD,EAAS/uD,UAAU68B,OAAS,SAAUh5B,GAClC,OAAQA,IAAM,EAAIA,GAAK,KAAOA,IAAM,GAAKA,GAAK,KAAOA,IAAM,GAAKA,GAAK,IAEzEkrD,EAAS/uD,UAAUo/B,OAAS,SAAUv7B,GAClC,OAAQA,IAAM,EAAIA,GAAK,KAAOA,IAAM,GAAKA,GAAK,IAAOA,IAAM,GAE/DkrD,EAAS/uD,UAAUs/B,OAAS,SAAUz7B,GAClC,OAAQA,IAAM,GAAKA,GAAK,KAAOA,IAAM,GAAKA,GAAK,IAAOA,IAAM,IAEhEkrD,EAAS/uD,UAAUM,QAAU,SAAUC,GAWnC,IAVA,IAAItB,EAAIG,KAAKE,GACTkB,EAAc,EAAVpB,KAAKa,GACTJ,EAAc,EAAVT,KAAKc,GACTJ,EAAc,EAAVV,KAAKe,GACTJ,EAAc,EAAVX,KAAKgB,GACTK,EAAc,EAAVrB,KAAKiB,GACTsC,EAAc,EAAVvD,KAAKs0C,GACTvwC,EAAc,EAAV/D,KAAKu0C,GACT7wC,EAAc,EAAV1D,KAAKw0C,GACTlzC,EAAI,EACDA,EAAI,KAAMA,EACbzB,EAAEyB,GAAKH,EAAEI,YAAgB,EAAJD,GACzB,KAAOA,EAAI,KAAMA,EACbzB,EAAEyB,GAAMtB,KAAKkgC,OAAOrgC,EAAEyB,EAAI,IAAMzB,EAAEyB,EAAI,GAAKtB,KAAKggC,OAAOngC,EAAEyB,EAAI,KAAOzB,EAAEyB,EAAI,IAAO,EACrF,IAAK,IAAIE,EAAI,EAAGA,EAAI,KAAMA,EAAG,CACzB,IAAIioD,EAAM/lD,EAAI1D,KAAKy9B,OAAOp8B,GAAKrB,KAAKi/B,GAAG59B,EAAGkC,EAAGQ,GAAK4rD,EAAS/vD,EAAE4B,GAAK3B,EAAE2B,GAAM,EACtEkoD,EAAM1pD,KAAKu9B,OAAOn8B,GAAKpB,KAAKs9B,IAAIl8B,EAAGX,EAAGC,GAAM,EAChDgD,EAAIK,EACJA,EAAIR,EACJA,EAAIlC,EACJA,EAAKV,EAAI8oD,EAAM,EACf9oD,EAAID,EACJA,EAAID,EACJA,EAAIW,EACJA,EAAKqoD,EAAKC,EAAM,EAEpB1pD,KAAKa,GAAMO,EAAIpB,KAAKa,GAAM,EAC1Bb,KAAKc,GAAML,EAAIT,KAAKc,GAAM,EAC1Bd,KAAKe,GAAML,EAAIV,KAAKe,GAAM,EAC1Bf,KAAKgB,GAAML,EAAIX,KAAKgB,GAAM,EAC1BhB,KAAKiB,GAAMI,EAAIrB,KAAKiB,GAAM,EAC1BjB,KAAKs0C,GAAM/wC,EAAIvD,KAAKs0C,GAAM,EAC1Bt0C,KAAKu0C,GAAMxwC,EAAI/D,KAAKu0C,GAAM,EAC1Bv0C,KAAKw0C,GAAM9wC,EAAI1D,KAAKw0C,GAAM,GAE9Bmb,EAAS/vD,EAAI,CACT,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,UAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,UAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,UAAY,UAAY,UAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,YAEjC+vD,EAlJkB,GAoJ7BpxD,EAAQoxD,SAAWA,EACnB,IAAID,EAAkC,WAClC,SAASA,IACAA,EAAiBM,2BAAkE/iD,IAA1CyiD,EAAiBO,uBAC3DP,EAAiBO,qBAAuB,EAAQ,GAAU3f,YAE9DtwC,KAAK6sB,KAAO6iC,EAAiBO,qBAAqB,UAetD,OAbAP,EAAiB9uD,UAAUiE,OAAS,SAAUyO,EAAMpP,GAEhD,OADAlE,KAAK6sB,KAAKhoB,OAAOyO,EAAMpP,GAChBlE,MAEX0vD,EAAiB9uD,UAAUsf,OAAS,SAAUhc,GAC1C,OAAIA,EACOlE,KAAK6sB,KAAK3M,OAAOhc,GAGjBlE,KAAK6sB,KAAK3M,UAGzBwvC,EAAiBM,sBAAuB,EACjCN,EApB0B,GAsBrCnxD,EAAQmxD,iBAAmBA,EAC3B,IAAIQ,OAAuBjjD,EAC3B,SAASkjD,IACL,GAAIT,EAAiBM,2BAAiD/iD,IAAzBijD,EACzC,OAAOA,EAEX,IAAIE,GAAc,EAClB,IAEQ,IAAIC,EAAe,EAAQ,GAC3BD,EAAcC,GAAmD,oBAA5BA,EAAa/f,WAG1D,MAAOn2B,IAIP,OADA+1C,EAAuBE,EAChBA,EAEX,IAAI9oB,EAAwB,WACxB,SAASA,IACD6oB,IACAnwD,KAAKskD,SAAW,IAAIoL,EAGpB1vD,KAAKskD,SAAW,IAAIqL,EAe5B,OAZAroB,EAAO1mC,UAAUiE,OAAS,SAAUyO,EAAMpP,GAEtC,OADAlE,KAAKskD,SAASz/C,OAAOyO,EAAMpP,GACpBlE,MAEXsnC,EAAO1mC,UAAUsf,OAAS,SAAUhc,GAChC,OAAIA,EACOlE,KAAKskD,SAASpkC,OAAOhc,GAGrBlE,KAAKskD,SAASpkC,UAGtBonB,EArBgB,GA4B3B,SAASn0B,EAAWG,GAChB,OAAO,IAAIg0B,GAASziC,OAAOyO,GAAM4M,SANrC3hB,EAAQ+oC,OAASA,EAQjB/oC,EAAQ4U,WAAaA,EACrB5U,EAAQ+xD,QAAUn9C,G,kCC1OlB5U,EAAQ2D,YAAa,EAIrB,IAAIuU,EAAc,EAAQ,QACtB85C,EAAS,EAAQ,QACjB3nD,EAAS,EAAQ,QACjB4nD,EAAY,EAAQ,QACpBC,EAAU,EAAQ,QAClB5nD,EAAS,EAAQ,QACjBO,EAAW,EAAQ,QACvB,EAAQ,QACR7K,EAAQslB,4BAA8B,EACtCtlB,EAAQulB,4BAA8B0sC,EAAU9wC,gBAGhDnhB,EAAQwlB,eAAiBxlB,EAAQslB,4BAA8BtlB,EAAQulB,4BACvEvlB,EAAQylB,eAAiBpb,EAAO,WAAW0O,YAC3C/Y,EAAQ0lB,aAAe1lB,EAAQwlB,eAAiBxlB,EAAQylB,eACxDzlB,EAAQ2lB,aAAe,GACvB3lB,EAAQ4lB,oBAAsB5lB,EAAQ0lB,aAAe1lB,EAAQ2lB,aAC7D3lB,EAAQ6lB,oBAAsB,GAC9B7lB,EAAQ8lB,0BAA4B9lB,EAAQ4lB,oBAAsB5lB,EAAQ6lB,oBAC1E7lB,EAAQ+lB,0BAA4B,GAKpC/lB,EAAQgmB,qBAAuBhmB,EAAQ8lB,0BAA4B9lB,EAAQ+lB,0BAC3E/lB,EAAQimB,qBAAuB,GAC/BjmB,EAAQkmB,kBAAoBlmB,EAAQgmB,qBAAuBhmB,EAAQimB,qBACnEjmB,EAAQmmB,kBAAoB,GAG5BnmB,EAAQomB,cAAgBpmB,EAAQkmB,kBAAoBlmB,EAAQmmB,kBAC5DnmB,EAAQqmB,cAAgBhc,EAAO,WAAW0O,YAC1C/Y,EAAQsmB,yBAA2BtmB,EAAQomB,cAAgBpmB,EAAQqmB,cACnErmB,EAAQumB,yBAA2ByrC,EAAO,WAAWj5C,YACrD/Y,EAAQwmB,0BAA4BxmB,EAAQsmB,yBAA2BtmB,EAAQumB,yBAC/EvmB,EAAQymB,0BAA4BurC,EAAO,WAAWj5C,YACtD/Y,EAAQ0mB,WAAa1mB,EAAQwmB,0BAA4BxmB,EAAQymB,0BACjEzmB,EAAQ2mB,WAAa,GACrB3mB,EAAQ4mB,4BAA8B5mB,EAAQ0mB,WAAa1mB,EAAQ2mB,WACnE3mB,EAAQ6mB,4BAA8B,GACtC7mB,EAAQ8mB,wCAA0C9mB,EAAQ4mB,4BAA8B5mB,EAAQ6mB,4BAChG7mB,EAAQ+mB,wCAA0C,GAClD/mB,EAAQgnB,wCAA0ChnB,EAAQ8mB,wCAA0C9mB,EAAQ+mB,wCAC5G/mB,EAAQinB,wCAA0C,GAClDjnB,EAAQknB,yBAA2BlnB,EAAQgnB,wCAA0ChnB,EAAQinB,wCAC7FjnB,EAAQmnB,yBAA2B,GACnCnnB,EAAQonB,2BAA6BpnB,EAAQwlB,eAC7CxlB,EAAQqnB,2BAA6BrnB,EAAQomB,cAAgBpmB,EAAQwlB,eACrExlB,EAAQsnB,mBAAqBtnB,EAAQknB,yBAA2BlnB,EAAQmnB,yBACxEnnB,EAAQunB,wBAA0ByqC,EAAO,WAAWj5C,YAUpD/Y,EAAQ8kB,8BAAgC,SAAUqtC,GAC9C,IAAK9pD,OAAOsQ,UAAUw5C,GAClB,MAAM,IAAIlkD,UAAU3D,EAAOkG,0BAE/B,OAAO2hD,GAAkB,GAAKA,EAAiBnyD,EAAQsnB,qBAAuB,GAclFtnB,EAAQoyD,uBAAyB,SAAUC,EAAwBC,GAC/D,IAAKjqD,OAAOsQ,UAAU05C,GAClB,MAAM,IAAIpkD,UAAU3D,EAAOgG,kCAE/B,GAAI+hD,EAAyB,EACzB,MAAM,IAAIE,WAAWjoD,EAAOgG,kCAEhC,IAAKjI,OAAOsQ,UAAU25C,GAClB,MAAM,IAAIrkD,UAAU3D,EAAOiG,kCAE/B,GAAI+hD,EAAyB,EACzB,MAAM,IAAIC,WAAWjoD,EAAOiG,kCAEhC,OAAO,SAAUiiD,EAAmBC,GAEhC,QAD0B,IAAtBA,IAAgCA,EAAoB,KAClDD,aAA6BnlD,WAC/B,MAAM,IAAIrM,MAAMsJ,EAAOmG,4BAE3B,IAAKzQ,EAAQ8kB,8BAA8B0tC,EAAkB1yD,QACzD,MAAM,IAAIyyD,WAAWjoD,EAAOoG,mCAEhC,IAAK1Q,EAAQ8kB,8BAA8B2tC,GACvC,MAAM,IAAIF,WAAWjoD,EAAOqG,4BAEhC,OAAO6hD,EAAkB7xD,MAAM8xD,EAAoBJ,EAAwBI,EAAoBJ,EAAyBC,KAYhItyD,EAAQglB,mBAAqBhlB,EAAQoyD,uBAAuBpyD,EAAQslB,4BAA6BtlB,EAAQulB,6BAWzGvlB,EAAQP,QAAUO,EAAQoyD,uBAAuBpyD,EAAQwlB,eAAgBxlB,EAAQylB,gBAWjFzlB,EAAQqG,MAAQrG,EAAQoyD,uBAAuBpyD,EAAQ0lB,aAAc1lB,EAAQ2lB,cAC7E3lB,EAAQ0yD,kBAAoB,SAAUC,GAYlC,YAXa,IAATA,IAAmBA,GAAO,GAWvB,SAAUjyD,EAAQgpB,GAGrB,YAFe,IAAXA,IAAqBA,EAAS,GAClCwoC,EAAQS,EAAM,6EACP3yD,EAAQoyD,uBAAuBpyD,EAAQ4lB,oBAAqB5lB,EAAQ6lB,oBAApE7lB,CAAyFU,EAAQgpB,KAGhH1pB,EAAQ6kB,YAAc7kB,EAAQ0yD,oBAW9B1yD,EAAQ+kB,kBAAoB/kB,EAAQoyD,uBAAuBpyD,EAAQ8lB,0BAA2B9lB,EAAQ+lB,2BACtG/lB,EAAQ4yD,mBAAqB,SAAUD,GAYnC,YAXa,IAATA,IAAmBA,GAAO,GAWvB,SAAUjyD,EAAQgpB,GAGrB,YAFe,IAAXA,IAAqBA,EAAS,GAClCwoC,EAAQS,EAAM,8EACP3yD,EAAQoyD,uBAAuBpyD,EAAQgmB,qBAAsBhmB,EAAQimB,qBAArEjmB,CAA2FU,EAAQgpB,KAGlH1pB,EAAQ2kB,aAAe3kB,EAAQ4yD,qBAC/B5yD,EAAQ6yD,gBAAkB,SAAUF,GAYhC,YAXa,IAATA,IAAmBA,GAAO,GAWvB,SAAUjyD,EAAQgpB,GAGrB,YAFe,IAAXA,IAAqBA,EAAS,GAClCwoC,EAAQS,EAAM,2EACP3yD,EAAQoyD,uBAAuBpyD,EAAQkmB,kBAAmBlmB,EAAQmmB,kBAAlEnmB,CAAqFU,EAAQgpB,KAG5G1pB,EAAQ4kB,UAAY5kB,EAAQ6yD,kBAC5B7yD,EAAQ8yD,aAAe,SAAUH,GAY7B,YAXa,IAATA,IAAmBA,GAAO,GAWvB,SAAUjyD,EAAQgpB,GAGrB,YAFe,IAAXA,IAAqBA,EAAS,GAClCwoC,EAAQS,EAAM,wEACP3yD,EAAQoyD,uBAAuBpyD,EAAQomB,cAAepmB,EAAQqmB,cAA9DrmB,CAA6EU,EAAQgpB,KAGpG1pB,EAAQsiB,OAAStiB,EAAQ8yD,eAWzB9yD,EAAQqlB,iBAAmBrlB,EAAQoyD,uBAAuBpyD,EAAQsmB,yBAA0BtmB,EAAQumB,0BAWpGvmB,EAAQ0kB,kBAAoB1kB,EAAQoyD,uBAAuBpyD,EAAQwmB,0BAA2BxmB,EAAQymB,2BAWtGzmB,EAAQilB,IAAMjlB,EAAQoyD,uBAAuBpyD,EAAQ0mB,WAAY1mB,EAAQ2mB,YAWzE3mB,EAAQukB,oBAAsBvkB,EAAQoyD,uBAAuBpyD,EAAQ4mB,4BAA6B5mB,EAAQ6mB,6BAW1G7mB,EAAQwkB,8BAAgCxkB,EAAQoyD,uBAAuBpyD,EAAQ8mB,wCAAyC9mB,EAAQ+mB,yCAWhI/mB,EAAQykB,8BAAgCzkB,EAAQoyD,uBAAuBpyD,EAAQgnB,wCAAyChnB,EAAQinB,yCAWhIjnB,EAAQolB,iBAAmBplB,EAAQoyD,uBAAuBpyD,EAAQknB,yBAA0BlnB,EAAQmnB,0BAWpGnnB,EAAQklB,mBAAqBllB,EAAQoyD,uBAAuBpyD,EAAQonB,2BAA4BpnB,EAAQqnB,4BA6BxGrnB,EAAQmlB,gBAAkB,SAAUzkB,EAAQgpB,GAExC,QADe,IAAXA,IAAqBA,EAAS,IAC7B1pB,EAAQ8kB,8BAA8BpkB,EAAOZ,QAC9C,MAAM,IAAIkB,MAAMsJ,EAAOoG,mCAE3B,IAAK1Q,EAAQ8kB,8BAA8B4E,GACvC,MAAM,IAAI1oB,MAAMsJ,EAAOqG,4BAE3B,IAAI2S,EAAS,IAAIjW,UAAU2kD,EAAO,WAAWj5C,aACzCiI,EAAS,IAAIgxC,EAAO,WAGxB,OAFAhxC,EAAO9H,OAAOxY,EAAQgpB,EAAQ1pB,EAAQsnB,oBACtCtG,EAAO7H,QAAQmK,EAAQ,EAAG0uC,EAAO,WAAWj5C,aACrCuK,GAgCXtjB,EAAQkN,cAAgB,SAAU6lD,EAAa3oB,GAE3C,QAD2B,IAAvBA,IAAiCA,EAAqB,IACrD/hC,OAAOsQ,UAAUyxB,GAClB,MAAM,IAAIn8B,UAAU3D,EAAOqF,8BAE/B,GAAIy6B,EAAqB,GAAKA,EAAqBpqC,EAAQunB,wBACvD,MAAM,IAAIgrC,WAAWjoD,EAAOqF,8BAEhC,OAAQojD,EAAYjzD,SAAWE,EAAQsnB,oBACnCzc,EAASs+B,QAAQ4pB,KAGyC,IAAzD76C,EAAYmD,aAAarb,EAAQqG,MAAM0sD,KAA4F,IAArEA,EAAY/yD,EAAQwlB,eAAiBxlB,EAAQylB,eAAiB,OAC3H2kB,GACEpqC,EAAQmlB,gBAAgB4tC,GACnBplD,SAAS3N,EAAQunB,wBAA0B6iB,EAAoBpqC,EAAQunB,yBACvE1Z,OAAM,SAAUwV,GAAQ,OAAgB,IAATA,OA0BhDrjB,EAAQgN,OAAS,SAAU+lD,GACvB,OAAO/yD,EAAQkN,cAAc6lD,IAA6F,IAA7E76C,EAAYmD,aAAarb,EAAQ4yD,oBAAmB,EAA3B5yD,CAAkC+yD,KA0B5G/yD,EAAQiN,OAAS,SAAU8lD,GACvB,OAAO/yD,EAAQkN,cAAc6lD,IACzB76C,EAAYmD,aAAarb,EAAQ4yD,oBAAmB,EAA3B5yD,CAAkC+yD,MAAkB76C,EAAYmD,aAAarb,EAAQ6yD,iBAAgB,EAAxB7yD,CAA+B+yD,KAgC7I/yD,EAAQ+M,WAAa,SAAUgmD,GAC3B,OAAO/yD,EAAQkN,cAAc6lD,IACzBA,EACKplD,SAAS3N,EAAQ4mB,4BAA6B5mB,EAAQ4mB,4BAA8B5mB,EAAQ6mB,6BAC5F/Y,MAAK,SAAUuV,GAAQ,OAAgB,IAATA,O,kCC9e3C,IAAIljB,EAAS,EAAQ,QAAUA,OAC3BgB,EAAW,EAAQ,QACnBuhD,EAAW,EAAQ,QAEnBsQ,EAAU,IAAIzxD,MAAM,IAEpB0xD,EAAK,CACP,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAClD,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EACnD,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAClD,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EACnD,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,IAGhDC,EAAK,CACP,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAClD,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EACnD,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAClD,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAClD,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,IAGhDC,EAAK,CACP,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EACrD,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GACpD,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EACrD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GACpD,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAGnDC,EAAK,CACP,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EACrD,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GACpD,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EACrD,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EACrD,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,IAGlD7xB,EAAK,CAAC,EAAY,WAAY,WAAY,WAAY,YACtD8xB,EAAK,CAAC,WAAY,WAAY,WAAY,WAAY,GAE1D,SAAS1P,IACPjB,EAAS9gD,KAAKH,KAAM,IAGpBA,KAAKa,GAAK,WACVb,KAAKc,GAAK,WACVd,KAAKe,GAAK,WACVf,KAAKgB,GAAK,UACVhB,KAAKiB,GAAK,WAwFZ,SAAS4wD,EAAMptD,EAAGjB,GAChB,OAAQiB,GAAKjB,EAAMiB,IAAO,GAAKjB,EAGjC,SAASsuD,EAAK1wD,EAAGX,EAAGC,EAAGC,EAAGU,EAAGU,EAAG0B,EAAGjD,GACjC,OAAQqxD,EAAMzwD,GAAKX,EAAIC,EAAIC,GAAKoB,EAAI0B,EAAK,EAAGjD,GAAKa,EAAK,EAGxD,SAAS0wD,EAAK3wD,EAAGX,EAAGC,EAAGC,EAAGU,EAAGU,EAAG0B,EAAGjD,GACjC,OAAQqxD,EAAMzwD,GAAMX,EAAIC,GAAQD,EAAKE,GAAMoB,EAAI0B,EAAK,EAAGjD,GAAKa,EAAK,EAGnE,SAAS2wD,EAAK5wD,EAAGX,EAAGC,EAAGC,EAAGU,EAAGU,EAAG0B,EAAGjD,GACjC,OAAQqxD,EAAMzwD,IAAMX,GAAMC,GAAMC,GAAKoB,EAAI0B,EAAK,EAAGjD,GAAKa,EAAK,EAG7D,SAAS4wD,EAAK7wD,EAAGX,EAAGC,EAAGC,EAAGU,EAAGU,EAAG0B,EAAGjD,GACjC,OAAQqxD,EAAMzwD,GAAMX,EAAIE,EAAMD,GAAMC,GAAOoB,EAAI0B,EAAK,EAAGjD,GAAKa,EAAK,EAGnE,SAAS6wD,EAAK9wD,EAAGX,EAAGC,EAAGC,EAAGU,EAAGU,EAAG0B,EAAGjD,GACjC,OAAQqxD,EAAMzwD,GAAKX,GAAKC,GAAMC,IAAOoB,EAAI0B,EAAK,EAAGjD,GAAKa,EAAK,EA1G7D3B,EAASwiD,EAAWjB,GAEpBiB,EAAUthD,UAAUM,QAAU,WAE5B,IADA,IAAI4nB,EAAQyoC,EACH/vD,EAAI,EAAGA,EAAI,KAAMA,EAAGsnB,EAAMtnB,GAAKxB,KAAKmhD,OAAOgR,YAAgB,EAAJ3wD,GAehE,IAbA,IAAI+9B,EAAe,EAAVv/B,KAAKa,GACV2+B,EAAe,EAAVx/B,KAAKc,GACV2+B,EAAe,EAAVz/B,KAAKe,GACV2+B,EAAe,EAAV1/B,KAAKgB,GACV2+B,EAAe,EAAV3/B,KAAKiB,GAEVmxD,EAAe,EAAVpyD,KAAKa,GACVwxD,EAAe,EAAVryD,KAAKc,GACVwxD,EAAe,EAAVtyD,KAAKe,GACVwxD,EAAe,EAAVvyD,KAAKgB,GACVkb,EAAe,EAAVlc,KAAKiB,GAGLK,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAAG,CAC9B,IAAIkxD,EACAC,EACAnxD,EAAI,IACNkxD,EAAKV,EAAIvyB,EAAIC,EAAIC,EAAIC,EAAIC,EAAI7W,EAAM0oC,EAAGlwD,IAAKw+B,EAAG,GAAI4xB,EAAGpwD,IACrDmxD,EAAKP,EAAIE,EAAIC,EAAIC,EAAIC,EAAIr2C,EAAI4M,EAAM2oC,EAAGnwD,IAAKswD,EAAG,GAAID,EAAGrwD,KAC5CA,EAAI,IACbkxD,EAAKT,EAAIxyB,EAAIC,EAAIC,EAAIC,EAAIC,EAAI7W,EAAM0oC,EAAGlwD,IAAKw+B,EAAG,GAAI4xB,EAAGpwD,IACrDmxD,EAAKR,EAAIG,EAAIC,EAAIC,EAAIC,EAAIr2C,EAAI4M,EAAM2oC,EAAGnwD,IAAKswD,EAAG,GAAID,EAAGrwD,KAC5CA,EAAI,IACbkxD,EAAKR,EAAIzyB,EAAIC,EAAIC,EAAIC,EAAIC,EAAI7W,EAAM0oC,EAAGlwD,IAAKw+B,EAAG,GAAI4xB,EAAGpwD,IACrDmxD,EAAKT,EAAII,EAAIC,EAAIC,EAAIC,EAAIr2C,EAAI4M,EAAM2oC,EAAGnwD,IAAKswD,EAAG,GAAID,EAAGrwD,KAC5CA,EAAI,IACbkxD,EAAKP,EAAI1yB,EAAIC,EAAIC,EAAIC,EAAIC,EAAI7W,EAAM0oC,EAAGlwD,IAAKw+B,EAAG,GAAI4xB,EAAGpwD,IACrDmxD,EAAKV,EAAIK,EAAIC,EAAIC,EAAIC,EAAIr2C,EAAI4M,EAAM2oC,EAAGnwD,IAAKswD,EAAG,GAAID,EAAGrwD,MAErDkxD,EAAKN,EAAI3yB,EAAIC,EAAIC,EAAIC,EAAIC,EAAI7W,EAAM0oC,EAAGlwD,IAAKw+B,EAAG,GAAI4xB,EAAGpwD,IACrDmxD,EAAKX,EAAIM,EAAIC,EAAIC,EAAIC,EAAIr2C,EAAI4M,EAAM2oC,EAAGnwD,IAAKswD,EAAG,GAAID,EAAGrwD,KAGvDi+B,EAAKI,EACLA,EAAKD,EACLA,EAAKmyB,EAAKpyB,EAAI,IACdA,EAAKD,EACLA,EAAKgzB,EAELJ,EAAKl2C,EACLA,EAAKq2C,EACLA,EAAKV,EAAKS,EAAI,IACdA,EAAKD,EACLA,EAAKI,EAIP,IAAIhxD,EAAKzB,KAAKc,GAAK2+B,EAAK8yB,EAAM,EAC9BvyD,KAAKc,GAAMd,KAAKe,GAAK2+B,EAAKxjB,EAAM,EAChClc,KAAKe,GAAMf,KAAKgB,GAAK2+B,EAAKyyB,EAAM,EAChCpyD,KAAKgB,GAAMhB,KAAKiB,GAAKs+B,EAAK8yB,EAAM,EAChCryD,KAAKiB,GAAMjB,KAAKa,GAAK2+B,EAAK8yB,EAAM,EAChCtyD,KAAKa,GAAKY,GAGZygD,EAAUthD,UAAU6gD,QAAU,WAE5BzhD,KAAKmhD,OAAOnhD,KAAKqhD,gBAAkB,IAC/BrhD,KAAKqhD,aAAe,KACtBrhD,KAAKmhD,OAAO70C,KAAK,EAAGtM,KAAKqhD,aAAc,IACvCrhD,KAAKkB,UACLlB,KAAKqhD,aAAe,GAGtBrhD,KAAKmhD,OAAO70C,KAAK,EAAGtM,KAAKqhD,aAAc,IACvCrhD,KAAKmhD,OAAOuR,cAAc1yD,KAAKshD,QAAQ,GAAI,IAC3CthD,KAAKmhD,OAAOuR,cAAc1yD,KAAKshD,QAAQ,GAAI,IAC3CthD,KAAKkB,UAGL,IAAIjC,EAASP,EAAO8J,MAAQ9J,EAAO8J,MAAM,IAAM,IAAI9J,EAAO,IAM1D,OALAO,EAAO0zD,aAAa3yD,KAAKa,GAAI,GAC7B5B,EAAO0zD,aAAa3yD,KAAKc,GAAI,GAC7B7B,EAAO0zD,aAAa3yD,KAAKe,GAAI,GAC7B9B,EAAO0zD,aAAa3yD,KAAKgB,GAAI,IAC7B/B,EAAO0zD,aAAa3yD,KAAKiB,GAAI,IACtBhC,GA2BTX,EAAOC,QAAU2jD,G,mBClKjB,MAAM0Q,EAAa,IAAI3qD,OAAO,0CAE9B3J,EAAOC,QAAU,CACfC,eAAgB,SAAUR,EAASC,EAAUC,GAC3C,QAAK00D,EAAW1qD,KAAKlK,M,qBCJzB,IAAIU,EAAS,EAAQ,QAAeA,OAGpC,SAASiB,EAAMuhD,EAAW2R,GACxB7yD,KAAKmhD,OAASziD,EAAO8J,MAAM04C,GAC3BlhD,KAAK4vD,WAAaiD,EAClB7yD,KAAKohD,WAAaF,EAClBlhD,KAAKolC,KAAO,EAGdzlC,EAAKiB,UAAUiE,OAAS,SAAUyO,EAAMwzB,GAClB,kBAATxzB,IACTwzB,EAAMA,GAAO,OACbxzB,EAAO5U,EAAOmN,KAAKyH,EAAMwzB,IAQ3B,IALA,IAAI0a,EAAQxhD,KAAKmhD,OACbD,EAAYlhD,KAAKohD,WACjB/iD,EAASiV,EAAKjV,OACdwqD,EAAQ7oD,KAAKolC,KAERnd,EAAS,EAAGA,EAAS5pB,GAAS,CAIrC,IAHA,IAAIwxD,EAAWhH,EAAQ3H,EACnBznC,EAAYjS,KAAKsF,IAAIzO,EAAS4pB,EAAQi5B,EAAY2O,GAE7CvuD,EAAI,EAAGA,EAAImY,EAAWnY,IAC7BkgD,EAAMqO,EAAWvuD,GAAKgS,EAAK2U,EAAS3mB,GAGtCunD,GAASpvC,EACTwO,GAAUxO,EAELovC,EAAQ3H,IAAe,GAC1BlhD,KAAKkB,QAAQsgD,GAKjB,OADAxhD,KAAKolC,MAAQ/mC,EACN2B,MAGTL,EAAKiB,UAAUsf,OAAS,SAAU4mB,GAChC,IAAIid,EAAM/jD,KAAKolC,KAAOplC,KAAKohD,WAE3BphD,KAAKmhD,OAAO4C,GAAO,IAInB/jD,KAAKmhD,OAAO70C,KAAK,EAAGy3C,EAAM,GAEtBA,GAAO/jD,KAAK4vD,aACd5vD,KAAKkB,QAAQlB,KAAKmhD,QAClBnhD,KAAKmhD,OAAO70C,KAAK,IAGnB,IAAIs2B,EAAmB,EAAZ5iC,KAAKolC,KAGhB,GAAIxC,GAAQ,WACV5iC,KAAKmhD,OAAO0J,cAAcjoB,EAAM5iC,KAAKohD,WAAa,OAG7C,CACL,IAAI0O,GAAkB,WAAPltB,KAAuB,EAClCmtB,GAAYntB,EAAOktB,GAAW,WAElC9vD,KAAKmhD,OAAO0J,cAAckF,EAAU/vD,KAAKohD,WAAa,GACtDphD,KAAKmhD,OAAO0J,cAAciF,EAAS9vD,KAAKohD,WAAa,GAGvDphD,KAAKkB,QAAQlB,KAAKmhD,QAClB,IAAIt0B,EAAO7sB,KAAK0B,QAEhB,OAAOolC,EAAMja,EAAKzZ,SAAS0zB,GAAOja,GAGpCltB,EAAKiB,UAAUM,QAAU,WACvB,MAAM,IAAI3B,MAAM,4CAGlBjB,EAAOC,QAAUoB,G,kCCjEjB,SAASmzD,EAAS1tD,EAAGhE,EAAGX,GACtB,IAAIsyD,EAAK3tD,EAAEhE,GAAKgE,EAAE3E,GACduyD,EAAK5tD,EAAEhE,EAAI,GAAKgE,EAAE3E,EAAI,GACtBsyD,GAAM,YACRC,IAEF5tD,EAAEhE,GAAK2xD,EACP3tD,EAAEhE,EAAI,GAAK4xD,EAMb,SAASC,EAAS7tD,EAAGhE,EAAG8xD,EAAIC,GAC1B,IAAIJ,EAAK3tD,EAAEhE,GAAK8xD,EACZA,EAAK,IACPH,GAAM,YAER,IAAIC,EAAK5tD,EAAEhE,EAAI,GAAK+xD,EAChBJ,GAAM,YACRC,IAEF5tD,EAAEhE,GAAK2xD,EACP3tD,EAAEhE,EAAI,GAAK4xD,EAIb,SAASI,EAAW5qB,EAAKlnC,GACvB,OAAQknC,EAAIlnC,GACXknC,EAAIlnC,EAAI,IAAM,EACdknC,EAAIlnC,EAAI,IAAM,GACdknC,EAAIlnC,EAAI,IAAM,GAKjB,SAAS+xD,EAAOjyD,EAAGX,EAAGC,EAAGC,EAAG2yD,EAAIC,GAC9B,IAAIC,EAAKzxD,EAAEuxD,GACPG,EAAK1xD,EAAEuxD,EAAK,GACZI,EAAK3xD,EAAEwxD,GACPI,EAAK5xD,EAAEwxD,EAAK,GAEhBT,EAAQ1tD,EAAGhE,EAAGX,GACdwyD,EAAQ7tD,EAAGhE,EAAGoyD,EAAIC,GAGlB,IAAIG,EAAOxuD,EAAEzE,GAAKyE,EAAEhE,GAChByyD,EAAOzuD,EAAEzE,EAAI,GAAKyE,EAAEhE,EAAI,GAC5BgE,EAAEzE,GAAKkzD,EACPzuD,EAAEzE,EAAI,GAAKizD,EAEXd,EAAQ1tD,EAAG1E,EAAGC,GAGdizD,EAAOxuD,EAAE3E,GAAK2E,EAAE1E,GAChBmzD,EAAOzuD,EAAE3E,EAAI,GAAK2E,EAAE1E,EAAI,GACxB0E,EAAE3E,GAAMmzD,IAAS,GAAOC,GAAQ,EAChCzuD,EAAE3E,EAAI,GAAMozD,IAAS,GAAOD,GAAQ,EAEpCd,EAAQ1tD,EAAGhE,EAAGX,GACdwyD,EAAQ7tD,EAAGhE,EAAGsyD,EAAIC,GAGlBC,EAAOxuD,EAAEzE,GAAKyE,EAAEhE,GAChByyD,EAAOzuD,EAAEzE,EAAI,GAAKyE,EAAEhE,EAAI,GACxBgE,EAAEzE,GAAMizD,IAAS,GAAOC,GAAQ,GAChCzuD,EAAEzE,EAAI,GAAMkzD,IAAS,GAAOD,GAAQ,GAEpCd,EAAQ1tD,EAAG1E,EAAGC,GAGdizD,EAAOxuD,EAAE3E,GAAK2E,EAAE1E,GAChBmzD,EAAOzuD,EAAE3E,EAAI,GAAK2E,EAAE1E,EAAI,GACxB0E,EAAE3E,GAAMozD,IAAS,GAAOD,GAAQ,EAChCxuD,EAAE3E,EAAI,GAAMmzD,IAAS,GAAOC,GAAQ,EAItC,IAAIC,EAAe,IAAI3mD,YAAY,CACjC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,UAAY,UAAY,aAGlC4mD,EAAS,CACX,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAClD,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EACnD,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EACnD,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EACnD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAClD,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EACnD,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAClD,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAClD,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EACnD,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,EACnD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAClD,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAMjDC,EAAU,IAAInuD,WAAWkuD,EAAO5nD,KAAI,SAAU1H,GAAK,OAAW,EAAJA,MAI1DW,EAAI,IAAI+H,YAAY,IACpBpL,EAAI,IAAIoL,YAAY,IACxB,SAAS8mD,EAAiBC,EAAKhnD,GAC7B,IAAI5L,EAAI,EAGR,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAClB8D,EAAE9D,GAAK4yD,EAAIxwD,EAAEpC,GACb8D,EAAE9D,EAAI,IAAMwyD,EAAaxyD,GAe3B,IAXA8D,EAAE,IAAMA,EAAE,IAAM8uD,EAAIzyD,EACpB2D,EAAE,IAAMA,EAAE,IAAO8uD,EAAIzyD,EAAI,WAIrByL,IACF9H,EAAE,KAAOA,EAAE,IACXA,EAAE,KAAOA,EAAE,KAIR9D,EAAI,EAAGA,EAAI,GAAIA,IAClBS,EAAET,GAAK8xD,EAAUc,EAAIzzD,EAAG,EAAIa,GAI9B,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAClB+xD,EAAM,EAAG,EAAG,GAAI,GAAIW,EAAY,GAAJ1yD,EAAS,GAAI0yD,EAAY,GAAJ1yD,EAAS,IAC1D+xD,EAAM,EAAG,GAAI,GAAI,GAAIW,EAAY,GAAJ1yD,EAAS,GAAI0yD,EAAY,GAAJ1yD,EAAS,IAC3D+xD,EAAM,EAAG,GAAI,GAAI,GAAIW,EAAY,GAAJ1yD,EAAS,GAAI0yD,EAAY,GAAJ1yD,EAAS,IAC3D+xD,EAAM,EAAG,GAAI,GAAI,GAAIW,EAAY,GAAJ1yD,EAAS,GAAI0yD,EAAY,GAAJ1yD,EAAS,IAC3D+xD,EAAM,EAAG,GAAI,GAAI,GAAIW,EAAY,GAAJ1yD,EAAS,GAAI0yD,EAAY,GAAJ1yD,EAAS,IAC3D+xD,EAAM,EAAG,GAAI,GAAI,GAAIW,EAAY,GAAJ1yD,EAAS,IAAK0yD,EAAY,GAAJ1yD,EAAS,KAC5D+xD,EAAM,EAAG,GAAI,GAAI,GAAIW,EAAY,GAAJ1yD,EAAS,IAAK0yD,EAAY,GAAJ1yD,EAAS,KAC5D+xD,EAAM,EAAG,EAAG,GAAI,GAAIW,EAAY,GAAJ1yD,EAAS,IAAK0yD,EAAY,GAAJ1yD,EAAS,KAG7D,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAClB4yD,EAAIxwD,EAAEpC,GAAK4yD,EAAIxwD,EAAEpC,GAAK8D,EAAE9D,GAAK8D,EAAE9D,EAAI,IAKvC,IAAI6yD,EAAkB,IAAItuD,WAAW,CACnC,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,IAMX,SAASuuD,EAASC,EAAQp8C,EAAKq8C,EAAMC,GAEnCJ,EAAgB7nD,KAAK,GAGrBtM,KAAKS,EAAI,IAAIoF,WAAW,KACxB7F,KAAK0D,EAAI,IAAIyJ,YAAY,IACzBnN,KAAKyB,EAAI,EACTzB,KAAKU,EAAI,EACTV,KAAKq0D,OAASA,EAEdF,EAAgB,GAAKE,EACjBp8C,IAAKk8C,EAAgB,GAAKl8C,EAAI5Z,QAClC81D,EAAgB,GAAK,EACrBA,EAAgB,GAAK,EAEjBG,GAAMH,EAAgB/yC,IAAIkzC,EAAM,IAChCC,GAAUJ,EAAgB/yC,IAAImzC,EAAU,IAG5C,IAAK,IAAIjzD,EAAI,EAAGA,EAAI,GAAIA,IACtBtB,KAAK0D,EAAEpC,GAAKwyD,EAAaxyD,GAAK8xD,EAAUe,EAAqB,EAAJ7yD,GAIvD2W,IACFu8C,EAAcx0D,KAAMiY,GAEpBjY,KAAKU,EAAI,KAoBb,SAAS8zD,EAAeN,EAAK3nD,GAC3B,IAAK,IAAIjL,EAAI,EAAGA,EAAIiL,EAAMlO,OAAQiD,IAClB,MAAV4yD,EAAIxzD,IACNwzD,EAAIzyD,GAAKyyD,EAAIxzD,EACbuzD,EAAgBC,GAAK,GACrBA,EAAIxzD,EAAI,GAEVwzD,EAAIzzD,EAAEyzD,EAAIxzD,KAAO6L,EAAMjL,GAM3B,SAASmzD,EAAcP,EAAKpxB,GAC1BoxB,EAAIzyD,GAAKyyD,EAAIxzD,EAEb,MAAOwzD,EAAIxzD,EAAI,IACbwzD,EAAIzzD,EAAEyzD,EAAIxzD,KAAO,EAEnBuzD,EAAgBC,GAAK,GAErB,IAAK,IAAI5yD,EAAI,EAAGA,EAAI4yD,EAAIG,OAAQ/yD,IAC9BwhC,EAAIxhC,GAAK4yD,EAAIxwD,EAAEpC,GAAK,IAAO,GAAS,EAAJA,GAElC,OAAOwhC,EAGT,SAAS4xB,EAAUn8C,GAEjB,IADA,IAAIoS,EAAM,GACDrpB,EAAI,EAAGA,EAAIiX,EAAIla,OAAQiD,IAAKqpB,GAAOrB,EAAM/Q,EAAIjX,IACtD,OAAOqpB,EAGT,SAASrB,EAAO9lB,GACd,OAAIA,EAAI,GAAW,IAAMA,EAAE4P,SAAS,IAC7B5P,EAAE4P,SAAS,IAnDpBghD,EAAQxzD,UAAUiE,OAAS,SAAU0H,GAEnC,OADAioD,EAAcx0D,KAAMuM,GACbvM,MAGTo0D,EAAQxzD,UAAUsf,OAAS,SAAU4iB,GACnC,IAAIvqB,EAAQuqB,GAAe,WAARA,GAA4B,QAARA,EAA+CA,EAA9B,IAAIj9B,WAAW7F,KAAKq0D,QAE5E,OADAI,EAAaz0D,KAAMuY,GACP,QAARuqB,EAAsB4xB,EAASn8C,GAC5BA,GAGT67C,EAAQxzD,UAAU+nB,MAAQyrC,EAAQxzD,UAAUsf,OA0C5C5hB,EAAOC,QAAU61D,G,kCC1PjB,SAASjjB,EAAWtM,EAAIyD,GACtB,GAAIqsB,EAAO,iBACT,OAAO9vB,EAGT,IAAI+vB,GAAS,EACb,SAASC,IACP,IAAKD,EAAQ,CACX,GAAID,EAAO,oBACT,MAAM,IAAIp1D,MAAM+oC,GACPqsB,EAAO,oBAChBG,QAAQC,MAAMzsB,GAEdwsB,QAAQ5D,KAAK5oB,GAEfssB,GAAS,EAEX,OAAO/vB,EAAGX,MAAMlkC,KAAM2M,WAGxB,OAAOkoD,EAWT,SAASF,EAAQjtD,GAEf,IACE,IAAKsiC,EAAOgrB,aAAc,OAAO,EACjC,MAAOpuB,GACP,OAAO,EAET,IAAIzK,EAAM6N,EAAOgrB,aAAattD,GAC9B,OAAI,MAAQy0B,GACyB,SAA9Bx2B,OAAOw2B,GAAK3oB,cA5DrBlV,EAAOC,QAAU4yC,I,2CCLjB,IAAIzxC,EAAW,EAAQ,QACnBu1D,EAAS,EAAQ,QACjBt1D,EAAO,EAAQ,QACfjB,EAAS,EAAQ,QAAeA,OAEhCmB,EAAI,IAAIC,MAAM,KAElB,SAASo1D,IACPl1D,KAAKC,OACLD,KAAKE,GAAKL,EAEVF,EAAKQ,KAAKH,KAAM,IAAK,KAGvBN,EAASw1D,EAAQD,GAEjBC,EAAOt0D,UAAUX,KAAO,WAmBtB,OAlBAD,KAAK+9B,IAAM,WACX/9B,KAAKg+B,IAAM,WACXh+B,KAAKi+B,IAAM,WACXj+B,KAAKk+B,IAAM,UACXl+B,KAAKm+B,IAAM,WACXn+B,KAAKo+B,IAAM,WACXp+B,KAAKq+B,IAAM,WACXr+B,KAAKs+B,IAAM,WAEXt+B,KAAKu+B,IAAM,WACXv+B,KAAKw+B,IAAM,UACXx+B,KAAKy+B,IAAM,UACXz+B,KAAK0+B,IAAM,WACX1+B,KAAK2+B,IAAM,WACX3+B,KAAK4+B,IAAM,WACX5+B,KAAK6+B,IAAM,WACX7+B,KAAK8+B,IAAM,WAEJ9+B,MAGTk1D,EAAOt0D,UAAUc,MAAQ,WACvB,IAAIC,EAAIjD,EAAOkD,YAAY,IAE3B,SAAS4/B,EAAc99B,EAAGI,EAAGmkB,GAC3BtmB,EAAEE,aAAa6B,EAAGukB,GAClBtmB,EAAEE,aAAaiC,EAAGmkB,EAAS,GAU7B,OAPAuZ,EAAaxhC,KAAK+9B,IAAK/9B,KAAKu+B,IAAK,GACjCiD,EAAaxhC,KAAKg+B,IAAKh+B,KAAKw+B,IAAK,GACjCgD,EAAaxhC,KAAKi+B,IAAKj+B,KAAKy+B,IAAK,IACjC+C,EAAaxhC,KAAKk+B,IAAKl+B,KAAK0+B,IAAK,IACjC8C,EAAaxhC,KAAKm+B,IAAKn+B,KAAK2+B,IAAK,IACjC6C,EAAaxhC,KAAKo+B,IAAKp+B,KAAK4+B,IAAK,IAE1Bj9B,GAGTrD,EAAOC,QAAU22D,G,mCCxDjB;;;;;;;;;AAYA,IAAIC,EAAQ,wBACRC,EAA2B,kBAAXnrB,OAChBorB,EAAOD,EAASnrB,OAAS,GACzBorB,EAAKC,oBACPF,GAAS,GAEX,IAAIG,GAAcH,GAA0B,kBAAT1pC,KAC/B8pC,GAAWH,EAAKI,oBAAyC,kBAAZpqC,GAAwBA,EAAQqqC,UAAYrqC,EAAQqqC,SAASC,KAC1GH,EACFH,EAAOrrB,EACEurB,IACTF,EAAO3pC,MAET,IAAIkqC,GAAgBP,EAAKQ,yBAAkD,qBAAhB1wD,YACvD2wD,EAAY,mBAAmBnoC,MAAM,IACrCooC,EAAgB,CAAC,GAAI,KAAM,QAAS,WACpCC,EAAiB,CAAC,EAAG,KAAM,OAAQ,UACnCC,EAAiB,CAAC,EAAG,IAAK,MAAO,UACjCC,EAAU,CAAC,EAAG,KAAM,OAAQ,WAC5BC,EAAQ,CAAC,EAAG,EAAG,GAAI,IACnBC,EAAK,CAAC,EAAG,EAAG,MAAO,EAAG,MAAO,WAAY,WAAY,WAAY,MAAO,EAAG,WAC7E,EAAG,WAAY,WAAY,MAAO,WAAY,IAAK,EAAG,IAAK,EAAG,WAAY,EAC1E,WAAY,EAAG,WAAY,EAAG,IAAK,WAAY,MAAO,WAAY,MAClE,WAAY,MAAO,WAAY,IAAK,WAAY,MAAO,EAAG,WAAY,WACtE,WAAY,WAAY,MAAO,WAAY,WAAY,EAAG,WAAY,YACpEC,EAAO,CAAC,IAAK,IAAK,IAAK,KACvBC,EAAa,CAAC,IAAK,KACnBC,EAAe,CAAC,MAAO,SAAU,cAAe,QAAS,UACzDC,EAAiB,CACnB,IAAO,IACP,IAAO,MAGLnB,EAAKI,oBAAuB31D,MAAM+C,UACpC/C,MAAM+C,QAAU,SAAUunC,GACxB,MAA+C,mBAAxCp+B,OAAOpL,UAAUwS,SAASjT,KAAKiqC,MAItCwrB,IAAiBP,EAAKoB,iCAAoCtxD,YAAYuxD,SACxEvxD,YAAYuxD,OAAS,SAAUtsB,GAC7B,MAAsB,kBAARA,GAAoBA,EAAInrC,QAAUmrC,EAAInrC,OAAOooB,cAAgBliB,cAgG/E,IA5FA,IAAIwxD,EAAqB,SAAU/zB,EAAMknB,EAAS8M,GAChD,OAAO,SAAU5uB,GACf,OAAO,IAAI6uB,EAAOj0B,EAAMknB,EAASlnB,GAAM/9B,OAAOmjC,GAAS4uB,OAIvDE,EAA0B,SAAUl0B,EAAMknB,EAAS8M,GACrD,OAAO,SAAU5uB,EAAS+uB,GACxB,OAAO,IAAIF,EAAOj0B,EAAMknB,EAASiN,GAAYlyD,OAAOmjC,GAAS4uB,OAI7DI,EAA2B,SAAUp0B,EAAMknB,EAAS8M,GACtD,OAAO,SAAU5uB,EAAS+uB,EAAYvzD,EAAGhD,GACvC,OAAOi7B,EAAQ,SAAWmH,GAAM/9B,OAAOmjC,EAAS+uB,EAAYvzD,EAAGhD,GAAGo2D,OAIlEK,EAAyB,SAAUr0B,EAAMknB,EAAS8M,GACpD,OAAO,SAAU3+C,EAAK+vB,EAAS+uB,EAAYv2D,GACzC,OAAOi7B,EAAQ,OAASmH,GAAM/9B,OAAOoT,EAAK+vB,EAAS+uB,EAAYv2D,GAAGo2D,OAIlEM,EAAsB,SAAU9mB,EAAQ+mB,EAAcv0B,EAAMknB,GAC9D,IAAK,IAAIxoD,EAAI,EAAGA,EAAIi1D,EAAal4D,SAAUiD,EAAG,CAC5C,IAAIsrB,EAAO2pC,EAAaj1D,GACxB8uC,EAAOxjB,GAAQuqC,EAAav0B,EAAMknB,EAASl9B,GAE7C,OAAOwjB,GAGL+mB,EAAe,SAAUv0B,EAAMknB,GACjC,IAAI1Z,EAASumB,EAAmB/zB,EAAMknB,EAAS,OAO/C,OANA1Z,EAAOnpB,OAAS,WACd,OAAO,IAAI4vC,EAAOj0B,EAAMknB,EAASlnB,IAEnCwN,EAAOvrC,OAAS,SAAUmjC,GACxB,OAAOoI,EAAOnpB,SAASpiB,OAAOmjC,IAEzBkvB,EAAoB9mB,EAAQumB,EAAoB/zB,EAAMknB,IAG3DsN,EAAoB,SAAUx0B,EAAMknB,GACtC,IAAI1Z,EAAS0mB,EAAwBl0B,EAAMknB,EAAS,OAOpD,OANA1Z,EAAOnpB,OAAS,SAAU8vC,GACxB,OAAO,IAAIF,EAAOj0B,EAAMknB,EAASiN,IAEnC3mB,EAAOvrC,OAAS,SAAUmjC,EAAS+uB,GACjC,OAAO3mB,EAAOnpB,OAAO8vC,GAAYlyD,OAAOmjC,IAEnCkvB,EAAoB9mB,EAAQ0mB,EAAyBl0B,EAAMknB,IAGhEuN,EAAqB,SAAUz0B,EAAMknB,GACvC,IAAIxmD,EAAIkzD,EAAe5zB,GACnBwN,EAAS4mB,EAAyBp0B,EAAMknB,EAAS,OAWrD,OAVA1Z,EAAOnpB,OAAS,SAAU8vC,EAAYvzD,EAAGhD,GACvC,OAAKgD,GAAMhD,EAGF,IAAIq2D,EAAOj0B,EAAMknB,EAASiN,GAAYO,QAAQ,CAAC9zD,EAAGhD,GAAI8C,GAFtDm4B,EAAQ,QAAUmH,GAAM3b,OAAO8vC,IAK1C3mB,EAAOvrC,OAAS,SAAUmjC,EAAS+uB,EAAYvzD,EAAGhD,GAChD,OAAO4vC,EAAOnpB,OAAO8vC,EAAYvzD,EAAGhD,GAAGqE,OAAOmjC,IAEzCkvB,EAAoB9mB,EAAQ4mB,EAA0Bp0B,EAAMknB,IAGjEyN,EAAmB,SAAU30B,EAAMknB,GACrC,IAAIxmD,EAAIkzD,EAAe5zB,GACnBwN,EAAS6mB,EAAuBr0B,EAAMknB,EAAS,OAOnD,OANA1Z,EAAOnpB,OAAS,SAAUhP,EAAK8+C,EAAYv2D,GACzC,OAAO,IAAIg3D,EAAK50B,EAAMknB,EAASiN,GAAYO,QAAQ,CAAC,OAAQ92D,GAAI8C,GAAGg0D,QAAQ,CAACr/C,GAAM3U,IAEpF8sC,EAAOvrC,OAAS,SAAUoT,EAAK+vB,EAAS+uB,EAAYv2D,GAClD,OAAO4vC,EAAOnpB,OAAOhP,EAAK8+C,EAAYv2D,GAAGqE,OAAOmjC,IAE3CkvB,EAAoB9mB,EAAQ6mB,EAAwBr0B,EAAMknB,IAG/D2N,EAAa,CACf,CAAE/vD,KAAM,SAAUoiD,QAASmM,EAAgBrzB,KAAMyzB,EAAMc,aAAcA,GACrE,CAAEzvD,KAAM,OAAQoiD,QAASoM,EAAStzB,KAAMyzB,EAAMc,aAAcA,GAC5D,CAAEzvD,KAAM,QAASoiD,QAASiM,EAAenzB,KAAM0zB,EAAYa,aAAcC,GACzE,CAAE1vD,KAAM,SAAUoiD,QAASkM,EAAgBpzB,KAAM0zB,EAAYa,aAAcE,GAC3E,CAAE3vD,KAAM,OAAQoiD,QAASkM,EAAgBpzB,KAAM0zB,EAAYa,aAAcI,IAGvE97B,EAAU,GAAQi8B,EAAc,GAE3Bp2D,EAAI,EAAGA,EAAIm2D,EAAWp5D,SAAUiD,EAGvC,IAFA,IAAI2lC,EAAYwwB,EAAWn2D,GACvBshC,EAAOqE,EAAUrE,KACZphC,EAAI,EAAGA,EAAIohC,EAAKvkC,SAAUmD,EAAG,CACpC,IAAIm2D,EAAa1wB,EAAUv/B,KAAO,IAAMk7B,EAAKphC,GAG7C,GAFAk2D,EAAYnzD,KAAKozD,GACjBl8B,EAAQk8B,GAAc1wB,EAAUkwB,aAAav0B,EAAKphC,GAAIylC,EAAU6iB,SACzC,SAAnB7iB,EAAUv/B,KAAiB,CAC7B,IAAIkwD,EAAgB3wB,EAAUv/B,KAAOk7B,EAAKphC,GAC1Ck2D,EAAYnzD,KAAKqzD,GACjBn8B,EAAQm8B,GAAiBn8B,EAAQk8B,IAKvC,SAASd,EAAQj0B,EAAMknB,EAASiN,GAC9B/2D,KAAK63D,OAAS,GACd73D,KAAKQ,EAAI,GACTR,KAAK8pD,QAAUA,EACf9pD,KAAK+2D,WAAaA,EAClB/2D,KAAKggB,OAAQ,EACbhgB,KAAK83D,WAAY,EACjB93D,KAAKwhD,MAAQ,EACbxhD,KAAK0M,MAAQ,EACb1M,KAAK+3D,WAAc,MAAQn1B,GAAQ,IAAO,EAC1C5iC,KAAKg4D,UAAYh4D,KAAK+3D,YAAc,EACpC/3D,KAAKi4D,aAAelB,GAAc,EAClC/2D,KAAKk4D,YAA2B,GAAbnB,IAAoB,EAEvC,IAAK,IAAIz1D,EAAI,EAAGA,EAAI,KAAMA,EACxBtB,KAAKQ,EAAEc,GAAK,EA6QhB,SAASk2D,EAAM50B,EAAMknB,EAASiN,GAC5BF,EAAO12D,KAAKH,KAAM4iC,EAAMknB,EAASiN,GA1QnCF,EAAOj2D,UAAUiE,OAAS,SAAUmjC,GAClC,IAAIhoC,KAAK83D,UAAT,CAGA,IAAIK,EAAevrC,SAAcob,EACjC,GAAa,WAATpb,EAAmB,CACrB,GAAa,WAATA,EAWF,MAAMuoC,EAVN,GAAgB,OAAZntB,EACF,MAAMmtB,EACD,GAAIS,GAAgB5tB,EAAQ3gB,cAAgBliB,YACjD6iC,EAAU,IAAIniC,WAAWmiC,QACpB,IAAKloC,MAAM+C,QAAQmlC,MACnB4tB,IAAiBzwD,YAAYuxD,OAAO1uB,IACvC,MAAMmtB,EAMZgD,GAAY,EAEd,IAEqE72D,EAAOg4B,EAFxEu+B,EAAS73D,KAAK63D,OAAYG,EAAYh4D,KAAKg4D,UAAe35D,EAAS2pC,EAAQ3pC,OAE3E05D,EAAa/3D,KAAK+3D,WAAgBh/C,EAAQ,EAAOvY,EAAIR,KAAKQ,EAE9D,MAAOuY,EAAQ1a,EAAQ,CACrB,GAAI2B,KAAKggB,MAGP,IAFAhgB,KAAKggB,OAAQ,EACb63C,EAAO,GAAK73D,KAAKwhD,MACZlgD,EAAI,EAAGA,EAAIy2D,EAAa,IAAKz2D,EAChCu2D,EAAOv2D,GAAK,EAGhB,GAAI62D,EACF,IAAK72D,EAAItB,KAAK0M,MAAOqM,EAAQ1a,GAAUiD,EAAI02D,IAAaj/C,EACtD8+C,EAAOv2D,GAAK,IAAM0mC,EAAQjvB,IAAUo9C,EAAY,EAAN70D,UAG5C,IAAKA,EAAItB,KAAK0M,MAAOqM,EAAQ1a,GAAUiD,EAAI02D,IAAaj/C,EACtDugB,EAAO0O,EAAQ/hC,WAAW8S,GACtBugB,EAAO,IACTu+B,EAAOv2D,GAAK,IAAMg4B,GAAQ68B,EAAY,EAAN70D,KACvBg4B,EAAO,MAChBu+B,EAAOv2D,GAAK,KAAO,IAAQg4B,GAAQ,IAAO68B,EAAY,EAAN70D,KAChDu2D,EAAOv2D,GAAK,KAAO,IAAe,GAAPg4B,IAAiB68B,EAAY,EAAN70D,MACzCg4B,EAAO,OAAUA,GAAQ,OAClCu+B,EAAOv2D,GAAK,KAAO,IAAQg4B,GAAQ,KAAQ68B,EAAY,EAAN70D,KACjDu2D,EAAOv2D,GAAK,KAAO,IAASg4B,GAAQ,EAAK,KAAU68B,EAAY,EAAN70D,KACzDu2D,EAAOv2D,GAAK,KAAO,IAAe,GAAPg4B,IAAiB68B,EAAY,EAAN70D,OAElDg4B,EAAO,QAAoB,KAAPA,IAAiB,GAAqC,KAA9B0O,EAAQ/hC,aAAa8S,IACjE8+C,EAAOv2D,GAAK,KAAO,IAAQg4B,GAAQ,KAAQ68B,EAAY,EAAN70D,KACjDu2D,EAAOv2D,GAAK,KAAO,IAASg4B,GAAQ,GAAM,KAAU68B,EAAY,EAAN70D,KAC1Du2D,EAAOv2D,GAAK,KAAO,IAASg4B,GAAQ,EAAK,KAAU68B,EAAY,EAAN70D,KACzDu2D,EAAOv2D,GAAK,KAAO,IAAe,GAAPg4B,IAAiB68B,EAAY,EAAN70D,MAKxD,GADAtB,KAAKo4D,cAAgB92D,EACjBA,GAAK02D,EAAW,CAGlB,IAFAh4D,KAAK0M,MAAQpL,EAAI02D,EACjBh4D,KAAKwhD,MAAQqW,EAAOE,GACfz2D,EAAI,EAAGA,EAAIy2D,IAAcz2D,EAC5Bd,EAAEc,IAAMu2D,EAAOv2D,GAEjBiC,EAAE/C,GACFR,KAAKggB,OAAQ,OAEbhgB,KAAK0M,MAAQpL,EAGjB,OAAOtB,OAGT62D,EAAOj2D,UAAUhC,OAAS,SAAU6F,EAAG4zD,GACrC,IAAIvxC,EAAQ,IAAJriB,EAAajB,EAAI,EACrBmI,EAAQ,CAACmb,GACbriB,IAAS,EACTqiB,EAAQ,IAAJriB,EACJ,MAAOqiB,EAAI,EACTnb,EAAMo/B,QAAQjkB,GACdriB,IAAS,EACTqiB,EAAQ,IAAJriB,IACFjB,EAQJ,OANI60D,EACF1sD,EAAMpH,KAAKf,GAEXmI,EAAMo/B,QAAQvnC,GAEhBxD,KAAK6E,OAAO8G,GACLA,EAAMtN,QAGfw4D,EAAOj2D,UAAU03D,aAAe,SAAU3tC,GACxC,IAAIwtC,EAAevrC,SAAcjC,EACjC,GAAa,WAATiC,EAAmB,CACrB,GAAa,WAATA,EAWF,MAAMuoC,EAVN,GAAY,OAARxqC,EACF,MAAMwqC,EACD,GAAIS,GAAgBjrC,EAAItD,cAAgBliB,YAC7CwlB,EAAM,IAAI9kB,WAAW8kB,QAChB,IAAK7qB,MAAM+C,QAAQ8nB,MACnBirC,IAAiBzwD,YAAYuxD,OAAO/rC,IACvC,MAAMwqC,EAMZgD,GAAY,EAEd,IAAIxsD,EAAQ,EAAOtN,EAASssB,EAAItsB,OAChC,GAAI85D,EACFxsD,EAAQtN,OAER,IAAK,IAAIiD,EAAI,EAAGA,EAAIqpB,EAAItsB,SAAUiD,EAAG,CACnC,IAAIg4B,EAAO3O,EAAI1kB,WAAW3E,GACtBg4B,EAAO,IACT3tB,GAAS,EACA2tB,EAAO,KAChB3tB,GAAS,EACA2tB,EAAO,OAAUA,GAAQ,MAClC3tB,GAAS,GAET2tB,EAAO,QAAoB,KAAPA,IAAiB,GAA6B,KAAtB3O,EAAI1kB,aAAa3E,IAC7DqK,GAAS,GAMf,OAFAA,GAAS3L,KAAKpB,OAAe,EAAR+M,GACrB3L,KAAK6E,OAAO8lB,GACLhf,GAGTkrD,EAAOj2D,UAAU02D,QAAU,SAAUiB,EAAMj1D,GAEzC,IADA,IAAIqI,EAAQ3L,KAAKpB,OAAO0E,GACfhC,EAAI,EAAGA,EAAIi3D,EAAKl6D,SAAUiD,EACjCqK,GAAS3L,KAAKs4D,aAAaC,EAAKj3D,IAElC,IAAIk3D,EAAel1D,EAAIqI,EAAQrI,EAC3Bw7C,EAAQ,GAGZ,OAFAA,EAAMzgD,OAASm6D,EACfx4D,KAAK6E,OAAOi6C,GACL9+C,MAGT62D,EAAOj2D,UAAUgoB,SAAW,WAC1B,IAAI5oB,KAAK83D,UAAT,CAGA93D,KAAK83D,WAAY,EACjB,IAAID,EAAS73D,KAAK63D,OAAYv2D,EAAItB,KAAKo4D,cAAmBL,EAAa/3D,KAAK+3D,WAAgBv3D,EAAIR,KAAKQ,EAErG,GADAq3D,EAAOv2D,GAAK,IAAMtB,KAAK8pD,QAAY,EAAJxoD,GAC3BtB,KAAKo4D,gBAAkBp4D,KAAKg4D,UAE9B,IADAH,EAAO,GAAKA,EAAOE,GACdz2D,EAAI,EAAGA,EAAIy2D,EAAa,IAAKz2D,EAChCu2D,EAAOv2D,GAAK,EAIhB,IADAu2D,EAAOE,EAAa,IAAM,WACrBz2D,EAAI,EAAGA,EAAIy2D,IAAcz2D,EAC5Bd,EAAEc,IAAMu2D,EAAOv2D,GAEjBiC,EAAE/C,KAGJq2D,EAAOj2D,UAAUwS,SAAWyjD,EAAOj2D,UAAU4hB,IAAM,WACjDxiB,KAAK4oB,WAEL,IAGkB44B,EAHduW,EAAa/3D,KAAK+3D,WAAgBv3D,EAAIR,KAAKQ,EAAOy3D,EAAej4D,KAAKi4D,aAEtEC,EAAal4D,KAAKk4D,WAAgB52D,EAAI,EAAOE,EAAI,EACjDghB,EAAM,GACV,MAAOhhB,EAAIy2D,EAAc,CACvB,IAAK32D,EAAI,EAAGA,EAAIy2D,GAAcv2D,EAAIy2D,IAAgB32D,IAAKE,EACrDggD,EAAQhhD,EAAEc,GACVkhB,GAAOszC,EAAWtU,GAAS,EAAK,IAAQsU,EAAkB,GAARtU,GACxCsU,EAAWtU,GAAS,GAAM,IAAQsU,EAAWtU,GAAS,EAAK,IAC3DsU,EAAWtU,GAAS,GAAM,IAAQsU,EAAWtU,GAAS,GAAM,IAC5DsU,EAAWtU,GAAS,GAAM,IAAQsU,EAAWtU,GAAS,GAAM,IAEpEhgD,EAAIu2D,IAAe,IACrBx0D,EAAE/C,GACFc,EAAI,GAaR,OAVI42D,IACF1W,EAAQhhD,EAAEc,GACVkhB,GAAOszC,EAAWtU,GAAS,EAAK,IAAQsU,EAAkB,GAARtU,GAC9C0W,EAAa,IACf11C,GAAOszC,EAAWtU,GAAS,GAAM,IAAQsU,EAAWtU,GAAS,EAAK,KAEhE0W,EAAa,IACf11C,GAAOszC,EAAWtU,GAAS,GAAM,IAAQsU,EAAWtU,GAAS,GAAM,MAGhEh/B,GAGTq0C,EAAOj2D,UAAU63D,YAAc,WAC7Bz4D,KAAK4oB,WAEL,IAII3pB,EAJA84D,EAAa/3D,KAAK+3D,WAAgBv3D,EAAIR,KAAKQ,EAAOy3D,EAAej4D,KAAKi4D,aAEtEC,EAAal4D,KAAKk4D,WAAgB52D,EAAI,EAAOE,EAAI,EACjDmK,EAAQ3L,KAAK+2D,YAAc,EAG7B93D,EADEi5D,EACO,IAAI/yD,YAAa8yD,EAAe,GAAM,GAEtC,IAAI9yD,YAAYwG,GAE3B,IAAI62C,EAAQ,IAAIr1C,YAAYlO,GAC5B,MAAOuC,EAAIy2D,EAAc,CACvB,IAAK32D,EAAI,EAAGA,EAAIy2D,GAAcv2D,EAAIy2D,IAAgB32D,IAAKE,EACrDghD,EAAMhhD,GAAKhB,EAAEc,GAEXE,EAAIu2D,IAAe,GACrBx0D,EAAE/C,GAON,OAJI03D,IACF1V,EAAMlhD,GAAKd,EAAEc,GACbrC,EAASA,EAAOC,MAAM,EAAGyM,IAEpB1M,GAGT43D,EAAOj2D,UAAU3B,OAAS43D,EAAOj2D,UAAU63D,YAE3C5B,EAAOj2D,UAAUsf,OAAS22C,EAAOj2D,UAAU4hD,MAAQ,WACjDxiD,KAAK4oB,WAEL,IAGoBX,EAAYu5B,EAH5BuW,EAAa/3D,KAAK+3D,WAAgBv3D,EAAIR,KAAKQ,EAAOy3D,EAAej4D,KAAKi4D,aAEtEC,EAAal4D,KAAKk4D,WAAgB52D,EAAI,EAAOE,EAAI,EACjDghD,EAAQ,GACZ,MAAOhhD,EAAIy2D,EAAc,CACvB,IAAK32D,EAAI,EAAGA,EAAIy2D,GAAcv2D,EAAIy2D,IAAgB32D,IAAKE,EACrDymB,EAASzmB,GAAK,EACdggD,EAAQhhD,EAAEc,GACVkhD,EAAMv6B,GAAkB,IAARu5B,EAChBgB,EAAMv6B,EAAS,GAAMu5B,GAAS,EAAK,IACnCgB,EAAMv6B,EAAS,GAAMu5B,GAAS,GAAM,IACpCgB,EAAMv6B,EAAS,GAAMu5B,GAAS,GAAM,IAElChgD,EAAIu2D,IAAe,GACrBx0D,EAAE/C,GAcN,OAXI03D,IACFjwC,EAASzmB,GAAK,EACdggD,EAAQhhD,EAAEc,GACVkhD,EAAMv6B,GAAkB,IAARu5B,EACZ0W,EAAa,IACf1V,EAAMv6B,EAAS,GAAMu5B,GAAS,EAAK,KAEjC0W,EAAa,IACf1V,EAAMv6B,EAAS,GAAMu5B,GAAS,GAAM,MAGjCgB,GAOTgV,EAAK52D,UAAY,IAAIi2D,EAErBW,EAAK52D,UAAUgoB,SAAW,WAExB,OADA5oB,KAAKpB,OAAOoB,KAAK+2D,YAAY,GACtBF,EAAOj2D,UAAUgoB,SAASzoB,KAAKH,OAGxC,IAAIuD,EAAI,SAAU/C,GAChB,IAAIkD,EAAGI,EAAGN,EAAGk1D,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAC/CjG,EAAIC,EAAIiG,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAC3EC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAC3EC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAC7E,IAAK34D,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvBk1D,EAAKl4D,EAAE,GAAKA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IACtCm4D,EAAKn4D,EAAE,GAAKA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IACtCo4D,EAAKp4D,EAAE,GAAKA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IACtCq4D,EAAKr4D,EAAE,GAAKA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IACtCs4D,EAAKt4D,EAAE,GAAKA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IACtCu4D,EAAKv4D,EAAE,GAAKA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IACtCw4D,EAAKx4D,EAAE,GAAKA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IACtCy4D,EAAKz4D,EAAE,GAAKA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IACtC04D,EAAK14D,EAAE,GAAKA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IACtC24D,EAAK34D,EAAE,GAAKA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IAAMA,EAAE,IAEtCkD,EAAIw1D,GAAON,GAAM,EAAMC,IAAO,IAC9B/0D,EAAIq1D,GAAON,GAAM,EAAMD,IAAO,IAC9Bp4D,EAAE,IAAMkD,EACRlD,EAAE,IAAMsD,EACRtD,EAAE,KAAOkD,EACTlD,EAAE,KAAOsD,EACTtD,EAAE,KAAOkD,EACTlD,EAAE,KAAOsD,EACTtD,EAAE,KAAOkD,EACTlD,EAAE,KAAOsD,EACTtD,EAAE,KAAOkD,EACTlD,EAAE,KAAOsD,EACTJ,EAAIg1D,GAAOI,GAAM,EAAMC,IAAO,IAC9Bj1D,EAAI60D,GAAOI,GAAM,EAAMD,IAAO,IAC9Bt4D,EAAE,IAAMkD,EACRlD,EAAE,IAAMsD,EACRtD,EAAE,KAAOkD,EACTlD,EAAE,KAAOsD,EACTtD,EAAE,KAAOkD,EACTlD,EAAE,KAAOsD,EACTtD,EAAE,KAAOkD,EACTlD,EAAE,KAAOsD,EACTtD,EAAE,KAAOkD,EACTlD,EAAE,KAAOsD,EACTJ,EAAIk1D,GAAOI,GAAM,EAAMC,IAAO,IAC9Bn1D,EAAI+0D,GAAOI,GAAM,EAAMD,IAAO,IAC9Bx4D,EAAE,IAAMkD,EACRlD,EAAE,IAAMsD,EACRtD,EAAE,KAAOkD,EACTlD,EAAE,KAAOsD,EACTtD,EAAE,KAAOkD,EACTlD,EAAE,KAAOsD,EACTtD,EAAE,KAAOkD,EACTlD,EAAE,KAAOsD,EACTtD,EAAE,KAAOkD,EACTlD,EAAE,KAAOsD,EACTJ,EAAIo1D,GAAOI,GAAM,EAAMC,IAAO,IAC9Br1D,EAAIi1D,GAAOI,GAAM,EAAMD,IAAO,IAC9B14D,EAAE,IAAMkD,EACRlD,EAAE,IAAMsD,EACRtD,EAAE,KAAOkD,EACTlD,EAAE,KAAOsD,EACTtD,EAAE,KAAOkD,EACTlD,EAAE,KAAOsD,EACTtD,EAAE,KAAOkD,EACTlD,EAAE,KAAOsD,EACTtD,EAAE,KAAOkD,EACTlD,EAAE,KAAOsD,EACTJ,EAAIs1D,GAAON,GAAM,EAAMC,IAAO,IAC9B70D,EAAIm1D,GAAON,GAAM,EAAMD,IAAO,IAC9Bl4D,EAAE,IAAMkD,EACRlD,EAAE,IAAMsD,EACRtD,EAAE,KAAOkD,EACTlD,EAAE,KAAOsD,EACTtD,EAAE,KAAOkD,EACTlD,EAAE,KAAOsD,EACTtD,EAAE,KAAOkD,EACTlD,EAAE,KAAOsD,EACTtD,EAAE,KAAOkD,EACTlD,EAAE,KAAOsD,EAETovD,EAAK1yD,EAAE,GACP2yD,EAAK3yD,EAAE,GACP06D,EAAO16D,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChC26D,EAAO36D,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChCw5D,EAAOx5D,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChCy5D,EAAOz5D,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChCw7D,GAAOx7D,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChCy7D,GAAOz7D,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChCs6D,EAAOt6D,EAAE,KAAO,GAAOA,EAAE,MAAQ,GACjCu6D,EAAOv6D,EAAE,KAAO,GAAOA,EAAE,MAAQ,GACjC85D,EAAO95D,EAAE,IAAM,EAAMA,EAAE,KAAO,GAC9B+5D,EAAO/5D,EAAE,IAAM,EAAMA,EAAE,KAAO,GAC9B44D,EAAM54D,EAAE,KAAO,GAAOA,EAAE,MAAQ,GAChC64D,EAAM74D,EAAE,KAAO,GAAOA,EAAE,MAAQ,GAChC46D,EAAO56D,EAAE,KAAO,GAAOA,EAAE,MAAQ,GACjC66D,EAAO76D,EAAE,KAAO,GAAOA,EAAE,MAAQ,GACjC05D,EAAO15D,EAAE,KAAO,GAAOA,EAAE,MAAQ,GACjC25D,EAAO35D,EAAE,KAAO,GAAOA,EAAE,MAAQ,GACjC07D,GAAO17D,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChC27D,GAAO37D,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChCk7D,GAAOl7D,EAAE,IAAM,GAAOA,EAAE,KAAO,EAC/Bm7D,GAAOn7D,EAAE,IAAM,GAAOA,EAAE,KAAO,EAC/Bg6D,EAAOh6D,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChCi6D,EAAOj6D,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChC84D,EAAM94D,EAAE,KAAO,GAAOA,EAAE,MAAQ,GAChC+4D,EAAM/4D,EAAE,KAAO,GAAOA,EAAE,MAAQ,GAChC86D,EAAO96D,EAAE,KAAO,GAAOA,EAAE,MAAQ,GACjC+6D,EAAO/6D,EAAE,KAAO,GAAOA,EAAE,MAAQ,GACjC45D,EAAO55D,EAAE,KAAO,GAAOA,EAAE,MAAQ,EACjC65D,EAAO75D,EAAE,KAAO,GAAOA,EAAE,MAAQ,EACjCo5D,EAAOp5D,EAAE,IAAM,GAAOA,EAAE,KAAO,EAC/Bq5D,EAAOr5D,EAAE,IAAM,GAAOA,EAAE,KAAO,EAC/Bo7D,GAAOp7D,EAAE,KAAO,GAAOA,EAAE,MAAQ,EACjCq7D,GAAOr7D,EAAE,KAAO,GAAOA,EAAE,MAAQ,EACjCk6D,EAAOl6D,EAAE,KAAO,GAAOA,EAAE,MAAQ,EACjCm6D,EAAOn6D,EAAE,KAAO,GAAOA,EAAE,MAAQ,EACjCg5D,EAAMh5D,EAAE,KAAO,GAAOA,EAAE,MAAQ,GAChCi5D,EAAMj5D,EAAE,KAAO,GAAOA,EAAE,MAAQ,GAChCg7D,EAAOh7D,EAAE,KAAO,GAAOA,EAAE,MAAQ,EACjCi7D,GAAOj7D,EAAE,KAAO,GAAOA,EAAE,MAAQ,EACjCw6D,EAAOx6D,EAAE,IAAM,GAAOA,EAAE,KAAO,EAC/By6D,EAAOz6D,EAAE,IAAM,GAAOA,EAAE,KAAO,EAC/Bs5D,EAAOt5D,EAAE,KAAO,GAAOA,EAAE,MAAQ,GACjCu5D,EAAOv5D,EAAE,KAAO,GAAOA,EAAE,MAAQ,GACjCs7D,GAAOt7D,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChCu7D,GAAOv7D,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChCo6D,EAAOp6D,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChCq6D,EAAOr6D,EAAE,KAAO,EAAMA,EAAE,MAAQ,GAChCk5D,EAAMl5D,EAAE,KAAO,GAAOA,EAAE,MAAQ,GAChCm5D,EAAMn5D,EAAE,KAAO,GAAOA,EAAE,MAAQ,GAEhCA,EAAE,GAAK0yD,GAAOkG,EAAKE,EACnB94D,EAAE,GAAK2yD,GAAOkG,EAAKE,EACnB/4D,EAAE,IAAMo5D,GAAQE,EAAME,EACtBx5D,EAAE,IAAMq5D,GAAQE,EAAME,EACtBz5D,EAAE,IAAM85D,GAAQE,EAAME,EACtBl6D,EAAE,IAAM+5D,GAAQE,EAAME,EACtBn6D,EAAE,IAAMw6D,GAAQE,EAAME,EACtB56D,EAAE,IAAMy6D,GAAQE,EAAME,EACtB76D,EAAE,IAAMk7D,IAAQE,GAAME,GACtBt7D,EAAE,IAAMm7D,IAAQE,GAAME,GACtBv7D,EAAE,GAAK44D,GAAOE,EAAKE,EACnBh5D,EAAE,GAAK64D,GAAOE,EAAKE,EACnBj5D,EAAE,IAAMs5D,GAAQE,EAAME,EACtB15D,EAAE,IAAMu5D,GAAQE,EAAME,EACtB35D,EAAE,IAAMg6D,GAAQE,EAAME,EACtBp6D,EAAE,IAAMi6D,GAAQE,EAAME,EACtBr6D,EAAE,IAAM06D,GAAQE,EAAME,EACtB96D,EAAE,IAAM26D,GAAQE,EAAME,EACtB/6D,EAAE,IAAMo7D,IAAQE,GAAME,GACtBx7D,EAAE,IAAMq7D,IAAQE,GAAME,GACtBz7D,EAAE,GAAK84D,GAAOE,EAAKE,EACnBl5D,EAAE,GAAK+4D,GAAOE,EAAKE,EACnBn5D,EAAE,IAAMw5D,GAAQE,EAAME,EACtB55D,EAAE,IAAMy5D,GAAQE,EAAME,EACtB75D,EAAE,IAAMk6D,GAAQE,EAAME,EACtBt6D,EAAE,IAAMm6D,GAAQE,EAAME,EACtBv6D,EAAE,IAAM46D,GAAQE,EAAME,EACtBh7D,EAAE,IAAM66D,GAAQE,EAAME,GACtBj7D,EAAE,IAAMs7D,IAAQE,GAAME,GACtB17D,EAAE,IAAMu7D,IAAQE,GAAME,GACtB37D,EAAE,GAAKg5D,GAAOE,EAAKxG,EACnB1yD,EAAE,GAAKi5D,GAAOE,EAAKxG,EACnB3yD,EAAE,IAAM05D,GAAQE,EAAMR,EACtBp5D,EAAE,IAAM25D,GAAQE,EAAMR,EACtBr5D,EAAE,IAAMo6D,GAAQE,EAAMR,EACtB95D,EAAE,IAAMq6D,GAAQE,EAAMR,EACtB/5D,EAAE,IAAM86D,GAAQE,EAAMR,EACtBx6D,EAAE,IAAM+6D,GAAQE,GAAMR,EACtBz6D,EAAE,IAAMw7D,IAAQE,GAAMR,GACtBl7D,EAAE,IAAMy7D,IAAQE,GAAMR,GACtBn7D,EAAE,GAAKk5D,GAAOxG,EAAKkG,EACnB54D,EAAE,GAAKm5D,GAAOxG,EAAKkG,EACnB74D,EAAE,IAAM45D,GAAQR,EAAME,EACtBt5D,EAAE,IAAM65D,GAAQR,EAAME,EACtBv5D,EAAE,IAAMs6D,GAAQR,EAAME,EACtBh6D,EAAE,IAAMu6D,GAAQR,EAAME,EACtBj6D,EAAE,IAAMg7D,GAAQR,EAAME,EACtB16D,EAAE,IAAMi7D,IAAQR,EAAME,EACtB36D,EAAE,IAAM07D,IAAQR,GAAME,GACtBp7D,EAAE,IAAM27D,IAAQR,GAAME,GAEtBr7D,EAAE,IAAM41D,EAAG5yD,GACXhD,EAAE,IAAM41D,EAAG5yD,EAAI,IAInBlF,EAAOC,QAAUk9B,I,kECnoBjBl9B,EAAQ2D,YAAa,EACrB3D,EAAQ6f,gBAAkB,GAC1B7f,EAAQ8f,eAAiB,GACzB9f,EAAQ+f,sCAAwC,KAChD/f,EAAQggB,uBAAyB,KACjChgB,EAAQigB,eAAiB,IACzBjgB,EAAQkgB,iBAAmB,IAAIC,OAAOngB,EAAQ6f,iBAC9C7f,EAAQogB,gBAAkB,IAAID,OAAOngB,EAAQ8f,gBAC7C9f,EAAQqgB,uCAAyC,IAAIF,OAAOngB,EAAQ+f,uCACpE/f,EAAQsgB,wBAA0B,IAAIH,OAAOngB,EAAQggB,yB,kCCThD3S,UAAUhL,UAAU1B,OACrB8M,OAAOC,eAAeL,UAAUhL,UAAW,QAAS,CAChDgE,MAAO9E,MAAMc,UAAU1B,QAG1B0M,UAAUhL,UAAUsL,UACrBF,OAAOC,eAAepG,WAAWjF,UAAW,WAAY,CACpDgE,MAAO9E,MAAMc,UAAU1B,QAG1B0M,UAAUhL,UAAUuL,KACrBH,OAAOC,eAAeL,UAAUhL,UAAW,MAAO,CAC9CgE,MAAO9E,MAAMc,UAAUuL,MAG1BP,UAAUhL,UAAUwL,OACrBJ,OAAOC,eAAeL,UAAUhL,UAAW,QAAS,CAChDgE,MAAO9E,MAAMc,UAAUwL,QAG1BR,UAAUhL,UAAUyL,MACrBL,OAAOC,eAAepG,WAAWjF,UAAW,OAAQ,CAChDgE,MAAO9E,MAAMc,UAAUyL,OAG1BT,UAAUhL,UAAUsF,SACrB8F,OAAOC,eAAeL,UAAUhL,UAAW,UAAW,CAClDgE,MAAO9E,MAAMc,UAAUsF,UAK1B0F,UAAUhL,UAAU0L,MACrBN,OAAOC,eAAeL,UAAUhL,UAAW,OAAQ,CAC/CgE,MAAO,SAAU2H,GAEb,GAAY,MAARvM,KACA,MAAM,IAAIwM,UAAU,+BAExB,IAAIhG,EAAIwF,OAAOhM,MAEXyM,EAAMjG,EAAEnI,SAAW,EAEnBqO,EAAQC,UAAU,GAClBC,EAAgBF,GAAS,EAEzBjJ,EAAImJ,EAAgB,EAAIpF,KAAKqF,IAAIJ,EAAMG,EAAe,GAAKpF,KAAKsF,IAAIF,EAAeH,GAEnFM,EAAMJ,UAAU,GAChBK,OAAsBC,IAARF,EAAoBN,EAAMM,GAAO,EAE/CG,EAAOF,EAAc,EAAIxF,KAAKqF,IAAIJ,EAAMO,EAAa,GAAKxF,KAAKsF,IAAIE,EAAaP,GAEpF,MAAOhJ,EAAIyJ,EACP1G,EAAE/C,GAAK8I,EACP9I,IAGJ,OAAO+C,KAId2G,YAAYvM,UAAU1B,OACvB8M,OAAOC,eAAepG,WAAWjF,UAAW,QAAS,CACjDgE,MAAO9E,MAAMc,UAAU1B,QAG1BiO,YAAYvM,UAAUwM,SACvBpB,OAAOC,eAAepG,WAAWjF,UAAW,UAAW,CACnDgE,MAAO9E,MAAMc,UAAUwM,W,kCCrE/B7O,EAAQ2D,YAAa,EAErB,EAAQ,QACR,IAAIk6D,EAAmB,GACnB9kD,EAAc,IACd+kD,EAAe,EAAI/kD,EACnBglD,EAAc,CAAC,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAKhDC,EAAsB,WAQtB,SAASA,EAAKC,GAGV,QAFe,IAAXA,IAAqBA,EAASJ,GAClCp8D,KAAKw8D,OAASA,EACC,KAAXA,GAA4B,KAAXA,EACjB,MAAM,IAAIj9D,MAAM,sEAEpBS,KAAKqH,MAAQ,IAAIuE,UAAUywD,GA8F/B,OAnFAE,EAAK37D,UAAU4W,WAAa,SAAUnQ,GAElC,QADc,IAAVA,IAAoBA,EAAQ,IAAIuE,UAAUywD,IAC1Ch1D,EAAMhJ,SAAWg+D,EACjB,MAAM,IAAI98D,MAAM,0BAEpBS,KAAKqH,MAAQA,EAAMnI,QACnB,IAAK,IAAIoC,EAAI,EAAGA,EAAI+6D,EAAc/6D,IAC9BtB,KAAKqH,MAAM/F,GAAK,GAUxBi7D,EAAK37D,UAAUof,MAAQ,WACnBhgB,KAAKwX,cAaT+kD,EAAK37D,UAAU6W,OAAS,SAAU1L,EAAOkc,EAAQ5pB,GAC7C,EAAG,CACC,IAAIiD,EAAI,EACJ6mB,EAAQ9pB,EAASiZ,EAAcjZ,EAASiZ,EAC5C,MAAOhW,EAAI6mB,EACPnoB,KAAKqH,MAAM/F,KAAOyK,EAAMkc,KAE5BjoB,KAAKmd,mBACC9e,GAAUiZ,GAAe,IAavCilD,EAAK37D,UAAU8W,QAAU,SAAU3L,EAAOkc,EAAQ5pB,GAC9C,EAAG,CACC,IAAIiD,EAAI,EACJ6mB,EAAQ9pB,EAASiZ,EAAcjZ,EAASiZ,EAC5C,MAAOhW,EAAI6mB,EACPpc,EAAMkc,KAAYjoB,KAAKqH,MAAM/F,KAEjCtB,KAAKmd,mBACC9e,GAAUiZ,GAAe,IAWvCilD,EAAK37D,UAAUuc,UAAY,WAGvB,IAFA,IAAIs/C,EAAY,IAAI7wD,UAAUywD,GAC1BtjD,EAAQ,EACH2jD,EAAQ,EAAGA,EAAQ18D,KAAKw8D,OAAQE,IAAS,CAC9CD,EAAYz8D,KAAKqH,MAAMnI,QACvB,IAAK,IAAIoC,EAAI,EAAGA,EAAI+6D,EAAc/6D,IAC9BtB,KAAKqH,MAAM/F,GACPg7D,EAAYG,EAAU1jD,IAAU0jD,EAAW1jD,GAASA,EAAQ,IAAM,KAAO,MAAS,GAAK,KAIvGwjD,EAAKjlD,YAAcA,EACZilD,EA5Gc,GA8GzBh+D,EAAQ,WAAag+D,G,kCCtHrB,IAAI7yB,EAAM,EAAQ,QAIlB,SAASze,EAAQ/hB,EAAKoT,GACpB,IAAImB,EAAQzd,KAERkrB,EAAoBlrB,KAAK2c,gBAAkB3c,KAAK2c,eAAee,UAC/DyN,EAAoBnrB,KAAK6d,gBAAkB7d,KAAK6d,eAAeH,UAEnE,OAAIwN,GAAqBC,GACnB7O,EACFA,EAAGpT,GACMA,IACJlJ,KAAK6d,eAEE7d,KAAK6d,eAAeuN,eAC9BprB,KAAK6d,eAAeuN,cAAe,EACnCse,EAAIpe,SAASC,EAAavrB,KAAMkJ,IAHhCwgC,EAAIpe,SAASC,EAAavrB,KAAMkJ,IAO7BlJ,OAMLA,KAAK2c,iBACP3c,KAAK2c,eAAee,WAAY,GAI9B1d,KAAK6d,iBACP7d,KAAK6d,eAAeH,WAAY,GAGlC1d,KAAKge,SAAS9U,GAAO,MAAM,SAAUA,IAC9BoT,GAAMpT,EACJuU,EAAMI,eAECJ,EAAMI,eAAeuN,eAC/B3N,EAAMI,eAAeuN,cAAe,EACpCse,EAAIpe,SAASC,EAAa9N,EAAOvU,IAHjCwgC,EAAIpe,SAASC,EAAa9N,EAAOvU,GAK1BoT,GACTA,EAAGpT,MAIAlJ,MAGT,SAAS4rB,IACH5rB,KAAK2c,iBACP3c,KAAK2c,eAAee,WAAY,EAChC1d,KAAK2c,eAAeC,SAAU,EAC9B5c,KAAK2c,eAAekP,OAAQ,EAC5B7rB,KAAK2c,eAAemP,YAAa,GAG/B9rB,KAAK6d,iBACP7d,KAAK6d,eAAeH,WAAY,EAChC1d,KAAK6d,eAAegO,OAAQ,EAC5B7rB,KAAK6d,eAAekO,QAAS,EAC7B/rB,KAAK6d,eAAemO,aAAc,EAClChsB,KAAK6d,eAAeoO,aAAc,EAClCjsB,KAAK6d,eAAeqO,UAAW,EAC/BlsB,KAAK6d,eAAeuN,cAAe,GAIvC,SAASG,EAAYG,EAAMxiB,GACzBwiB,EAAKlP,KAAK,QAAStT,GAGrB5K,EAAOC,QAAU,CACf0sB,QAASA,EACTW,UAAWA,I,kCCjFbrtB,EAAQ2D,YAAa,EACrB3D,EAAQ+O,eAAiB,uBACzB/O,EAAQgP,sBAAwB,yBAChChP,EAAQiP,uBAAyB,yBACjCjP,EAAQkP,4BAA8B,8BACtClP,EAAQmP,mBAAqB,qBAC7BnP,EAAQoP,uBAAyB,yBACjCpP,EAAQqP,mCAAqC,qCAC7CrP,EAAQsP,kCAAoC,oCAC5CtP,EAAQuP,2BAA6B,6BACrCvP,EAAQwP,4BAA8B,8BACtCxP,EAAQyP,8BAAgC,yDACxCzP,EAAQ0P,+BAAiC,+DACzC1P,EAAQ2P,6BAA+B,oCACvC3P,EAAQ4P,0BAA4B,wCACpC5P,EAAQ6P,uBAAyB,0BACjC7P,EAAQ8P,sBAAwB,8BAChC9P,EAAQ+P,4BAA8B,8BACtC/P,EAAQgQ,6BAA+B,gCACvChQ,EAAQiQ,oCAAsC,qCAC9CjQ,EAAQkQ,mBAAqB,sBAC7BlQ,EAAQmQ,2BAA6B,6BACrCnQ,EAAQoQ,kCAAoC,oCAC5CpQ,EAAQqQ,qBAAuB,wBAC/BrQ,EAAQsQ,iCAAmC,oCAC3CtQ,EAAQuQ,iCAAmC,oCAC3CvQ,EAAQwQ,yBAA2B,4BACnCxQ,EAAQyQ,2BAA6B,oDACrCzQ,EAAQ0Q,kCAAoC,qCAC5C1Q,EAAQ2Q,2BAA6B,8BACrC3Q,EAAQ4Q,2BAA6B,8BACrC5Q,EAAQ6Q,0BAA4B,6BACpC7Q,EAAQ8Q,0BAA4B,6BACpC9Q,EAAQ+Q,oBAAsB,qDAC9B/Q,EAAQgR,kBAAoB,qBAC5BhR,EAAQiR,mBAAqB,sBAC7BjR,EAAQkR,cAAgB,iBACxBlR,EAAQmR,qBAAuB,2BAC/BnR,EAAQoR,uBAAyB,0BACjCpR,EAAQqR,yBAA2B,4BACnCrR,EAAQsR,uBAAyB,qEACjCtR,EAAQuR,uBAAyB,yBACjCvR,EAAQwR,qBAAuB,uBAC/BxR,EAAQyR,gBAAkB,kBAC1BzR,EAAQ0R,0BAA4B,4BACpC1R,EAAQ2R,2BAA6B,6BACrC3R,EAAQ4R,eAAiB,iBACzB5R,EAAQ6R,oBAAsB,sBAC9B7R,EAAQ8R,iBAAmB,mBAC3B9R,EAAQ+R,gBAAkB,yBAC1B/R,EAAQgS,cAAgB,gBACxBhS,EAAQiS,aAAe,eACvBjS,EAAQkS,cAAgB,uBACxBlS,EAAQmS,qBAAuB,uBAC/BnS,EAAQoS,cAAgB,gBACxBpS,EAAQqS,YAAc,oBACtBrS,EAAQsS,6BAA+B,+BACvCtS,EAAQuS,mBAAqB,qBAC7BvS,EAAQwS,uBAAyB,0BACjCxS,EAAQyS,wBAA0B,0BAClCzS,EAAQ0S,aAAe,eACvB1S,EAAQ2S,0BAA4B,qBACpC3S,EAAQ4S,qBAAuB,uBAC/B5S,EAAQ6S,YAAc,cACtB7S,EAAQ8S,oBAAsB,sBAC9B9S,EAAQ+S,2BAA6B,6BACrC/S,EAAQgT,wBAA0B,0BAClChT,EAAQiT,yBAA2B,2BACnCjT,EAAQkT,yBAA2B,2BACnClT,EAAQmT,kBAAoB,2BAC5BnT,EAAQoT,iBAAmB,yBAC3BpT,EAAQqT,0BAA4B,4BACpCrT,EAAQsT,uBAAyB,yBACjCtT,EAAQuT,eAAiB,iBACzBvT,EAAQwT,YAAc,cACtBxT,EAAQyT,oBAAsB,sEAC9BzT,EAAQ0T,mBAAqB,+DAC7B1T,EAAQ2T,2BAA6B,qCACrC3T,EAAQ4T,QAAU,mCAClB5T,EAAQ6T,uBAAyB,mDACjC7T,EAAQ8T,gCAAkC,mCAC1C9T,EAAQ+T,UAAY,uCACpB/T,EAAQgU,gBAAkB,SAAUvU,GAAW,MAAO,qBAAuBA,GAC7EO,EAAQiU,wBAA0B,SAAUC,GAAU,MAAO,wCAA0CA,GACvGlU,EAAQmU,cAAgB,kB,sBCtExB,SAAWnU,GACT,aAiBA,IAAIo+D,EAAY,GA2BhB,SAASrnB,EAAY9xC,EAAGhD,EAAGo8D,GACzB,GAAIA,IAAUD,EACZ,OAAIn5D,aAAa8xC,EACR9xC,EACe,qBAANA,EACT+jD,EAEFjS,EAAW/S,MAAM/+B,GAG1BA,EAAIA,GAAK,GACT,MAAOA,EAAEnF,SAAWmF,EAAEA,EAAEnF,OAAS,KAC7BmF,EAAEnF,OAEN2B,KAAKgB,GAAKwC,EACVxD,KAAKoqD,GAAK5mD,EAAEnF,OAAUmC,GAAK,EAAK,EAGlC80C,EAAWunB,WAAa,SAAUr5D,EAAGhD,GACnC,OAAO,IAAI80C,EAAW9xC,EAAGhD,EAAGm8D,IAM9B,IAAIG,EAAkB,IAClBC,EAAwB,EAE5BznB,EAAW1rB,KAAOkzC,EAClBxnB,EAAW0nB,WAAaD,EAExB,IAAIxV,EAAO,IAAIjS,EAAW,GAAI,EAAGqnB,GAGjCrnB,EAAWiS,KAAOA,EAElB,IAAI0V,EAAM,IAAI3nB,EAAW,CAAC,GAAI,EAAGqnB,GAGjCrnB,EAAW2nB,IAAMA,EAEjB,IAAIC,EAAQ,IAAI5nB,EAAW2nB,EAAIj8D,IAAK,EAAG27D,GAGvCrnB,EAAW4nB,MAAQA,EAInB5nB,EAAWyE,GAAKwN,EAIhBjS,EAAW0E,GAAKijB,EAUhB3nB,EAAWmE,MAAQ,CACjB8N,EACA0V,EAEA,IAAI3nB,EAAW,CAAC,GAAI,EAAGqnB,GACvB,IAAIrnB,EAAW,CAAC,GAAI,EAAGqnB,GACvB,IAAIrnB,EAAW,CAAC,GAAI,EAAGqnB,GACvB,IAAIrnB,EAAW,CAAC,GAAI,EAAGqnB,GACvB,IAAIrnB,EAAW,CAAC,GAAI,EAAGqnB,GACvB,IAAIrnB,EAAW,CAAC,GAAI,EAAGqnB,GACvB,IAAIrnB,EAAW,CAAC,GAAI,EAAGqnB,GACvB,IAAIrnB,EAAW,CAAC,GAAI,EAAGqnB,GACvB,IAAIrnB,EAAW,CAAC,IAAK,EAAGqnB,GACxB,IAAIrnB,EAAW,CAAC,IAAK,EAAGqnB,GACxB,IAAIrnB,EAAW,CAAC,IAAK,EAAGqnB,GACxB,IAAIrnB,EAAW,CAAC,IAAK,EAAGqnB,GACxB,IAAIrnB,EAAW,CAAC,IAAK,EAAGqnB,GACxB,IAAIrnB,EAAW,CAAC,IAAK,EAAGqnB,GACxB,IAAIrnB,EAAW,CAAC,IAAK,EAAGqnB,GACxB,IAAIrnB,EAAW,CAAC,IAAK,EAAGqnB,GACxB,IAAIrnB,EAAW,CAAC,IAAK,EAAGqnB,GACxB,IAAIrnB,EAAW,CAAC,IAAK,EAAGqnB,GACxB,IAAIrnB,EAAW,CAAC,IAAK,EAAGqnB,GACxB,IAAIrnB,EAAW,CAAC,IAAK,EAAGqnB,GACxB,IAAIrnB,EAAW,CAAC,IAAK,EAAGqnB,GACxB,IAAIrnB,EAAW,CAAC,IAAK,EAAGqnB,GACxB,IAAIrnB,EAAW,CAAC,IAAK,EAAGqnB,GACxB,IAAIrnB,EAAW,CAAC,IAAK,EAAGqnB,GACxB,IAAIrnB,EAAW,CAAC,IAAK,EAAGqnB,GACxB,IAAIrnB,EAAW,CAAC,IAAK,EAAGqnB,GACxB,IAAIrnB,EAAW,CAAC,IAAK,EAAGqnB,GACxB,IAAIrnB,EAAW,CAAC,IAAK,EAAGqnB,GACxB,IAAIrnB,EAAW,CAAC,IAAK,EAAGqnB,GACxB,IAAIrnB,EAAW,CAAC,IAAK,EAAGqnB,GACxB,IAAIrnB,EAAW,CAAC,IAAK,EAAGqnB,GACxB,IAAIrnB,EAAW,CAAC,IAAK,EAAGqnB,GACxB,IAAIrnB,EAAW,CAAC,IAAK,EAAGqnB,GACxB,IAAIrnB,EAAW,CAAC,IAAK,EAAGqnB,GACxB,IAAIrnB,EAAW,CAAC,IAAK,EAAGqnB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","file":"js/chunk-ce233e42.38092bea.js","sourcesContent":["function isValidEOSAddress (address, currency, networkType) {\r\n var regex = /^[a-z0-9]+$/g // Must be numbers and lowercase letters only\r\n if (address.search(regex) !== -1 && address.length === 12) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n}\r\n\r\nmodule.exports = {\r\n isValidAddress: function (address, currency, networkType) {\r\n return isValidEOSAddress(address, currency, networkType)\r\n }\r\n}\r\n","'use strict'\n\nvar base58 = require('bs58')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (checksumFn) {\n // Encode a buffer as a base58-check encoded string\n function encode (payload) {\n var checksum = checksumFn(payload)\n\n return base58.encode(Buffer.concat([\n payload,\n checksum\n ], payload.length + 4))\n }\n\n function decodeRaw (buffer) {\n var payload = buffer.slice(0, -4)\n var checksum = buffer.slice(-4)\n var newChecksum = checksumFn(payload)\n\n if (checksum[0] ^ newChecksum[0] |\n checksum[1] ^ newChecksum[1] |\n checksum[2] ^ newChecksum[2] |\n checksum[3] ^ newChecksum[3]) return\n\n return payload\n }\n\n // Decode a base58-check encoded string to a buffer, no result if checksum is wrong\n function decodeUnsafe (string) {\n var buffer = base58.decodeUnsafe(string)\n if (!buffer) return\n\n return decodeRaw(buffer)\n }\n\n function decode (string) {\n var buffer = base58.decode(string)\n var payload = decodeRaw(buffer, checksumFn)\n if (!payload) throw new Error('Invalid checksum')\n return payload\n }\n\n return {\n encode: encode,\n decode: decode,\n decodeUnsafe: decodeUnsafe\n }\n}\n","var basex = require('base-x')\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n\nmodule.exports = basex(ALPHABET)\n","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nexports.__esModule = true;\n__export(require(\"./signing\"));\nvar add_1 = require(\"./add\");\nexports.add = add_1.add;\nexports.increment = add_1.increment;\n//# sourceMappingURL=index.js.map","var currencies = require('./currencies')\r\n\r\nvar DEFAULT_CURRENCY_NAME = 'bitcoin'\r\n\r\nmodule.exports = {\r\n\r\n /**\r\n * Checks if a given address is valid for the given currency\r\n *\r\n * @param {String} address The target address\r\n * @param {String} currencyNameOrSymbol The name or the symbol/ticker of the currency\r\n * @param {String} networkType Network Type. Could be 'prod', 'both' and 'testnet'\r\n * @param {Array} addressFormats Array of formats. For example ['legacy', 'slp ', 'cash']\r\n * @returns {Error|Boolean}\r\n */\r\n validate: function (address, currencyNameOrSymbol, networkType, addressFormats) {\r\n var currency = currencies.getByNameOrSymbol(currencyNameOrSymbol || DEFAULT_CURRENCY_NAME)\r\n\r\n if (currency && currency.validator) {\r\n\r\n if(!Array.isArray(addressFormats)){\r\n addressFormats = [];\r\n }\r\n\r\n return currency.validator.isValidAddress(address, currency, networkType, addressFormats)\r\n }\r\n\r\n throw new Error('Missing validator for currency: ' + currencyNameOrSymbol)\r\n },\r\n\r\n CURRENCIES: currencies.CURRENCIES\r\n}\r\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","/*\n A JavaScript implementation of the SHA family of hashes, as\n defined in FIPS PUB 180-4 and FIPS PUB 202, as well as the corresponding\n HMAC implementation as defined in FIPS PUB 198a\n\n Copyright Brian Turek 2008-2017\n Distributed under the BSD License\n See http://caligatio.github.com/jsSHA/ for more information\n\n Several functions taken from Paul Johnston\n*/\n'use strict';(function(I){function w(c,a,d){var l=0,b=[],g=0,f,n,k,e,h,q,y,p,m=!1,t=[],r=[],u,z=!1;d=d||{};f=d.encoding||\"UTF8\";u=d.numRounds||1;if(u!==parseInt(u,10)||1>u)throw Error(\"numRounds must a integer >= 1\");if(0===c.lastIndexOf(\"SHA-\",0))if(q=function(b,a){return A(b,a,c)},y=function(b,a,l,f){var g,e;if(\"SHA-224\"===c||\"SHA-256\"===c)g=(a+65>>>9<<4)+15,e=16;else throw Error(\"Unexpected error in SHA-2 implementation\");for(;b.length<=g;)b.push(0);b[a>>>5]|=128<<24-a%32;a=a+l;b[g]=a&4294967295;\nb[g-1]=a/4294967296|0;l=b.length;for(a=0;a>>3;g=e/4-1;if(eb/8){for(;a.length<=g;)a.push(0);a[g]&=4294967040}for(b=0;b<=g;b+=1)t[b]=a[b]^909522486,r[b]=a[b]^1549556828;n=q(t,n);l=h;m=!0};this.update=function(a){var c,f,e,d=0,p=h>>>5;c=k(a,b,g);a=c.binLen;f=c.value;c=a>>>5;for(e=0;e>>\n5);g=a%h;z=!0};this.getHash=function(a,f){var d,h,k,q;if(!0===m)throw Error(\"Cannot call getHash after setting HMAC key\");k=C(f);switch(a){case \"HEX\":d=function(a){return D(a,e,k)};break;case \"B64\":d=function(a){return E(a,e,k)};break;case \"BYTES\":d=function(a){return F(a,e)};break;case \"ARRAYBUFFER\":try{h=new ArrayBuffer(0)}catch(v){throw Error(\"ARRAYBUFFER not supported by this environment\");}d=function(a){return G(a,e)};break;default:throw Error(\"format must be HEX, B64, BYTES, or ARRAYBUFFER\");\n}q=y(b.slice(),g,l,p(n));for(h=1;h>>2]>>>8*(3+b%4*-1),l+=\"0123456789abcdef\".charAt(g>>>4&15)+\"0123456789abcdef\".charAt(g&15);return d.outputUpper?l.toUpperCase():l}function E(c,a,d){var l=\"\",b=a/8,g,f,n;for(g=0;g>>2]:0,n=g+2>>2]:0,n=(c[g>>>2]>>>8*(3+g%4*-1)&255)<<16|(f>>>8*(3+(g+1)%4*-1)&255)<<8|n>>>8*(3+(g+2)%4*-1)&255,f=0;4>f;f+=1)8*g+6*f<=a?l+=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\".charAt(n>>>\n6*(3-f)&63):l+=d.b64Pad;return l}function F(c,a){var d=\"\",l=a/8,b,g;for(b=0;b>>2]>>>8*(3+b%4*-1)&255,d+=String.fromCharCode(g);return d}function G(c,a){var d=a/8,l,b=new ArrayBuffer(d),g;g=new Uint8Array(b);for(l=0;l>>2]>>>8*(3+l%4*-1)&255;return b}function C(c){var a={outputUpper:!1,b64Pad:\"=\",shakeLen:-1};c=c||{};a.outputUpper=c.outputUpper||!1;!0===c.hasOwnProperty(\"b64Pad\")&&(a.b64Pad=c.b64Pad);if(\"boolean\"!==typeof a.outputUpper)throw Error(\"Invalid outputUpper formatting option\");\nif(\"string\"!==typeof a.b64Pad)throw Error(\"Invalid b64Pad formatting option\");return a}function B(c,a){var d;switch(a){case \"UTF8\":case \"UTF16BE\":case \"UTF16LE\":break;default:throw Error(\"encoding must be UTF8, UTF16BE, or UTF16LE\");}switch(c){case \"HEX\":d=function(a,b,c){var f=a.length,d,k,e,h,q;if(0!==f%2)throw Error(\"String of HEX type must be in byte increments\");b=b||[0];c=c||0;q=c>>>3;for(d=0;d>>1)+q;for(e=h>>>2;b.length<=e;)b.push(0);b[e]|=k<<8*(3+h%4*-1)}return{value:b,binLen:4*f+c}};break;case \"TEXT\":d=function(c,b,d){var f,n,k=0,e,h,q,m,p,r;b=b||[0];d=d||0;q=d>>>3;if(\"UTF8\"===a)for(r=3,e=0;ef?n.push(f):2048>f?(n.push(192|f>>>6),n.push(128|f&63)):55296>f||57344<=f?n.push(224|f>>>12,128|f>>>6&63,128|f&63):(e+=1,f=65536+((f&1023)<<10|c.charCodeAt(e)&1023),n.push(240|f>>>18,128|f>>>12&63,128|f>>>6&63,128|f&63)),h=0;h>>2;b.length<=m;)b.push(0);b[m]|=n[h]<<8*(r+p%4*-1);k+=1}else if(\"UTF16BE\"===a||\"UTF16LE\"===a)for(r=2,n=\"UTF16LE\"===a&&!0||\"UTF16LE\"!==a&&!1,e=0;e>>8);p=k+q;for(m=p>>>2;b.length<=m;)b.push(0);b[m]|=f<<8*(r+p%4*-1);k+=2}return{value:b,binLen:8*k+d}};break;case \"B64\":d=function(a,b,c){var f=0,d,k,e,h,q,m,p;if(-1===a.search(/^[a-zA-Z0-9=+\\/]+$/))throw Error(\"Invalid character in base-64 string\");k=a.indexOf(\"=\");a=a.replace(/\\=/g,\n\"\");if(-1!==k&&k>> 0;\n // Steps 6-7.\n var start = arguments[1];\n var relativeStart = start >> 0;\n // Step 8.\n var k = relativeStart < 0 ? Math.max(len + relativeStart, 0) : Math.min(relativeStart, len);\n // Steps 9-10.\n var end = arguments[2];\n var relativeEnd = end === undefined ? len : end >> 0;\n // Step 11.\n var last = relativeEnd < 0 ? Math.max(len + relativeEnd, 0) : Math.min(relativeEnd, len);\n // Step 12.\n while (k < last) {\n O[k] = input;\n k++;\n }\n // Step 13.\n return O;\n }\n });\n}\nif (!Uint32Array.prototype.slice) {\n Object.defineProperty(Uint8Array.prototype, 'slice', {\n value: Array.prototype.slice\n });\n}\nif (!Uint32Array.prototype.reverse) {\n Object.defineProperty(Uint8Array.prototype, 'reverse', {\n value: Array.prototype.reverse\n });\n}\n//# sourceMappingURL=typed-array.js.map","const iostRegex = new RegExp('^[a-z0-9_]{5,11}$')\r\n\r\nmodule.exports = {\r\n isValidAddress: function (address, currency, networkType) {\r\n return iostRegex.test(address)\r\n }\r\n}\r\n","\"use strict\";\nif (!Int8Array.prototype.slice) {\n Object.defineProperty(Int8Array.prototype, 'slice', {\n value: Array.prototype.slice\n });\n}\nif (!Int8Array.prototype.subarray) {\n Object.defineProperty(Uint8Array.prototype, 'subarray', {\n value: Array.prototype.slice\n });\n}\nif (!Int8Array.prototype.map) {\n Object.defineProperty(Int8Array.prototype, 'map', {\n value: Array.prototype.map\n });\n}\nif (!Int8Array.prototype.every) {\n Object.defineProperty(Int8Array.prototype, 'every', {\n value: Array.prototype.every\n });\n}\nif (!Int8Array.prototype.some) {\n Object.defineProperty(Uint8Array.prototype, 'some', {\n value: Array.prototype.some\n });\n}\nif (!Int8Array.prototype.indexOf) {\n Object.defineProperty(Int8Array.prototype, 'indexOf', {\n value: Array.prototype.indexOf\n });\n}\n// Source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/fill#Polyfill\n// Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/\nif (!Int8Array.prototype.fill) {\n Object.defineProperty(Int8Array.prototype, 'fill', {\n value: function (input) {\n // Steps 1-2.\n if (this == null) {\n throw new TypeError('this is null or not defined');\n }\n var O = Object(this);\n // Steps 3-5.\n var len = O.length >>> 0;\n // Steps 6-7.\n var start = arguments[1];\n var relativeStart = start >> 0;\n // Step 8.\n var k = relativeStart < 0 ? Math.max(len + relativeStart, 0) : Math.min(relativeStart, len);\n // Steps 9-10.\n var end = arguments[2];\n var relativeEnd = end === undefined ? len : end >> 0;\n // Step 11.\n var last = relativeEnd < 0 ? Math.max(len + relativeEnd, 0) : Math.min(relativeEnd, len);\n // Step 12.\n while (k < last) {\n O[k] = input;\n k++;\n }\n // Step 13.\n return O;\n }\n });\n}\nif (!Uint32Array.prototype.slice) {\n Object.defineProperty(Uint8Array.prototype, 'slice', {\n value: Array.prototype.slice\n });\n}\nif (!Uint32Array.prototype.reverse) {\n Object.defineProperty(Uint8Array.prototype, 'reverse', {\n value: Array.prototype.reverse\n });\n}\n//# sourceMappingURL=typed-array.js.map","\"use strict\";\nexports.__esModule = true;\nexports.ILLEGAL_LENGTH = 'Illegal trits length';\nexports.ILLEGAL_SUBSEED_INDEX = 'Illegal subseed length';\nexports.ILLEGAL_SUBSEED_LENGTH = 'Illegal subseed length';\nexports.ILLEGAL_NUMBER_OF_FRAGMENTS = 'Illegal number of fragments';\nexports.ILLEGAL_KEY_LENGTH = 'Illegal key length';\nexports.ILLEGAL_DIGESTS_LENGTH = 'Illegal digests length';\nexports.ILLEGAL_NORMALIZED_FRAGMENT_LENGTH = 'Illegal normalized fragment length';\nexports.ILLEGAL_SIGNATURE_FRAGMENT_LENGTH = 'Illegal signature fragment length';\nexports.ILLEGAL_BUNDLE_HASH_LENGTH = 'Illegal bundle hash length';\nexports.ILLEGAL_KEY_FRAGMENT_LENGTH = 'Illegal key fragment length';\nexports.ILLEGAL_TRIT_CONVERSION_INPUT = 'Illegal conversion input. Expected trits as Int8Array.';\nexports.ILLEGAL_TRYTE_CONVERSION_INPUT = 'Illegal conversion input. Expected trytes string or integer.';\nexports.ILLEGAL_MIN_WEIGHT_MAGNITUDE = 'Illegal minWeightMagnitude value.';\nexports.ILLEGAL_ADDRESS_LAST_TRIT = 'Illegal address. Last trit must be 0.';\nexports.ILLEGAL_ADDRESS_LENGTH = 'Illegal address length.';\nexports.ILLEGAL_BUNDLE_LENGTH = 'Illegal bundle hash length.';\nexports.ILLEGAL_OBSOLETE_TAG_LENGTH = 'Illegal obsoleteTag length.';\nexports.ILLEGAL_SIGNATURE_OR_MESSAGE = 'Illegal signature or message.';\nexports.ILLEGAL_SIGNATURE_OR_MESSAGE_LENGTH = 'Illegal signatureOrMessage length.';\nexports.ILLEGAL_TAG_LENGTH = 'Illegal tag length.';\nexports.ILLEGAL_ISSUANCE_TIMESTAMP = 'Illegal issuance timestamp';\nexports.ILLEGAL_ISSUANCE_TIMESTAMP_LENGTH = 'Illegal issuanceTimestamp length.';\nexports.ILLEGAL_VALUE_LENGTH = 'Illegal value length.';\nexports.ILLEGAL_TRANSACTION_FIELD_OFFSET = 'Illegal transaction field offset.';\nexports.ILLEGAL_TRANSACTION_FIELD_LENGTH = 'Illegal transaction field length.';\nexports.ILLEGAL_LENGTH_OR_OFFSET = 'Illegal length or offset.';\nexports.ILLEGAL_TRANSACTION_BUFFER = 'Illegal transaction buffer. Expected `Int8Array`.';\nexports.ILLEGAL_TRANSACTION_BUFFER_LENGTH = 'Illegal transaction buffer length.';\nexports.ILLEGAL_TRANSACTION_OFFSET = 'Illegal transaction offset.';\nexports.ILLEGAL_TRANSACTION_LENGTH = 'Illegal transaction length.';\nexports.ILLEGAL_TRANSACTION_ORDER = 'Illegal transaction order.';\nexports.ILLEGAL_TRANSACTION_INDEX = 'Illegal transaction index.';\nexports.ILLEGAL_SEED_LENGTH = 'Illegal seed length. Expected length of 243 trits.';\nexports.ILLEGAL_KEY_INDEX = 'Illegal key index.';\nexports.ILLEGAL_CDA_LENGTH = 'Illegal cda length.';\nexports.ILLEGAL_BATCH = 'Illegal batch.';\nexports.CDA_ALREADY_IN_STORE = 'CDA is already in store.';\nexports.ILLEGAL_PERSISTENCE_ID = 'Illegal persistence id.';\nexports.ILLEGAL_PERSISTENCE_PATH = 'Illegal persistence path.';\nexports.ILLEGAL_PADDING_LENGTH = 'Illegal padding length. Input value length exceeds padding length.';\nexports.INCONSISTENT_SUBTANGLE = 'Inconsistent subtangle';\nexports.INSUFFICIENT_BALANCE = 'Insufficient balance';\nexports.INVALID_ADDRESS = 'Invalid address';\nexports.INVALID_REMAINDER_ADDRESS = 'Invalid remainder address';\nexports.INVALID_BRANCH_TRANSACTION = 'Invalid branch transaction';\nexports.INVALID_BUNDLE = 'Invalid bundle';\nexports.INVALID_BUNDLE_HASH = 'Invalid bundle hash';\nexports.INVALID_CHECKSUM = 'Invalid checksum';\nexports.INVALID_COMMAND = 'Invalid command format';\nexports.INVALID_DEPTH = 'Invalid depth';\nexports.INVALID_HASH = 'Invalid hash';\nexports.INVALID_INDEX = 'Invalid index option';\nexports.INVALID_TOTAL_OPTION = 'Invalid total option';\nexports.INVALID_INPUT = 'Invalid input';\nexports.INVALID_KEY = 'Invalid key value';\nexports.INVALID_MIN_WEIGHT_MAGNITUDE = 'Invalid Min Weight Magnitude';\nexports.INVALID_SEARCH_KEY = 'Invalid search key';\nexports.INVALID_SECURITY_LEVEL = 'Invalid security option';\nexports.INVALID_SECURITY_OPTION = 'Invalid security option';\nexports.INVALID_SEED = 'Invalid seed';\nexports.INVALID_START_END_OPTIONS = 'Invalid end option';\nexports.INVALID_START_OPTION = 'Invalid start option';\nexports.INVALID_TAG = 'Invalid tag';\nexports.INVALID_TRANSACTION = 'Invalid transaction';\nexports.INVALID_TRANSACTION_TRYTES = 'Invalid transaction trytes';\nexports.INVALID_ATTACHED_TRYTES = 'Invalid attached trytes';\nexports.INVALID_TRANSACTION_HASH = 'Invalid transaction hash';\nexports.INVALID_TAIL_TRANSACTION = 'Invalid tail transaction';\nexports.INVALID_THRESHOLD = 'Invalid threshold option';\nexports.INVALID_TRANSFER = 'Invalid transfer array';\nexports.INVALID_TRUNK_TRANSACTION = 'Invalid trunk transaction';\nexports.INVALID_REFERENCE_HASH = 'Invalid reference hash';\nexports.INVALID_TRYTES = 'Invalid trytes';\nexports.INVALID_URI = 'Invalid uri';\nexports.INVALID_ASCII_INPUT = 'Conversion to trytes requires type of input to be encoded in ascii.';\nexports.INVALID_ODD_LENGTH = 'Conversion from trytes requires length of trytes to be even.';\nexports.INVALID_TRYTE_ENCODED_JSON = 'Invalid tryte encoded JSON message';\nexports.NOT_INT = 'One of the inputs is not integer';\nexports.SENDING_BACK_TO_INPUTS = 'One of the transaction inputs is used as output.';\nexports.INVALID_TRANSACTIONS_TO_APPROVE = 'Invalid transactions to approve.';\nexports.NO_INPUTS = 'Could not find any available inputs.';\nexports.invalidChecksum = function (address) { return \"Invalid Checksum: \" + address; };\nexports.inconsistentTransaction = function (reason) { return \"Transaction is inconsistent. Reason: \" + reason; };\nexports.INVALID_DELAY = 'Invalid delay.';\n//# sourceMappingURL=errors.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.c32checkDecode = exports.c32checkEncode = void 0;\nvar buffer_1 = require(\"buffer/\");\nvar encoding_1 = require(\"./encoding\");\nvar cross_sha256_1 = require(\"cross-sha256\");\n/**\n * Get the c32check checksum of a hex-encoded string\n * @param {string} dataHex - the hex string\n * @returns {string} the c32 checksum, as a bin-encoded string\n */\nfunction c32checksum(dataHex) {\n var dataHash = cross_sha256_1.hashSha256(cross_sha256_1.hashSha256(buffer_1.Buffer.from(dataHex, 'hex')));\n var checksum = dataHash.slice(0, 4).toString('hex');\n return checksum;\n}\n/**\n * Encode a hex string as a c32check string. This is a lot like how\n * base58check works in Bitcoin-land, but this algorithm uses the\n * z-base-32 alphabet instead of the base58 alphabet. The algorithm\n * is as follows:\n * * calculate the c32checksum of version + data\n * * c32encode version + data + c32checksum\n * @param {number} version - the version string (between 0 and 31)\n * @param {string} data - the data to encode\n * @returns {string} the c32check representation\n */\nfunction c32checkEncode(version, data) {\n if (version < 0 || version >= 32) {\n throw new Error('Invalid version (must be between 0 and 31)');\n }\n if (!data.match(/^[0-9a-fA-F]*$/)) {\n throw new Error('Invalid data (not a hex string)');\n }\n data = data.toLowerCase();\n if (data.length % 2 !== 0) {\n data = \"0\" + data;\n }\n var versionHex = version.toString(16);\n if (versionHex.length === 1) {\n versionHex = \"0\" + versionHex;\n }\n var checksumHex = c32checksum(\"\" + versionHex + data);\n var c32str = encoding_1.c32encode(\"\" + data + checksumHex);\n return \"\" + encoding_1.c32[version] + c32str;\n}\nexports.c32checkEncode = c32checkEncode;\n/*\n * Decode a c32check string back into its version and data payload. This is\n * a lot like how base58check works in Bitcoin-land, but this algorithm uses\n * the z-base-32 alphabet instead of the base58 alphabet. The algorithm\n * is as follows:\n * * extract the version, data, and checksum\n * * verify the checksum matches c32checksum(version + data)\n * * return data\n * @param {string} c32data - the c32check-encoded string\n * @returns {array} [version (number), data (string)]. The returned data\n * will be a hex string. Throws an exception if the checksum does not match.\n */\nfunction c32checkDecode(c32data) {\n c32data = encoding_1.c32normalize(c32data);\n var dataHex = encoding_1.c32decode(c32data.slice(1));\n var versionChar = c32data[0];\n var version = encoding_1.c32.indexOf(versionChar);\n var checksum = dataHex.slice(-8);\n var versionHex = version.toString(16);\n if (versionHex.length === 1) {\n versionHex = \"0\" + versionHex;\n }\n if (c32checksum(\"\" + versionHex + dataHex.substring(0, dataHex.length - 8)) !== checksum) {\n throw new Error('Invalid c32check string: checksum mismatch');\n }\n return [version, dataHex.substring(0, dataHex.length - 8)];\n}\nexports.c32checkDecode = c32checkDecode;\n","const XRPValidator = require('./ripple_validator')\r\nconst ETHValidator = require('./ethereum_validator')\r\nconst BTCValidator = require('./bitcoin_validator')\r\nconst ADAValidator = require('./cardano_validator')\r\nconst XMRValidator = require('./monero_validator')\r\nconst NANOValidator = require('./nano_validator')\r\nconst LSKValidator = require('./lisk_validator')\r\nconst IOTAValidator = require('./iota_validator')\r\nconst EOSValidator = require('./eos_validator')\r\nconst XLMValidator = require('./lumen_validator')\r\nconst AUDValidator = require('./aud_validator')\r\nconst NEMValidator = require('./nem_validator')\r\nconst BTSValidator = require('./bts_validator')\r\nconst ICXValidator = require('./icx_validator')\r\nconst AEValidator = require('./ae_validator')\r\nconst SCValidator = require('./sc_validator')\r\nconst ATOMValidator = require('./atom_validator')\r\nconst STEEMValidator = require('./steem_validator')\r\nconst ARDRValidator = require('./ardr_validator')\r\nconst BNBValidator = require('./bnb_validator')\r\nconst ZILValidator = require('./zil_validator')\r\nconst NXSValidator = require('./nxs_validator')\r\nconst IOSTValidator = require('./iost_validator')\r\nconst XTZValidator = require('./xtz_validator')\r\nconst HBARValidator = require('./hbar_validator')\r\nconst STXValidator = require('./stx_validator')\r\nconst ALGOValidator = require('./algo_validator')\r\nconst BCHValidator = require('./bitcoincash_validator')\r\nconst SYSValidator = require('./sys_validator')\r\n\r\n// defines P2PKH and P2SH address types for standard (prod) and testnet networks\r\nconst CURRENCIES = [{\r\n name: 'Algorand',\r\n symbol: 'algo',\r\n validator: ALGOValidator\r\n},\r\n{\r\n name: 'Bitcoin',\r\n symbol: 'btc',\r\n addressTypes: { prod: ['00', '05'], testnet: ['6f', 'c4'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'BitcoinCash',\r\n symbol: 'bch',\r\n addressTypes: { prod: ['00', '05'], testnet: ['6f', 'c4'] },\r\n validator: BCHValidator\r\n}, {\r\n name: 'BitcoinCash',\r\n symbol: 'bcc', // Other asset code for Bitcoin Cash\r\n addressTypes: { prod: ['00', '05'], testnet: ['6f', 'c4'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'LiteCoin',\r\n symbol: 'ltc',\r\n addressTypes: { prod: ['30', '05', '32'], testnet: ['6f', 'c4', '3a'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'PeerCoin',\r\n symbol: 'ppc',\r\n addressTypes: { prod: ['37', '75'], testnet: ['6f', 'c4'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'Tron',\r\n symbol: 'trx',\r\n addressTypes: { prod: ['41'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'DogeCoin',\r\n symbol: 'doge',\r\n addressTypes: { prod: ['1e', '16'], testnet: ['71', 'c4'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'BeaverCoin',\r\n symbol: 'bvc',\r\n addressTypes: { prod: ['19', '05'], testnet: ['6f', 'c4'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'FreiCoin',\r\n symbol: 'frc',\r\n addressTypes: { prod: ['00', '05'], testnet: ['6f', 'c4'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'ProtoShares',\r\n symbol: 'pts',\r\n addressTypes: { prod: ['38', '05'], testnet: ['6f', 'c4'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'MegaCoin',\r\n symbol: 'mec',\r\n addressTypes: { prod: ['32', '05'], testnet: ['6f', 'c4'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'PrimeCoin',\r\n symbol: 'xpm',\r\n addressTypes: { prod: ['17', '53'], testnet: ['6f', 'c4'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'AuroraCoin',\r\n symbol: 'aur',\r\n addressTypes: { prod: ['17', '05'], testnet: ['6f', 'c4'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'NameCoin',\r\n symbol: 'nmc',\r\n addressTypes: { prod: ['34'], testnet: [] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'BioCoin',\r\n symbol: 'bio',\r\n addressTypes: { prod: ['19', '14'], testnet: ['6f', 'c4'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'GarliCoin',\r\n symbol: 'grlc',\r\n addressTypes: { prod: ['26', '05'], testnet: ['6f', 'c4'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'VertCoin',\r\n symbol: 'vtc',\r\n addressTypes: { prod: ['0x', '47'], testnet: ['6f', 'c4'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'BitcoinGold',\r\n symbol: 'btg',\r\n addressTypes: { prod: ['26', '17'], testnet: ['6f', 'c4'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'Komodo',\r\n symbol: 'kmd',\r\n addressTypes: { prod: ['3c', '55'], testnet: ['0', '5'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'BitcoinZ',\r\n symbol: 'btcz',\r\n expectedLength: 26,\r\n addressTypes: { prod: ['1cb8', '1cbd'], testnet: ['1d25', '1cba'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'BitcoinPrivate',\r\n symbol: 'btcp',\r\n expectedLength: 26,\r\n addressTypes: { prod: ['1325', '13af'], testnet: ['1957', '19e0'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'Hush',\r\n symbol: 'hush',\r\n expectedLength: 26,\r\n addressTypes: { prod: ['1cb8', '1cbd'], testnet: ['1d25', '1cba'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'SnowGem',\r\n symbol: 'sng',\r\n expectedLength: 26,\r\n addressTypes: { prod: ['1c28', '1c2d'], testnet: ['1d25', '1cba'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'ZCash',\r\n symbol: 'zec',\r\n expectedLength: 26,\r\n addressTypes: { prod: ['1cb8', '1cbd'], testnet: ['1d25', '1cba'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'ZClassic',\r\n symbol: 'zcl',\r\n expectedLength: 26,\r\n addressTypes: { prod: ['1cb8', '1cbd'], testnet: ['1d25', '1cba'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'ZenCash',\r\n symbol: 'zen',\r\n expectedLength: 26,\r\n addressTypes: { prod: ['2089', '2096'], testnet: ['2092', '2098'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'VoteCoin',\r\n symbol: 'vot',\r\n expectedLength: 26,\r\n addressTypes: { prod: ['1cb8', '1cbd'], testnet: ['1d25', '1cba'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'Decred',\r\n symbol: 'dcr',\r\n addressTypes: { prod: ['073f', '071a'], testnet: ['0f21', '0efc'] },\r\n hashFunction: 'blake256',\r\n expectedLength: 26,\r\n validator: BTCValidator\r\n}, {\r\n name: 'GameCredits',\r\n symbol: 'game',\r\n addressTypes: { prod: ['26', '05'], testnet: [] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'PIVX',\r\n symbol: 'pivx',\r\n addressTypes: { prod: ['1e', '0d'], testnet: [] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'SolarCoin',\r\n symbol: 'slr',\r\n addressTypes: { prod: ['12', '05'], testnet: [] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'MonaCoin',\r\n symbol: 'mona',\r\n addressTypes: { prod: ['32', '37'], testnet: [] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'DigiByte',\r\n symbol: 'dgb',\r\n addressTypes: { prod: ['1e'], testnet: [] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'Tether',\r\n symbol: 'usdt',\r\n // addressTypes: { prod: ['00', '05'], testnet: ['6f', 'c4'] },\r\n // validator: BTCValidator\r\n validator: ETHValidator\r\n}, {\r\n name: 'Ripple',\r\n symbol: 'xrp',\r\n validator: XRPValidator\r\n}, {\r\n name: 'Dash',\r\n symbol: 'dash',\r\n addressTypes: { prod: ['4c', '10'], testnet: ['8c', '13'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'Neo',\r\n symbol: 'neo',\r\n addressTypes: { prod: ['17'], testnet: [] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'NeoGas',\r\n symbol: 'gas',\r\n addressTypes: { prod: ['17'], testnet: [] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'Qtum',\r\n symbol: 'qtum',\r\n addressTypes: { prod: ['3a', '32'], testnet: ['6f', 'c4'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'Verge',\r\n symbol: 'xvg',\r\n addressTypes: { prod: ['1e'], testnet: ['6F'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'Waves',\r\n symbol: 'waves',\r\n addressTypes: { prod: ['0157'], testnet: ['0154'] },\r\n expectedLength: 26,\r\n hashFunction: 'blake256keccak256',\r\n regex: /^[a-zA-Z0-9]{35}$/,\r\n validator: BTCValidator\r\n}, {\r\n name: 'Ethereum',\r\n symbol: 'eth',\r\n validator: ETHValidator\r\n}, {\r\n name: 'EtherZero',\r\n symbol: 'etz',\r\n validator: ETHValidator\r\n}, {\r\n name: 'EthereumClassic',\r\n symbol: 'etc',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Enigma',\r\n symbol: 'eng',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Callisto',\r\n symbol: 'clo',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Bankex',\r\n symbol: 'bkx',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Cardano',\r\n symbol: 'ada',\r\n validator: ADAValidator\r\n}, {\r\n name: 'Monero',\r\n symbol: 'xmr',\r\n addressTypes: { prod: ['18', '42'], testnet: ['53', '63'] },\r\n iAddressTypes: { prod: ['19'], testnet: ['54'] },\r\n validator: XMRValidator\r\n}, {\r\n name: 'Aragon',\r\n symbol: 'ant',\r\n validator: ETHValidator\r\n}, {\r\n name: 'BasicAttentionToken',\r\n symbol: 'bat',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Bancor',\r\n symbol: 'bnt',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Civic',\r\n symbol: 'cvc',\r\n validator: ETHValidator\r\n}, {\r\n name: 'District0x',\r\n symbol: 'dnt',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Gnosis',\r\n symbol: 'gno',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Golem',\r\n symbol: 'gnt',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Matchpool',\r\n symbol: 'gup',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Melon',\r\n symbol: 'mln',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Numeraire',\r\n symbol: 'nmr',\r\n validator: ETHValidator\r\n}, {\r\n name: 'OmiseGO',\r\n symbol: 'omg',\r\n validator: ETHValidator\r\n}, {\r\n name: 'TenX',\r\n symbol: 'pay',\r\n validator: ETHValidator\r\n}, {\r\n name: 'RipioCreditNetwork',\r\n symbol: 'rcn',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Augur',\r\n symbol: 'rep',\r\n validator: ETHValidator\r\n}, {\r\n name: 'iExec RLC',\r\n symbol: 'rlc',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Salt',\r\n symbol: 'salt',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Status',\r\n symbol: 'snt',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Storj',\r\n symbol: 'storj',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Swarm City',\r\n symbol: 'swt',\r\n validator: ETHValidator\r\n}, {\r\n name: 'TrueUSD',\r\n symbol: 'tusd',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Wings',\r\n symbol: 'wings',\r\n validator: ETHValidator\r\n}, {\r\n name: '0x',\r\n symbol: 'zrx',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Expanse',\r\n symbol: 'exp',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Viberate',\r\n symbol: 'vib',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Odyssey',\r\n symbol: 'ocn',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Polymath',\r\n symbol: 'poly',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Storm',\r\n symbol: 'storm',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Nano',\r\n symbol: 'nano',\r\n validator: NANOValidator\r\n}, {\r\n name: 'RaiBlocks',\r\n symbol: 'xrb',\r\n validator: NANOValidator\r\n}, {\r\n name: 'AdEx',\r\n symbol: 'adx',\r\n validator: ETHValidator\r\n}, {\r\n name: 'BinanceCoin',\r\n symbol: 'bnb',\r\n validator: BNBValidator\r\n}, {\r\n name: 'ETHOS',\r\n symbol: 'ethos',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Bitquence',\r\n symbol: 'bqx',\r\n validator: ETHValidator\r\n}, {\r\n name: 'FunFair',\r\n symbol: 'fun',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Monacao',\r\n symbol: 'mco',\r\n validator: ETHValidator\r\n}, {\r\n name: 'PowerLedger',\r\n symbol: 'powr',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Substratum',\r\n symbol: 'sub',\r\n validator: ETHValidator\r\n}, {\r\n name: 'WaltonChain',\r\n symbol: 'wtc',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Lisk',\r\n symbol: 'lsk',\r\n validator: LSKValidator\r\n}, {\r\n name: 'Iota',\r\n symbol: 'iota',\r\n validator: IOTAValidator\r\n}, {\r\n name: 'EOS',\r\n symbol: 'eos',\r\n validator: EOSValidator\r\n}, {\r\n name: 'BitTorrent',\r\n symbol: 'btt',\r\n addressTypes: { prod: ['41'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'Dent',\r\n symbol: 'dent',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Holo',\r\n symbol: 'HOT',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Chainlink',\r\n symbol: 'link',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Metal',\r\n symbol: 'mtl',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Pundi X',\r\n symbol: 'npxs',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Stellar Lumens',\r\n symbol: 'xlm',\r\n validator: XLMValidator\r\n}, {\r\n name: 'Zilliqa',\r\n symbol: 'zil',\r\n validator: ZILValidator\r\n}, {\r\n name: 'Australian Dollars',\r\n symbol: 'aud',\r\n validator: AUDValidator\r\n}, {\r\n name: 'Syscoin',\r\n symbol: 'sys',\r\n addressTypes: { prod: ['3f'] },\r\n validator: SYSValidator\r\n}, {\r\n name: 'Populous',\r\n symbol: 'ppt',\r\n validator: ETHValidator\r\n}, {\r\n name: 'VeChain',\r\n symbol: 'vet',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Ontology',\r\n symbol: 'ont',\r\n validator: BTCValidator,\r\n addressTypes: { prod: ['17', '41'] }\r\n}, {\r\n name: 'Ontology Gas',\r\n symbol: 'ong',\r\n validator: BTCValidator,\r\n addressTypes: { prod: ['17', '41'] }\r\n}, {\r\n name: 'NEM',\r\n symbol: 'xem',\r\n validator: NEMValidator,\r\n addressTypes: { prod: ['17', '41'] }\r\n}, {\r\n name: 'USD Coin',\r\n symbol: 'usdc',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Bitcoin Diamond',\r\n symbol: 'bcd',\r\n validator: BTCValidator,\r\n addressTypes: { prod: ['00'] }\r\n}, {\r\n name: 'Ravencoin',\r\n symbol: 'rvn',\r\n validator: BTCValidator,\r\n addressTypes: { prod: ['3c'] }\r\n}, {\r\n name: 'Bitshares',\r\n symbol: 'bts',\r\n validator: BTSValidator\r\n}, {\r\n name: 'ICON',\r\n symbol: 'icx',\r\n validator: ICXValidator\r\n}, {\r\n name: 'Paxos Standard Token',\r\n symbol: 'pax',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Aeternity',\r\n symbol: 'ae',\r\n validator: AEValidator\r\n}, {\r\n name: 'Siacoin',\r\n symbol: 'sc',\r\n validator: SCValidator\r\n}, {\r\n name: 'Cosmos',\r\n symbol: 'atom',\r\n validator: ATOMValidator\r\n}, {\r\n name: 'STEEM',\r\n symbol: 'steem',\r\n validator: STEEMValidator\r\n},\r\n{\r\n name: 'Blockstack',\r\n symbol: 'stx',\r\n validator: STXValidator\r\n}, {\r\n name: 'Enjin Coin',\r\n symbol: 'enj',\r\n validator: ETHValidator\r\n}, {\r\n name: 'THETA',\r\n symbol: 'theta',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Stratis',\r\n symbol: 'strat',\r\n validator: BTCValidator,\r\n addressTypes: { prod: ['3f'] }\r\n}, {\r\n name: 'Golem',\r\n symbol: 'gnt',\r\n validator: ETHValidator\r\n}, {\r\n name: 'aelf',\r\n symbol: 'ELF',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Ardor',\r\n symbol: 'ardr',\r\n validator: ARDRValidator\r\n}, {\r\n name: 'Horizen',\r\n symbol: 'zen',\r\n expectedLength: 26,\r\n addressTypes: { prod: ['2089', '2096'], testnet: ['2092', '2098'] },\r\n validator: BTCValidator\r\n}, {\r\n name: 'Aave',\r\n symbol: 'lend',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Nexus',\r\n symbol: 'nxs',\r\n validator: NXSValidator\r\n}, {\r\n name: 'Internet of Services',\r\n symbol: 'IOST',\r\n validator: IOSTValidator\r\n}, {\r\n name: 'Decentraland',\r\n symbol: 'MANA',\r\n validator: ETHValidator\r\n}, {\r\n name: 'iExec RLC',\r\n symbol: 'RLC',\r\n validator: ETHValidator\r\n}, {\r\n name: 'Tezos',\r\n symbol: 'XTZ',\r\n validator: XTZValidator\r\n}, {\r\n name: 'Hedera Hashgraph',\r\n symbol: 'hbar',\r\n validator: HBARValidator\r\n}]\r\n\r\nmodule.exports = {\r\n getByNameOrSymbol: function (currencyNameOrSymbol) {\r\n var nameOrSymbol = currencyNameOrSymbol.replace(' ', '').toLowerCase() // Remove spaces and make lowercase\r\n return CURRENCIES.find(function (currency) {\r\n return currency.name.replace(' ', '').toLowerCase() === nameOrSymbol || currency.symbol.replace(' ', '').toLowerCase() === nameOrSymbol\r\n })\r\n },\r\n CURRENCIES\r\n}\r\n","\"use strict\";\nif (!Int8Array.prototype.slice) {\n Object.defineProperty(Int8Array.prototype, 'slice', {\n value: Array.prototype.slice\n });\n}\nif (!Int8Array.prototype.subarray) {\n Object.defineProperty(Uint8Array.prototype, 'subarray', {\n value: Array.prototype.slice\n });\n}\nif (!Int8Array.prototype.map) {\n Object.defineProperty(Int8Array.prototype, 'map', {\n value: Array.prototype.map\n });\n}\nif (!Int8Array.prototype.every) {\n Object.defineProperty(Int8Array.prototype, 'every', {\n value: Array.prototype.every\n });\n}\nif (!Int8Array.prototype.some) {\n Object.defineProperty(Uint8Array.prototype, 'some', {\n value: Array.prototype.some\n });\n}\nif (!Int8Array.prototype.indexOf) {\n Object.defineProperty(Int8Array.prototype, 'indexOf', {\n value: Array.prototype.indexOf\n });\n}\n// Source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/fill#Polyfill\n// Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/\nif (!Int8Array.prototype.fill) {\n Object.defineProperty(Int8Array.prototype, 'fill', {\n value: function (input) {\n // Steps 1-2.\n if (this == null) {\n throw new TypeError('this is null or not defined');\n }\n var O = Object(this);\n // Steps 3-5.\n var len = O.length >>> 0;\n // Steps 6-7.\n var start = arguments[1];\n var relativeStart = start >> 0;\n // Step 8.\n var k = relativeStart < 0 ? Math.max(len + relativeStart, 0) : Math.min(relativeStart, len);\n // Steps 9-10.\n var end = arguments[2];\n var relativeEnd = end === undefined ? len : end >> 0;\n // Step 11.\n var last = relativeEnd < 0 ? Math.max(len + relativeEnd, 0) : Math.min(relativeEnd, len);\n // Step 12.\n while (k < last) {\n O[k] = input;\n k++;\n }\n // Step 13.\n return O;\n }\n });\n}\nif (!Uint32Array.prototype.slice) {\n Object.defineProperty(Uint8Array.prototype, 'slice', {\n value: Array.prototype.slice\n });\n}\nif (!Uint32Array.prototype.reverse) {\n Object.defineProperty(Uint8Array.prototype, 'reverse', {\n value: Array.prototype.reverse\n });\n}\n//# sourceMappingURL=typed-array.js.map","\"use strict\";\n/** @module checksum */\nexports.__esModule = true;\nvar converter_1 = require(\"@iota/converter\");\nvar kerl_1 = require(\"@iota/kerl\");\nvar errors_1 = require(\"../../errors\");\nvar guards_1 = require(\"../../guards\");\nexports.errors = {\n INVALID_ADDRESS: errors_1.INVALID_ADDRESS,\n INVALID_CHECKSUM: errors_1.INVALID_CHECKSUM,\n INVALID_TRYTES: errors_1.INVALID_TRYTES,\n INVALID_CHECKSUM_LENGTH: 'Invalid checksum length'\n};\nvar HASH_TRYTES_LENGTH = 81;\nvar ADDRESS_CHECKSUM_TRYTES_LENGTH = 9;\nvar ADDRESS_WITH_CHECKSUM_TRYTES_LENGTH = HASH_TRYTES_LENGTH + ADDRESS_CHECKSUM_TRYTES_LENGTH;\nvar MIN_CHECKSUM_TRYTES_LENGTH = 3;\n/**\n * This method takes 81 trytes, which could be an address or a seed, generates the [checksum](https://docs.iota.org/docs/getting-started/0.1/clients/checksums) and appends it to the trytes.\n *\n * To generate a checksum that is less than 9 trytes long, make sure to set the `isAddress` argument to false.\n *\n * ## Related methods\n *\n * To generate an address, use the [`getNewAddress()`]{@link #module_core.getNewAddress} method.\n *\n * @method addChecksum\n *\n * @summary Generates a checksum and appends it to the given trytes.\n *\n * @memberof module:checksum\n *\n * @param {string} input - 81 trytes to which to append the checksum\n *\n * @param {number} [checksumLength=9] - Length of the checksum to generate\n *\n * @param {boolean} [isAddress=true] - Whether the input is an address\n *\n * @example\n * ```js\n * let addressWithChecksum = Checksum.addChecksum('ADDRESS...');\n * ```\n *\n * @returns {string} The original trytes with an appended checksum.\n *\n * @throws {errors.INVALID_ADDRESS}: Make sure that the given address is 90 trytes long.\n * @throws {errors.INVALID_TRYTES}: Make sure that the `input` argument contains only [trytes](https://docs.iota.org/docs/getting-started/0.1/introduction/ternary)\n * @throws {errors.INVALID_CHECKSUM_LENGTH}: Make sure that the `checksumLength` argument is a number greater than or equal to 3. If the `isAddress` argument is set to true, make sure that the `checksumLength` argument is 9.\n */\nfunction addChecksum(input, checksumLength, isAddress) {\n if (checksumLength === void 0) { checksumLength = ADDRESS_CHECKSUM_TRYTES_LENGTH; }\n if (isAddress === void 0) { isAddress = true; }\n if (!guards_1.isTrytes(input)) {\n throw new Error(exports.errors.INVALID_TRYTES);\n }\n if (isAddress && input.length !== HASH_TRYTES_LENGTH) {\n if (input.length === ADDRESS_WITH_CHECKSUM_TRYTES_LENGTH) {\n return input;\n }\n throw new Error(exports.errors.INVALID_ADDRESS);\n }\n if (!Number.isInteger(checksumLength) ||\n checksumLength < MIN_CHECKSUM_TRYTES_LENGTH ||\n (isAddress && checksumLength !== ADDRESS_CHECKSUM_TRYTES_LENGTH)) {\n throw new Error(exports.errors.INVALID_CHECKSUM_LENGTH);\n }\n var paddedInputTrytes = input;\n while (paddedInputTrytes.length % HASH_TRYTES_LENGTH !== 0) {\n paddedInputTrytes += '9';\n }\n var inputTrits = converter_1.trits(paddedInputTrytes);\n var checksumTrits = new Int8Array(kerl_1[\"default\"].HASH_LENGTH);\n var kerl = new kerl_1[\"default\"]();\n kerl.initialize();\n kerl.absorb(inputTrits, 0, inputTrits.length);\n kerl.squeeze(checksumTrits, 0, kerl_1[\"default\"].HASH_LENGTH);\n return input.concat(converter_1.trytes(checksumTrits.slice(243 - checksumLength * 3, 243)));\n}\nexports.addChecksum = addChecksum;\n/**\n * This method takes an address of 90 trytes, and removes the last 9 trytes to return the address without a checksum.\n *\n * ## Related methods\n *\n * To generate an address, use the [`getNewAddress()`]{@link #module_core.getNewAddress} method.\n * To add a checksum to an address, use the [`addChecksum()`]{@link #module_checksum.addChecksum} method.\n *\n * @method removeChecksum\n *\n * @summary Removes the checksum from the given address.\n *\n * @memberof module:checksum\n *\n * @param {string} input - Address from which to remove the checksum\n *\n * @example\n * ```js\n * let addressWithoutChecksum = Checksum.removeChecksum('ADDRESS...');\n * ```\n *\n * @returns {string} The original address without the appended checksum.\n *\n * @throws {errors.INVALID_ADDRESS}: Make sure that the given address is 90 trytes long.\n */\nfunction removeChecksum(input) {\n if (!guards_1.isTrytes(input, HASH_TRYTES_LENGTH) && !guards_1.isTrytes(input, ADDRESS_WITH_CHECKSUM_TRYTES_LENGTH)) {\n throw new Error(exports.errors.INVALID_ADDRESS);\n }\n return input.slice(0, HASH_TRYTES_LENGTH);\n}\nexports.removeChecksum = removeChecksum;\n/**\n * This method takes an address of 90 trytes, and checks if the checksum is valid.\n *\n * ## Related methods\n *\n * To generate an address, use the [`getNewAddress()`]{@link #module_core.getNewAddress} method.\n * To add a checksum to an address, use the [`addChecksum()`]{@link #module_checksum.addChecksum} method.\n *\n * @method isValidChecksum\n *\n * @summary Validates the checksum of an address.\n *\n * @memberof module:checksum\n *\n * @param {string} addressWithChecksum - Address with a checksum\n *\n * @example\n * ```js\n * let valid = Checksum.isValidChecksum('ADDRESS...');\n * ```\n *\n * @returns {boolean} Whether the checksum is valid.\n *\n * @throws {errors.INVALID_ADDRESS}: Make sure that the given address is 90 trytes long.\n */\nexports.isValidChecksum = function (addressWithChecksum) {\n return addressWithChecksum === addChecksum(removeChecksum(addressWithChecksum));\n};\n//# sourceMappingURL=index.js.map","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","\"use strict\";\nexports.__esModule = true;\nrequire(\"../../typed-array\");\nvar errors = require(\"./errors\");\nvar RADIX = 3;\nvar MAX_TRIT_VALUE = (RADIX - 1) / 2;\nvar MIN_TRIT_VALUE = -MAX_TRIT_VALUE;\nexports.TRYTE_WIDTH = MAX_TRIT_VALUE - MIN_TRIT_VALUE + 1;\n// All possible tryte values\nexports.TRYTE_ALPHABET = '9ABCDEFGHIJKLMNOPQRSTUVWXYZ';\n// Trytes to trits look up table\nexports.TRYTES_TRITS_LUT = [\n [0, 0, 0],\n [1, 0, 0],\n [-1, 1, 0],\n [0, 1, 0],\n [1, 1, 0],\n [-1, -1, 1],\n [0, -1, 1],\n [1, -1, 1],\n [-1, 0, 1],\n [0, 0, 1],\n [1, 0, 1],\n [-1, 1, 1],\n [0, 1, 1],\n [1, 1, 1],\n [-1, -1, -1],\n [0, -1, -1],\n [1, -1, -1],\n [-1, 0, -1],\n [0, 0, -1],\n [1, 0, -1],\n [-1, 1, -1],\n [0, 1, -1],\n [1, 1, -1],\n [-1, -1, 0],\n [0, -1, 0],\n [1, -1, 0],\n [-1, 0, 0],\n];\n/**\n * Converts trytes or values to trits\n *\n * @method trits\n *\n * @ignore\n *\n * @memberof module:converter\n *\n * @param {String|Number} input - Tryte string or value to be converted.\n *\n * @return {Int8Array} trits\n */\nfunction trits(input) {\n if (typeof input === 'number' && Number.isInteger(input)) {\n return fromValue(input);\n }\n else if (typeof input === 'string') {\n var result = new Int8Array(input.length * exports.TRYTE_WIDTH);\n for (var i = 0; i < input.length; i++) {\n var index = exports.TRYTE_ALPHABET.indexOf(input.charAt(i));\n if (index === -1) {\n throw new Error(errors.INVALID_TRYTES);\n }\n for (var j = 0; j < exports.TRYTE_WIDTH; j++) {\n result[i * exports.TRYTE_WIDTH + j] = exports.TRYTES_TRITS_LUT[index][j];\n }\n }\n return result;\n }\n else {\n throw new Error(errors.INVALID_TRYTES);\n }\n}\nexports.trits = trits;\n/**\n * This method converts [trytes](https://docs.iota.org/docs/getting-started/0.1/introduction/ternary) to trits.\n *\n * ## Related methods\n *\n * To convert ASCII characters to trytes, use the [`asciiToTrytes()`]{@link #module_converter.asciiToTrytes} method.\n *\n * @method trytesToTrits\n *\n * @summary Converts trytes to trits.\n *\n * @memberof module:converter\n *\n * @param {String|number} input - Trytes\n *\n * @example\n * ```js\n * let trits = Converter.trytesToTrits('IOTA');\n * ```\n *\n * @return {Int8Array} trits\n *\n * @throws {errors.INVALID_TRYTES}: Make sure that the `input` argument contains only valid trytes (A-Z or 9).\n */\nexports.trytesToTrits = trits;\n/**\n * Converts trits to trytes\n *\n * @method trytes\n *\n * @memberof module:converter\n *\n * @ignore\n *\n * @param {Int8Array} trits\n *\n * @return {String} trytes\n */\n// tslint:disable-next-line no-shadowed-variable\nfunction trytes(trits) {\n if (!(trits instanceof Int8Array) && !Array.isArray(trits)) {\n throw new Error(errors.INVALID_TRITS);\n }\n var result = '';\n for (var i = 0; i < trits.length / exports.TRYTE_WIDTH; i++) {\n var j = 0;\n for (var k = 0; k < exports.TRYTE_WIDTH; k++) {\n j += trits[i * exports.TRYTE_WIDTH + k] * Math.pow(exports.TRYTE_WIDTH, k);\n }\n if (j < 0) {\n j += exports.TRYTE_ALPHABET.length;\n }\n result += exports.TRYTE_ALPHABET.charAt(j);\n }\n return result;\n}\nexports.trytes = trytes;\n/**\n * This method converts [trits](https://docs.iota.org/docs/getting-started/0.1/introduction/ternary) to trytes.\n *\n * ## Related methods\n *\n * To convert trytes to ASCII characters, use the [`trytesToAscii()`]{@link #module_converter.trytesToAscii} method.\n *\n * @method tritsToTrytes\n *\n * @summary Converts trits to trytes.\n *\n * @memberof module:converter\n *\n * @param {String|number} input - Trits\n *\n * @example\n * ```js\n * let trytes = Converter.tritsToTrytes(trits);\n * ```\n *\n * @return {Int8Array} trytes\n *\n * @throws {errors.INVALID_TRITS}: Make sure that the `input` argument contains an array of trits.\n */\nexports.tritsToTrytes = trytes;\n/**\n * Converts trits into an integer value\n *\n * @method value\n *\n * @ignore\n *\n * @memberof module:converter\n *\n * @param {Int8Array} trits\n *\n * @return {Number}\n */\n// tslint:disable-next-line no-shadowed-variable\nfunction value(trits) {\n var returnValue = 0;\n for (var i = trits.length; i-- > 0;) {\n returnValue = returnValue * RADIX + trits[i];\n }\n return returnValue;\n}\nexports.value = value;\n/**\n * This method converts [trits](https://docs.iota.org/docs/getting-started/0.1/introduction/ternary) to a number.\n *\n * ## Related methods\n *\n * To convert trytes to trits, use the [`trytesToTrits()`]{@link #module_converter.trytesToTrits} method.\n * To convert trits to trytes, use the [`tritsToTrytes()`]{@link #module_converter.tritsToTrytes} method.\n *\n * @method tritsToValue\n *\n * @summary Converts trits to a number.\n *\n * @memberof module:converter\n *\n * @param {String|number} input - Trits\n *\n * @example\n * ```js\n * let number = Converter.tritsToValue(trits);\n * ```\n *\n * @return {Int8Array} number\n */\nexports.tritsToValue = value;\n/**\n * Converts an integer value to trits\n *\n * @method fromValue\n *\n * @ignore\n *\n * @memberof module:converter\n *\n * @param {Number} value\n *\n * @return {Int8Array} trits\n */\n// tslint:disable-next-line no-shadowed-variable\nfunction fromValue(value) {\n var destination = new Int8Array(value ? 1 + Math.floor(Math.log(2 * Math.max(1, Math.abs(value))) / Math.log(RADIX)) : 0);\n var absoluteValue = value < 0 ? -value : value;\n var i = 0;\n while (absoluteValue > 0) {\n var remainder = absoluteValue % RADIX;\n absoluteValue = Math.floor(absoluteValue / RADIX);\n if (remainder > MAX_TRIT_VALUE) {\n remainder = MIN_TRIT_VALUE;\n absoluteValue++;\n }\n destination[i] = remainder;\n i++;\n }\n if (value < 0) {\n for (var j = 0; j < destination.length; j++) {\n destination[j] = -destination[j];\n }\n }\n return destination;\n}\nexports.fromValue = fromValue;\n/**\n * This method converts a number to [trits](https://docs.iota.org/docs/getting-started/0.1/introduction/ternary).\n *\n * ## Related methods\n *\n * To convert trits to trytes, use the [`tritsToTrytes()`]{@link #module_converter.tritsToTrytes} method.\n *\n * @method valueToTrits\n *\n * @summary Converts trits to a number.\n *\n * @memberof module:converter\n *\n * @param {String|number} input - Number\n *\n * @example\n * ```js\n * let trits = Converter.valueToTrits(9);\n * ```\n *\n * @return {Int8Array} trits\n */\nexports.valueToTrits = fromValue;\n//# sourceMappingURL=trits.js.map","var BCH = require('bchaddrjs-slp')\r\n\r\nvar DEFAULT_ADDRESS_FORMAT = 'legacy'\r\nvar DEFAULT_NETWORK_TYPE = 'prod'\r\n\r\nfunction isAValidAddress (address) {\r\n try {\r\n BCH.decodeAddress(address)\r\n return true\r\n } catch (error) {\r\n return false\r\n }\r\n}\r\n\r\nfunction isValidAddressFormat (addressFormat) {\r\n var validAddressFormat = false\r\n switch (addressFormat) {\r\n case 'all':\r\n validAddressFormat = true\r\n break\r\n case BCH.Format.Legacy:\r\n validAddressFormat = true\r\n break\r\n case BCH.Format.Bitpay:\r\n validAddressFormat = true\r\n break\r\n case BCH.Format.Cashaddr:\r\n validAddressFormat = true\r\n break\r\n case BCH.Format.Slpaddr:\r\n validAddressFormat = true\r\n break\r\n }\r\n\r\n return validAddressFormat\r\n}\r\n\r\nfunction isValidNetworkType (address, networkType) {\r\n networkType = networkType.toLowerCase().trim()\r\n if (networkType === 'prod' || networkType === 'testnet') {\r\n if (networkType === 'prod') {\r\n return BCH.isMainnetAddress(address)\r\n }\r\n\r\n return BCH.isTestnetAddress(address)\r\n }\r\n\r\n //TODO: check if this is okay? Defaults to true if not prod or testnet? Probably 'both'?\r\n return true\r\n}\r\n\r\nfunction isValidBitcoinCashAddress (address, currency, networkType, addressFormats) {\r\n var isValid = false\r\n\r\n for (var i = 0; i < addressFormats.length; i++) {\r\n\r\n var addressFormat = addressFormats[i].toLowerCase().trim()\r\n if (!isValidAddressFormat(addressFormat)) {\r\n continue\r\n }\r\n\r\n try {\r\n switch (addressFormat) {\r\n case 'all':\r\n if (isAValidAddress(address)) {\r\n isValid = true\r\n }\r\n break\r\n case BCH.Format.Legacy:\r\n if (BCH.isLegacyAddress(address)) {\r\n isValid = true\r\n }\r\n break\r\n case BCH.Format.Bitpay:\r\n if (BCH.isBitpayAddress(address)) {\r\n isValid = true\r\n }\r\n break\r\n case BCH.Format.Cashaddr:\r\n if (BCH.isCashAddress(address)) {\r\n isValid = true\r\n }\r\n break\r\n case BCH.Format.Slpaddr:\r\n if (BCH.isSlpAddress(address)) {\r\n isValid = true\r\n }\r\n break\r\n }\r\n } catch (error) {\r\n continue\r\n }\r\n\r\n if (isValid) {\r\n break\r\n }\r\n }\r\n\r\n if (!isValid) {\r\n return false\r\n }\r\n\r\n return isValidNetworkType(address, networkType)\r\n}\r\n\r\nmodule.exports = {\r\n /**\r\n * Checks if a given address is valid for the given currency\r\n *\r\n * @param {String} address The target address\r\n * @param {Object} currency A currency from the ./currencies.js array\r\n * @param {String} networkType Network Type. Could be 'prod', 'both' and 'testnet'\r\n * @param {Array} addressFormats Array of formats. Options are: 'legacy', 'cashaddr', 'bitpay', 'slpaddr', 'all'\r\n * @returns {Error|Boolean}\r\n */\r\n isValidAddress: function (address, currency, networkType, addressFormats) {\r\n networkType = networkType || DEFAULT_NETWORK_TYPE\r\n if (!addressFormats.length || !Array.isArray(addressFormats)) {\r\n addressFormats = [DEFAULT_ADDRESS_FORMAT]\r\n }\r\n\r\n return isValidBitcoinCashAddress(address, currency, networkType, addressFormats)\r\n }\r\n}\r\n","var cbor = require('cbor-js')\r\nvar CRC = require('crc')\r\nvar base58 = require('./crypto/base58')\r\n\r\nfunction getDecoded (address) {\r\n try {\r\n var decoded = base58.decode(address)\r\n return cbor.decode(new Uint8Array(decoded).buffer)\r\n } catch (e) {\r\n // if decoding fails, assume invalid address\r\n return null\r\n }\r\n}\r\n\r\nmodule.exports = {\r\n isValidAddress: function (address) {\r\n var decoded = getDecoded(address)\r\n\r\n if (!decoded || (!Array.isArray(decoded) && decoded.length !== 2)) {\r\n return false\r\n }\r\n\r\n var tagged = decoded[0]\r\n var validCrc = decoded[1]\r\n if (typeof (validCrc) !== 'number') {\r\n return false\r\n }\r\n\r\n // get crc of the payload\r\n var crc = CRC.crc32(tagged)\r\n\r\n return crc === validCrc\r\n }\r\n}\r\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n var _this = this;\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","var ALLOWED_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'\r\n\r\n// https://github.com/QuantumMechanics/NEM-sdk/blob/4b0b60007c52ff4a89deeef84f9ca95b61c92fca/src/model/address.js#L122\r\nvar regexp = new RegExp('^N[' + ALLOWED_CHARS + ']{39}$')\r\n\r\nmodule.exports = {\r\n isValidAddress: function (address) {\r\n return regexp.test(address)\r\n }\r\n}\r\n","module.exports = require('events').EventEmitter;\n","function isValidLiskAddress (address, currency, networkType) {\r\n var regex = /^[0-9]{6,10}$/g // Must be numbers only for the first 1 - 20 charactors with a capital L at the end\r\n if (address.search(regex) !== -1) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n}\r\n\r\nmodule.exports = {\r\n isValidAddress: function (address, currency, networkType) {\r\n return isValidLiskAddress(address, currency, networkType)\r\n }\r\n}\r\n","\"use strict\";\nexports.__esModule = true;\nexports.HASH_TRYTE_SIZE = 81;\nexports.TAG_TRYTE_SIZE = 27;\nexports.SIGNATURE_MESSAGE_FRAGMENT_TRYTE_SIZE = 2187;\nexports.TRANSACTION_TRYTE_SIZE = 2673;\nexports.MAX_INDEX_DIFF = 1000;\nexports.NULL_HASH_TRYTES = '9'.repeat(exports.HASH_TRYTE_SIZE);\nexports.NULL_TAG_TRYTES = '9'.repeat(exports.TAG_TRYTE_SIZE);\nexports.NULL_SIGNATURE_MESSAGE_FRAGMENT_TRYTES = '9'.repeat(exports.SIGNATURE_MESSAGE_FRAGMENT_TRYTE_SIZE);\nexports.NULL_TRANSACTION_TRYTES = '9'.repeat(exports.TRANSACTION_TRYTE_SIZE);\n//# sourceMappingURL=constants.js.map","\"use strict\";\nexports.__esModule = true;\nexports.HASH_TRYTE_SIZE = 81;\nexports.TAG_TRYTE_SIZE = 27;\nexports.SIGNATURE_MESSAGE_FRAGMENT_TRYTE_SIZE = 2187;\nexports.TRANSACTION_TRYTE_SIZE = 2673;\nexports.MAX_INDEX_DIFF = 1000;\nexports.NULL_HASH_TRYTES = '9'.repeat(exports.HASH_TRYTE_SIZE);\nexports.NULL_TAG_TRYTES = '9'.repeat(exports.TAG_TRYTE_SIZE);\nexports.NULL_SIGNATURE_MESSAGE_FRAGMENT_TRYTES = '9'.repeat(exports.SIGNATURE_MESSAGE_FRAGMENT_TRYTE_SIZE);\nexports.NULL_TRANSACTION_TRYTES = '9'.repeat(exports.TRANSACTION_TRYTE_SIZE);\n//# sourceMappingURL=constants.js.map","\"use strict\";\nexports.__esModule = true;\n/** @module signing */\nvar converter_1 = require(\"@iota/converter\");\nvar kerl_1 = require(\"@iota/kerl\");\nvar pad_1 = require(\"@iota/pad\");\nvar Promise = require(\"bluebird\");\nvar errors = require(\"../../errors\");\nrequire(\"../../typed-array\");\nvar add_1 = require(\"./add\");\nexports.MIN_TRYTE_VALUE = -13;\nexports.MAX_TRYTE_VALUE = 13;\nexports.NUMBER_OF_SECURITY_LEVELS = 3;\nexports.HASH_LENGTH = 243;\nexports.FRAGMENT_LENGTH = (exports.HASH_LENGTH / exports.NUMBER_OF_SECURITY_LEVELS / converter_1.TRYTE_WIDTH) * exports.HASH_LENGTH;\nexports.NUMBER_OF_FRAGMENT_CHUNKS = exports.FRAGMENT_LENGTH / exports.HASH_LENGTH;\nexports.NORMALIZED_FRAGMENT_LENGTH = exports.HASH_LENGTH / converter_1.TRYTE_WIDTH / exports.NUMBER_OF_SECURITY_LEVELS;\n/**\n * This method derives a subseed from a seed and a private key index.\n *\n * You can use the subseed to [derive private keys and their addresses](https://docs.iota.org/docs/client-libraries/0.1/how-to-guides/js/derive-addresses-from-private-keys).\n *\n * **Note:** If the given seed is less then 243 trits, 0 trits are appended to it until it is 243 trits long.\n *\n * ## Related methods\n *\n * To convert a seed from trytes to trits, use the [`trytesToTrits()`]{@link #module_converter.trytesToTrits} method.\n *\n * To derive a private key from the subseed, use the [`key()`]{@link #module_signing.key} method.\n *\n * @method subseed\n *\n * @summary Generates a subseed.\n *\n * @memberof module:signing\n *\n * @param {Int8Array} seed - A 243-trit seed to use to derive the subseed\n * @param {number} index - The private key index to use to derive the subseed\n *\n * @example\n * ```js\n * const seed = 'MYSUPERSECRETSEED...';\n * const subseed = Sign.subseed(Converter.trytesToTrits(seed), 0);\n * ```\n *\n * @return {Int8Array} subseed - A subseed in trits\n *\n * @throws {errors.ILLEGAL_SUBSEED_INDEX}: Make sure that the `index` argument is a number greater than 0.\n */\nfunction subseed(seed, index) {\n if (!Number.isInteger(index) || index < 0) {\n throw new Error(errors.ILLEGAL_SUBSEED_INDEX);\n }\n var pad = pad_1.padTrits(Math.ceil(seed.length / exports.HASH_LENGTH) * exports.HASH_LENGTH);\n var subseedPreimage = add_1.add(pad(seed), converter_1.fromValue(index));\n var subseedTrits = new Int8Array(exports.HASH_LENGTH);\n var sponge = new kerl_1[\"default\"]();\n sponge.absorb(subseedPreimage, 0, subseedPreimage.length);\n sponge.squeeze(subseedTrits, 0, exports.HASH_LENGTH);\n return subseedTrits;\n}\nexports.subseed = subseed;\n/**\n * This method derives a private key from a subseed.\n *\n * You can use the private key to [derive an address](https://docs.iota.org/docs/client-libraries/0.1/how-to-guides/js/derive-addresses-from-private-keys) and to sign bundles that withdraw from that address.\n *\n * ## Related methods\n *\n * To generate a subseed, use the [`subseed()`]{@link #module_signing.subseed} method.\n *\n * @method key\n *\n * @summary Generates a private key.\n *\n * @memberof module:signing\n *\n * @param {Int8Array} subseedTrits - A subseed in trits\n * @param {number} numberOfFragments - The security level that you want the private key to have\n *\n * @example\n * ```js\n * const seed = 'MYSUPERSECRETSEED...';\n * const subseed = Signing.subseed(Converter.trytesToTrits(seed), 0);\n *\n * const privateKey = Signing.key(subseed, 2);\n * ```\n *\n * @return {Int8Array} privateKey - A private key in trits.\n *\n * @throws {errors.ILLEGAL_SUBSEED_LENGTH}: Make sure that the `subseedTrits` argument contains 243 trits.\n * @throws {errors.ILLEGAL_NUMBER_OF_FRAGMENTS}: Make sure that the `numberOfFragments` argument is a valid security level (between 1 and 3).\n */\nfunction key(subseedTrits, numberOfFragments) {\n if (subseedTrits.length !== kerl_1[\"default\"].HASH_LENGTH) {\n throw new Error(errors.ILLEGAL_SUBSEED_LENGTH);\n }\n if ([1, 2, 3].indexOf(numberOfFragments) === -1) {\n throw new Error(errors.ILLEGAL_NUMBER_OF_FRAGMENTS);\n }\n var keyTrits = new Int8Array(exports.FRAGMENT_LENGTH * numberOfFragments);\n var sponge = new kerl_1[\"default\"]();\n sponge.absorb(subseedTrits, 0, subseedTrits.length);\n sponge.squeeze(keyTrits, 0, keyTrits.length);\n return keyTrits;\n}\nexports.key = key;\n/**\n * This method derives key digests from a private key.\n *\n * You can use the key digests to [generate an address](https://docs.iota.org/docs/client-libraries/0.1/how-to-guides/js/derive-addresses-from-private-keys).\n *\n * ## Related methods\n *\n * To generate a private key, use the [`key()`]{@link #module_signing.key} method.\n *\n * @method digests\n *\n * @summary Generates key digests for a given private key.\n *\n * @memberof module:signing\n *\n * @param {Int8Array} key - Private key in trits\n *\n * @example\n * ```js\n * const seed = 'MYSUPERSECRETSEED...';\n * const subseed = Signing.subseed(Converter.trytesToTrits(seed), 0);\n *\n * const privateKey = Signing.key(subseed, 2);\n *\n * const digests = Signing.digests(privateKey);\n * ```\n *\n * @return {Int8Array} digests - Key digests in trits\n *\n * @throws {errors.ILLEGAL_KEY_LENGTH}: Make sure that the `key` argument contains 2,187, 4,374, or 6,561 trits.\n */\n// tslint:disable-next-line no-shadowed-variable\nfunction digests(key) {\n if (key.length === 0 || key.length % exports.FRAGMENT_LENGTH !== 0) {\n throw new Error(errors.ILLEGAL_KEY_LENGTH);\n }\n var numberOfFragments = key.length / exports.FRAGMENT_LENGTH;\n var digestsTrits = new Int8Array(numberOfFragments * exports.HASH_LENGTH);\n var sponge = new kerl_1[\"default\"]();\n for (var i = 0; i < numberOfFragments; i++) {\n var buffer = key.slice(i * exports.FRAGMENT_LENGTH, (i + 1) * exports.FRAGMENT_LENGTH);\n for (var j = 0; j < exports.NUMBER_OF_FRAGMENT_CHUNKS; j++) {\n for (var k = 0; k < exports.MAX_TRYTE_VALUE - exports.MIN_TRYTE_VALUE; k++) {\n sponge.reset();\n sponge.absorb(buffer, j * exports.HASH_LENGTH, exports.HASH_LENGTH);\n sponge.squeeze(buffer, j * exports.HASH_LENGTH, exports.HASH_LENGTH);\n }\n }\n sponge.reset();\n sponge.absorb(buffer, 0, buffer.length);\n sponge.squeeze(digestsTrits, i * exports.HASH_LENGTH, exports.HASH_LENGTH);\n }\n return digestsTrits;\n}\nexports.digests = digests;\n/**\n * This method derives a 243-trit address from the given key digests.\n *\n * ## Related methods\n *\n * To generate a private key, use the [`key()`]{@link #module_signing.key} method.\n *\n * @method address\n *\n * @summary Derives an address from the given key digests.\n *\n * @memberof module:signing\n *\n * @param {Int8Array} digests - Key digests in trits\n *\n * @example\n * ```js\n * const seed = 'MYSUPERSECRETSEED...';\n * const subseed = Signing.subseed(Converter.trytesToTrits(seed), 0);\n *\n * const privateKey = Signing.key(subseed, 2);\n *\n * const digests = Signing.digests(privateKey);\n *\n * const address = Signing.address(digests);\n * ```\n *\n * @return {Int8Array} address - Address in trits\n *\n * @throws {errors.ILLEGAL_DIGESTS_LENGTH}: Make sure that the `digests` argument contains a multiple of 243 trits.\n */\n// tslint:disable-next-line no-shadowed-variable\nfunction address(digests) {\n if (digests.length === 0 || digests.length % exports.HASH_LENGTH !== 0) {\n throw new Error(errors.ILLEGAL_DIGESTS_LENGTH);\n }\n var addressTrits = new Int8Array(exports.HASH_LENGTH);\n var sponge = new kerl_1[\"default\"]();\n sponge.absorb(digests.slice(), 0, digests.length);\n sponge.squeeze(addressTrits, 0, exports.HASH_LENGTH);\n return addressTrits;\n}\nexports.address = address;\n/**\n * @method digest\n *\n * @ignore\n *\n * @param {array} normalizedBundleFragment - Normalized bundle fragments in trits\n * @param {Int8Array} signatureFragment - Signature fragment trits\n *\n * @return {Int8Array} Digest trits\n */\nfunction digest(normalizedBundleFragment, signatureFragment, // tslint:disable-line\nnormalizedBundleFragmentOffset, signatureFragmentOffset) {\n if (normalizedBundleFragmentOffset === void 0) { normalizedBundleFragmentOffset = 0; }\n if (signatureFragmentOffset === void 0) { signatureFragmentOffset = 0; }\n if (normalizedBundleFragment.length - normalizedBundleFragmentOffset < exports.NORMALIZED_FRAGMENT_LENGTH) {\n throw new Error(errors.ILLEGAL_NORMALIZED_FRAGMENT_LENGTH);\n }\n if (signatureFragment.length - signatureFragmentOffset < exports.FRAGMENT_LENGTH) {\n throw new Error(errors.ILLEGAL_SIGNATURE_FRAGMENT_LENGTH);\n }\n var buffer = signatureFragment.slice(signatureFragmentOffset, signatureFragmentOffset + exports.FRAGMENT_LENGTH);\n var digestTrits = new Int8Array(exports.HASH_LENGTH);\n var sponge = new kerl_1[\"default\"]();\n for (var j = 0; j < exports.NUMBER_OF_FRAGMENT_CHUNKS; j++) {\n for (var k = normalizedBundleFragment[normalizedBundleFragmentOffset + j] - exports.MIN_TRYTE_VALUE; k-- > 0;) {\n sponge.reset();\n sponge.absorb(buffer, j * exports.HASH_LENGTH, exports.HASH_LENGTH);\n sponge.squeeze(buffer, j * exports.HASH_LENGTH, exports.HASH_LENGTH);\n }\n }\n sponge.reset();\n sponge.absorb(buffer, 0, buffer.length);\n sponge.squeeze(digestTrits, 0, digestTrits.length);\n return digestTrits;\n}\nexports.digest = digest;\n/**\n * @method signatureFragment\n * @ignore\n * @param {array} normalizeBundleFragment - normalized bundle fragment\n * @param {keyFragment} keyFragment - key fragment trits\n *\n * @return {Int8Array} Signature Fragment trits\n */\nfunction signatureFragment(normalizedBundleFragment, keyFragment, normalizedBundleFragmentOffset, keyFragmentOffset) {\n if (normalizedBundleFragmentOffset === void 0) { normalizedBundleFragmentOffset = 0; }\n if (keyFragmentOffset === void 0) { keyFragmentOffset = 0; }\n if (normalizedBundleFragment.length - normalizedBundleFragmentOffset < exports.NORMALIZED_FRAGMENT_LENGTH) {\n throw new Error(errors.ILLEGAL_NORMALIZED_FRAGMENT_LENGTH);\n }\n if (keyFragment.length - keyFragmentOffset < exports.FRAGMENT_LENGTH) {\n throw new Error(errors.ILLEGAL_KEY_FRAGMENT_LENGTH);\n }\n var signatureFragmentTrits = keyFragment.slice(keyFragmentOffset, keyFragmentOffset + exports.FRAGMENT_LENGTH);\n var sponge = new kerl_1[\"default\"]();\n for (var j = 0; j < exports.NUMBER_OF_FRAGMENT_CHUNKS; j++) {\n for (var k = 0; k < exports.MAX_TRYTE_VALUE - normalizedBundleFragment[normalizedBundleFragmentOffset + j]; k++) {\n sponge.reset();\n sponge.absorb(signatureFragmentTrits, j * exports.HASH_LENGTH, exports.HASH_LENGTH);\n sponge.squeeze(signatureFragmentTrits, j * exports.HASH_LENGTH, exports.HASH_LENGTH);\n }\n }\n return signatureFragmentTrits;\n}\nexports.signatureFragment = signatureFragment;\nfunction signatureFragments(seed, index, numberOfFragments, bundle, nativeGenerateSignatureFunction) {\n if (nativeGenerateSignatureFunction && typeof nativeGenerateSignatureFunction === 'function') {\n return nativeGenerateSignatureFunction(Array.prototype.slice.call(seed), index, numberOfFragments, Array.prototype.slice.call(bundle)).then(function (nativeSignature) { return new Int8Array(nativeSignature); });\n }\n var normalizedBundleHash = exports.normalizedBundle(bundle);\n var keyTrits = key(subseed(seed, index), numberOfFragments);\n var signature = new Int8Array(numberOfFragments * exports.FRAGMENT_LENGTH);\n for (var i = 0; i < numberOfFragments; i++) {\n signature.set(signatureFragment(normalizedBundleHash.slice(i * exports.NORMALIZED_FRAGMENT_LENGTH, (i + 1) * exports.NORMALIZED_FRAGMENT_LENGTH), keyTrits.slice(i * exports.FRAGMENT_LENGTH, (i + 1) * exports.FRAGMENT_LENGTH)), i * exports.FRAGMENT_LENGTH);\n }\n return Promise.resolve(signature);\n}\nexports.signatureFragments = signatureFragments;\n/**\n * This method validates a signature by doing the following:\n *\n * - Normalizing the bundle hash\n * - Deriving the key digests of the address, using the normalized bundle hash and the signature\n * -.Deriving an address from the key digests\n * - Comparing the derived address to the `expectedAddress` argument to find out if they match\n *\n * If the addresses match, the signature is valid.\n *\n * For more information about signatures see the [documentation portal](https://docs.iota.org/docs/getting-started/0.1/clients/signatures).\n *\n * ## Related methods\n *\n * To convert trytes such as bundle hashes and addresses to trits, use the [`trytesToTrits()`]{@link #module_converter.trytesToTrits} method.\n *\n * @method validateSignatures\n *\n * @summary Validates the given signature, using the given bundle and address.\n *\n * @memberof module:signing\n *\n * @param {Int8Array} expectedAddress - Input address in trits\n * @param {Array} signatureFragments - Signature fragments in trits\n * @param {Int8Array} bundle - Bundle hash in trits\n *\n * @example\n * ```js\n * let valid = Signing.validateSignatures(expectedAddress, signatureFragments, bundle);\n * ```\n *\n * @return {boolean} valid - Whether the signatures are valid.\n *\n * @throws {errors.ILLEGAL_BUNDLE_HASH_LENGTH}: Make sure that the `bundle` argument contains a 243-trit bundle hash.\n */\nfunction validateSignatures(expectedAddress, signatureFragments, // tslint:disable-line\nbundle) {\n if (bundle.length !== exports.HASH_LENGTH) {\n throw new Error(errors.ILLEGAL_BUNDLE_HASH_LENGTH);\n }\n var normalizedBundleFragments = [];\n var normalizedBundleHash = exports.normalizedBundle(bundle);\n // Split hash into 3 fragments\n for (var i = 0; i < exports.NUMBER_OF_SECURITY_LEVELS; i++) {\n normalizedBundleFragments[i] = normalizedBundleHash.slice(i * exports.NUMBER_OF_FRAGMENT_CHUNKS, (i + 1) * exports.NUMBER_OF_FRAGMENT_CHUNKS);\n }\n // Get digests\n var digestsTrits = new Int8Array(signatureFragments.length * exports.HASH_LENGTH);\n for (var i = 0; i < signatureFragments.length; i++) {\n var digestBuffer = digest(normalizedBundleFragments[i % exports.NUMBER_OF_SECURITY_LEVELS], signatureFragments[i]);\n for (var j = 0; j < exports.HASH_LENGTH; j++) {\n digestsTrits[i * exports.HASH_LENGTH + j] = digestBuffer[j];\n }\n }\n var actualAddress = address(digestsTrits);\n return expectedAddress.every(function (trit, i) { return trit === actualAddress[i]; });\n}\nexports.validateSignatures = validateSignatures;\n/**\n * This method normalizes the given bundle hash to make sure that only around half of the private key is revealed when the bundle hash is signed.\n *\n * For more information about signatures see the [documentation portal](https://docs.iota.org/docs/getting-started/0.1/clients/signatures).\n *\n * To find out more about why the bundle hash is normalized, see [this answer on StackExchange](https://iota.stackexchange.com/questions/1588/why-is-the-bundle-hash-normalized).\n *\n * ## Related methods\n *\n * To convert a bundle hash from trytes to trits, use the [`trytesToTrits()`]{@link #module_converter.trytesToTrits} method.\n *\n * @method normalizedBundle\n *\n * @summary Normalizes the bundle hash.\n *\n * @memberof module:signing\n *\n * @param {Int8Array} bundle - Bundle hash in trits\n *\n * @example\n * ```js\n * let normalizedBundleHash = Signing.normalizedBundle(bundle);\n * ```\n *\n * @return {Int8Array} Normalized bundle hash in trits\n *\n * @throws {errors.ILLEGAL_BUNDLE_HASH_LENGTH}: Make sure that the `bundle` argument contains a 243-trit bundle hash.\n */\nexports.normalizedBundle = function (bundle) {\n if (bundle.length !== exports.HASH_LENGTH) {\n throw new Error(errors.ILLEGAL_BUNDLE_HASH_LENGTH);\n }\n var output = new Int8Array(exports.HASH_LENGTH / converter_1.TRYTE_WIDTH);\n for (var i = 0; i < exports.NUMBER_OF_SECURITY_LEVELS; i++) {\n var sum = 0;\n for (var j = i * exports.NORMALIZED_FRAGMENT_LENGTH; j < (i + 1) * exports.NORMALIZED_FRAGMENT_LENGTH; j++) {\n sum += output[j] =\n bundle[j * converter_1.TRYTE_WIDTH] + bundle[j * converter_1.TRYTE_WIDTH + 1] * 3 + bundle[j * converter_1.TRYTE_WIDTH + 2] * 9;\n }\n if (sum >= 0) {\n while (sum-- > 0) {\n for (var j = i * exports.NORMALIZED_FRAGMENT_LENGTH; j < (i + 1) * exports.NORMALIZED_FRAGMENT_LENGTH; j++) {\n if (output[j] > exports.MIN_TRYTE_VALUE) {\n output[j]--;\n break;\n }\n }\n }\n }\n else {\n while (sum++ < 0) {\n for (var j = i * exports.NORMALIZED_FRAGMENT_LENGTH; j < (i + 1) * exports.NORMALIZED_FRAGMENT_LENGTH; j++) {\n if (output[j] < exports.MAX_TRYTE_VALUE) {\n output[j]++;\n break;\n }\n }\n }\n }\n }\n return output;\n};\n//# sourceMappingURL=signing.js.map","var cryptoUtils = require('./crypto/utils')\r\nvar cnBase58 = require('./crypto/cnBase58')\r\n\r\nvar DEFAULT_NETWORK_TYPE = 'prod'\r\nvar addressRegTest = new RegExp('^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{95}$')\r\nvar integratedAddressRegTest = new RegExp('^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{106}$')\r\n\r\nfunction validateNetwork (decoded, currency, networkType, addressType) {\r\n var network = currency.addressTypes\r\n if (addressType === 'integrated') {\r\n network = currency.iAddressTypes\r\n }\r\n\r\n let networkByte = parseInt(decoded.substr(0, 2), 16).toString()\r\n\r\n switch (networkType) {\r\n case 'prod':\r\n return network.prod.indexOf(networkByte) !== -1\r\n case 'testnet':\r\n return network.testnet.indexOf(networkByte) !== -1\r\n case 'both':\r\n return network.prod.indexOf(networkByte) !== -1 || network.testnet.indexOf(networkByte) !== -1\r\n default:\r\n return false\r\n }\r\n}\r\n\r\nfunction hextobin (hex) {\r\n if (hex.length % 2 !== 0) return null\r\n var res = new Uint8Array(hex.length / 2)\r\n for (var i = 0; i < hex.length / 2; ++i) {\r\n res[i] = parseInt(hex.slice(i * 2, i * 2 + 2), 16)\r\n }\r\n return res\r\n}\r\n\r\nmodule.exports = {\r\n isValidAddress: function (address, currency, networkType) {\r\n networkType = networkType || DEFAULT_NETWORK_TYPE\r\n var addressType = 'standard'\r\n if (!addressRegTest.test(address)) {\r\n if (integratedAddressRegTest.test(address)) {\r\n addressType = 'integrated'\r\n } else {\r\n return false\r\n }\r\n }\r\n\r\n var decodedAddrStr = cnBase58.decode(address)\r\n if (!decodedAddrStr) { return false }\r\n\r\n if (!validateNetwork(decodedAddrStr, currency, networkType, addressType)) { return false }\r\n\r\n var addrChecksum = decodedAddrStr.slice(-8)\r\n var hashChecksum = cryptoUtils.keccak256Checksum(hextobin(decodedAddrStr.slice(0, -8)))\r\n\r\n return addrChecksum === hashChecksum\r\n }\r\n}\r\n","\"use strict\";\nif (!Int8Array.prototype.slice) {\n Object.defineProperty(Int8Array.prototype, 'slice', {\n value: Array.prototype.slice\n });\n}\nif (!Int8Array.prototype.subarray) {\n Object.defineProperty(Uint8Array.prototype, 'subarray', {\n value: Array.prototype.slice\n });\n}\nif (!Int8Array.prototype.map) {\n Object.defineProperty(Int8Array.prototype, 'map', {\n value: Array.prototype.map\n });\n}\nif (!Int8Array.prototype.every) {\n Object.defineProperty(Int8Array.prototype, 'every', {\n value: Array.prototype.every\n });\n}\nif (!Int8Array.prototype.some) {\n Object.defineProperty(Uint8Array.prototype, 'some', {\n value: Array.prototype.some\n });\n}\nif (!Int8Array.prototype.indexOf) {\n Object.defineProperty(Int8Array.prototype, 'indexOf', {\n value: Array.prototype.indexOf\n });\n}\n// Source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/fill#Polyfill\n// Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/\nif (!Int8Array.prototype.fill) {\n Object.defineProperty(Int8Array.prototype, 'fill', {\n value: function (input) {\n // Steps 1-2.\n if (this == null) {\n throw new TypeError('this is null or not defined');\n }\n var O = Object(this);\n // Steps 3-5.\n var len = O.length >>> 0;\n // Steps 6-7.\n var start = arguments[1];\n var relativeStart = start >> 0;\n // Step 8.\n var k = relativeStart < 0 ? Math.max(len + relativeStart, 0) : Math.min(relativeStart, len);\n // Steps 9-10.\n var end = arguments[2];\n var relativeEnd = end === undefined ? len : end >> 0;\n // Step 11.\n var last = relativeEnd < 0 ? Math.max(len + relativeEnd, 0) : Math.min(relativeEnd, len);\n // Step 12.\n while (k < last) {\n O[k] = input;\n k++;\n }\n // Step 13.\n return O;\n }\n });\n}\nif (!Uint32Array.prototype.slice) {\n Object.defineProperty(Uint8Array.prototype, 'slice', {\n value: Array.prototype.slice\n });\n}\nif (!Uint32Array.prototype.reverse) {\n Object.defineProperty(Uint8Array.prototype, 'reverse', {\n value: Array.prototype.reverse\n });\n}\n//# sourceMappingURL=typed-array.js.map","\"use strict\";\nexports.__esModule = true;\nvar transaction_1 = require(\"./transaction\");\nexports.address = transaction_1.address;\nexports.attachmentTimestamp = transaction_1.attachmentTimestamp;\nexports.attachmentTimestampLowerBound = transaction_1.attachmentTimestampLowerBound;\nexports.attachmentTimestampUpperBound = transaction_1.attachmentTimestampUpperBound;\nexports.branchTransaction = transaction_1.branchTransaction;\nexports.bundle = transaction_1.bundle;\nexports.currentIndex = transaction_1.currentIndex;\nexports.lastIndex = transaction_1.lastIndex;\nexports.obsoleteTag = transaction_1.obsoleteTag;\nexports.isAttached = transaction_1.isAttached;\nexports.isHead = transaction_1.isHead;\nexports.isMultipleOfTransactionLength = transaction_1.isMultipleOfTransactionLength;\nexports.issuanceTimestamp = transaction_1.issuanceTimestamp;\nexports.isTail = transaction_1.isTail;\nexports.isTransaction = transaction_1.isTransaction;\nexports.signatureOrMessage = transaction_1.signatureOrMessage;\nexports.tag = transaction_1.tag;\nexports.transactionEssence = transaction_1.transactionEssence;\nexports.transactionHash = transaction_1.transactionHash;\nexports.transactionNonce = transaction_1.transactionNonce;\nexports.trunkTransaction = transaction_1.trunkTransaction;\nexports.value = transaction_1.value;\nexports.SIGNATURE_OR_MESSAGE_OFFSET = transaction_1.SIGNATURE_OR_MESSAGE_OFFSET;\nexports.SIGNATURE_OR_MESSAGE_LENGTH = transaction_1.SIGNATURE_OR_MESSAGE_LENGTH;\nexports.ADDRESS_OFFSET = transaction_1.ADDRESS_OFFSET;\nexports.ADDRESS_LENGTH = transaction_1.ADDRESS_LENGTH;\nexports.VALUE_OFFSET = transaction_1.VALUE_OFFSET;\nexports.VALUE_LENGTH = transaction_1.VALUE_LENGTH;\nexports.OBSOLETE_TAG_OFFSET = transaction_1.OBSOLETE_TAG_OFFSET;\nexports.OBSOLETE_TAG_LENGTH = transaction_1.OBSOLETE_TAG_LENGTH;\nexports.ISSUANCE_TIMESTAMP_OFFSET = transaction_1.ISSUANCE_TIMESTAMP_OFFSET;\nexports.ISSUANCE_TIMESTAMP_LENGTH = transaction_1.ISSUANCE_TIMESTAMP_LENGTH;\nexports.CURRENT_INDEX_OFFSET = transaction_1.CURRENT_INDEX_OFFSET;\nexports.CURRENT_INDEX_LENGTH = transaction_1.CURRENT_INDEX_LENGTH;\nexports.LAST_INDEX_OFFSET = transaction_1.LAST_INDEX_OFFSET;\nexports.LAST_INDEX_LENGTH = transaction_1.LAST_INDEX_LENGTH;\nexports.BUNDLE_OFFSET = transaction_1.BUNDLE_OFFSET;\nexports.BUNDLE_LENGTH = transaction_1.BUNDLE_LENGTH;\nexports.TRUNK_TRANSACTION_OFFSET = transaction_1.TRUNK_TRANSACTION_OFFSET;\nexports.TRUNK_TRANSACTION_LENGTH = transaction_1.TRUNK_TRANSACTION_LENGTH;\nexports.BRANCH_TRANSACTION_OFFSET = transaction_1.BRANCH_TRANSACTION_OFFSET;\nexports.BRANCH_TRANSACTION_LENGTH = transaction_1.BRANCH_TRANSACTION_LENGTH;\nexports.TAG_OFFSET = transaction_1.TAG_OFFSET;\nexports.TAG_LENGTH = transaction_1.TAG_LENGTH;\nexports.ATTACHMENT_TIMESTAMP_OFFSET = transaction_1.ATTACHMENT_TIMESTAMP_OFFSET;\nexports.ATTACHMENT_TIMESTAMP_LENGTH = transaction_1.ATTACHMENT_TIMESTAMP_LENGTH;\nexports.ATTACHMENT_TIMESTAMP_LOWER_BOUND_OFFSET = transaction_1.ATTACHMENT_TIMESTAMP_LOWER_BOUND_OFFSET;\nexports.ATTACHMENT_TIMESTAMP_LOWER_BOUND_LENGTH = transaction_1.ATTACHMENT_TIMESTAMP_LOWER_BOUND_LENGTH;\nexports.ATTACHMENT_TIMESTAMP_UPPER_BOUND_OFFSET = transaction_1.ATTACHMENT_TIMESTAMP_UPPER_BOUND_OFFSET;\nexports.ATTACHMENT_TIMESTAMP_UPPER_BOUND_LENGTH = transaction_1.ATTACHMENT_TIMESTAMP_UPPER_BOUND_LENGTH;\nexports.TRANSACTION_NONCE_OFFSET = transaction_1.TRANSACTION_NONCE_OFFSET;\nexports.TRANSACTION_NONCE_LENGTH = transaction_1.TRANSACTION_NONCE_LENGTH;\nexports.TRANSACTION_ESSENCE_OFFSET = transaction_1.TRANSACTION_ESSENCE_OFFSET;\nexports.TRANSACTION_ESSENCE_LENGTH = transaction_1.TRANSACTION_ESSENCE_LENGTH;\nexports.TRANSACTION_LENGTH = transaction_1.TRANSACTION_LENGTH;\nexports.TRANSACTION_HASH_LENGTH = transaction_1.TRANSACTION_HASH_LENGTH;\n//# sourceMappingURL=index.js.map","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","\"use strict\";\nexports.__esModule = true;\n/* tslint:disable variable-name no-conditional-assignment */\nvar CryptoJS = require(\"crypto-js\");\nrequire(\"../../typed-array\");\nvar errors = require(\"./errors\");\nvar word_converter_1 = require(\"./word-converter\");\nvar BIT_HASH_LENGTH = 384;\nvar HASH_LENGTH = 243;\n/**\n * @class kerl\n * @ignore\n */\nvar Kerl = /** @class */ (function () {\n /**\n * @constructor\n * @ignore\n */\n function Kerl() {\n this.k = CryptoJS.algo.SHA3.create();\n this.k.init({\n outputLength: BIT_HASH_LENGTH\n });\n }\n Kerl.prototype.initialize = function (state) {\n /* empty */\n };\n /**\n * Resets the internal state\n *\n * @method reset\n *\n * @ignore\n */\n Kerl.prototype.reset = function () {\n this.k.reset();\n };\n /**\n * Absorbs trits given an offset and length\n *\n * @method absorb\n *\n * @ignore\n *\n * @param {Int8Array} trits\n * @param {number} offset\n * @param {number} length\n **/\n Kerl.prototype.absorb = function (trits, offset, length) {\n if (length && length % 243 !== 0) {\n throw new Error(errors.ILLEGAL_TRITS_LENGTH);\n }\n do {\n var limit = length < Kerl.HASH_LENGTH ? length : Kerl.HASH_LENGTH;\n var trit_state = trits.slice(offset, offset + limit);\n offset += limit;\n // convert trit state to words\n var wordsToAbsorb = word_converter_1.tritsToWords(trit_state);\n // absorb the trit stat as wordarray\n this.k.update(CryptoJS.lib.WordArray.create(wordsToAbsorb));\n } while ((length -= Kerl.HASH_LENGTH) > 0);\n };\n /**\n * Squeezes trits given an offset and length\n *\n * @method squeeze\n *\n * @ignore\n *\n * @param {Int8Array} trits\n * @param {number} offset\n * @param {number} length\n **/\n Kerl.prototype.squeeze = function (trits, offset, length) {\n if (length && length % 243 !== 0) {\n throw new Error(errors.ILLEGAL_TRITS_LENGTH);\n }\n do {\n // get the hash digest\n var kCopy = this.k.clone();\n var final = kCopy.finalize();\n // Convert words to trits and then map it into the internal state\n var trit_state = word_converter_1.wordsToTrits(final.words);\n var i = 0;\n var limit = length < Kerl.HASH_LENGTH ? length : Kerl.HASH_LENGTH;\n while (i < limit) {\n trits[offset++] = trit_state[i++];\n }\n this.reset();\n for (i = 0; i < final.words.length; i++) {\n final.words[i] = final.words[i] ^ 0xffffffff;\n }\n this.k.update(final);\n } while ((length -= Kerl.HASH_LENGTH) > 0);\n };\n Kerl.BIT_HASH_LENGTH = BIT_HASH_LENGTH;\n Kerl.HASH_LENGTH = HASH_LENGTH;\n return Kerl;\n}());\nexports[\"default\"] = Kerl;\n//# sourceMappingURL=kerl.js.map","var base58 = require('./crypto/base58')\r\nvar segwit = require('./crypto/segwit_addr')\r\nvar cryptoUtils = require('./crypto/utils')\r\n\r\nvar DEFAULT_NETWORK_TYPE = 'prod'\r\n\r\nfunction getDecoded (address) {\r\n try {\r\n return base58.decode(address)\r\n } catch (e) {\r\n // if decoding fails, assume invalid address\r\n return null\r\n }\r\n}\r\n\r\nfunction getChecksum (hashFunction, payload) {\r\n // Each currency may implement different hashing algorithm\r\n switch (hashFunction) {\r\n // blake then keccak hash chain\r\n case 'blake256keccak256':\r\n var blake = cryptoUtils.blake2b256(payload)\r\n return cryptoUtils.keccak256Checksum(Buffer.from(blake, 'hex'))\r\n case 'blake256':\r\n return cryptoUtils.blake256Checksum(payload)\r\n case 'keccak256':\r\n return cryptoUtils.keccak256Checksum(payload)\r\n case 'sha256':\r\n default:\r\n return cryptoUtils.sha256Checksum(payload)\r\n }\r\n}\r\n\r\nfunction getAddressType (address, currency) {\r\n currency = currency || {}\r\n // should be 25 bytes per btc address spec and 26 decred\r\n var expectedLength = currency.expectedLength || 25\r\n var hashFunction = currency.hashFunction || 'sha256'\r\n var decoded = getDecoded(address)\r\n\r\n if (decoded) {\r\n var length = decoded.length\r\n\r\n if (length !== expectedLength) {\r\n return null\r\n }\r\n\r\n if (currency.regex) {\r\n if (!currency.regex.test(address)) {\r\n return false\r\n }\r\n }\r\n\r\n var checksum = cryptoUtils.toHex(decoded.slice(length - 4, length))\r\n\r\n var body = cryptoUtils.toHex(decoded.slice(0, length - 4))\r\n\r\n var goodChecksum = getChecksum(hashFunction, body)\r\n\r\n return checksum === goodChecksum ? cryptoUtils.toHex(decoded.slice(0, expectedLength - 24)) : null\r\n }\r\n\r\n return null\r\n}\r\n\r\nfunction isValidP2PKHandP2SHAddress (address, currency, networkType) {\r\n networkType = networkType || DEFAULT_NETWORK_TYPE\r\n\r\n var correctAddressTypes\r\n var addressType = getAddressType(address, currency)\r\n\r\n if (addressType) {\r\n if (networkType === 'prod' || networkType === 'testnet') {\r\n correctAddressTypes = currency.addressTypes[networkType]\r\n } else {\r\n correctAddressTypes = currency.addressTypes.prod.concat(currency.addressTypes.testnet)\r\n }\r\n\r\n return correctAddressTypes.indexOf(addressType) >= 0\r\n }\r\n\r\n return false\r\n}\r\n\r\nmodule.exports = {\r\n isValidAddress: function (address, currency, networkType) {\r\n return isValidP2PKHandP2SHAddress(address, currency, networkType) || segwit.isValidAddress(address)\r\n }\r\n}\r\n","module.exports = require('events').EventEmitter;\n","'use strict'\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n// @ts-ignore\nvar _Buffer = require('safe-buffer').Buffer\nfunction base (ALPHABET) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n var BASE_MAP = new Uint8Array(256)\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i)\n var xc = x.charCodeAt(0)\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i\n }\n var BASE = ALPHABET.length\n var LEADER = ALPHABET.charAt(0)\n var FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n function encode (source) {\n if (Array.isArray(source) || source instanceof Uint8Array) { source = _Buffer.from(source) }\n if (!_Buffer.isBuffer(source)) { throw new TypeError('Expected Buffer') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n var zeroes = 0\n var length = 0\n var pbegin = 0\n var pend = source.length\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++\n zeroes++\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n var b58 = new Uint8Array(size)\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin]\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0\n b58[it1] = (carry % BASE) >>> 0\n carry = (carry / BASE) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n pbegin++\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length\n while (it2 !== size && b58[it2] === 0) {\n it2++\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes)\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return _Buffer.alloc(0) }\n var psz = 0\n // Skip and count leading '1's.\n var zeroes = 0\n var length = 0\n while (source[psz] === LEADER) {\n zeroes++\n psz++\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size)\n // Process the characters.\n while (source[psz]) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)]\n // Invalid character\n if (carry === 255) { return }\n var i = 0\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0\n b256[it3] = (carry % 256) >>> 0\n carry = (carry / 256) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n psz++\n }\n // Skip leading zeroes in b256.\n var it4 = size - length\n while (it4 !== size && b256[it4] === 0) {\n it4++\n }\n var vch = _Buffer.allocUnsafe(zeroes + (size - it4))\n vch.fill(0x00, 0, zeroes)\n var j = zeroes\n while (it4 !== size) {\n vch[j++] = b256[it4++]\n }\n return vch\n }\n function decode (string) {\n var buffer = decodeUnsafe(string)\n if (buffer) { return buffer }\n throw new Error('Non-base' + BASE + ' character')\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nmodule.exports = base\n","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","/**\n * @license\n * https://github.com/bitcoincashjs/cashaddr\n * Copyright (c) 2017-2018 Emilio Almansi\n * Distributed under the MIT software license, see the accompanying\n * file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n */\n\n'use strict';\n\nvar base32 = require('./base32');\nvar bigInt = require('big-integer');\nvar convertBits = require('./convertBits');\nvar validation = require('./validation');\nvar validate = validation.validate;\n\n/**\n * Encoding and decoding of the new Cash Address format for Bitcoin Cash.
\n * Compliant with the original cashaddr specification:\n * {@link https://github.com/Bitcoin-UAHF/spec/blob/master/cashaddr.md}\n * @module cashaddr\n */\n\n/**\n * Encodes a hash from a given type into a Bitcoin Cash address with the given prefix.\n * \n * @static\n * @param {string} prefix Network prefix. E.g.: 'bitcoincash'.\n * @param {string} type Type of address to generate. Either 'P2PKH' or 'P2SH'.\n * @param {Uint8Array} hash Hash to encode represented as an array of 8-bit integers.\n * @returns {string}\n * @throws {ValidationError}\n */\nfunction encode(prefix, type, hash) {\n validate(typeof prefix === 'string' && isValidPrefix(prefix), 'Invalid prefix: ' + prefix + '.');\n validate(typeof type === 'string', 'Invalid type: ' + type + '.');\n validate(hash instanceof Uint8Array, 'Invalid hash: ' + hash + '.');\n var prefixData = concat(prefixToUint5Array(prefix), new Uint8Array(1));\n var versionByte = getTypeBits(type) + getHashSizeBits(hash);\n var payloadData = toUint5Array(concat(Uint8Array.of(versionByte), hash));\n var checksumData = concat(concat(prefixData, payloadData), new Uint8Array(8));\n var payload = concat(payloadData, checksumToUint5Array(polymod(checksumData)));\n return prefix + ':' + base32.encode(payload);\n}\n\n/**\n * Decodes the given address into its constituting prefix, type and hash. See [#encode()]{@link encode}.\n * \n * @static\n * @param {string} address Address to decode. E.g.: 'bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a'.\n * @returns {object}\n * @throws {ValidationError}\n */\nfunction decode(address) {\n validate(typeof address === 'string' && hasSingleCase(address), 'Invalid address: ' + address + '.');\n var pieces = address.toLowerCase().split(':');\n validate(pieces.length === 2, 'Missing prefix: ' + address + '.');\n var prefix = pieces[0];\n var payload = base32.decode(pieces[1]);\n validate(validChecksum(prefix, payload), 'Invalid checksum: ' + address + '.');\n var payloadData = fromUint5Array(payload.slice(0, -8));\n var versionByte = payloadData[0];\n var hash = payloadData.slice(1);\n validate(getHashSize(versionByte) === hash.length * 8, 'Invalid hash size: ' + address + '.');\n var type = getType(versionByte);\n return {\n prefix: prefix,\n type: type,\n hash: hash,\n };\n}\n\n/**\n * Error thrown when encoding or decoding fail due to invalid input.\n *\n * @constructor ValidationError\n * @param {string} message Error description.\n */\nvar ValidationError = validation.ValidationError;\n\n/**\n * Valid address prefixes.\n *\n * @private\n */\nvar VALID_PREFIXES = ['bitcoincash', 'bchtest', 'bchreg', 'simpleledger', 'slptest', 'slpreg'];\n\n/**\n * Checks whether a string is a valid prefix; ie., it has a single letter case\n * and is one of 'bitcoincash', 'bchtest', or 'bchreg'.\n *\n * @private\n * @param {string} prefix \n * @returns {boolean}\n */\nfunction isValidPrefix(prefix) {\n return hasSingleCase(prefix) && VALID_PREFIXES.indexOf(prefix.toLowerCase()) !== -1;\n}\n\n/**\n * Derives an array from the given prefix to be used in the computation\n * of the address' checksum.\n *\n * @private\n * @param {string} prefix Network prefix. E.g.: 'bitcoincash'. \n * @returns {Uint8Array}\n */\nfunction prefixToUint5Array(prefix) {\n var result = new Uint8Array(prefix.length);\n for (var i = 0; i < prefix.length; ++i) {\n result[i] = prefix[i].charCodeAt(0) & 31;\n }\n return result;\n}\n\n/**\n * Returns an array representation of the given checksum to be encoded\n * within the address' payload.\n *\n * @private\n * @param {BigInteger} checksum Computed checksum.\n * @returns {Uint8Array}\n */\nfunction checksumToUint5Array(checksum) {\n var result = new Uint8Array(8);\n for (var i = 0; i < 8; ++i) {\n result[7 - i] = checksum.and(31).toJSNumber();\n checksum = checksum.shiftRight(5);\n }\n return result;\n}\n\n/**\n * Returns the bit representation of the given type within the version\n * byte.\n *\n * @private\n * @param {string} type Address type. Either 'P2PKH' or 'P2SH'.\n * @returns {number}\n * @throws {ValidationError}\n */\nfunction getTypeBits(type) {\n switch (type) {\n case 'P2PKH':\n return 0;\n case 'P2SH':\n return 8;\n default:\n throw new ValidationError('Invalid type: ' + type + '.');\n }\n}\n\n/**\n * Retrieves the address type from its bit representation within the\n * version byte.\n *\n * @private\n * @param {number} versionByte\n * @returns {string}\n * @throws {ValidationError}\n */\nfunction getType(versionByte) {\n switch (versionByte & 120) {\n case 0:\n return 'P2PKH';\n case 8:\n return 'P2SH';\n default:\n throw new ValidationError('Invalid address type in version byte: ' + versionByte + '.');\n }\n}\n\n/**\n * Returns the bit representation of the length in bits of the given\n * hash within the version byte.\n *\n * @private\n * @param {Uint8Array} hash Hash to encode represented as an array of 8-bit integers.\n * @returns {number}\n * @throws {ValidationError}\n */\nfunction getHashSizeBits(hash) {\n switch (hash.length * 8) {\n case 160:\n return 0;\n case 192:\n return 1;\n case 224:\n return 2;\n case 256:\n return 3;\n case 320:\n return 4;\n case 384:\n return 5;\n case 448:\n return 6;\n case 512:\n return 7;\n default:\n throw new ValidationError('Invalid hash size: ' + hash.length + '.');\n }\n}\n\n/**\n * Retrieves the the length in bits of the encoded hash from its bit\n * representation within the version byte.\n *\n * @private\n * @param {number} versionByte\n * @returns {number}\n */\nfunction getHashSize(versionByte) {\n switch (versionByte & 7) {\n case 0:\n return 160;\n case 1:\n return 192;\n case 2:\n return 224;\n case 3:\n return 256;\n case 4:\n return 320;\n case 5:\n return 384;\n case 6:\n return 448;\n case 7:\n return 512;\n }\n}\n\n/**\n * Converts an array of 8-bit integers into an array of 5-bit integers,\n * right-padding with zeroes if necessary.\n *\n * @private\n * @param {Uint8Array} data\n * @returns {Uint8Array}\n */\nfunction toUint5Array(data) {\n return convertBits(data, 8, 5);\n}\n\n/**\n * Converts an array of 5-bit integers back into an array of 8-bit integers,\n * removing extra zeroes left from padding if necessary.\n * Throws a {@link ValidationError} if input is not a zero-padded array of 8-bit integers.\n *\n * @private\n * @param {Uint8Array} data\n * @returns {Uint8Array}\n * @throws {ValidationError}\n */\nfunction fromUint5Array(data) {\n return convertBits(data, 5, 8, true);\n}\n\n/**\n * Returns the concatenation a and b.\n *\n * @private\n * @param {Uint8Array} a \n * @param {Uint8Array} b \n * @returns {Uint8Array}\n * @throws {ValidationError}\n */\nfunction concat(a, b) {\n var ab = new Uint8Array(a.length + b.length);\n ab.set(a);\n ab.set(b, a.length);\n return ab;\n}\n\n/**\n * Computes a checksum from the given input data as specified for the CashAddr\n * format: https://github.com/Bitcoin-UAHF/spec/blob/master/cashaddr.md.\n *\n * @private\n * @param {Uint8Array} data Array of 5-bit integers over which the checksum is to be computed.\n * @returns {BigInteger}\n */\nfunction polymod(data) {\n var GENERATOR = [0x98f2bc8e61, 0x79b76d99e2, 0xf33e5fb3c4, 0xae2eabe2a8, 0x1e4f43e470];\n var checksum = bigInt(1);\n for (var i = 0; i < data.length; ++i) {\n var value = data[i];\n var topBits = checksum.shiftRight(35);\n checksum = checksum.and(0x07ffffffff).shiftLeft(5).xor(value);\n for (var j = 0; j < GENERATOR.length; ++j) {\n if (topBits.shiftRight(j).and(1).equals(1)) {\n checksum = checksum.xor(GENERATOR[j]);\n }\n }\n }\n return checksum.xor(1);\n}\n\n/**\n * Verify that the payload has not been corrupted by checking that the\n * checksum is valid.\n * \n * @private\n * @param {string} prefix Network prefix. E.g.: 'bitcoincash'.\n * @param {Uint8Array} payload Array of 5-bit integers containing the address' payload.\n * @returns {boolean}\n */\nfunction validChecksum(prefix, payload) {\n var prefixData = concat(prefixToUint5Array(prefix), new Uint8Array(1));\n var checksumData = concat(prefixData, payload);\n return polymod(checksumData).equals(0);\n}\n\n/**\n * Returns true if, and only if, the given string contains either uppercase\n * or lowercase letters, but not both.\n *\n * @private\n * @param {string} string Input string.\n * @returns {boolean}\n */\nfunction hasSingleCase(string) {\n return string === string.toLowerCase() || string === string.toUpperCase();\n}\n\nmodule.exports = {\n encode: encode,\n decode: decode,\n ValidationError: ValidationError,\n};\n","\"use strict\";\nexports.__esModule = true;\nexports.ILLEGAL_LENGTH = 'Illegal trits length';\nexports.ILLEGAL_SUBSEED_INDEX = 'Illegal subseed length';\nexports.ILLEGAL_SUBSEED_LENGTH = 'Illegal subseed length';\nexports.ILLEGAL_NUMBER_OF_FRAGMENTS = 'Illegal number of fragments';\nexports.ILLEGAL_KEY_LENGTH = 'Illegal key length';\nexports.ILLEGAL_DIGESTS_LENGTH = 'Illegal digests length';\nexports.ILLEGAL_NORMALIZED_FRAGMENT_LENGTH = 'Illegal normalized fragment length';\nexports.ILLEGAL_SIGNATURE_FRAGMENT_LENGTH = 'Illegal signature fragment length';\nexports.ILLEGAL_BUNDLE_HASH_LENGTH = 'Illegal bundle hash length';\nexports.ILLEGAL_KEY_FRAGMENT_LENGTH = 'Illegal key fragment length';\nexports.ILLEGAL_TRIT_CONVERSION_INPUT = 'Illegal conversion input. Expected trits as Int8Array.';\nexports.ILLEGAL_TRYTE_CONVERSION_INPUT = 'Illegal conversion input. Expected trytes string or integer.';\nexports.ILLEGAL_MIN_WEIGHT_MAGNITUDE = 'Illegal minWeightMagnitude value.';\nexports.ILLEGAL_ADDRESS_LAST_TRIT = 'Illegal address. Last trit must be 0.';\nexports.ILLEGAL_ADDRESS_LENGTH = 'Illegal address length.';\nexports.ILLEGAL_BUNDLE_LENGTH = 'Illegal bundle hash length.';\nexports.ILLEGAL_OBSOLETE_TAG_LENGTH = 'Illegal obsoleteTag length.';\nexports.ILLEGAL_SIGNATURE_OR_MESSAGE = 'Illegal signature or message.';\nexports.ILLEGAL_SIGNATURE_OR_MESSAGE_LENGTH = 'Illegal signatureOrMessage length.';\nexports.ILLEGAL_TAG_LENGTH = 'Illegal tag length.';\nexports.ILLEGAL_ISSUANCE_TIMESTAMP = 'Illegal issuance timestamp';\nexports.ILLEGAL_ISSUANCE_TIMESTAMP_LENGTH = 'Illegal issuanceTimestamp length.';\nexports.ILLEGAL_VALUE_LENGTH = 'Illegal value length.';\nexports.ILLEGAL_TRANSACTION_FIELD_OFFSET = 'Illegal transaction field offset.';\nexports.ILLEGAL_TRANSACTION_FIELD_LENGTH = 'Illegal transaction field length.';\nexports.ILLEGAL_LENGTH_OR_OFFSET = 'Illegal length or offset.';\nexports.ILLEGAL_TRANSACTION_BUFFER = 'Illegal transaction buffer. Expected `Int8Array`.';\nexports.ILLEGAL_TRANSACTION_BUFFER_LENGTH = 'Illegal transaction buffer length.';\nexports.ILLEGAL_TRANSACTION_OFFSET = 'Illegal transaction offset.';\nexports.ILLEGAL_TRANSACTION_LENGTH = 'Illegal transaction length.';\nexports.ILLEGAL_TRANSACTION_ORDER = 'Illegal transaction order.';\nexports.ILLEGAL_TRANSACTION_INDEX = 'Illegal transaction index.';\nexports.ILLEGAL_SEED_LENGTH = 'Illegal seed length. Expected length of 243 trits.';\nexports.ILLEGAL_KEY_INDEX = 'Illegal key index.';\nexports.ILLEGAL_CDA_LENGTH = 'Illegal cda length.';\nexports.ILLEGAL_BATCH = 'Illegal batch.';\nexports.CDA_ALREADY_IN_STORE = 'CDA is already in store.';\nexports.ILLEGAL_PERSISTENCE_ID = 'Illegal persistence id.';\nexports.ILLEGAL_PERSISTENCE_PATH = 'Illegal persistence path.';\nexports.ILLEGAL_PADDING_LENGTH = 'Illegal padding length. Input value length exceeds padding length.';\nexports.INCONSISTENT_SUBTANGLE = 'Inconsistent subtangle';\nexports.INSUFFICIENT_BALANCE = 'Insufficient balance';\nexports.INVALID_ADDRESS = 'Invalid address';\nexports.INVALID_REMAINDER_ADDRESS = 'Invalid remainder address';\nexports.INVALID_BRANCH_TRANSACTION = 'Invalid branch transaction';\nexports.INVALID_BUNDLE = 'Invalid bundle';\nexports.INVALID_BUNDLE_HASH = 'Invalid bundle hash';\nexports.INVALID_CHECKSUM = 'Invalid checksum';\nexports.INVALID_COMMAND = 'Invalid command format';\nexports.INVALID_DEPTH = 'Invalid depth';\nexports.INVALID_HASH = 'Invalid hash';\nexports.INVALID_INDEX = 'Invalid index option';\nexports.INVALID_TOTAL_OPTION = 'Invalid total option';\nexports.INVALID_INPUT = 'Invalid input';\nexports.INVALID_KEY = 'Invalid key value';\nexports.INVALID_MIN_WEIGHT_MAGNITUDE = 'Invalid Min Weight Magnitude';\nexports.INVALID_SEARCH_KEY = 'Invalid search key';\nexports.INVALID_SECURITY_LEVEL = 'Invalid security option';\nexports.INVALID_SECURITY_OPTION = 'Invalid security option';\nexports.INVALID_SEED = 'Invalid seed';\nexports.INVALID_START_END_OPTIONS = 'Invalid end option';\nexports.INVALID_START_OPTION = 'Invalid start option';\nexports.INVALID_TAG = 'Invalid tag';\nexports.INVALID_TRANSACTION = 'Invalid transaction';\nexports.INVALID_TRANSACTION_TRYTES = 'Invalid transaction trytes';\nexports.INVALID_ATTACHED_TRYTES = 'Invalid attached trytes';\nexports.INVALID_TRANSACTION_HASH = 'Invalid transaction hash';\nexports.INVALID_TAIL_TRANSACTION = 'Invalid tail transaction';\nexports.INVALID_THRESHOLD = 'Invalid threshold option';\nexports.INVALID_TRANSFER = 'Invalid transfer array';\nexports.INVALID_TRUNK_TRANSACTION = 'Invalid trunk transaction';\nexports.INVALID_REFERENCE_HASH = 'Invalid reference hash';\nexports.INVALID_TRYTES = 'Invalid trytes';\nexports.INVALID_URI = 'Invalid uri';\nexports.INVALID_ASCII_INPUT = 'Conversion to trytes requires type of input to be encoded in ascii.';\nexports.INVALID_ODD_LENGTH = 'Conversion from trytes requires length of trytes to be even.';\nexports.INVALID_TRYTE_ENCODED_JSON = 'Invalid tryte encoded JSON message';\nexports.NOT_INT = 'One of the inputs is not integer';\nexports.SENDING_BACK_TO_INPUTS = 'One of the transaction inputs is used as output.';\nexports.INVALID_TRANSACTIONS_TO_APPROVE = 'Invalid transactions to approve.';\nexports.NO_INPUTS = 'Could not find any available inputs.';\nexports.invalidChecksum = function (address) { return \"Invalid Checksum: \" + address; };\nexports.inconsistentTransaction = function (reason) { return \"Transaction is inconsistent. Reason: \" + reason; };\nexports.INVALID_DELAY = 'Invalid delay.';\n//# sourceMappingURL=errors.js.map","\n\n","\n","import { render } from \"./add-bank.vue?vue&type=template&id=4a2a16ba\"\nimport script from \"./add-bank.vue?vue&type=script&lang=js\"\nexport * from \"./add-bank.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/src/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./rewards.vue?vue&type=template&id=b69b9948\"\nimport script from \"./rewards.vue?vue&type=script&lang=js\"\nexport * from \"./rewards.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/src/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","module.exports = require('./readable').PassThrough\n","// Copyright (c) 2017 Pieter Wuille\r\n//\r\n// Permission is hereby granted, free of charge, to any person obtaining a copy\r\n// of this software and associated documentation files (the \"Software\"), to deal\r\n// in the Software without restriction, including without limitation the rights\r\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n// copies of the Software, and to permit persons to whom the Software is\r\n// furnished to do so, subject to the following conditions:\r\n//\r\n// The above copyright notice and this permission notice shall be included in\r\n// all copies or substantial portions of the Software.\r\n//\r\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n// THE SOFTWARE.\r\n\r\nvar CHARSET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'\r\nvar GENERATOR = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3]\r\n\r\nmodule.exports = {\r\n decode: decode,\r\n encode: encode\r\n}\r\n\r\nfunction polymod (values) {\r\n var chk = 1\r\n for (var p = 0; p < values.length; ++p) {\r\n var top = chk >> 25\r\n chk = (chk & 0x1ffffff) << 5 ^ values[p]\r\n for (var i = 0; i < 5; ++i) {\r\n if ((top >> i) & 1) {\r\n chk ^= GENERATOR[i]\r\n }\r\n }\r\n }\r\n return chk\r\n}\r\n\r\nfunction hrpExpand (hrp) {\r\n var ret = []\r\n var p\r\n for (p = 0; p < hrp.length; ++p) {\r\n ret.push(hrp.charCodeAt(p) >> 5)\r\n }\r\n ret.push(0)\r\n for (p = 0; p < hrp.length; ++p) {\r\n ret.push(hrp.charCodeAt(p) & 31)\r\n }\r\n return ret\r\n}\r\n\r\nfunction verifyChecksum (hrp, data) {\r\n return polymod(hrpExpand(hrp).concat(data)) === 1\r\n}\r\n\r\nfunction createChecksum (hrp, data) {\r\n var values = hrpExpand(hrp).concat(data).concat([0, 0, 0, 0, 0, 0])\r\n var mod = polymod(values) ^ 1\r\n var ret = []\r\n for (var p = 0; p < 6; ++p) {\r\n ret.push((mod >> 5 * (5 - p)) & 31)\r\n }\r\n return ret\r\n}\r\n\r\nfunction encode (hrp, data) {\r\n var combined = data.concat(createChecksum(hrp, data))\r\n var ret = hrp + '1'\r\n for (var p = 0; p < combined.length; ++p) {\r\n ret += CHARSET.charAt(combined[p])\r\n }\r\n return ret\r\n}\r\n\r\nfunction decode (bechString) {\r\n var p\r\n var hasLower = false\r\n var hasUpper = false\r\n for (p = 0; p < bechString.length; ++p) {\r\n if (bechString.charCodeAt(p) < 33 || bechString.charCodeAt(p) > 126) {\r\n return null\r\n }\r\n if (bechString.charCodeAt(p) >= 97 && bechString.charCodeAt(p) <= 122) {\r\n hasLower = true\r\n }\r\n if (bechString.charCodeAt(p) >= 65 && bechString.charCodeAt(p) <= 90) {\r\n hasUpper = true\r\n }\r\n }\r\n if (hasLower && hasUpper) {\r\n return null\r\n }\r\n bechString = bechString.toLowerCase()\r\n var pos = bechString.lastIndexOf('1')\r\n if (pos < 1 || pos + 7 > bechString.length || bechString.length > 90) {\r\n return null\r\n }\r\n var hrp = bechString.substring(0, pos)\r\n var data = []\r\n for (p = pos + 1; p < bechString.length; ++p) {\r\n var d = CHARSET.indexOf(bechString.charAt(p))\r\n if (d === -1) {\r\n return null\r\n }\r\n data.push(d)\r\n }\r\n if (!verifyChecksum(hrp, data)) {\r\n return null\r\n }\r\n return { hrp: hrp, data: data.slice(0, data.length - 6) }\r\n}\r\n","/* eslint-disable @typescript-eslint/strict-boolean-expressions */\nfunction parse(string, encoding, opts) {\n var _opts$out;\n\n if (opts === void 0) {\n opts = {};\n }\n\n // Build the character lookup table:\n if (!encoding.codes) {\n encoding.codes = {};\n\n for (var i = 0; i < encoding.chars.length; ++i) {\n encoding.codes[encoding.chars[i]] = i;\n }\n } // The string must have a whole number of bytes:\n\n\n if (!opts.loose && string.length * encoding.bits & 7) {\n throw new SyntaxError('Invalid padding');\n } // Count the padding bytes:\n\n\n var end = string.length;\n\n while (string[end - 1] === '=') {\n --end; // If we get a whole number of bytes, there is too much padding:\n\n if (!opts.loose && !((string.length - end) * encoding.bits & 7)) {\n throw new SyntaxError('Invalid padding');\n }\n } // Allocate the output:\n\n\n var out = new ((_opts$out = opts.out) != null ? _opts$out : Uint8Array)(end * encoding.bits / 8 | 0); // Parse the data:\n\n var bits = 0; // Number of bits currently in the buffer\n\n var buffer = 0; // Bits waiting to be written out, MSB first\n\n var written = 0; // Next byte to write\n\n for (var _i = 0; _i < end; ++_i) {\n // Read one character from the string:\n var value = encoding.codes[string[_i]];\n\n if (value === undefined) {\n throw new SyntaxError('Invalid character ' + string[_i]);\n } // Append the bits to the buffer:\n\n\n buffer = buffer << encoding.bits | value;\n bits += encoding.bits; // Write out some bits if the buffer has a byte's worth:\n\n if (bits >= 8) {\n bits -= 8;\n out[written++] = 0xff & buffer >> bits;\n }\n } // Verify that we have received just enough bits:\n\n\n if (bits >= encoding.bits || 0xff & buffer << 8 - bits) {\n throw new SyntaxError('Unexpected end of data');\n }\n\n return out;\n}\nfunction stringify(data, encoding, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n var _opts = opts,\n _opts$pad = _opts.pad,\n pad = _opts$pad === void 0 ? true : _opts$pad;\n var mask = (1 << encoding.bits) - 1;\n var out = '';\n var bits = 0; // Number of bits currently in the buffer\n\n var buffer = 0; // Bits waiting to be written out, MSB first\n\n for (var i = 0; i < data.length; ++i) {\n // Slurp data into the buffer:\n buffer = buffer << 8 | 0xff & data[i];\n bits += 8; // Write out as much as we can:\n\n while (bits > encoding.bits) {\n bits -= encoding.bits;\n out += encoding.chars[mask & buffer >> bits];\n }\n } // Partial character:\n\n\n if (bits) {\n out += encoding.chars[mask & buffer << encoding.bits - bits];\n } // Add padding characters until we hit a byte boundary:\n\n\n if (pad) {\n while (out.length * encoding.bits & 7) {\n out += '=';\n }\n }\n\n return out;\n}\n\n/* eslint-disable @typescript-eslint/strict-boolean-expressions */\nvar base16Encoding = {\n chars: '0123456789ABCDEF',\n bits: 4\n};\nvar base32Encoding = {\n chars: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',\n bits: 5\n};\nvar base32HexEncoding = {\n chars: '0123456789ABCDEFGHIJKLMNOPQRSTUV',\n bits: 5\n};\nvar base64Encoding = {\n chars: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n bits: 6\n};\nvar base64UrlEncoding = {\n chars: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n bits: 6\n};\nvar base16 = {\n parse: function parse$1(string, opts) {\n return parse(string.toUpperCase(), base16Encoding, opts);\n },\n stringify: function stringify$1(data, opts) {\n return stringify(data, base16Encoding, opts);\n }\n};\nvar base32 = {\n parse: function parse$1(string, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n return parse(opts.loose ? string.toUpperCase().replace(/0/g, 'O').replace(/1/g, 'L').replace(/8/g, 'B') : string, base32Encoding, opts);\n },\n stringify: function stringify$1(data, opts) {\n return stringify(data, base32Encoding, opts);\n }\n};\nvar base32hex = {\n parse: function parse$1(string, opts) {\n return parse(string, base32HexEncoding, opts);\n },\n stringify: function stringify$1(data, opts) {\n return stringify(data, base32HexEncoding, opts);\n }\n};\nvar base64 = {\n parse: function parse$1(string, opts) {\n return parse(string, base64Encoding, opts);\n },\n stringify: function stringify$1(data, opts) {\n return stringify(data, base64Encoding, opts);\n }\n};\nvar base64url = {\n parse: function parse$1(string, opts) {\n return parse(string, base64UrlEncoding, opts);\n },\n stringify: function stringify$1(data, opts) {\n return stringify(data, base64UrlEncoding, opts);\n }\n};\nvar codec = {\n parse: parse,\n stringify: stringify\n};\n\nexport { base16, base32, base32hex, base64, base64url, codec };\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nmodule.exports = pipeline;","var utils = require('./crypto/utils')\r\n\r\nconst ALLOWED_CHARS = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'\r\n\r\nvar regexp = new RegExp('^(cosmos)1([' + ALLOWED_CHARS + ']+)$') // cosmos + bech32 separated by '1'\r\n\r\nmodule.exports = {\r\n isValidAddress: function (address, currency, networkType) {\r\n let match = regexp.exec(address)\r\n if (match !== null) {\r\n return this.verifyChecksum(address)\r\n } else {\r\n return false\r\n }\r\n },\r\n\r\n verifyChecksum: function (address) {\r\n var decoded = utils.bech32.decode(address)\r\n if (decoded !== null) {\r\n return decoded.data.length === 32\r\n } else {\r\n return false\r\n }\r\n }\r\n}\r\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","const base58 = require('./crypto/base58')\r\n\r\nfunction getDecoded (address) {\r\n try {\r\n var decoded = base58.decode(address)\r\n return decoded\r\n } catch (e) {\r\n // if decoding fails, assume invalid address\r\n return null\r\n }\r\n}\r\n\r\nmodule.exports = {\r\n isValidAddress: function (address) {\r\n var decoded = getDecoded(address)\r\n\r\n if (!decoded) {\r\n return false\r\n }\r\n\r\n if (decoded.length !== 37) {\r\n return false\r\n }\r\n\r\n if (decoded[0] !== 42) {\r\n return false\r\n }\r\n\r\n return true\r\n }\r\n}\r\n","\"use strict\";\nexports.__esModule = true;\nvar constants_1 = require(\"./constants\");\nvar errors = require(\"./errors\");\n// Required for markdown generation with JSDoc\n/**\n * @module validators\n */\n/* Type guards */\n/**\n * Checks if input is an `Int8Array` of trit values; `-1, 0, 1`.\n *\n * @method isTrits\n *\n * @param {any} input\n *\n * @return {boolean}\n */\nexports.isTrits = function (input) {\n if (input instanceof Int8Array) {\n for (var i = 0; i < input.length; i++) {\n if (!(input[i] === 0 || input[i] === -1 || input[i] === 1)) {\n return false;\n }\n }\n return true;\n }\n return false;\n};\n/**\n * Checks if trits are NULL.\n *\n * @method isNullTrits\n *\n * @param {Int8Array} trits\n *\n * @return {boolean}\n */\nexports.isNullTrits = function (input) {\n if (input instanceof Int8Array) {\n if (input.length === 0) {\n return true;\n }\n for (var i = 0; i < input.length; i++) {\n if (input[i] !== 0) {\n return false;\n }\n }\n return true;\n }\n return false;\n};\n/**\n * Checks if input is correct trytes consisting of [9A-Z]; optionally validate length\n * @method isTrytes\n *\n * @param {string} trytes\n * @param {string | number} [length='1,']\n *\n * @return {boolean}\n */\nexports.isTrytes = function (trytes, length) {\n if (length === void 0) { length = '1,'; }\n return typeof trytes === 'string' && new RegExp(\"^[9A-Z]{\" + length + \"}$\").test(trytes);\n};\n/**\n * @method isTrytesOfExactLength\n *\n * @param {string} trytes\n * @param {number} length\n *\n * @return {boolean}\n */\nexports.isTrytesOfExactLength = function (trytes, length) {\n return typeof trytes === 'string' && new RegExp(\"^[9A-Z]{\" + length + \"}$\").test(trytes);\n};\n/**\n * @method isTrytesOfMaxLength\n *\n * @param {string} trytes\n * @param {number} length\n *\n * @return {boolean}\n */\nexports.isTrytesOfMaxLength = function (trytes, length) {\n return typeof trytes === 'string' && new RegExp(\"^[9A-Z]{1,\" + length + \"}$\").test(trytes);\n};\n/**\n * Checks if input contains `9`s only.\n * @method isEmpty\n *\n * @param {string} hash\n *\n * @return {boolean}\n */\nexports.isEmpty = function (trytes) { return typeof trytes === 'string' && /^[9]+$/.test(trytes); };\nexports.isNinesTrytes = exports.isEmpty;\n/**\n * Checks if input is correct hash (81 trytes) or address with checksum (90 trytes)\n *\n * @method isHash\n *\n * @param {string} hash\n *\n * @return {boolean}\n */\nexports.isHash = function (hash) {\n return exports.isTrytesOfExactLength(hash, constants_1.HASH_TRYTE_SIZE) || exports.isTrytesOfExactLength(hash, constants_1.HASH_TRYTE_SIZE + 9);\n}; // address w/ checksum is valid hash\n/* Check if security level is valid positive integer */\nexports.isSecurityLevel = function (security) {\n return Number.isInteger(security) && security > 0 && security < 4;\n};\n/**\n * Checks if input is valid input object. Address can be passed with or without checksum.\n * It does not validate the checksum.\n *\n * @method isInput\n *\n * @param {string} address\n *\n * @return {boolean}\n */\nexports.isInput = function (input) {\n return exports.isHash(input.address) &&\n exports.isSecurityLevel(input.security) &&\n (typeof input.balance === 'undefined' || (Number.isInteger(input.balance) && input.balance > 0)) &&\n Number.isInteger(input.keyIndex) &&\n input.keyIndex >= 0;\n};\n/**\n * Checks that input is valid tag trytes.\n *\n * @method isTag\n *\n * @param {string} tag\n *\n * @return {boolean}\n */\nexports.isTag = function (tag) { return exports.isTrytesOfMaxLength(tag, constants_1.TAG_TRYTE_SIZE); };\n/**\n * Checks if input is valid `transfer` object.\n *\n * @method isTransfer\n *\n * @param {Transfer} transfer\n *\n * @return {boolean}\n */\nexports.isTransfer = function (transfer) {\n return exports.isHash(transfer.address) &&\n Number.isInteger(transfer.value) &&\n transfer.value >= 0 &&\n (!transfer.message || exports.isTrytes(transfer.message, '0,')) &&\n (!transfer.tag || exports.isTag(transfer.tag));\n};\n/**\n * Checks that a given `URI` is valid\n *\n * Valid Examples:\n * - `udp://[2001:db8:a0b:12f0::1]:14265`\n * - `udp://[2001:db8:a0b:12f0::1]`\n * - `udp://8.8.8.8:14265`\n * - `udp://domain.com`\n * - `udp://domain2.com:14265`\n *\n * @method isUri\n *\n * @param {string} uri\n *\n * @return {boolean}\n */\nexports.isUri = function (uri) {\n if (typeof uri !== 'string') {\n return false;\n }\n var getInside = /^(udp|tcp):\\/\\/([\\[][^\\]\\.]*[\\]]|[^\\[\\]:]*)[:]{0,1}([0-9]{1,}$|$)/i;\n var stripBrackets = /[\\[]{0,1}([^\\[\\]]*)[\\]]{0,1}/;\n var uriTest = /((^\\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\s*$)|(^\\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(%.+)?\\s*$))|(^\\s*((?=.{1,255}$)(?=.*[A-Za-z].*)[0-9A-Za-z](?:(?:[0-9A-Za-z]|\\b-){0,61}[0-9A-Za-z])?(?:\\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|\\b-){0,61}[0-9A-Za-z])?)*)\\s*$)/;\n return getInside.test(uri) && uriTest.test(stripBrackets.exec(getInside.exec(uri)[1])[1]);\n};\n/* Check if start & end options are valid */\nexports.isStartEndOptions = function (_a) {\n var start = _a.start, end = _a.end;\n return !end || (start <= end && end < start + constants_1.MAX_INDEX_DIFF);\n};\n/* Checks all array items */\nexports.isArray = function (f) { return function (x) {\n return Array.isArray(x) && x.length > 0 && x.every(function (y) { return f(y); });\n}; };\n/**\n * Runs each validator in sequence, and throws on the first occurence of invalid data.\n * Validators are passed as arguments and executed in given order.\n * You might want place `validate()` in promise chains before operations that require valid inputs,\n * taking advantage of built-in promise branching.\n *\n * @example\n *\n * ```js\n * try {\n * validate([\n * value, // Given value\n * isTrytes, // Validator function\n * 'Invalid trytes' // Error message\n * ])\n * } catch (err) {\n * console.log(err.message) // 'Invalid trytes'\n * }\n * ```\n *\n * @method validate\n *\n * @throws {Error} error\n * @return {boolean}\n */\nexports.validate = function () {\n var validators = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n validators[_i] = arguments[_i];\n }\n validators.forEach(function (validator) {\n if (Array.isArray(validator)) {\n var value = validator[0], isValid = validator[1], msg = validator[2];\n if (!isValid(value)) {\n throw new Error(msg + \": \" + JSON.stringify(value, null, 1));\n }\n }\n });\n return true;\n};\nexports.arrayValidator = function (validator) { return function (arr, customMsg) {\n var _a = validator(arr[0]), _ = _a[0], // tslint:disable-line no-unused-variable\n isValid = _a[1], msg = _a[2];\n return [\n arr,\n function (x) { return Array.isArray(x) && x.every(function (value) { return isValid(value); }); },\n customMsg || msg,\n ];\n}; };\nexports.depthValidator = function (depth) { return [\n depth,\n function (n) { return Number.isInteger(n) && n > 0; },\n errors.INVALID_DEPTH,\n]; };\nexports.minWeightMagnitudeValidator = function (minWeightMagnitude) { return [\n minWeightMagnitude,\n Number.isInteger,\n errors.INVALID_MIN_WEIGHT_MAGNITUDE,\n]; };\nexports.seedValidator = function (seed) { return [seed, exports.isTrytes, errors.INVALID_SEED]; };\nexports.securityLevelValidator = function (security) { return [\n security,\n exports.isSecurityLevel,\n errors.INVALID_SECURITY_LEVEL,\n]; };\nexports.inputValidator = function (input) { return [input, exports.isInput, errors.INVALID_INPUT]; };\nexports.remainderAddressValidator = function (input) { return [input, exports.isHash, errors.INVALID_REMAINDER_ADDRESS]; };\nexports.tagValidator = function (tag) { return [tag, exports.isTag, errors.INVALID_TAG]; };\nexports.transferValidator = function (transfer) { return [transfer, exports.isTransfer, errors.INVALID_TRANSFER]; };\nexports.hashValidator = function (hash, errorMessage) { return [\n hash,\n exports.isHash,\n errorMessage || errors.INVALID_HASH,\n]; };\nexports.trytesValidator = function (trytes, msg) { return [\n trytes,\n function (t) { return (length ? exports.isTrytesOfExactLength(t, length) : exports.isTrytes(t)); },\n msg || errors.INVALID_TRYTES,\n]; };\nexports.uriValidator = function (uri) { return [uri, exports.isUri, errors.INVALID_URI]; };\nexports.integerValidator = function (integer, msg) { return [\n integer,\n Number.isInteger,\n msg || errors.NOT_INT,\n]; };\nexports.indexValidator = function (index) { return [index, Number.isInteger, errors.INVALID_INDEX]; };\nexports.startOptionValidator = function (start) { return [\n start,\n function (s) { return Number.isInteger(s) && s >= 0; },\n errors.INVALID_START_OPTION,\n]; };\nexports.startEndOptionsValidator = function (options) { return [\n options,\n exports.isStartEndOptions,\n errors.INVALID_START_END_OPTIONS,\n]; };\nexports.getInputsThresholdValidator = function (threshold) { return [\n threshold,\n function (s) { return Number.isInteger(s) && s >= 0; },\n errors.INVALID_THRESHOLD,\n]; };\nexports.stringify = function (value) {\n return JSON.stringify(value, null, 1);\n};\n//# sourceMappingURL=guards.js.map","const { base32 } = require('rfc4648')\r\nconst sha512256 = require('js-sha512').sha512_256\r\n\r\nmodule.exports = {\r\n isValidAddress: function (address, currency, networkType) {\r\n return this.verifyChecksum(address)\r\n },\r\n\r\n verifyChecksum: function (address) {\r\n if (address.length !== 58) {\r\n return false\r\n } else {\r\n // Decode base32 Address\r\n const decoded = Buffer.from(base32.parse(correctPadding(address)))\r\n const addr = decoded.slice(0, decoded.length - 4)\r\n const checksum = decoded.slice(-4).toString('hex')\r\n\r\n // Hash Address - Checksum\r\n const hash = sha512256.create()\r\n hash.update(addr)\r\n const code = hash.hex().slice(-8)\r\n return code === checksum\r\n }\r\n }\r\n}\r\n\r\nfunction correctPadding (a) {\r\n if (a.length % 8 === 0) return a.length\r\n return a + '='.repeat((8 - a.length % 8))\r\n}\r\n","const btcValidator = require('./bitcoin_validator')\r\nvar regexp = new RegExp('^sys1[qpzry9x8gf2tvdw0s3jn54khce6mua7l]{39}$')\r\n\r\nmodule.exports = {\r\n isValidAddress: function (address, currency, networkType) {\r\n return regexp.test(address) || btcValidator.isValidAddress(address, currency, networkType)\r\n }\r\n}\r\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, { hasUnpiped: false });\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","'use strict'\n\nvar createHash = require('create-hash')\nvar bs58checkBase = require('./base')\n\n// SHA256(SHA256(buffer))\nfunction sha256x2 (buffer) {\n var tmp = createHash('sha256').update(buffer).digest()\n return createHash('sha256').update(tmp).digest()\n}\n\nmodule.exports = bs58checkBase(sha256x2)\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","\"use strict\";\nexports.__esModule = true;\nvar constants_1 = require(\"./constants\");\nvar errors = require(\"./errors\");\n// Required for markdown generation with JSDoc\n/**\n * @module validators\n */\n/* Type guards */\n/**\n * Checks if input is an `Int8Array` of trit values; `-1, 0, 1`.\n *\n * @method isTrits\n *\n * @param {any} input\n *\n * @return {boolean}\n */\nexports.isTrits = function (input) {\n if (input instanceof Int8Array) {\n for (var i = 0; i < input.length; i++) {\n if (!(input[i] === 0 || input[i] === -1 || input[i] === 1)) {\n return false;\n }\n }\n return true;\n }\n return false;\n};\n/**\n * Checks if trits are NULL.\n *\n * @method isNullTrits\n *\n * @param {Int8Array} trits\n *\n * @return {boolean}\n */\nexports.isNullTrits = function (input) {\n if (input instanceof Int8Array) {\n if (input.length === 0) {\n return true;\n }\n for (var i = 0; i < input.length; i++) {\n if (input[i] !== 0) {\n return false;\n }\n }\n return true;\n }\n return false;\n};\n/**\n * Checks if input is correct trytes consisting of [9A-Z]; optionally validate length\n * @method isTrytes\n *\n * @param {string} trytes\n * @param {string | number} [length='1,']\n *\n * @return {boolean}\n */\nexports.isTrytes = function (trytes, length) {\n if (length === void 0) { length = '1,'; }\n return typeof trytes === 'string' && new RegExp(\"^[9A-Z]{\" + length + \"}$\").test(trytes);\n};\n/**\n * @method isTrytesOfExactLength\n *\n * @param {string} trytes\n * @param {number} length\n *\n * @return {boolean}\n */\nexports.isTrytesOfExactLength = function (trytes, length) {\n return typeof trytes === 'string' && new RegExp(\"^[9A-Z]{\" + length + \"}$\").test(trytes);\n};\n/**\n * @method isTrytesOfMaxLength\n *\n * @param {string} trytes\n * @param {number} length\n *\n * @return {boolean}\n */\nexports.isTrytesOfMaxLength = function (trytes, length) {\n return typeof trytes === 'string' && new RegExp(\"^[9A-Z]{1,\" + length + \"}$\").test(trytes);\n};\n/**\n * Checks if input contains `9`s only.\n * @method isEmpty\n *\n * @param {string} hash\n *\n * @return {boolean}\n */\nexports.isEmpty = function (trytes) { return typeof trytes === 'string' && /^[9]+$/.test(trytes); };\nexports.isNinesTrytes = exports.isEmpty;\n/**\n * Checks if input is correct hash (81 trytes) or address with checksum (90 trytes)\n *\n * @method isHash\n *\n * @param {string} hash\n *\n * @return {boolean}\n */\nexports.isHash = function (hash) {\n return exports.isTrytesOfExactLength(hash, constants_1.HASH_TRYTE_SIZE) || exports.isTrytesOfExactLength(hash, constants_1.HASH_TRYTE_SIZE + 9);\n}; // address w/ checksum is valid hash\n/* Check if security level is valid positive integer */\nexports.isSecurityLevel = function (security) {\n return Number.isInteger(security) && security > 0 && security < 4;\n};\n/**\n * Checks if input is valid input object. Address can be passed with or without checksum.\n * It does not validate the checksum.\n *\n * @method isInput\n *\n * @param {string} address\n *\n * @return {boolean}\n */\nexports.isInput = function (input) {\n return exports.isHash(input.address) &&\n exports.isSecurityLevel(input.security) &&\n (typeof input.balance === 'undefined' || (Number.isInteger(input.balance) && input.balance > 0)) &&\n Number.isInteger(input.keyIndex) &&\n input.keyIndex >= 0;\n};\n/**\n * Checks that input is valid tag trytes.\n *\n * @method isTag\n *\n * @param {string} tag\n *\n * @return {boolean}\n */\nexports.isTag = function (tag) { return exports.isTrytesOfMaxLength(tag, constants_1.TAG_TRYTE_SIZE); };\n/**\n * Checks if input is valid `transfer` object.\n *\n * @method isTransfer\n *\n * @param {Transfer} transfer\n *\n * @return {boolean}\n */\nexports.isTransfer = function (transfer) {\n return exports.isHash(transfer.address) &&\n Number.isInteger(transfer.value) &&\n transfer.value >= 0 &&\n (!transfer.message || exports.isTrytes(transfer.message, '0,')) &&\n (!transfer.tag || exports.isTag(transfer.tag));\n};\n/**\n * Checks that a given `URI` is valid\n *\n * Valid Examples:\n * - `udp://[2001:db8:a0b:12f0::1]:14265`\n * - `udp://[2001:db8:a0b:12f0::1]`\n * - `udp://8.8.8.8:14265`\n * - `udp://domain.com`\n * - `udp://domain2.com:14265`\n *\n * @method isUri\n *\n * @param {string} uri\n *\n * @return {boolean}\n */\nexports.isUri = function (uri) {\n if (typeof uri !== 'string') {\n return false;\n }\n var getInside = /^(udp|tcp):\\/\\/([\\[][^\\]\\.]*[\\]]|[^\\[\\]:]*)[:]{0,1}([0-9]{1,}$|$)/i;\n var stripBrackets = /[\\[]{0,1}([^\\[\\]]*)[\\]]{0,1}/;\n var uriTest = /((^\\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\s*$)|(^\\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(%.+)?\\s*$))|(^\\s*((?=.{1,255}$)(?=.*[A-Za-z].*)[0-9A-Za-z](?:(?:[0-9A-Za-z]|\\b-){0,61}[0-9A-Za-z])?(?:\\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|\\b-){0,61}[0-9A-Za-z])?)*)\\s*$)/;\n return getInside.test(uri) && uriTest.test(stripBrackets.exec(getInside.exec(uri)[1])[1]);\n};\n/* Check if start & end options are valid */\nexports.isStartEndOptions = function (_a) {\n var start = _a.start, end = _a.end;\n return !end || (start <= end && end < start + constants_1.MAX_INDEX_DIFF);\n};\n/* Checks all array items */\nexports.isArray = function (f) { return function (x) {\n return Array.isArray(x) && x.length > 0 && x.every(function (y) { return f(y); });\n}; };\n/**\n * Runs each validator in sequence, and throws on the first occurence of invalid data.\n * Validators are passed as arguments and executed in given order.\n * You might want place `validate()` in promise chains before operations that require valid inputs,\n * taking advantage of built-in promise branching.\n *\n * @example\n *\n * ```js\n * try {\n * validate([\n * value, // Given value\n * isTrytes, // Validator function\n * 'Invalid trytes' // Error message\n * ])\n * } catch (err) {\n * console.log(err.message) // 'Invalid trytes'\n * }\n * ```\n *\n * @method validate\n *\n * @throws {Error} error\n * @return {boolean}\n */\nexports.validate = function () {\n var validators = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n validators[_i] = arguments[_i];\n }\n validators.forEach(function (validator) {\n if (Array.isArray(validator)) {\n var value = validator[0], isValid = validator[1], msg = validator[2];\n if (!isValid(value)) {\n throw new Error(msg + \": \" + JSON.stringify(value, null, 1));\n }\n }\n });\n return true;\n};\nexports.arrayValidator = function (validator) { return function (arr, customMsg) {\n var _a = validator(arr[0]), _ = _a[0], // tslint:disable-line no-unused-variable\n isValid = _a[1], msg = _a[2];\n return [\n arr,\n function (x) { return Array.isArray(x) && x.every(function (value) { return isValid(value); }); },\n customMsg || msg,\n ];\n}; };\nexports.depthValidator = function (depth) { return [\n depth,\n function (n) { return Number.isInteger(n) && n > 0; },\n errors.INVALID_DEPTH,\n]; };\nexports.minWeightMagnitudeValidator = function (minWeightMagnitude) { return [\n minWeightMagnitude,\n Number.isInteger,\n errors.INVALID_MIN_WEIGHT_MAGNITUDE,\n]; };\nexports.seedValidator = function (seed) { return [seed, exports.isTrytes, errors.INVALID_SEED]; };\nexports.securityLevelValidator = function (security) { return [\n security,\n exports.isSecurityLevel,\n errors.INVALID_SECURITY_LEVEL,\n]; };\nexports.inputValidator = function (input) { return [input, exports.isInput, errors.INVALID_INPUT]; };\nexports.remainderAddressValidator = function (input) { return [input, exports.isHash, errors.INVALID_REMAINDER_ADDRESS]; };\nexports.tagValidator = function (tag) { return [tag, exports.isTag, errors.INVALID_TAG]; };\nexports.transferValidator = function (transfer) { return [transfer, exports.isTransfer, errors.INVALID_TRANSFER]; };\nexports.hashValidator = function (hash, errorMessage) { return [\n hash,\n exports.isHash,\n errorMessage || errors.INVALID_HASH,\n]; };\nexports.trytesValidator = function (trytes, msg) { return [\n trytes,\n function (t) { return (length ? exports.isTrytesOfExactLength(t, length) : exports.isTrytes(t)); },\n msg || errors.INVALID_TRYTES,\n]; };\nexports.uriValidator = function (uri) { return [uri, exports.isUri, errors.INVALID_URI]; };\nexports.integerValidator = function (integer, msg) { return [\n integer,\n Number.isInteger,\n msg || errors.NOT_INT,\n]; };\nexports.indexValidator = function (index) { return [index, Number.isInteger, errors.INVALID_INDEX]; };\nexports.startOptionValidator = function (start) { return [\n start,\n function (s) { return Number.isInteger(s) && s >= 0; },\n errors.INVALID_START_OPTION,\n]; };\nexports.startEndOptionsValidator = function (options) { return [\n options,\n exports.isStartEndOptions,\n errors.INVALID_START_END_OPTIONS,\n]; };\nexports.getInputsThresholdValidator = function (threshold) { return [\n threshold,\n function (s) { return Number.isInteger(s) && s >= 0; },\n errors.INVALID_THRESHOLD,\n]; };\nexports.stringify = function (value) {\n return JSON.stringify(value, null, 1);\n};\n//# sourceMappingURL=guards.js.map","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n","var bigInt = (function (undefined) {\r\n \"use strict\";\r\n\r\n var BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_INT = 9007199254740992,\r\n MAX_INT_ARR = smallToArray(MAX_INT),\r\n DEFAULT_ALPHABET = \"0123456789abcdefghijklmnopqrstuvwxyz\";\r\n\r\n var supportsNativeBigInt = typeof BigInt === \"function\";\r\n\r\n function Integer(v, radix, alphabet, caseSensitive) {\r\n if (typeof v === \"undefined\") return Integer[0];\r\n if (typeof radix !== \"undefined\") return +radix === 10 && !alphabet ? parseValue(v) : parseBase(v, radix, alphabet, caseSensitive);\r\n return parseValue(v);\r\n }\r\n\r\n function BigInteger(value, sign) {\r\n this.value = value;\r\n this.sign = sign;\r\n this.isSmall = false;\r\n }\r\n BigInteger.prototype = Object.create(Integer.prototype);\r\n\r\n function SmallInteger(value) {\r\n this.value = value;\r\n this.sign = value < 0;\r\n this.isSmall = true;\r\n }\r\n SmallInteger.prototype = Object.create(Integer.prototype);\r\n\r\n function NativeBigInt(value) {\r\n this.value = value;\r\n }\r\n NativeBigInt.prototype = Object.create(Integer.prototype);\r\n\r\n function isPrecise(n) {\r\n return -MAX_INT < n && n < MAX_INT;\r\n }\r\n\r\n function smallToArray(n) { // For performance reasons doesn't reference BASE, need to change this function if BASE changes\r\n if (n < 1e7)\r\n return [n];\r\n if (n < 1e14)\r\n return [n % 1e7, Math.floor(n / 1e7)];\r\n return [n % 1e7, Math.floor(n / 1e7) % 1e7, Math.floor(n / 1e14)];\r\n }\r\n\r\n function arrayToSmall(arr) { // If BASE changes this function may need to change\r\n trim(arr);\r\n var length = arr.length;\r\n if (length < 4 && compareAbs(arr, MAX_INT_ARR) < 0) {\r\n switch (length) {\r\n case 0: return 0;\r\n case 1: return arr[0];\r\n case 2: return arr[0] + arr[1] * BASE;\r\n default: return arr[0] + (arr[1] + arr[2] * BASE) * BASE;\r\n }\r\n }\r\n return arr;\r\n }\r\n\r\n function trim(v) {\r\n var i = v.length;\r\n while (v[--i] === 0);\r\n v.length = i + 1;\r\n }\r\n\r\n function createArray(length) { // function shamelessly stolen from Yaffle's library https://github.com/Yaffle/BigInteger\r\n var x = new Array(length);\r\n var i = -1;\r\n while (++i < length) {\r\n x[i] = 0;\r\n }\r\n return x;\r\n }\r\n\r\n function truncate(n) {\r\n if (n > 0) return Math.floor(n);\r\n return Math.ceil(n);\r\n }\r\n\r\n function add(a, b) { // assumes a and b are arrays with a.length >= b.length\r\n var l_a = a.length,\r\n l_b = b.length,\r\n r = new Array(l_a),\r\n carry = 0,\r\n base = BASE,\r\n sum, i;\r\n for (i = 0; i < l_b; i++) {\r\n sum = a[i] + b[i] + carry;\r\n carry = sum >= base ? 1 : 0;\r\n r[i] = sum - carry * base;\r\n }\r\n while (i < l_a) {\r\n sum = a[i] + carry;\r\n carry = sum === base ? 1 : 0;\r\n r[i++] = sum - carry * base;\r\n }\r\n if (carry > 0) r.push(carry);\r\n return r;\r\n }\r\n\r\n function addAny(a, b) {\r\n if (a.length >= b.length) return add(a, b);\r\n return add(b, a);\r\n }\r\n\r\n function addSmall(a, carry) { // assumes a is array, carry is number with 0 <= carry < MAX_INT\r\n var l = a.length,\r\n r = new Array(l),\r\n base = BASE,\r\n sum, i;\r\n for (i = 0; i < l; i++) {\r\n sum = a[i] - base + carry;\r\n carry = Math.floor(sum / base);\r\n r[i] = sum - carry * base;\r\n carry += 1;\r\n }\r\n while (carry > 0) {\r\n r[i++] = carry % base;\r\n carry = Math.floor(carry / base);\r\n }\r\n return r;\r\n }\r\n\r\n BigInteger.prototype.add = function (v) {\r\n var n = parseValue(v);\r\n if (this.sign !== n.sign) {\r\n return this.subtract(n.negate());\r\n }\r\n var a = this.value, b = n.value;\r\n if (n.isSmall) {\r\n return new BigInteger(addSmall(a, Math.abs(b)), this.sign);\r\n }\r\n return new BigInteger(addAny(a, b), this.sign);\r\n };\r\n BigInteger.prototype.plus = BigInteger.prototype.add;\r\n\r\n SmallInteger.prototype.add = function (v) {\r\n var n = parseValue(v);\r\n var a = this.value;\r\n if (a < 0 !== n.sign) {\r\n return this.subtract(n.negate());\r\n }\r\n var b = n.value;\r\n if (n.isSmall) {\r\n if (isPrecise(a + b)) return new SmallInteger(a + b);\r\n b = smallToArray(Math.abs(b));\r\n }\r\n return new BigInteger(addSmall(b, Math.abs(a)), a < 0);\r\n };\r\n SmallInteger.prototype.plus = SmallInteger.prototype.add;\r\n\r\n NativeBigInt.prototype.add = function (v) {\r\n return new NativeBigInt(this.value + parseValue(v).value);\r\n }\r\n NativeBigInt.prototype.plus = NativeBigInt.prototype.add;\r\n\r\n function subtract(a, b) { // assumes a and b are arrays with a >= b\r\n var a_l = a.length,\r\n b_l = b.length,\r\n r = new Array(a_l),\r\n borrow = 0,\r\n base = BASE,\r\n i, difference;\r\n for (i = 0; i < b_l; i++) {\r\n difference = a[i] - borrow - b[i];\r\n if (difference < 0) {\r\n difference += base;\r\n borrow = 1;\r\n } else borrow = 0;\r\n r[i] = difference;\r\n }\r\n for (i = b_l; i < a_l; i++) {\r\n difference = a[i] - borrow;\r\n if (difference < 0) difference += base;\r\n else {\r\n r[i++] = difference;\r\n break;\r\n }\r\n r[i] = difference;\r\n }\r\n for (; i < a_l; i++) {\r\n r[i] = a[i];\r\n }\r\n trim(r);\r\n return r;\r\n }\r\n\r\n function subtractAny(a, b, sign) {\r\n var value;\r\n if (compareAbs(a, b) >= 0) {\r\n value = subtract(a, b);\r\n } else {\r\n value = subtract(b, a);\r\n sign = !sign;\r\n }\r\n value = arrayToSmall(value);\r\n if (typeof value === \"number\") {\r\n if (sign) value = -value;\r\n return new SmallInteger(value);\r\n }\r\n return new BigInteger(value, sign);\r\n }\r\n\r\n function subtractSmall(a, b, sign) { // assumes a is array, b is number with 0 <= b < MAX_INT\r\n var l = a.length,\r\n r = new Array(l),\r\n carry = -b,\r\n base = BASE,\r\n i, difference;\r\n for (i = 0; i < l; i++) {\r\n difference = a[i] + carry;\r\n carry = Math.floor(difference / base);\r\n difference %= base;\r\n r[i] = difference < 0 ? difference + base : difference;\r\n }\r\n r = arrayToSmall(r);\r\n if (typeof r === \"number\") {\r\n if (sign) r = -r;\r\n return new SmallInteger(r);\r\n } return new BigInteger(r, sign);\r\n }\r\n\r\n BigInteger.prototype.subtract = function (v) {\r\n var n = parseValue(v);\r\n if (this.sign !== n.sign) {\r\n return this.add(n.negate());\r\n }\r\n var a = this.value, b = n.value;\r\n if (n.isSmall)\r\n return subtractSmall(a, Math.abs(b), this.sign);\r\n return subtractAny(a, b, this.sign);\r\n };\r\n BigInteger.prototype.minus = BigInteger.prototype.subtract;\r\n\r\n SmallInteger.prototype.subtract = function (v) {\r\n var n = parseValue(v);\r\n var a = this.value;\r\n if (a < 0 !== n.sign) {\r\n return this.add(n.negate());\r\n }\r\n var b = n.value;\r\n if (n.isSmall) {\r\n return new SmallInteger(a - b);\r\n }\r\n return subtractSmall(b, Math.abs(a), a >= 0);\r\n };\r\n SmallInteger.prototype.minus = SmallInteger.prototype.subtract;\r\n\r\n NativeBigInt.prototype.subtract = function (v) {\r\n return new NativeBigInt(this.value - parseValue(v).value);\r\n }\r\n NativeBigInt.prototype.minus = NativeBigInt.prototype.subtract;\r\n\r\n BigInteger.prototype.negate = function () {\r\n return new BigInteger(this.value, !this.sign);\r\n };\r\n SmallInteger.prototype.negate = function () {\r\n var sign = this.sign;\r\n var small = new SmallInteger(-this.value);\r\n small.sign = !sign;\r\n return small;\r\n };\r\n NativeBigInt.prototype.negate = function () {\r\n return new NativeBigInt(-this.value);\r\n }\r\n\r\n BigInteger.prototype.abs = function () {\r\n return new BigInteger(this.value, false);\r\n };\r\n SmallInteger.prototype.abs = function () {\r\n return new SmallInteger(Math.abs(this.value));\r\n };\r\n NativeBigInt.prototype.abs = function () {\r\n return new NativeBigInt(this.value >= 0 ? this.value : -this.value);\r\n }\r\n\r\n\r\n function multiplyLong(a, b) {\r\n var a_l = a.length,\r\n b_l = b.length,\r\n l = a_l + b_l,\r\n r = createArray(l),\r\n base = BASE,\r\n product, carry, i, a_i, b_j;\r\n for (i = 0; i < a_l; ++i) {\r\n a_i = a[i];\r\n for (var j = 0; j < b_l; ++j) {\r\n b_j = b[j];\r\n product = a_i * b_j + r[i + j];\r\n carry = Math.floor(product / base);\r\n r[i + j] = product - carry * base;\r\n r[i + j + 1] += carry;\r\n }\r\n }\r\n trim(r);\r\n return r;\r\n }\r\n\r\n function multiplySmall(a, b) { // assumes a is array, b is number with |b| < BASE\r\n var l = a.length,\r\n r = new Array(l),\r\n base = BASE,\r\n carry = 0,\r\n product, i;\r\n for (i = 0; i < l; i++) {\r\n product = a[i] * b + carry;\r\n carry = Math.floor(product / base);\r\n r[i] = product - carry * base;\r\n }\r\n while (carry > 0) {\r\n r[i++] = carry % base;\r\n carry = Math.floor(carry / base);\r\n }\r\n return r;\r\n }\r\n\r\n function shiftLeft(x, n) {\r\n var r = [];\r\n while (n-- > 0) r.push(0);\r\n return r.concat(x);\r\n }\r\n\r\n function multiplyKaratsuba(x, y) {\r\n var n = Math.max(x.length, y.length);\r\n\r\n if (n <= 30) return multiplyLong(x, y);\r\n n = Math.ceil(n / 2);\r\n\r\n var b = x.slice(n),\r\n a = x.slice(0, n),\r\n d = y.slice(n),\r\n c = y.slice(0, n);\r\n\r\n var ac = multiplyKaratsuba(a, c),\r\n bd = multiplyKaratsuba(b, d),\r\n abcd = multiplyKaratsuba(addAny(a, b), addAny(c, d));\r\n\r\n var product = addAny(addAny(ac, shiftLeft(subtract(subtract(abcd, ac), bd), n)), shiftLeft(bd, 2 * n));\r\n trim(product);\r\n return product;\r\n }\r\n\r\n // The following function is derived from a surface fit of a graph plotting the performance difference\r\n // between long multiplication and karatsuba multiplication versus the lengths of the two arrays.\r\n function useKaratsuba(l1, l2) {\r\n return -0.012 * l1 - 0.012 * l2 + 0.000015 * l1 * l2 > 0;\r\n }\r\n\r\n BigInteger.prototype.multiply = function (v) {\r\n var n = parseValue(v),\r\n a = this.value, b = n.value,\r\n sign = this.sign !== n.sign,\r\n abs;\r\n if (n.isSmall) {\r\n if (b === 0) return Integer[0];\r\n if (b === 1) return this;\r\n if (b === -1) return this.negate();\r\n abs = Math.abs(b);\r\n if (abs < BASE) {\r\n return new BigInteger(multiplySmall(a, abs), sign);\r\n }\r\n b = smallToArray(abs);\r\n }\r\n if (useKaratsuba(a.length, b.length)) // Karatsuba is only faster for certain array sizes\r\n return new BigInteger(multiplyKaratsuba(a, b), sign);\r\n return new BigInteger(multiplyLong(a, b), sign);\r\n };\r\n\r\n BigInteger.prototype.times = BigInteger.prototype.multiply;\r\n\r\n function multiplySmallAndArray(a, b, sign) { // a >= 0\r\n if (a < BASE) {\r\n return new BigInteger(multiplySmall(b, a), sign);\r\n }\r\n return new BigInteger(multiplyLong(b, smallToArray(a)), sign);\r\n }\r\n SmallInteger.prototype._multiplyBySmall = function (a) {\r\n if (isPrecise(a.value * this.value)) {\r\n return new SmallInteger(a.value * this.value);\r\n }\r\n return multiplySmallAndArray(Math.abs(a.value), smallToArray(Math.abs(this.value)), this.sign !== a.sign);\r\n };\r\n BigInteger.prototype._multiplyBySmall = function (a) {\r\n if (a.value === 0) return Integer[0];\r\n if (a.value === 1) return this;\r\n if (a.value === -1) return this.negate();\r\n return multiplySmallAndArray(Math.abs(a.value), this.value, this.sign !== a.sign);\r\n };\r\n SmallInteger.prototype.multiply = function (v) {\r\n return parseValue(v)._multiplyBySmall(this);\r\n };\r\n SmallInteger.prototype.times = SmallInteger.prototype.multiply;\r\n\r\n NativeBigInt.prototype.multiply = function (v) {\r\n return new NativeBigInt(this.value * parseValue(v).value);\r\n }\r\n NativeBigInt.prototype.times = NativeBigInt.prototype.multiply;\r\n\r\n function square(a) {\r\n //console.assert(2 * BASE * BASE < MAX_INT);\r\n var l = a.length,\r\n r = createArray(l + l),\r\n base = BASE,\r\n product, carry, i, a_i, a_j;\r\n for (i = 0; i < l; i++) {\r\n a_i = a[i];\r\n carry = 0 - a_i * a_i;\r\n for (var j = i; j < l; j++) {\r\n a_j = a[j];\r\n product = 2 * (a_i * a_j) + r[i + j] + carry;\r\n carry = Math.floor(product / base);\r\n r[i + j] = product - carry * base;\r\n }\r\n r[i + l] = carry;\r\n }\r\n trim(r);\r\n return r;\r\n }\r\n\r\n BigInteger.prototype.square = function () {\r\n return new BigInteger(square(this.value), false);\r\n };\r\n\r\n SmallInteger.prototype.square = function () {\r\n var value = this.value * this.value;\r\n if (isPrecise(value)) return new SmallInteger(value);\r\n return new BigInteger(square(smallToArray(Math.abs(this.value))), false);\r\n };\r\n\r\n NativeBigInt.prototype.square = function (v) {\r\n return new NativeBigInt(this.value * this.value);\r\n }\r\n\r\n function divMod1(a, b) { // Left over from previous version. Performs faster than divMod2 on smaller input sizes.\r\n var a_l = a.length,\r\n b_l = b.length,\r\n base = BASE,\r\n result = createArray(b.length),\r\n divisorMostSignificantDigit = b[b_l - 1],\r\n // normalization\r\n lambda = Math.ceil(base / (2 * divisorMostSignificantDigit)),\r\n remainder = multiplySmall(a, lambda),\r\n divisor = multiplySmall(b, lambda),\r\n quotientDigit, shift, carry, borrow, i, l, q;\r\n if (remainder.length <= a_l) remainder.push(0);\r\n divisor.push(0);\r\n divisorMostSignificantDigit = divisor[b_l - 1];\r\n for (shift = a_l - b_l; shift >= 0; shift--) {\r\n quotientDigit = base - 1;\r\n if (remainder[shift + b_l] !== divisorMostSignificantDigit) {\r\n quotientDigit = Math.floor((remainder[shift + b_l] * base + remainder[shift + b_l - 1]) / divisorMostSignificantDigit);\r\n }\r\n // quotientDigit <= base - 1\r\n carry = 0;\r\n borrow = 0;\r\n l = divisor.length;\r\n for (i = 0; i < l; i++) {\r\n carry += quotientDigit * divisor[i];\r\n q = Math.floor(carry / base);\r\n borrow += remainder[shift + i] - (carry - q * base);\r\n carry = q;\r\n if (borrow < 0) {\r\n remainder[shift + i] = borrow + base;\r\n borrow = -1;\r\n } else {\r\n remainder[shift + i] = borrow;\r\n borrow = 0;\r\n }\r\n }\r\n while (borrow !== 0) {\r\n quotientDigit -= 1;\r\n carry = 0;\r\n for (i = 0; i < l; i++) {\r\n carry += remainder[shift + i] - base + divisor[i];\r\n if (carry < 0) {\r\n remainder[shift + i] = carry + base;\r\n carry = 0;\r\n } else {\r\n remainder[shift + i] = carry;\r\n carry = 1;\r\n }\r\n }\r\n borrow += carry;\r\n }\r\n result[shift] = quotientDigit;\r\n }\r\n // denormalization\r\n remainder = divModSmall(remainder, lambda)[0];\r\n return [arrayToSmall(result), arrayToSmall(remainder)];\r\n }\r\n\r\n function divMod2(a, b) { // Implementation idea shamelessly stolen from Silent Matt's library http://silentmatt.com/biginteger/\r\n // Performs faster than divMod1 on larger input sizes.\r\n var a_l = a.length,\r\n b_l = b.length,\r\n result = [],\r\n part = [],\r\n base = BASE,\r\n guess, xlen, highx, highy, check;\r\n while (a_l) {\r\n part.unshift(a[--a_l]);\r\n trim(part);\r\n if (compareAbs(part, b) < 0) {\r\n result.push(0);\r\n continue;\r\n }\r\n xlen = part.length;\r\n highx = part[xlen - 1] * base + part[xlen - 2];\r\n highy = b[b_l - 1] * base + b[b_l - 2];\r\n if (xlen > b_l) {\r\n highx = (highx + 1) * base;\r\n }\r\n guess = Math.ceil(highx / highy);\r\n do {\r\n check = multiplySmall(b, guess);\r\n if (compareAbs(check, part) <= 0) break;\r\n guess--;\r\n } while (guess);\r\n result.push(guess);\r\n part = subtract(part, check);\r\n }\r\n result.reverse();\r\n return [arrayToSmall(result), arrayToSmall(part)];\r\n }\r\n\r\n function divModSmall(value, lambda) {\r\n var length = value.length,\r\n quotient = createArray(length),\r\n base = BASE,\r\n i, q, remainder, divisor;\r\n remainder = 0;\r\n for (i = length - 1; i >= 0; --i) {\r\n divisor = remainder * base + value[i];\r\n q = truncate(divisor / lambda);\r\n remainder = divisor - q * lambda;\r\n quotient[i] = q | 0;\r\n }\r\n return [quotient, remainder | 0];\r\n }\r\n\r\n function divModAny(self, v) {\r\n var value, n = parseValue(v);\r\n if (supportsNativeBigInt) {\r\n return [new NativeBigInt(self.value / n.value), new NativeBigInt(self.value % n.value)];\r\n }\r\n var a = self.value, b = n.value;\r\n var quotient;\r\n if (b === 0) throw new Error(\"Cannot divide by zero\");\r\n if (self.isSmall) {\r\n if (n.isSmall) {\r\n return [new SmallInteger(truncate(a / b)), new SmallInteger(a % b)];\r\n }\r\n return [Integer[0], self];\r\n }\r\n if (n.isSmall) {\r\n if (b === 1) return [self, Integer[0]];\r\n if (b == -1) return [self.negate(), Integer[0]];\r\n var abs = Math.abs(b);\r\n if (abs < BASE) {\r\n value = divModSmall(a, abs);\r\n quotient = arrayToSmall(value[0]);\r\n var remainder = value[1];\r\n if (self.sign) remainder = -remainder;\r\n if (typeof quotient === \"number\") {\r\n if (self.sign !== n.sign) quotient = -quotient;\r\n return [new SmallInteger(quotient), new SmallInteger(remainder)];\r\n }\r\n return [new BigInteger(quotient, self.sign !== n.sign), new SmallInteger(remainder)];\r\n }\r\n b = smallToArray(abs);\r\n }\r\n var comparison = compareAbs(a, b);\r\n if (comparison === -1) return [Integer[0], self];\r\n if (comparison === 0) return [Integer[self.sign === n.sign ? 1 : -1], Integer[0]];\r\n\r\n // divMod1 is faster on smaller input sizes\r\n if (a.length + b.length <= 200)\r\n value = divMod1(a, b);\r\n else value = divMod2(a, b);\r\n\r\n quotient = value[0];\r\n var qSign = self.sign !== n.sign,\r\n mod = value[1],\r\n mSign = self.sign;\r\n if (typeof quotient === \"number\") {\r\n if (qSign) quotient = -quotient;\r\n quotient = new SmallInteger(quotient);\r\n } else quotient = new BigInteger(quotient, qSign);\r\n if (typeof mod === \"number\") {\r\n if (mSign) mod = -mod;\r\n mod = new SmallInteger(mod);\r\n } else mod = new BigInteger(mod, mSign);\r\n return [quotient, mod];\r\n }\r\n\r\n BigInteger.prototype.divmod = function (v) {\r\n var result = divModAny(this, v);\r\n return {\r\n quotient: result[0],\r\n remainder: result[1]\r\n };\r\n };\r\n NativeBigInt.prototype.divmod = SmallInteger.prototype.divmod = BigInteger.prototype.divmod;\r\n\r\n\r\n BigInteger.prototype.divide = function (v) {\r\n return divModAny(this, v)[0];\r\n };\r\n NativeBigInt.prototype.over = NativeBigInt.prototype.divide = function (v) {\r\n return new NativeBigInt(this.value / parseValue(v).value);\r\n };\r\n SmallInteger.prototype.over = SmallInteger.prototype.divide = BigInteger.prototype.over = BigInteger.prototype.divide;\r\n\r\n BigInteger.prototype.mod = function (v) {\r\n return divModAny(this, v)[1];\r\n };\r\n NativeBigInt.prototype.mod = NativeBigInt.prototype.remainder = function (v) {\r\n return new NativeBigInt(this.value % parseValue(v).value);\r\n };\r\n SmallInteger.prototype.remainder = SmallInteger.prototype.mod = BigInteger.prototype.remainder = BigInteger.prototype.mod;\r\n\r\n BigInteger.prototype.pow = function (v) {\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value,\r\n value, x, y;\r\n if (b === 0) return Integer[1];\r\n if (a === 0) return Integer[0];\r\n if (a === 1) return Integer[1];\r\n if (a === -1) return n.isEven() ? Integer[1] : Integer[-1];\r\n if (n.sign) {\r\n return Integer[0];\r\n }\r\n if (!n.isSmall) throw new Error(\"The exponent \" + n.toString() + \" is too large.\");\r\n if (this.isSmall) {\r\n if (isPrecise(value = Math.pow(a, b)))\r\n return new SmallInteger(truncate(value));\r\n }\r\n x = this;\r\n y = Integer[1];\r\n while (true) {\r\n if (b & 1 === 1) {\r\n y = y.times(x);\r\n --b;\r\n }\r\n if (b === 0) break;\r\n b /= 2;\r\n x = x.square();\r\n }\r\n return y;\r\n };\r\n SmallInteger.prototype.pow = BigInteger.prototype.pow;\r\n\r\n NativeBigInt.prototype.pow = function (v) {\r\n var n = parseValue(v);\r\n var a = this.value, b = n.value;\r\n var _0 = BigInt(0), _1 = BigInt(1), _2 = BigInt(2);\r\n if (b === _0) return Integer[1];\r\n if (a === _0) return Integer[0];\r\n if (a === _1) return Integer[1];\r\n if (a === BigInt(-1)) return n.isEven() ? Integer[1] : Integer[-1];\r\n if (n.isNegative()) return new NativeBigInt(_0);\r\n var x = this;\r\n var y = Integer[1];\r\n while (true) {\r\n if ((b & _1) === _1) {\r\n y = y.times(x);\r\n --b;\r\n }\r\n if (b === _0) break;\r\n b /= _2;\r\n x = x.square();\r\n }\r\n return y;\r\n }\r\n\r\n BigInteger.prototype.modPow = function (exp, mod) {\r\n exp = parseValue(exp);\r\n mod = parseValue(mod);\r\n if (mod.isZero()) throw new Error(\"Cannot take modPow with modulus 0\");\r\n var r = Integer[1],\r\n base = this.mod(mod);\r\n if (exp.isNegative()) {\r\n exp = exp.multiply(Integer[-1]);\r\n base = base.modInv(mod);\r\n }\r\n while (exp.isPositive()) {\r\n if (base.isZero()) return Integer[0];\r\n if (exp.isOdd()) r = r.multiply(base).mod(mod);\r\n exp = exp.divide(2);\r\n base = base.square().mod(mod);\r\n }\r\n return r;\r\n };\r\n NativeBigInt.prototype.modPow = SmallInteger.prototype.modPow = BigInteger.prototype.modPow;\r\n\r\n function compareAbs(a, b) {\r\n if (a.length !== b.length) {\r\n return a.length > b.length ? 1 : -1;\r\n }\r\n for (var i = a.length - 1; i >= 0; i--) {\r\n if (a[i] !== b[i]) return a[i] > b[i] ? 1 : -1;\r\n }\r\n return 0;\r\n }\r\n\r\n BigInteger.prototype.compareAbs = function (v) {\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value;\r\n if (n.isSmall) return 1;\r\n return compareAbs(a, b);\r\n };\r\n SmallInteger.prototype.compareAbs = function (v) {\r\n var n = parseValue(v),\r\n a = Math.abs(this.value),\r\n b = n.value;\r\n if (n.isSmall) {\r\n b = Math.abs(b);\r\n return a === b ? 0 : a > b ? 1 : -1;\r\n }\r\n return -1;\r\n };\r\n NativeBigInt.prototype.compareAbs = function (v) {\r\n var a = this.value;\r\n var b = parseValue(v).value;\r\n a = a >= 0 ? a : -a;\r\n b = b >= 0 ? b : -b;\r\n return a === b ? 0 : a > b ? 1 : -1;\r\n }\r\n\r\n BigInteger.prototype.compare = function (v) {\r\n // See discussion about comparison with Infinity:\r\n // https://github.com/peterolson/BigInteger.js/issues/61\r\n if (v === Infinity) {\r\n return -1;\r\n }\r\n if (v === -Infinity) {\r\n return 1;\r\n }\r\n\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value;\r\n if (this.sign !== n.sign) {\r\n return n.sign ? 1 : -1;\r\n }\r\n if (n.isSmall) {\r\n return this.sign ? -1 : 1;\r\n }\r\n return compareAbs(a, b) * (this.sign ? -1 : 1);\r\n };\r\n BigInteger.prototype.compareTo = BigInteger.prototype.compare;\r\n\r\n SmallInteger.prototype.compare = function (v) {\r\n if (v === Infinity) {\r\n return -1;\r\n }\r\n if (v === -Infinity) {\r\n return 1;\r\n }\r\n\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value;\r\n if (n.isSmall) {\r\n return a == b ? 0 : a > b ? 1 : -1;\r\n }\r\n if (a < 0 !== n.sign) {\r\n return a < 0 ? -1 : 1;\r\n }\r\n return a < 0 ? 1 : -1;\r\n };\r\n SmallInteger.prototype.compareTo = SmallInteger.prototype.compare;\r\n\r\n NativeBigInt.prototype.compare = function (v) {\r\n if (v === Infinity) {\r\n return -1;\r\n }\r\n if (v === -Infinity) {\r\n return 1;\r\n }\r\n var a = this.value;\r\n var b = parseValue(v).value;\r\n return a === b ? 0 : a > b ? 1 : -1;\r\n }\r\n NativeBigInt.prototype.compareTo = NativeBigInt.prototype.compare;\r\n\r\n BigInteger.prototype.equals = function (v) {\r\n return this.compare(v) === 0;\r\n };\r\n NativeBigInt.prototype.eq = NativeBigInt.prototype.equals = SmallInteger.prototype.eq = SmallInteger.prototype.equals = BigInteger.prototype.eq = BigInteger.prototype.equals;\r\n\r\n BigInteger.prototype.notEquals = function (v) {\r\n return this.compare(v) !== 0;\r\n };\r\n NativeBigInt.prototype.neq = NativeBigInt.prototype.notEquals = SmallInteger.prototype.neq = SmallInteger.prototype.notEquals = BigInteger.prototype.neq = BigInteger.prototype.notEquals;\r\n\r\n BigInteger.prototype.greater = function (v) {\r\n return this.compare(v) > 0;\r\n };\r\n NativeBigInt.prototype.gt = NativeBigInt.prototype.greater = SmallInteger.prototype.gt = SmallInteger.prototype.greater = BigInteger.prototype.gt = BigInteger.prototype.greater;\r\n\r\n BigInteger.prototype.lesser = function (v) {\r\n return this.compare(v) < 0;\r\n };\r\n NativeBigInt.prototype.lt = NativeBigInt.prototype.lesser = SmallInteger.prototype.lt = SmallInteger.prototype.lesser = BigInteger.prototype.lt = BigInteger.prototype.lesser;\r\n\r\n BigInteger.prototype.greaterOrEquals = function (v) {\r\n return this.compare(v) >= 0;\r\n };\r\n NativeBigInt.prototype.geq = NativeBigInt.prototype.greaterOrEquals = SmallInteger.prototype.geq = SmallInteger.prototype.greaterOrEquals = BigInteger.prototype.geq = BigInteger.prototype.greaterOrEquals;\r\n\r\n BigInteger.prototype.lesserOrEquals = function (v) {\r\n return this.compare(v) <= 0;\r\n };\r\n NativeBigInt.prototype.leq = NativeBigInt.prototype.lesserOrEquals = SmallInteger.prototype.leq = SmallInteger.prototype.lesserOrEquals = BigInteger.prototype.leq = BigInteger.prototype.lesserOrEquals;\r\n\r\n BigInteger.prototype.isEven = function () {\r\n return (this.value[0] & 1) === 0;\r\n };\r\n SmallInteger.prototype.isEven = function () {\r\n return (this.value & 1) === 0;\r\n };\r\n NativeBigInt.prototype.isEven = function () {\r\n return (this.value & BigInt(1)) === BigInt(0);\r\n }\r\n\r\n BigInteger.prototype.isOdd = function () {\r\n return (this.value[0] & 1) === 1;\r\n };\r\n SmallInteger.prototype.isOdd = function () {\r\n return (this.value & 1) === 1;\r\n };\r\n NativeBigInt.prototype.isOdd = function () {\r\n return (this.value & BigInt(1)) === BigInt(1);\r\n }\r\n\r\n BigInteger.prototype.isPositive = function () {\r\n return !this.sign;\r\n };\r\n SmallInteger.prototype.isPositive = function () {\r\n return this.value > 0;\r\n };\r\n NativeBigInt.prototype.isPositive = SmallInteger.prototype.isPositive;\r\n\r\n BigInteger.prototype.isNegative = function () {\r\n return this.sign;\r\n };\r\n SmallInteger.prototype.isNegative = function () {\r\n return this.value < 0;\r\n };\r\n NativeBigInt.prototype.isNegative = SmallInteger.prototype.isNegative;\r\n\r\n BigInteger.prototype.isUnit = function () {\r\n return false;\r\n };\r\n SmallInteger.prototype.isUnit = function () {\r\n return Math.abs(this.value) === 1;\r\n };\r\n NativeBigInt.prototype.isUnit = function () {\r\n return this.abs().value === BigInt(1);\r\n }\r\n\r\n BigInteger.prototype.isZero = function () {\r\n return false;\r\n };\r\n SmallInteger.prototype.isZero = function () {\r\n return this.value === 0;\r\n };\r\n NativeBigInt.prototype.isZero = function () {\r\n return this.value === BigInt(0);\r\n }\r\n\r\n BigInteger.prototype.isDivisibleBy = function (v) {\r\n var n = parseValue(v);\r\n if (n.isZero()) return false;\r\n if (n.isUnit()) return true;\r\n if (n.compareAbs(2) === 0) return this.isEven();\r\n return this.mod(n).isZero();\r\n };\r\n NativeBigInt.prototype.isDivisibleBy = SmallInteger.prototype.isDivisibleBy = BigInteger.prototype.isDivisibleBy;\r\n\r\n function isBasicPrime(v) {\r\n var n = v.abs();\r\n if (n.isUnit()) return false;\r\n if (n.equals(2) || n.equals(3) || n.equals(5)) return true;\r\n if (n.isEven() || n.isDivisibleBy(3) || n.isDivisibleBy(5)) return false;\r\n if (n.lesser(49)) return true;\r\n // we don't know if it's prime: let the other functions figure it out\r\n }\r\n\r\n function millerRabinTest(n, a) {\r\n var nPrev = n.prev(),\r\n b = nPrev,\r\n r = 0,\r\n d, t, i, x;\r\n while (b.isEven()) b = b.divide(2), r++;\r\n next: for (i = 0; i < a.length; i++) {\r\n if (n.lesser(a[i])) continue;\r\n x = bigInt(a[i]).modPow(b, n);\r\n if (x.isUnit() || x.equals(nPrev)) continue;\r\n for (d = r - 1; d != 0; d--) {\r\n x = x.square().mod(n);\r\n if (x.isUnit()) return false;\r\n if (x.equals(nPrev)) continue next;\r\n }\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n // Set \"strict\" to true to force GRH-supported lower bound of 2*log(N)^2\r\n BigInteger.prototype.isPrime = function (strict) {\r\n var isPrime = isBasicPrime(this);\r\n if (isPrime !== undefined) return isPrime;\r\n var n = this.abs();\r\n var bits = n.bitLength();\r\n if (bits <= 64)\r\n return millerRabinTest(n, [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]);\r\n var logN = Math.log(2) * bits.toJSNumber();\r\n var t = Math.ceil((strict === true) ? (2 * Math.pow(logN, 2)) : logN);\r\n for (var a = [], i = 0; i < t; i++) {\r\n a.push(bigInt(i + 2));\r\n }\r\n return millerRabinTest(n, a);\r\n };\r\n NativeBigInt.prototype.isPrime = SmallInteger.prototype.isPrime = BigInteger.prototype.isPrime;\r\n\r\n BigInteger.prototype.isProbablePrime = function (iterations, rng) {\r\n var isPrime = isBasicPrime(this);\r\n if (isPrime !== undefined) return isPrime;\r\n var n = this.abs();\r\n var t = iterations === undefined ? 5 : iterations;\r\n for (var a = [], i = 0; i < t; i++) {\r\n a.push(bigInt.randBetween(2, n.minus(2), rng));\r\n }\r\n return millerRabinTest(n, a);\r\n };\r\n NativeBigInt.prototype.isProbablePrime = SmallInteger.prototype.isProbablePrime = BigInteger.prototype.isProbablePrime;\r\n\r\n BigInteger.prototype.modInv = function (n) {\r\n var t = bigInt.zero, newT = bigInt.one, r = parseValue(n), newR = this.abs(), q, lastT, lastR;\r\n while (!newR.isZero()) {\r\n q = r.divide(newR);\r\n lastT = t;\r\n lastR = r;\r\n t = newT;\r\n r = newR;\r\n newT = lastT.subtract(q.multiply(newT));\r\n newR = lastR.subtract(q.multiply(newR));\r\n }\r\n if (!r.isUnit()) throw new Error(this.toString() + \" and \" + n.toString() + \" are not co-prime\");\r\n if (t.compare(0) === -1) {\r\n t = t.add(n);\r\n }\r\n if (this.isNegative()) {\r\n return t.negate();\r\n }\r\n return t;\r\n };\r\n\r\n NativeBigInt.prototype.modInv = SmallInteger.prototype.modInv = BigInteger.prototype.modInv;\r\n\r\n BigInteger.prototype.next = function () {\r\n var value = this.value;\r\n if (this.sign) {\r\n return subtractSmall(value, 1, this.sign);\r\n }\r\n return new BigInteger(addSmall(value, 1), this.sign);\r\n };\r\n SmallInteger.prototype.next = function () {\r\n var value = this.value;\r\n if (value + 1 < MAX_INT) return new SmallInteger(value + 1);\r\n return new BigInteger(MAX_INT_ARR, false);\r\n };\r\n NativeBigInt.prototype.next = function () {\r\n return new NativeBigInt(this.value + BigInt(1));\r\n }\r\n\r\n BigInteger.prototype.prev = function () {\r\n var value = this.value;\r\n if (this.sign) {\r\n return new BigInteger(addSmall(value, 1), true);\r\n }\r\n return subtractSmall(value, 1, this.sign);\r\n };\r\n SmallInteger.prototype.prev = function () {\r\n var value = this.value;\r\n if (value - 1 > -MAX_INT) return new SmallInteger(value - 1);\r\n return new BigInteger(MAX_INT_ARR, true);\r\n };\r\n NativeBigInt.prototype.prev = function () {\r\n return new NativeBigInt(this.value - BigInt(1));\r\n }\r\n\r\n var powersOfTwo = [1];\r\n while (2 * powersOfTwo[powersOfTwo.length - 1] <= BASE) powersOfTwo.push(2 * powersOfTwo[powersOfTwo.length - 1]);\r\n var powers2Length = powersOfTwo.length, highestPower2 = powersOfTwo[powers2Length - 1];\r\n\r\n function shift_isSmall(n) {\r\n return Math.abs(n) <= BASE;\r\n }\r\n\r\n BigInteger.prototype.shiftLeft = function (v) {\r\n var n = parseValue(v).toJSNumber();\r\n if (!shift_isSmall(n)) {\r\n throw new Error(String(n) + \" is too large for shifting.\");\r\n }\r\n if (n < 0) return this.shiftRight(-n);\r\n var result = this;\r\n if (result.isZero()) return result;\r\n while (n >= powers2Length) {\r\n result = result.multiply(highestPower2);\r\n n -= powers2Length - 1;\r\n }\r\n return result.multiply(powersOfTwo[n]);\r\n };\r\n NativeBigInt.prototype.shiftLeft = SmallInteger.prototype.shiftLeft = BigInteger.prototype.shiftLeft;\r\n\r\n BigInteger.prototype.shiftRight = function (v) {\r\n var remQuo;\r\n var n = parseValue(v).toJSNumber();\r\n if (!shift_isSmall(n)) {\r\n throw new Error(String(n) + \" is too large for shifting.\");\r\n }\r\n if (n < 0) return this.shiftLeft(-n);\r\n var result = this;\r\n while (n >= powers2Length) {\r\n if (result.isZero() || (result.isNegative() && result.isUnit())) return result;\r\n remQuo = divModAny(result, highestPower2);\r\n result = remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0];\r\n n -= powers2Length - 1;\r\n }\r\n remQuo = divModAny(result, powersOfTwo[n]);\r\n return remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0];\r\n };\r\n NativeBigInt.prototype.shiftRight = SmallInteger.prototype.shiftRight = BigInteger.prototype.shiftRight;\r\n\r\n function bitwise(x, y, fn) {\r\n y = parseValue(y);\r\n var xSign = x.isNegative(), ySign = y.isNegative();\r\n var xRem = xSign ? x.not() : x,\r\n yRem = ySign ? y.not() : y;\r\n var xDigit = 0, yDigit = 0;\r\n var xDivMod = null, yDivMod = null;\r\n var result = [];\r\n while (!xRem.isZero() || !yRem.isZero()) {\r\n xDivMod = divModAny(xRem, highestPower2);\r\n xDigit = xDivMod[1].toJSNumber();\r\n if (xSign) {\r\n xDigit = highestPower2 - 1 - xDigit; // two's complement for negative numbers\r\n }\r\n\r\n yDivMod = divModAny(yRem, highestPower2);\r\n yDigit = yDivMod[1].toJSNumber();\r\n if (ySign) {\r\n yDigit = highestPower2 - 1 - yDigit; // two's complement for negative numbers\r\n }\r\n\r\n xRem = xDivMod[0];\r\n yRem = yDivMod[0];\r\n result.push(fn(xDigit, yDigit));\r\n }\r\n var sum = fn(xSign ? 1 : 0, ySign ? 1 : 0) !== 0 ? bigInt(-1) : bigInt(0);\r\n for (var i = result.length - 1; i >= 0; i -= 1) {\r\n sum = sum.multiply(highestPower2).add(bigInt(result[i]));\r\n }\r\n return sum;\r\n }\r\n\r\n BigInteger.prototype.not = function () {\r\n return this.negate().prev();\r\n };\r\n NativeBigInt.prototype.not = SmallInteger.prototype.not = BigInteger.prototype.not;\r\n\r\n BigInteger.prototype.and = function (n) {\r\n return bitwise(this, n, function (a, b) { return a & b; });\r\n };\r\n NativeBigInt.prototype.and = SmallInteger.prototype.and = BigInteger.prototype.and;\r\n\r\n BigInteger.prototype.or = function (n) {\r\n return bitwise(this, n, function (a, b) { return a | b; });\r\n };\r\n NativeBigInt.prototype.or = SmallInteger.prototype.or = BigInteger.prototype.or;\r\n\r\n BigInteger.prototype.xor = function (n) {\r\n return bitwise(this, n, function (a, b) { return a ^ b; });\r\n };\r\n NativeBigInt.prototype.xor = SmallInteger.prototype.xor = BigInteger.prototype.xor;\r\n\r\n var LOBMASK_I = 1 << 30, LOBMASK_BI = (BASE & -BASE) * (BASE & -BASE) | LOBMASK_I;\r\n function roughLOB(n) { // get lowestOneBit (rough)\r\n // SmallInteger: return Min(lowestOneBit(n), 1 << 30)\r\n // BigInteger: return Min(lowestOneBit(n), 1 << 14) [BASE=1e7]\r\n var v = n.value,\r\n x = typeof v === \"number\" ? v | LOBMASK_I :\r\n typeof v === \"bigint\" ? v | BigInt(LOBMASK_I) :\r\n v[0] + v[1] * BASE | LOBMASK_BI;\r\n return x & -x;\r\n }\r\n\r\n function integerLogarithm(value, base) {\r\n if (base.compareTo(value) <= 0) {\r\n var tmp = integerLogarithm(value, base.square(base));\r\n var p = tmp.p;\r\n var e = tmp.e;\r\n var t = p.multiply(base);\r\n return t.compareTo(value) <= 0 ? { p: t, e: e * 2 + 1 } : { p: p, e: e * 2 };\r\n }\r\n return { p: bigInt(1), e: 0 };\r\n }\r\n\r\n BigInteger.prototype.bitLength = function () {\r\n var n = this;\r\n if (n.compareTo(bigInt(0)) < 0) {\r\n n = n.negate().subtract(bigInt(1));\r\n }\r\n if (n.compareTo(bigInt(0)) === 0) {\r\n return bigInt(0);\r\n }\r\n return bigInt(integerLogarithm(n, bigInt(2)).e).add(bigInt(1));\r\n }\r\n NativeBigInt.prototype.bitLength = SmallInteger.prototype.bitLength = BigInteger.prototype.bitLength;\r\n\r\n function max(a, b) {\r\n a = parseValue(a);\r\n b = parseValue(b);\r\n return a.greater(b) ? a : b;\r\n }\r\n function min(a, b) {\r\n a = parseValue(a);\r\n b = parseValue(b);\r\n return a.lesser(b) ? a : b;\r\n }\r\n function gcd(a, b) {\r\n a = parseValue(a).abs();\r\n b = parseValue(b).abs();\r\n if (a.equals(b)) return a;\r\n if (a.isZero()) return b;\r\n if (b.isZero()) return a;\r\n var c = Integer[1], d, t;\r\n while (a.isEven() && b.isEven()) {\r\n d = min(roughLOB(a), roughLOB(b));\r\n a = a.divide(d);\r\n b = b.divide(d);\r\n c = c.multiply(d);\r\n }\r\n while (a.isEven()) {\r\n a = a.divide(roughLOB(a));\r\n }\r\n do {\r\n while (b.isEven()) {\r\n b = b.divide(roughLOB(b));\r\n }\r\n if (a.greater(b)) {\r\n t = b; b = a; a = t;\r\n }\r\n b = b.subtract(a);\r\n } while (!b.isZero());\r\n return c.isUnit() ? a : a.multiply(c);\r\n }\r\n function lcm(a, b) {\r\n a = parseValue(a).abs();\r\n b = parseValue(b).abs();\r\n return a.divide(gcd(a, b)).multiply(b);\r\n }\r\n function randBetween(a, b, rng) {\r\n a = parseValue(a);\r\n b = parseValue(b);\r\n var usedRNG = rng || Math.random;\r\n var low = min(a, b), high = max(a, b);\r\n var range = high.subtract(low).add(1);\r\n if (range.isSmall) return low.add(Math.floor(usedRNG() * range));\r\n var digits = toBase(range, BASE).value;\r\n var result = [], restricted = true;\r\n for (var i = 0; i < digits.length; i++) {\r\n var top = restricted ? digits[i] + (i + 1 < digits.length ? digits[i + 1] / BASE : 0) : BASE;\r\n var digit = truncate(usedRNG() * top);\r\n result.push(digit);\r\n if (digit < digits[i]) restricted = false;\r\n }\r\n return low.add(Integer.fromArray(result, BASE, false));\r\n }\r\n\r\n var parseBase = function (text, base, alphabet, caseSensitive) {\r\n alphabet = alphabet || DEFAULT_ALPHABET;\r\n text = String(text);\r\n if (!caseSensitive) {\r\n text = text.toLowerCase();\r\n alphabet = alphabet.toLowerCase();\r\n }\r\n var length = text.length;\r\n var i;\r\n var absBase = Math.abs(base);\r\n var alphabetValues = {};\r\n for (i = 0; i < alphabet.length; i++) {\r\n alphabetValues[alphabet[i]] = i;\r\n }\r\n for (i = 0; i < length; i++) {\r\n var c = text[i];\r\n if (c === \"-\") continue;\r\n if (c in alphabetValues) {\r\n if (alphabetValues[c] >= absBase) {\r\n if (c === \"1\" && absBase === 1) continue;\r\n throw new Error(c + \" is not a valid digit in base \" + base + \".\");\r\n }\r\n }\r\n }\r\n base = parseValue(base);\r\n var digits = [];\r\n var isNegative = text[0] === \"-\";\r\n for (i = isNegative ? 1 : 0; i < text.length; i++) {\r\n var c = text[i];\r\n if (c in alphabetValues) digits.push(parseValue(alphabetValues[c]));\r\n else if (c === \"<\") {\r\n var start = i;\r\n do { i++; } while (text[i] !== \">\" && i < text.length);\r\n digits.push(parseValue(text.slice(start + 1, i)));\r\n }\r\n else throw new Error(c + \" is not a valid character\");\r\n }\r\n return parseBaseFromArray(digits, base, isNegative);\r\n };\r\n\r\n function parseBaseFromArray(digits, base, isNegative) {\r\n var val = Integer[0], pow = Integer[1], i;\r\n for (i = digits.length - 1; i >= 0; i--) {\r\n val = val.add(digits[i].times(pow));\r\n pow = pow.times(base);\r\n }\r\n return isNegative ? val.negate() : val;\r\n }\r\n\r\n function stringify(digit, alphabet) {\r\n alphabet = alphabet || DEFAULT_ALPHABET;\r\n if (digit < alphabet.length) {\r\n return alphabet[digit];\r\n }\r\n return \"<\" + digit + \">\";\r\n }\r\n\r\n function toBase(n, base) {\r\n base = bigInt(base);\r\n if (base.isZero()) {\r\n if (n.isZero()) return { value: [0], isNegative: false };\r\n throw new Error(\"Cannot convert nonzero numbers to base 0.\");\r\n }\r\n if (base.equals(-1)) {\r\n if (n.isZero()) return { value: [0], isNegative: false };\r\n if (n.isNegative())\r\n return {\r\n value: [].concat.apply([], Array.apply(null, Array(-n.toJSNumber()))\r\n .map(Array.prototype.valueOf, [1, 0])\r\n ),\r\n isNegative: false\r\n };\r\n\r\n var arr = Array.apply(null, Array(n.toJSNumber() - 1))\r\n .map(Array.prototype.valueOf, [0, 1]);\r\n arr.unshift([1]);\r\n return {\r\n value: [].concat.apply([], arr),\r\n isNegative: false\r\n };\r\n }\r\n\r\n var neg = false;\r\n if (n.isNegative() && base.isPositive()) {\r\n neg = true;\r\n n = n.abs();\r\n }\r\n if (base.isUnit()) {\r\n if (n.isZero()) return { value: [0], isNegative: false };\r\n\r\n return {\r\n value: Array.apply(null, Array(n.toJSNumber()))\r\n .map(Number.prototype.valueOf, 1),\r\n isNegative: neg\r\n };\r\n }\r\n var out = [];\r\n var left = n, divmod;\r\n while (left.isNegative() || left.compareAbs(base) >= 0) {\r\n divmod = left.divmod(base);\r\n left = divmod.quotient;\r\n var digit = divmod.remainder;\r\n if (digit.isNegative()) {\r\n digit = base.minus(digit).abs();\r\n left = left.next();\r\n }\r\n out.push(digit.toJSNumber());\r\n }\r\n out.push(left.toJSNumber());\r\n return { value: out.reverse(), isNegative: neg };\r\n }\r\n\r\n function toBaseString(n, base, alphabet) {\r\n var arr = toBase(n, base);\r\n return (arr.isNegative ? \"-\" : \"\") + arr.value.map(function (x) {\r\n return stringify(x, alphabet);\r\n }).join('');\r\n }\r\n\r\n BigInteger.prototype.toArray = function (radix) {\r\n return toBase(this, radix);\r\n };\r\n\r\n SmallInteger.prototype.toArray = function (radix) {\r\n return toBase(this, radix);\r\n };\r\n\r\n NativeBigInt.prototype.toArray = function (radix) {\r\n return toBase(this, radix);\r\n };\r\n\r\n BigInteger.prototype.toString = function (radix, alphabet) {\r\n if (radix === undefined) radix = 10;\r\n if (radix !== 10 || alphabet) return toBaseString(this, radix, alphabet);\r\n var v = this.value, l = v.length, str = String(v[--l]), zeros = \"0000000\", digit;\r\n while (--l >= 0) {\r\n digit = String(v[l]);\r\n str += zeros.slice(digit.length) + digit;\r\n }\r\n var sign = this.sign ? \"-\" : \"\";\r\n return sign + str;\r\n };\r\n\r\n SmallInteger.prototype.toString = function (radix, alphabet) {\r\n if (radix === undefined) radix = 10;\r\n if (radix != 10 || alphabet) return toBaseString(this, radix, alphabet);\r\n return String(this.value);\r\n };\r\n\r\n NativeBigInt.prototype.toString = SmallInteger.prototype.toString;\r\n\r\n NativeBigInt.prototype.toJSON = BigInteger.prototype.toJSON = SmallInteger.prototype.toJSON = function () { return this.toString(); }\r\n\r\n BigInteger.prototype.valueOf = function () {\r\n return parseInt(this.toString(), 10);\r\n };\r\n BigInteger.prototype.toJSNumber = BigInteger.prototype.valueOf;\r\n\r\n SmallInteger.prototype.valueOf = function () {\r\n return this.value;\r\n };\r\n SmallInteger.prototype.toJSNumber = SmallInteger.prototype.valueOf;\r\n NativeBigInt.prototype.valueOf = NativeBigInt.prototype.toJSNumber = function () {\r\n return parseInt(this.toString(), 10);\r\n }\r\n\r\n function parseStringValue(v) {\r\n if (isPrecise(+v)) {\r\n var x = +v;\r\n if (x === truncate(x))\r\n return supportsNativeBigInt ? new NativeBigInt(BigInt(x)) : new SmallInteger(x);\r\n throw new Error(\"Invalid integer: \" + v);\r\n }\r\n var sign = v[0] === \"-\";\r\n if (sign) v = v.slice(1);\r\n var split = v.split(/e/i);\r\n if (split.length > 2) throw new Error(\"Invalid integer: \" + split.join(\"e\"));\r\n if (split.length === 2) {\r\n var exp = split[1];\r\n if (exp[0] === \"+\") exp = exp.slice(1);\r\n exp = +exp;\r\n if (exp !== truncate(exp) || !isPrecise(exp)) throw new Error(\"Invalid integer: \" + exp + \" is not a valid exponent.\");\r\n var text = split[0];\r\n var decimalPlace = text.indexOf(\".\");\r\n if (decimalPlace >= 0) {\r\n exp -= text.length - decimalPlace - 1;\r\n text = text.slice(0, decimalPlace) + text.slice(decimalPlace + 1);\r\n }\r\n if (exp < 0) throw new Error(\"Cannot include negative exponent part for integers\");\r\n text += (new Array(exp + 1)).join(\"0\");\r\n v = text;\r\n }\r\n var isValid = /^([0-9][0-9]*)$/.test(v);\r\n if (!isValid) throw new Error(\"Invalid integer: \" + v);\r\n if (supportsNativeBigInt) {\r\n return new NativeBigInt(BigInt(sign ? \"-\" + v : v));\r\n }\r\n var r = [], max = v.length, l = LOG_BASE, min = max - l;\r\n while (max > 0) {\r\n r.push(+v.slice(min, max));\r\n min -= l;\r\n if (min < 0) min = 0;\r\n max -= l;\r\n }\r\n trim(r);\r\n return new BigInteger(r, sign);\r\n }\r\n\r\n function parseNumberValue(v) {\r\n if (supportsNativeBigInt) {\r\n return new NativeBigInt(BigInt(v));\r\n }\r\n if (isPrecise(v)) {\r\n if (v !== truncate(v)) throw new Error(v + \" is not an integer.\");\r\n return new SmallInteger(v);\r\n }\r\n return parseStringValue(v.toString());\r\n }\r\n\r\n function parseValue(v) {\r\n if (typeof v === \"number\") {\r\n return parseNumberValue(v);\r\n }\r\n if (typeof v === \"string\") {\r\n return parseStringValue(v);\r\n }\r\n if (typeof v === \"bigint\") {\r\n return new NativeBigInt(v);\r\n }\r\n return v;\r\n }\r\n // Pre-define numbers in range [-999,999]\r\n for (var i = 0; i < 1000; i++) {\r\n Integer[i] = parseValue(i);\r\n if (i > 0) Integer[-i] = parseValue(-i);\r\n }\r\n // Backwards compatibility\r\n Integer.one = Integer[1];\r\n Integer.zero = Integer[0];\r\n Integer.minusOne = Integer[-1];\r\n Integer.max = max;\r\n Integer.min = min;\r\n Integer.gcd = gcd;\r\n Integer.lcm = lcm;\r\n Integer.isInstance = function (x) { return x instanceof BigInteger || x instanceof SmallInteger || x instanceof NativeBigInt; };\r\n Integer.randBetween = randBetween;\r\n\r\n Integer.fromArray = function (digits, base, isNegative) {\r\n return parseBaseFromArray(digits.map(parseValue), parseValue(base || 10), isNegative);\r\n };\r\n\r\n return Integer;\r\n})();\r\n\r\n// Node.js check\r\nif (typeof module !== \"undefined\" && module.hasOwnProperty(\"exports\")) {\r\n module.exports = bigInt;\r\n}\r\n\r\n//amd check\r\nif (typeof define === \"function\" && define.amd) {\r\n define( function () {\r\n return bigInt;\r\n });\r\n}\r\n","var cryptoUtils = require('./crypto/utils')\r\nvar baseX = require('base-x')\r\n\r\nvar ALLOWED_CHARS = 'rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz'\r\n\r\nvar codec = baseX(ALLOWED_CHARS)\r\nvar regexp = new RegExp('^r[' + ALLOWED_CHARS + ']{24,34}$')\r\n\r\nmodule.exports = {\r\n /**\r\n * ripple address validation\r\n */\r\n isValidAddress: function (address) {\r\n if (regexp.test(address)) {\r\n return this.verifyChecksum(address)\r\n }\r\n\r\n return false\r\n },\r\n\r\n verifyChecksum: function (address) {\r\n var bytes = codec.decode(address)\r\n var computedChecksum = cryptoUtils.sha256Checksum(cryptoUtils.toHex(bytes.slice(0, -4)))\r\n var checksum = cryptoUtils.toHex(bytes.slice(-4))\r\n\r\n return computedChecksum === checksum\r\n }\r\n}\r\n","/**\n * @license\n * https://github.com/bitcoincashjs/cashaddr\n * Copyright (c) 2017-2018 Emilio Almansi\n * Distributed under the MIT software license, see the accompanying\n * file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n */\n\n'use strict';\n\nvar validate = require('./validation').validate;\n\n/**\n * Base32 encoding and decoding.\n *\n * @module base32\n */\n\n/**\n * Charset containing the 32 symbols used in the base32 encoding.\n * @private\n */\nvar CHARSET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l';\n\n/**\n * Inverted index mapping each symbol into its index within the charset.\n * @private\n */\nvar CHARSET_INVERSE_INDEX = {\n 'q': 0, 'p': 1, 'z': 2, 'r': 3, 'y': 4, '9': 5, 'x': 6, '8': 7,\n 'g': 8, 'f': 9, '2': 10, 't': 11, 'v': 12, 'd': 13, 'w': 14, '0': 15,\n 's': 16, '3': 17, 'j': 18, 'n': 19, '5': 20, '4': 21, 'k': 22, 'h': 23,\n 'c': 24, 'e': 25, '6': 26, 'm': 27, 'u': 28, 'a': 29, '7': 30, 'l': 31,\n};\n\n/**\n * Encodes the given array of 5-bit integers as a base32-encoded string.\n *\n * @static\n * @param {Uint8Array} data Array of integers between 0 and 31 inclusive.\n * @returns {string}\n * @throws {ValidationError}\n */\nfunction encode(data) {\n validate(data instanceof Uint8Array, 'Invalid data: ' + data + '.');\n var base32 = '';\n for (var i = 0; i < data.length; ++i) {\n var value = data[i];\n validate(0 <= value && value < 32, 'Invalid value: ' + value + '.');\n base32 += CHARSET[value];\n }\n return base32;\n}\n\n/**\n * Decodes the given base32-encoded string into an array of 5-bit integers.\n *\n * @static\n * @param {string} string\n * @returns {Uint8Array}\n * @throws {ValidationError}\n */\nfunction decode(string) {\n validate(typeof string === 'string', 'Invalid base32-encoded string: ' + string + '.');\n var data = new Uint8Array(string.length);\n for (var i = 0; i < string.length; ++i) {\n var value = string[i];\n validate(value in CHARSET_INVERSE_INDEX, 'Invalid value: ' + value + '.');\n data[i] = CHARSET_INVERSE_INDEX[value];\n }\n return data;\n}\n\nmodule.exports = {\n encode: encode,\n decode: decode,\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","var base58 = require('./crypto/base58')\r\n\r\nfunction getDecoded (address) {\r\n try {\r\n return base58.decode(address)\r\n } catch (e) {\r\n // if decoding fails, assume invalid address\r\n return null\r\n }\r\n}\r\n\r\nmodule.exports = {\r\n isValidAddress: function (address) {\r\n var decoded = getDecoded(address)\r\n\r\n if (!decoded || !Array.isArray(decoded) || decoded.length !== 27) {\r\n return false\r\n }\r\n\r\n return true\r\n }\r\n}\r\n","\"use strict\";\n/* copyright Paul Handy, 2017 */\nexports.__esModule = true;\n/* tslint:disable variable-name */\nfunction sum(a, b) {\n var s = a + b;\n switch (s) {\n case 2:\n return -1;\n case -2:\n return 1;\n default:\n return s;\n }\n}\nfunction cons(a, b) {\n if (a === b) {\n return a;\n }\n return 0;\n}\nfunction any(a, b) {\n var s = a + b;\n if (s > 0) {\n return 1;\n }\n else if (s < 0) {\n return -1;\n }\n return 0;\n}\nfunction full_add(a, b, c) {\n var s_a = sum(a, b);\n var c_a = cons(a, b);\n var c_b = cons(s_a, c);\n var c_out = any(c_a, c_b);\n var s_out = sum(s_a, c);\n return [s_out, c_out];\n}\nfunction add(a, b) {\n var out = new Int8Array(Math.max(a.length, b.length));\n var carry = 0;\n var a_i;\n var b_i;\n for (var i = 0; i < out.length; i++) {\n a_i = i < a.length ? a[i] : 0;\n b_i = i < b.length ? b[i] : 0;\n var f_a = full_add(a_i, b_i, carry);\n out[i] = f_a[0];\n carry = f_a[1];\n }\n return out;\n}\nexports.add = add;\nexports.increment = function (value) { return add(value, new Int8Array(1).fill(1)); };\n//# sourceMappingURL=add.js.map","function isValidICXAddress (address, currency, networkType) {\r\n var regex = /^hx[0-9a-f]{40}$/g // Begins with hx followed by 40 hex chars\r\n if (address.search(regex) !== -1) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n}\r\n\r\nmodule.exports = {\r\n isValidAddress: function (address, currency, networkType) {\r\n return isValidICXAddress(address, currency, networkType)\r\n }\r\n}\r\n","module.exports = require('./lib/_stream_duplex.js');\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n","\"use strict\";\nexports.__esModule = true;\nvar errors = require(\"../../errors\");\nrequire(\"../../typed-array\");\nexports.padTrytes = function (length) { return function (trytes) {\n return trytes.length < length ? trytes.concat('9'.repeat(length - trytes.length)) : trytes;\n}; };\nexports.padTrits = function (length) { return function (trits) {\n if (trits.length > length) {\n throw new Error(errors.ILLEGAL_PADDING_LENGTH);\n }\n var tritsCopy = new Int8Array(length);\n tritsCopy.set(trits, 0);\n return tritsCopy;\n}; };\nexports.padTag = exports.padTrytes(27);\nexports.padTagArray = function (tags) { return tags.map(exports.padTag); };\n//# sourceMappingURL=index.js.map","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","var { c32addressDecode } = require('c32check')\r\n\r\nmodule.exports = {\r\n isValidAddress: function (address, currency, networkType) {\r\n return this.verifyChecksum(address)\r\n },\r\n\r\n verifyChecksum: function (address) {\r\n let valid = false\r\n try {\r\n if (c32addressDecode(address)) {\r\n valid = true\r\n }\r\n } catch (e) {\r\n valid = false\r\n }\r\n return valid\r\n }\r\n}\r\n","module.exports = require('./readable').Transform\n","function isValidLiskAddress (address, currency, networkType) {\r\n var regex = /^[0-9]{1,20}L$/g // Must be numbers only for the first 1 - 20 charactors with a capital L at the end\r\n if (address.search(regex) !== -1) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n}\r\n\r\nmodule.exports = {\r\n isValidAddress: function (address, currency, networkType) {\r\n return isValidLiskAddress(address, currency, networkType)\r\n }\r\n}\r\n","/*\n * From https://github.com/wzbg/base58check\n * @Author: zyc\n * @Date: 2016-09-11 23:36:05\n */\n'use strict';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decode = exports.encode = void 0;\nvar buffer_1 = require(\"buffer/\");\nvar cross_sha256_1 = require(\"cross-sha256\");\nvar basex = require(\"base-x\");\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\nfunction encode(data, prefix, encoding) {\n if (prefix === void 0) { prefix = '00'; }\n if (encoding === void 0) { encoding = 'hex'; }\n if (typeof data === 'string') {\n data = new buffer_1.Buffer(data, encoding);\n }\n if (!(data instanceof buffer_1.Buffer)) {\n throw new TypeError('\"data\" argument must be an Array of Buffers');\n }\n if (!(prefix instanceof buffer_1.Buffer)) {\n prefix = new buffer_1.Buffer(prefix, encoding);\n }\n var hash = buffer_1.Buffer.concat([prefix, data]);\n hash = cross_sha256_1.hashSha256(hash);\n hash = cross_sha256_1.hashSha256(hash);\n hash = buffer_1.Buffer.concat([prefix, data, hash.slice(0, 4)]);\n return basex(ALPHABET).encode(hash);\n}\nexports.encode = encode;\nfunction decode(string, encoding) {\n var buffer = new buffer_1.Buffer(basex(ALPHABET).decode(string));\n var prefix = buffer.slice(0, 1);\n var data = buffer.slice(1, -4);\n var hash = buffer_1.Buffer.concat([prefix, data]);\n hash = cross_sha256_1.hashSha256(hash);\n hash = cross_sha256_1.hashSha256(hash);\n buffer.slice(-4).forEach(function (check, index) {\n if (check !== hash[index]) {\n throw new Error('Invalid checksum');\n }\n });\n if (encoding) {\n prefix = prefix.toString(encoding);\n data = data.toString(encoding);\n }\n return { prefix: prefix, data: data };\n}\nexports.decode = decode;\n","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;","var IOTA = require('@iota/validators')\r\n\r\nfunction isValidIotaAddress (address, currency, networkType) {\r\n var isValid = IOTA.isAddress(address)\r\n return isValid\r\n}\r\n\r\nmodule.exports = {\r\n isValidAddress: function (address, currency, networkType) {\r\n return isValidIotaAddress(address, currency, networkType)\r\n }\r\n}\r\n","\"use strict\";\nexports.__esModule = true;\nexports.ILLEGAL_LENGTH = 'Illegal trits length';\nexports.ILLEGAL_SUBSEED_INDEX = 'Illegal subseed length';\nexports.ILLEGAL_SUBSEED_LENGTH = 'Illegal subseed length';\nexports.ILLEGAL_NUMBER_OF_FRAGMENTS = 'Illegal number of fragments';\nexports.ILLEGAL_KEY_LENGTH = 'Illegal key length';\nexports.ILLEGAL_DIGESTS_LENGTH = 'Illegal digests length';\nexports.ILLEGAL_NORMALIZED_FRAGMENT_LENGTH = 'Illegal normalized fragment length';\nexports.ILLEGAL_SIGNATURE_FRAGMENT_LENGTH = 'Illegal signature fragment length';\nexports.ILLEGAL_BUNDLE_HASH_LENGTH = 'Illegal bundle hash length';\nexports.ILLEGAL_KEY_FRAGMENT_LENGTH = 'Illegal key fragment length';\nexports.ILLEGAL_TRIT_CONVERSION_INPUT = 'Illegal conversion input. Expected trits as Int8Array.';\nexports.ILLEGAL_TRYTE_CONVERSION_INPUT = 'Illegal conversion input. Expected trytes string or integer.';\nexports.ILLEGAL_MIN_WEIGHT_MAGNITUDE = 'Illegal minWeightMagnitude value.';\nexports.ILLEGAL_ADDRESS_LAST_TRIT = 'Illegal address. Last trit must be 0.';\nexports.ILLEGAL_ADDRESS_LENGTH = 'Illegal address length.';\nexports.ILLEGAL_BUNDLE_LENGTH = 'Illegal bundle hash length.';\nexports.ILLEGAL_OBSOLETE_TAG_LENGTH = 'Illegal obsoleteTag length.';\nexports.ILLEGAL_SIGNATURE_OR_MESSAGE = 'Illegal signature or message.';\nexports.ILLEGAL_SIGNATURE_OR_MESSAGE_LENGTH = 'Illegal signatureOrMessage length.';\nexports.ILLEGAL_TAG_LENGTH = 'Illegal tag length.';\nexports.ILLEGAL_ISSUANCE_TIMESTAMP = 'Illegal issuance timestamp';\nexports.ILLEGAL_ISSUANCE_TIMESTAMP_LENGTH = 'Illegal issuanceTimestamp length.';\nexports.ILLEGAL_VALUE_LENGTH = 'Illegal value length.';\nexports.ILLEGAL_TRANSACTION_FIELD_OFFSET = 'Illegal transaction field offset.';\nexports.ILLEGAL_TRANSACTION_FIELD_LENGTH = 'Illegal transaction field length.';\nexports.ILLEGAL_LENGTH_OR_OFFSET = 'Illegal length or offset.';\nexports.ILLEGAL_TRANSACTION_BUFFER = 'Illegal transaction buffer. Expected `Int8Array`.';\nexports.ILLEGAL_TRANSACTION_BUFFER_LENGTH = 'Illegal transaction buffer length.';\nexports.ILLEGAL_TRANSACTION_OFFSET = 'Illegal transaction offset.';\nexports.ILLEGAL_TRANSACTION_LENGTH = 'Illegal transaction length.';\nexports.ILLEGAL_TRANSACTION_ORDER = 'Illegal transaction order.';\nexports.ILLEGAL_TRANSACTION_INDEX = 'Illegal transaction index.';\nexports.ILLEGAL_SEED_LENGTH = 'Illegal seed length. Expected length of 243 trits.';\nexports.ILLEGAL_KEY_INDEX = 'Illegal key index.';\nexports.ILLEGAL_CDA_LENGTH = 'Illegal cda length.';\nexports.ILLEGAL_BATCH = 'Illegal batch.';\nexports.CDA_ALREADY_IN_STORE = 'CDA is already in store.';\nexports.ILLEGAL_PERSISTENCE_ID = 'Illegal persistence id.';\nexports.ILLEGAL_PERSISTENCE_PATH = 'Illegal persistence path.';\nexports.ILLEGAL_PADDING_LENGTH = 'Illegal padding length. Input value length exceeds padding length.';\nexports.INCONSISTENT_SUBTANGLE = 'Inconsistent subtangle';\nexports.INSUFFICIENT_BALANCE = 'Insufficient balance';\nexports.INVALID_ADDRESS = 'Invalid address';\nexports.INVALID_REMAINDER_ADDRESS = 'Invalid remainder address';\nexports.INVALID_BRANCH_TRANSACTION = 'Invalid branch transaction';\nexports.INVALID_BUNDLE = 'Invalid bundle';\nexports.INVALID_BUNDLE_HASH = 'Invalid bundle hash';\nexports.INVALID_CHECKSUM = 'Invalid checksum';\nexports.INVALID_COMMAND = 'Invalid command format';\nexports.INVALID_DEPTH = 'Invalid depth';\nexports.INVALID_HASH = 'Invalid hash';\nexports.INVALID_INDEX = 'Invalid index option';\nexports.INVALID_TOTAL_OPTION = 'Invalid total option';\nexports.INVALID_INPUT = 'Invalid input';\nexports.INVALID_KEY = 'Invalid key value';\nexports.INVALID_MIN_WEIGHT_MAGNITUDE = 'Invalid Min Weight Magnitude';\nexports.INVALID_SEARCH_KEY = 'Invalid search key';\nexports.INVALID_SECURITY_LEVEL = 'Invalid security option';\nexports.INVALID_SECURITY_OPTION = 'Invalid security option';\nexports.INVALID_SEED = 'Invalid seed';\nexports.INVALID_START_END_OPTIONS = 'Invalid end option';\nexports.INVALID_START_OPTION = 'Invalid start option';\nexports.INVALID_TAG = 'Invalid tag';\nexports.INVALID_TRANSACTION = 'Invalid transaction';\nexports.INVALID_TRANSACTION_TRYTES = 'Invalid transaction trytes';\nexports.INVALID_ATTACHED_TRYTES = 'Invalid attached trytes';\nexports.INVALID_TRANSACTION_HASH = 'Invalid transaction hash';\nexports.INVALID_TAIL_TRANSACTION = 'Invalid tail transaction';\nexports.INVALID_THRESHOLD = 'Invalid threshold option';\nexports.INVALID_TRANSFER = 'Invalid transfer array';\nexports.INVALID_TRUNK_TRANSACTION = 'Invalid trunk transaction';\nexports.INVALID_REFERENCE_HASH = 'Invalid reference hash';\nexports.INVALID_TRYTES = 'Invalid trytes';\nexports.INVALID_URI = 'Invalid uri';\nexports.INVALID_ASCII_INPUT = 'Conversion to trytes requires type of input to be encoded in ascii.';\nexports.INVALID_ODD_LENGTH = 'Conversion from trytes requires length of trytes to be even.';\nexports.INVALID_TRYTE_ENCODED_JSON = 'Invalid tryte encoded JSON message';\nexports.NOT_INT = 'One of the inputs is not integer';\nexports.SENDING_BACK_TO_INPUTS = 'One of the transaction inputs is used as output.';\nexports.INVALID_TRANSACTIONS_TO_APPROVE = 'Invalid transactions to approve.';\nexports.NO_INPUTS = 'Could not find any available inputs.';\nexports.invalidChecksum = function (address) { return \"Invalid Checksum: \" + address; };\nexports.inconsistentTransaction = function (reason) { return \"Transaction is inconsistent. Reason: \" + reason; };\nexports.INVALID_DELAY = 'Invalid delay.';\n//# sourceMappingURL=errors.js.map","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","var cryptoUtils = require('./crypto/utils')\r\n\r\nmodule.exports = {\r\n isValidAddress: function (address) {\r\n if (!/^0x[0-9a-fA-F]{40}$/.test(address)) {\r\n // Check if it has the basic requirements of an address\r\n return false\r\n }\r\n\r\n if (/^0x[0-9a-f]{40}$/.test(address) || /^0x?[0-9A-F]{40}$/.test(address)) {\r\n // If it's all small caps or all all caps, return true\r\n return true\r\n }\r\n\r\n // Otherwise check each case\r\n return this.verifyChecksum(address)\r\n },\r\n verifyChecksum: function (address) {\r\n // Check each case\r\n address = address.replace('0x', '')\r\n\r\n var addressHash = cryptoUtils.keccak256(address.toLowerCase())\r\n\r\n for (var i = 0; i < 40; i++) {\r\n // The nth letter should be uppercase if the nth digit of casemap is 1\r\n if (\r\n (parseInt(addressHash[i], 16) > 7 && address[i].toUpperCase() !== address[i]) ||\r\n (parseInt(addressHash[i], 16) <= 7 && address[i].toLowerCase() !== address[i])\r\n ) {\r\n return false\r\n }\r\n }\r\n\r\n return true\r\n }\r\n}\r\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","\"use strict\";\nexports.__esModule = true;\nvar constants_1 = require(\"./constants\");\nvar errors = require(\"./errors\");\n// Required for markdown generation with JSDoc\n/**\n * @module validators\n */\n/* Type guards */\n/**\n * Checks if input is an `Int8Array` of trit values; `-1, 0, 1`.\n *\n * @method isTrits\n *\n * @param {any} input\n *\n * @return {boolean}\n */\nexports.isTrits = function (input) {\n if (input instanceof Int8Array) {\n for (var i = 0; i < input.length; i++) {\n if (!(input[i] === 0 || input[i] === -1 || input[i] === 1)) {\n return false;\n }\n }\n return true;\n }\n return false;\n};\n/**\n * Checks if trits are NULL.\n *\n * @method isNullTrits\n *\n * @param {Int8Array} trits\n *\n * @return {boolean}\n */\nexports.isNullTrits = function (input) {\n if (input instanceof Int8Array) {\n if (input.length === 0) {\n return true;\n }\n for (var i = 0; i < input.length; i++) {\n if (input[i] !== 0) {\n return false;\n }\n }\n return true;\n }\n return false;\n};\n/**\n * Checks if input is correct trytes consisting of [9A-Z]; optionally validate length\n * @method isTrytes\n *\n * @param {string} trytes\n * @param {string | number} [length='1,']\n *\n * @return {boolean}\n */\nexports.isTrytes = function (trytes, length) {\n if (length === void 0) { length = '1,'; }\n return typeof trytes === 'string' && new RegExp(\"^[9A-Z]{\" + length + \"}$\").test(trytes);\n};\n/**\n * @method isTrytesOfExactLength\n *\n * @param {string} trytes\n * @param {number} length\n *\n * @return {boolean}\n */\nexports.isTrytesOfExactLength = function (trytes, length) {\n return typeof trytes === 'string' && new RegExp(\"^[9A-Z]{\" + length + \"}$\").test(trytes);\n};\n/**\n * @method isTrytesOfMaxLength\n *\n * @param {string} trytes\n * @param {number} length\n *\n * @return {boolean}\n */\nexports.isTrytesOfMaxLength = function (trytes, length) {\n return typeof trytes === 'string' && new RegExp(\"^[9A-Z]{1,\" + length + \"}$\").test(trytes);\n};\n/**\n * Checks if input contains `9`s only.\n * @method isEmpty\n *\n * @param {string} hash\n *\n * @return {boolean}\n */\nexports.isEmpty = function (trytes) { return typeof trytes === 'string' && /^[9]+$/.test(trytes); };\nexports.isNinesTrytes = exports.isEmpty;\n/**\n * Checks if input is correct hash (81 trytes) or address with checksum (90 trytes)\n *\n * @method isHash\n *\n * @param {string} hash\n *\n * @return {boolean}\n */\nexports.isHash = function (hash) {\n return exports.isTrytesOfExactLength(hash, constants_1.HASH_TRYTE_SIZE) || exports.isTrytesOfExactLength(hash, constants_1.HASH_TRYTE_SIZE + 9);\n}; // address w/ checksum is valid hash\n/* Check if security level is valid positive integer */\nexports.isSecurityLevel = function (security) {\n return Number.isInteger(security) && security > 0 && security < 4;\n};\n/**\n * Checks if input is valid input object. Address can be passed with or without checksum.\n * It does not validate the checksum.\n *\n * @method isInput\n *\n * @param {string} address\n *\n * @return {boolean}\n */\nexports.isInput = function (input) {\n return exports.isHash(input.address) &&\n exports.isSecurityLevel(input.security) &&\n (typeof input.balance === 'undefined' || (Number.isInteger(input.balance) && input.balance > 0)) &&\n Number.isInteger(input.keyIndex) &&\n input.keyIndex >= 0;\n};\n/**\n * Checks that input is valid tag trytes.\n *\n * @method isTag\n *\n * @param {string} tag\n *\n * @return {boolean}\n */\nexports.isTag = function (tag) { return exports.isTrytesOfMaxLength(tag, constants_1.TAG_TRYTE_SIZE); };\n/**\n * Checks if input is valid `transfer` object.\n *\n * @method isTransfer\n *\n * @param {Transfer} transfer\n *\n * @return {boolean}\n */\nexports.isTransfer = function (transfer) {\n return exports.isHash(transfer.address) &&\n Number.isInteger(transfer.value) &&\n transfer.value >= 0 &&\n (!transfer.message || exports.isTrytes(transfer.message, '0,')) &&\n (!transfer.tag || exports.isTag(transfer.tag));\n};\n/**\n * Checks that a given `URI` is valid\n *\n * Valid Examples:\n * - `udp://[2001:db8:a0b:12f0::1]:14265`\n * - `udp://[2001:db8:a0b:12f0::1]`\n * - `udp://8.8.8.8:14265`\n * - `udp://domain.com`\n * - `udp://domain2.com:14265`\n *\n * @method isUri\n *\n * @param {string} uri\n *\n * @return {boolean}\n */\nexports.isUri = function (uri) {\n if (typeof uri !== 'string') {\n return false;\n }\n var getInside = /^(udp|tcp):\\/\\/([\\[][^\\]\\.]*[\\]]|[^\\[\\]:]*)[:]{0,1}([0-9]{1,}$|$)/i;\n var stripBrackets = /[\\[]{0,1}([^\\[\\]]*)[\\]]{0,1}/;\n var uriTest = /((^\\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\s*$)|(^\\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(%.+)?\\s*$))|(^\\s*((?=.{1,255}$)(?=.*[A-Za-z].*)[0-9A-Za-z](?:(?:[0-9A-Za-z]|\\b-){0,61}[0-9A-Za-z])?(?:\\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|\\b-){0,61}[0-9A-Za-z])?)*)\\s*$)/;\n return getInside.test(uri) && uriTest.test(stripBrackets.exec(getInside.exec(uri)[1])[1]);\n};\n/* Check if start & end options are valid */\nexports.isStartEndOptions = function (_a) {\n var start = _a.start, end = _a.end;\n return !end || (start <= end && end < start + constants_1.MAX_INDEX_DIFF);\n};\n/* Checks all array items */\nexports.isArray = function (f) { return function (x) {\n return Array.isArray(x) && x.length > 0 && x.every(function (y) { return f(y); });\n}; };\n/**\n * Runs each validator in sequence, and throws on the first occurence of invalid data.\n * Validators are passed as arguments and executed in given order.\n * You might want place `validate()` in promise chains before operations that require valid inputs,\n * taking advantage of built-in promise branching.\n *\n * @example\n *\n * ```js\n * try {\n * validate([\n * value, // Given value\n * isTrytes, // Validator function\n * 'Invalid trytes' // Error message\n * ])\n * } catch (err) {\n * console.log(err.message) // 'Invalid trytes'\n * }\n * ```\n *\n * @method validate\n *\n * @throws {Error} error\n * @return {boolean}\n */\nexports.validate = function () {\n var validators = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n validators[_i] = arguments[_i];\n }\n validators.forEach(function (validator) {\n if (Array.isArray(validator)) {\n var value = validator[0], isValid = validator[1], msg = validator[2];\n if (!isValid(value)) {\n throw new Error(msg + \": \" + JSON.stringify(value, null, 1));\n }\n }\n });\n return true;\n};\nexports.arrayValidator = function (validator) { return function (arr, customMsg) {\n var _a = validator(arr[0]), _ = _a[0], // tslint:disable-line no-unused-variable\n isValid = _a[1], msg = _a[2];\n return [\n arr,\n function (x) { return Array.isArray(x) && x.every(function (value) { return isValid(value); }); },\n customMsg || msg,\n ];\n}; };\nexports.depthValidator = function (depth) { return [\n depth,\n function (n) { return Number.isInteger(n) && n > 0; },\n errors.INVALID_DEPTH,\n]; };\nexports.minWeightMagnitudeValidator = function (minWeightMagnitude) { return [\n minWeightMagnitude,\n Number.isInteger,\n errors.INVALID_MIN_WEIGHT_MAGNITUDE,\n]; };\nexports.seedValidator = function (seed) { return [seed, exports.isTrytes, errors.INVALID_SEED]; };\nexports.securityLevelValidator = function (security) { return [\n security,\n exports.isSecurityLevel,\n errors.INVALID_SECURITY_LEVEL,\n]; };\nexports.inputValidator = function (input) { return [input, exports.isInput, errors.INVALID_INPUT]; };\nexports.remainderAddressValidator = function (input) { return [input, exports.isHash, errors.INVALID_REMAINDER_ADDRESS]; };\nexports.tagValidator = function (tag) { return [tag, exports.isTag, errors.INVALID_TAG]; };\nexports.transferValidator = function (transfer) { return [transfer, exports.isTransfer, errors.INVALID_TRANSFER]; };\nexports.hashValidator = function (hash, errorMessage) { return [\n hash,\n exports.isHash,\n errorMessage || errors.INVALID_HASH,\n]; };\nexports.trytesValidator = function (trytes, msg) { return [\n trytes,\n function (t) { return (length ? exports.isTrytesOfExactLength(t, length) : exports.isTrytes(t)); },\n msg || errors.INVALID_TRYTES,\n]; };\nexports.uriValidator = function (uri) { return [uri, exports.isUri, errors.INVALID_URI]; };\nexports.integerValidator = function (integer, msg) { return [\n integer,\n Number.isInteger,\n msg || errors.NOT_INT,\n]; };\nexports.indexValidator = function (index) { return [index, Number.isInteger, errors.INVALID_INDEX]; };\nexports.startOptionValidator = function (start) { return [\n start,\n function (s) { return Number.isInteger(s) && s >= 0; },\n errors.INVALID_START_OPTION,\n]; };\nexports.startEndOptionsValidator = function (options) { return [\n options,\n exports.isStartEndOptions,\n errors.INVALID_START_END_OPTIONS,\n]; };\nexports.getInputsThresholdValidator = function (threshold) { return [\n threshold,\n function (s) { return Number.isInteger(s) && s >= 0; },\n errors.INVALID_THRESHOLD,\n]; };\nexports.stringify = function (value) {\n return JSON.stringify(value, null, 1);\n};\n//# sourceMappingURL=guards.js.map","function isValidHBarAddress (address) {\r\n const split = address.split('.')\r\n if (split[0] !== '0' || split[1] !== '0') {\r\n return false\r\n }\r\n if (split[2].length <= 6 && /^\\d+$/g.test(split[2])) {\r\n return true\r\n }\r\n}\r\n\r\nmodule.exports = {\r\n isValidAddress: function (address, currency, networkType) {\r\n return isValidHBarAddress(address)\r\n }\r\n}\r\n","function isValidBTSAddress (address, currency, networkType) {\r\n var regex = /^[a-z0-9-.]+$/g // Must be numbers and lowercase letters only\r\n if (address.search(regex) !== -1) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n}\r\n\r\nmodule.exports = {\r\n isValidAddress: function (address, currency, networkType) {\r\n return isValidBTSAddress(address, currency, networkType)\r\n }\r\n}\r\n","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","\"use strict\";\nexports.__esModule = true;\nvar errors = require(\"./errors\");\n/* tslint:disable variable-name */\nvar INT_LENGTH = 12;\nvar RADIX = 3;\n// hex representation of (3^242)/2\nvar HALF_3 = new Uint32Array([\n 0xa5ce8964,\n 0x9f007669,\n 0x1484504f,\n 0x3ade00d9,\n 0x0c24486e,\n 0x50979d57,\n 0x79a4c702,\n 0x48bbae36,\n 0xa9f6808b,\n 0xaa06a805,\n 0xa87fabdf,\n 0x5e69ebef,\n]);\nfunction clone_uint32Array(array) {\n var source = new Uint32Array(array);\n return new Uint32Array(source);\n}\nfunction ta_slice(array) {\n if (array.slice !== undefined) {\n return array.slice();\n }\n return clone_uint32Array(array);\n}\nfunction ta_reverse(array) {\n if (array.reverse !== undefined) {\n array.reverse();\n return;\n }\n var n = array.length;\n var middle = Math.floor(n / 2);\n var i = 0;\n var temp = null;\n for (; i < middle; i += 1) {\n temp = array[i];\n array[i] = array[n - 1 - i];\n array[n - 1 - i] = temp;\n }\n}\n// negates the (unsigned) input array\nfunction bigint_not(arr) {\n for (var i = 0; i < arr.length; i++) {\n arr[i] = ~arr[i] >>> 0;\n }\n}\n// rshift that works with up to 53\n// JS's shift operators only work on 32 bit integers\n// ours is up to 33 or 34 bits though, so\n// we need to implement shifting manually\nfunction rshift(num, shift) {\n return (num / Math.pow(2, shift)) >>> 0;\n}\n// swaps endianness\nfunction swap32(val) {\n return ((val & 0xff) << 24) | ((val & 0xff00) << 8) | ((val >> 8) & 0xff00) | ((val >> 24) & 0xff);\n}\n// add with carry\nfunction full_add(lh, rh, carry) {\n var v = lh + rh;\n var l = rshift(v, 32) & 0xffffffff;\n var r = (v & 0xffffffff) >>> 0;\n var carry1 = l !== 0;\n if (carry) {\n v = r + 1;\n }\n l = rshift(v, 32) & 0xffffffff;\n r = (v & 0xffffffff) >>> 0;\n var carry2 = l !== 0;\n return [r, carry1 || carry2];\n}\n// subtracts rh from base\nfunction bigint_sub(base, rh) {\n var noborrow = true;\n for (var i = 0; i < base.length; i++) {\n var vc = full_add(base[i], ~rh[i] >>> 0, noborrow);\n base[i] = vc[0];\n noborrow = vc[1];\n }\n if (!noborrow) {\n throw new Error('noborrow');\n }\n}\n// compares two (unsigned) big integers\nfunction bigint_cmp(lh, rh) {\n for (var i = lh.length; i-- > 0;) {\n var a = lh[i] >>> 0;\n var b = rh[i] >>> 0;\n if (a < b) {\n return -1;\n }\n else if (a > b) {\n return 1;\n }\n }\n return 0;\n}\n// adds rh to base in place\nfunction bigint_add(base, rh) {\n var carry = false;\n for (var i = 0; i < base.length; i++) {\n var vc = full_add(base[i], rh[i], carry);\n base[i] = vc[0];\n carry = vc[1];\n }\n}\nfunction is_null(arr) {\n // tslint:disable-next-line prefer-for-of\n for (var i = 0; i < arr.length; i++) {\n if (arr[i] !== 0) {\n return false;\n }\n }\n return true;\n}\n// adds a small (i.e. <32bit) number to base\nfunction bigint_add_small(base, other) {\n var vc = full_add(base[0], other, false);\n var carry;\n base[0] = vc[0];\n carry = vc[1];\n var i = 1;\n while (carry && i < base.length) {\n var vc2 = full_add(base[i], 0, carry);\n base[i] = vc2[0];\n carry = vc2[1];\n i += 1;\n }\n return i;\n}\n/**\n * Converts the given byte array to trits\n *\n * @method wordsToTrits\n *\n * @ignore\n *\n * @param {Uint32Array} words\n *\n * @return {Int8Array} trits\n */\nfunction wordsToTrits(words) {\n if (words.length !== INT_LENGTH) {\n throw new Error(errors.ILLEGAL_WORDS_LENGTH);\n }\n var trits = new Int8Array(243);\n var base = new Uint32Array(words);\n ta_reverse(base);\n var flip_trits = false;\n if (base[INT_LENGTH - 1] >> 31 === 0) {\n // positive two's complement number.\n // add HALF_3 to move it to the right place.\n bigint_add(base, HALF_3);\n }\n else {\n // negative number.\n bigint_not(base);\n if (bigint_cmp(base, HALF_3) > 0) {\n bigint_sub(base, HALF_3);\n flip_trits = true;\n }\n else {\n /// bigint is between (unsigned) HALF_3 and (2**384 - 3**242/2).\n bigint_add_small(base, 1);\n var tmp = ta_slice(HALF_3);\n bigint_sub(tmp, base);\n base = tmp;\n }\n }\n var rem = 0;\n for (var i = 0; i < 242; i++) {\n rem = 0;\n for (var j = INT_LENGTH - 1; j >= 0; j--) {\n var lhs = (rem !== 0 ? rem * 0xffffffff + rem : 0) + base[j];\n var rhs = RADIX;\n var q = (lhs / rhs) >>> 0;\n var r = (lhs % rhs) >>> 0;\n base[j] = q;\n rem = r;\n }\n trits[i] = rem - 1;\n }\n if (flip_trits) {\n for (var i = 0; i < trits.length; i++) {\n trits[i] = -trits[i];\n }\n }\n return trits;\n}\nexports.wordsToTrits = wordsToTrits;\n/**\n * Converts the given trits to byte array\n *\n * @method tritsToWords\n *\n * @ignore\n *\n * @param {Int8Array} trits\n *\n * @return {Uint32Array} words\n */\nfunction tritsToWords(trits) {\n if (trits.length !== 243) {\n throw new Error('Invalid trits length');\n }\n var base = new Uint32Array(INT_LENGTH);\n var allMinusOne = true;\n var tritSlice = trits.slice(0, 242);\n for (var i = 0; i < tritSlice.length; i++) {\n if (tritSlice[i] !== -1) {\n allMinusOne = false;\n break;\n }\n }\n if (allMinusOne) {\n base = ta_slice(HALF_3);\n bigint_not(base);\n bigint_add_small(base, 1);\n }\n else {\n var size = 1;\n for (var i = trits.length - 1; i-- > 0;) {\n var trit = trits[i] + 1;\n // multiply by radix\n {\n var sz = size;\n var carry = 0;\n for (var j = 0; j < sz; j++) {\n var v = base[j] * RADIX + carry;\n carry = rshift(v, 32);\n base[j] = (v & 0xffffffff) >>> 0;\n }\n if (carry > 0) {\n base[sz] = carry;\n size += 1;\n }\n }\n // addition\n {\n var sz = bigint_add_small(base, trit);\n if (sz > size) {\n size = sz;\n }\n }\n }\n if (!is_null(base)) {\n if (bigint_cmp(HALF_3, base) <= 0) {\n // base >= HALF_3\n // just do base - HALF_3\n bigint_sub(base, HALF_3);\n }\n else {\n // base < HALF_3\n // so we need to transform it to a two's complement representation\n // of (base - HALF_3).\n // as we don't have a wrapping (-), we need to use some bit magic\n var tmp = ta_slice(HALF_3);\n bigint_sub(tmp, base);\n bigint_not(tmp);\n bigint_add_small(tmp, 1);\n base = tmp;\n }\n }\n }\n ta_reverse(base);\n for (var i = 0; i < base.length; i++) {\n base[i] = swap32(base[i]);\n }\n return base;\n}\nexports.tritsToWords = tritsToWords;\n//# sourceMappingURL=word-converter.js.map","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","// Base58 encoding/decoding\r\n// Originally written by Mike Hearn for BitcoinJ\r\n// Copyright (c) 2011 Google Inc\r\n// Ported to JavaScript by Stefan Thomas\r\n// Merged Buffer refactorings from base58-native by Stephen Pair\r\n// Copyright (c) 2013 BitPay Inc\r\n\r\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\r\nvar ALPHABET_MAP = {}\r\nfor (var i = 0; i < ALPHABET.length; ++i) {\r\n ALPHABET_MAP[ALPHABET.charAt(i)] = i\r\n}\r\nvar BASE = ALPHABET.length\r\n\r\nmodule.exports = {\r\n decode: function (string) {\r\n if (string.length === 0) return []\r\n\r\n var i; var j; var bytes = [0]\r\n for (i = 0; i < string.length; ++i) {\r\n var c = string[i]\r\n if (!(c in ALPHABET_MAP)) throw new Error('Non-base58 character')\r\n\r\n for (j = 0; j < bytes.length; ++j) bytes[j] *= BASE\r\n bytes[0] += ALPHABET_MAP[c]\r\n\r\n var carry = 0\r\n for (j = 0; j < bytes.length; ++j) {\r\n bytes[j] += carry\r\n carry = bytes[j] >> 8\r\n bytes[j] &= 0xff\r\n }\r\n\r\n while (carry) {\r\n bytes.push(carry & 0xff)\r\n carry >>= 8\r\n }\r\n }\r\n // deal with leading zeros\r\n for (i = 0; string[i] === '1' && i < string.length - 1; ++i) {\r\n bytes.push(0)\r\n }\r\n\r\n return bytes.reverse()\r\n }\r\n}\r\n","var JSBigInt = require('./biginteger')['JSBigInt']\r\n\r\n/**\r\nCopyright (c) 2017, moneroexamples\r\n\r\nAll rights reserved.\r\n\r\nRedistribution and use in source and binary forms, with or without\r\nmodification, are permitted provided that the following conditions are met:\r\n\r\n1. Redistributions of source code must retain the above copyright notice, this\r\nlist of conditions and the following disclaimer.\r\n\r\n2. Redistributions in binary form must reproduce the above copyright notice,\r\nthis list of conditions and the following disclaimer in the documentation\r\nand/or other materials provided with the distribution.\r\n\r\n3. Neither the name of the copyright holder nor the names of its contributors\r\nmay be used to endorse or promote products derived from this software without\r\nspecific prior written permission.\r\n\r\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\r\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\r\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\r\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\r\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\r\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\r\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r\n\r\nParts of the project are originally copyright (c) 2014-2017, MyMonero.com\r\n*/\r\n\r\nvar cnBase58 = (function () {\r\n var b58 = {}\r\n\r\n var alphabet_str = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\r\n var alphabet = []\r\n for (var i = 0; i < alphabet_str.length; i++) {\r\n alphabet.push(alphabet_str.charCodeAt(i))\r\n }\r\n var encoded_block_sizes = [0, 2, 3, 5, 6, 7, 9, 10, 11]\r\n\r\n var alphabet_size = alphabet.length\r\n var full_block_size = 8\r\n var full_encoded_block_size = 11\r\n\r\n var UINT64_MAX = new JSBigInt(2).pow(64)\r\n\r\n function hextobin (hex) {\r\n if (hex.length % 2 !== 0) throw 'Hex string has invalid length!'\r\n var res = new Uint8Array(hex.length / 2)\r\n for (var i = 0; i < hex.length / 2; ++i) {\r\n res[i] = parseInt(hex.slice(i * 2, i * 2 + 2), 16)\r\n }\r\n return res\r\n }\r\n\r\n function bintohex (bin) {\r\n var out = []\r\n for (var i = 0; i < bin.length; ++i) {\r\n out.push(('0' + bin[i].toString(16)).slice(-2))\r\n }\r\n return out.join('')\r\n }\r\n\r\n function strtobin (str) {\r\n var res = new Uint8Array(str.length)\r\n for (var i = 0; i < str.length; i++) {\r\n res[i] = str.charCodeAt(i)\r\n }\r\n return res\r\n }\r\n\r\n function bintostr (bin) {\r\n var out = []\r\n for (var i = 0; i < bin.length; i++) {\r\n out.push(String.fromCharCode(bin[i]))\r\n }\r\n return out.join('')\r\n }\r\n\r\n function uint8_be_to_64 (data) {\r\n if (data.length < 1 || data.length > 8) {\r\n throw 'Invalid input length'\r\n }\r\n var res = JSBigInt.ZERO\r\n var twopow8 = new JSBigInt(2).pow(8)\r\n var i = 0\r\n switch (9 - data.length) {\r\n case 1:\r\n res = res.add(data[i++])\r\n case 2:\r\n res = res.multiply(twopow8).add(data[i++])\r\n case 3:\r\n res = res.multiply(twopow8).add(data[i++])\r\n case 4:\r\n res = res.multiply(twopow8).add(data[i++])\r\n case 5:\r\n res = res.multiply(twopow8).add(data[i++])\r\n case 6:\r\n res = res.multiply(twopow8).add(data[i++])\r\n case 7:\r\n res = res.multiply(twopow8).add(data[i++])\r\n case 8:\r\n res = res.multiply(twopow8).add(data[i++])\r\n break\r\n default:\r\n throw 'Impossible condition'\r\n }\r\n return res\r\n }\r\n\r\n function uint64_to_8be (num, size) {\r\n var res = new Uint8Array(size)\r\n if (size < 1 || size > 8) {\r\n throw 'Invalid input length'\r\n }\r\n var twopow8 = new JSBigInt(2).pow(8)\r\n for (var i = size - 1; i >= 0; i--) {\r\n res[i] = num.remainder(twopow8).toJSValue()\r\n num = num.divide(twopow8)\r\n }\r\n return res\r\n }\r\n\r\n b58.encode_block = function (data, buf, index) {\r\n if (data.length < 1 || data.length > full_encoded_block_size) {\r\n throw 'Invalid block length: ' + data.length\r\n }\r\n var num = uint8_be_to_64(data)\r\n var i = encoded_block_sizes[data.length] - 1\r\n // while num > 0\r\n while (num.compare(0) === 1) {\r\n var div = num.divRem(alphabet_size)\r\n // remainder = num % alphabet_size\r\n var remainder = div[1]\r\n // num = num / alphabet_size\r\n num = div[0]\r\n buf[index + i] = alphabet[remainder.toJSValue()]\r\n i--\r\n }\r\n return buf\r\n }\r\n\r\n b58.encode = function (hex) {\r\n var data = hextobin(hex)\r\n if (data.length === 0) {\r\n return ''\r\n }\r\n var full_block_count = Math.floor(data.length / full_block_size)\r\n var last_block_size = data.length % full_block_size\r\n var res_size = full_block_count * full_encoded_block_size + encoded_block_sizes[last_block_size]\r\n\r\n var res = new Uint8Array(res_size)\r\n var i\r\n for (i = 0; i < res_size; ++i) {\r\n res[i] = alphabet[0]\r\n }\r\n for (i = 0; i < full_block_count; i++) {\r\n res = b58.encode_block(data.subarray(i * full_block_size, i * full_block_size + full_block_size), res, i * full_encoded_block_size)\r\n }\r\n if (last_block_size > 0) {\r\n res = b58.encode_block(data.subarray(full_block_count * full_block_size, full_block_count * full_block_size + last_block_size), res, full_block_count * full_encoded_block_size)\r\n }\r\n return bintostr(res)\r\n }\r\n\r\n b58.decode_block = function (data, buf, index) {\r\n if (data.length < 1 || data.length > full_encoded_block_size) {\r\n throw 'Invalid block length: ' + data.length\r\n }\r\n\r\n var res_size = encoded_block_sizes.indexOf(data.length)\r\n if (res_size <= 0) {\r\n throw 'Invalid block size'\r\n }\r\n var res_num = new JSBigInt(0)\r\n var order = new JSBigInt(1)\r\n for (var i = data.length - 1; i >= 0; i--) {\r\n var digit = alphabet.indexOf(data[i])\r\n if (digit < 0) {\r\n throw 'Invalid symbol'\r\n }\r\n var product = order.multiply(digit).add(res_num)\r\n // if product > UINT64_MAX\r\n if (product.compare(UINT64_MAX) === 1) {\r\n throw 'Overflow'\r\n }\r\n res_num = product\r\n order = order.multiply(alphabet_size)\r\n }\r\n if (res_size < full_block_size && (new JSBigInt(2).pow(8 * res_size).compare(res_num) <= 0)) {\r\n throw 'Overflow 2'\r\n }\r\n buf.set(uint64_to_8be(res_num, res_size), index)\r\n return buf\r\n }\r\n\r\n b58.decode = function (enc) {\r\n enc = strtobin(enc)\r\n if (enc.length === 0) {\r\n return ''\r\n }\r\n var full_block_count = Math.floor(enc.length / full_encoded_block_size)\r\n var last_block_size = enc.length % full_encoded_block_size\r\n var last_block_decoded_size = encoded_block_sizes.indexOf(last_block_size)\r\n if (last_block_decoded_size < 0) {\r\n throw 'Invalid encoded length'\r\n }\r\n var data_size = full_block_count * full_block_size + last_block_decoded_size\r\n var data = new Uint8Array(data_size)\r\n for (var i = 0; i < full_block_count; i++) {\r\n data = b58.decode_block(enc.subarray(i * full_encoded_block_size, i * full_encoded_block_size + full_encoded_block_size), data, i * full_block_size)\r\n }\r\n if (last_block_size > 0) {\r\n data = b58.decode_block(enc.subarray(full_block_count * full_encoded_block_size, full_block_count * full_encoded_block_size + last_block_size), data, full_block_count * full_block_size)\r\n }\r\n return bintohex(data)\r\n }\r\n\r\n return b58\r\n})()\r\nmodule.exports = cnBase58\r\n","import { Buffer } from 'buffer';\n\nconst createBuffer =\n Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow\n ? Buffer.from\n : // support for Node < 5.10\n val => new Buffer(val);\n\nexport default createBuffer;\n","export default function(model, calc) {\n const fn = (buf, previous) => calc(buf, previous) >>> 0;\n fn.signed = calc;\n fn.unsigned = fn;\n fn.model = model;\n\n return fn;\n}\n","import { Buffer } from 'buffer';\nimport createBuffer from './create_buffer';\nimport defineCrc from './define_crc';\n\nconst crc1 = defineCrc('crc1', function(buf, previous) {\n if (!Buffer.isBuffer(buf)) buf = createBuffer(buf);\n\n let crc = ~~previous;\n let accum = 0;\n\n for (let index = 0; index < buf.length; index++) {\n const byte = buf[index];\n accum += byte;\n }\n\n crc += accum % 256;\n return crc % 256;\n});\n\nexport default crc1;\n","import { Buffer } from 'buffer';\nimport createBuffer from './create_buffer';\nimport defineCrc from './define_crc';\n\n// Generated by `./pycrc.py --algorithm=table-driven --model=crc-8 --generate=c`\n// prettier-ignore\nlet TABLE = [\n 0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d,\n 0x70, 0x77, 0x7e, 0x79, 0x6c, 0x6b, 0x62, 0x65, 0x48, 0x4f, 0x46, 0x41, 0x54, 0x53, 0x5a, 0x5d,\n 0xe0, 0xe7, 0xee, 0xe9, 0xfc, 0xfb, 0xf2, 0xf5, 0xd8, 0xdf, 0xd6, 0xd1, 0xc4, 0xc3, 0xca, 0xcd,\n 0x90, 0x97, 0x9e, 0x99, 0x8c, 0x8b, 0x82, 0x85, 0xa8, 0xaf, 0xa6, 0xa1, 0xb4, 0xb3, 0xba, 0xbd,\n 0xc7, 0xc0, 0xc9, 0xce, 0xdb, 0xdc, 0xd5, 0xd2, 0xff, 0xf8, 0xf1, 0xf6, 0xe3, 0xe4, 0xed, 0xea,\n 0xb7, 0xb0, 0xb9, 0xbe, 0xab, 0xac, 0xa5, 0xa2, 0x8f, 0x88, 0x81, 0x86, 0x93, 0x94, 0x9d, 0x9a,\n 0x27, 0x20, 0x29, 0x2e, 0x3b, 0x3c, 0x35, 0x32, 0x1f, 0x18, 0x11, 0x16, 0x03, 0x04, 0x0d, 0x0a,\n 0x57, 0x50, 0x59, 0x5e, 0x4b, 0x4c, 0x45, 0x42, 0x6f, 0x68, 0x61, 0x66, 0x73, 0x74, 0x7d, 0x7a,\n 0x89, 0x8e, 0x87, 0x80, 0x95, 0x92, 0x9b, 0x9c, 0xb1, 0xb6, 0xbf, 0xb8, 0xad, 0xaa, 0xa3, 0xa4,\n 0xf9, 0xfe, 0xf7, 0xf0, 0xe5, 0xe2, 0xeb, 0xec, 0xc1, 0xc6, 0xcf, 0xc8, 0xdd, 0xda, 0xd3, 0xd4,\n 0x69, 0x6e, 0x67, 0x60, 0x75, 0x72, 0x7b, 0x7c, 0x51, 0x56, 0x5f, 0x58, 0x4d, 0x4a, 0x43, 0x44,\n 0x19, 0x1e, 0x17, 0x10, 0x05, 0x02, 0x0b, 0x0c, 0x21, 0x26, 0x2f, 0x28, 0x3d, 0x3a, 0x33, 0x34,\n 0x4e, 0x49, 0x40, 0x47, 0x52, 0x55, 0x5c, 0x5b, 0x76, 0x71, 0x78, 0x7f, 0x6a, 0x6d, 0x64, 0x63,\n 0x3e, 0x39, 0x30, 0x37, 0x22, 0x25, 0x2c, 0x2b, 0x06, 0x01, 0x08, 0x0f, 0x1a, 0x1d, 0x14, 0x13,\n 0xae, 0xa9, 0xa0, 0xa7, 0xb2, 0xb5, 0xbc, 0xbb, 0x96, 0x91, 0x98, 0x9f, 0x8a, 0x8d, 0x84, 0x83,\n 0xde, 0xd9, 0xd0, 0xd7, 0xc2, 0xc5, 0xcc, 0xcb, 0xe6, 0xe1, 0xe8, 0xef, 0xfa, 0xfd, 0xf4, 0xf3\n];\n\nif (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE);\n\nconst crc8 = defineCrc('crc-8', function(buf, previous) {\n if (!Buffer.isBuffer(buf)) buf = createBuffer(buf);\n\n let crc = ~~previous;\n\n for (let index = 0; index < buf.length; index++) {\n const byte = buf[index];\n crc = TABLE[(crc ^ byte) & 0xff] & 0xff;\n }\n\n return crc;\n});\n\nexport default crc8;\n","import { Buffer } from 'buffer';\nimport createBuffer from './create_buffer';\nimport defineCrc from './define_crc';\n\n// Generated by `./pycrc.py --algorithm=table-driven --model=dallas-1-wire --generate=c`\n// prettier-ignore\nlet TABLE = [\n 0x00, 0x5e, 0xbc, 0xe2, 0x61, 0x3f, 0xdd, 0x83, 0xc2, 0x9c, 0x7e, 0x20, 0xa3, 0xfd, 0x1f, 0x41,\n 0x9d, 0xc3, 0x21, 0x7f, 0xfc, 0xa2, 0x40, 0x1e, 0x5f, 0x01, 0xe3, 0xbd, 0x3e, 0x60, 0x82, 0xdc,\n 0x23, 0x7d, 0x9f, 0xc1, 0x42, 0x1c, 0xfe, 0xa0, 0xe1, 0xbf, 0x5d, 0x03, 0x80, 0xde, 0x3c, 0x62,\n 0xbe, 0xe0, 0x02, 0x5c, 0xdf, 0x81, 0x63, 0x3d, 0x7c, 0x22, 0xc0, 0x9e, 0x1d, 0x43, 0xa1, 0xff,\n 0x46, 0x18, 0xfa, 0xa4, 0x27, 0x79, 0x9b, 0xc5, 0x84, 0xda, 0x38, 0x66, 0xe5, 0xbb, 0x59, 0x07,\n 0xdb, 0x85, 0x67, 0x39, 0xba, 0xe4, 0x06, 0x58, 0x19, 0x47, 0xa5, 0xfb, 0x78, 0x26, 0xc4, 0x9a,\n 0x65, 0x3b, 0xd9, 0x87, 0x04, 0x5a, 0xb8, 0xe6, 0xa7, 0xf9, 0x1b, 0x45, 0xc6, 0x98, 0x7a, 0x24,\n 0xf8, 0xa6, 0x44, 0x1a, 0x99, 0xc7, 0x25, 0x7b, 0x3a, 0x64, 0x86, 0xd8, 0x5b, 0x05, 0xe7, 0xb9,\n 0x8c, 0xd2, 0x30, 0x6e, 0xed, 0xb3, 0x51, 0x0f, 0x4e, 0x10, 0xf2, 0xac, 0x2f, 0x71, 0x93, 0xcd,\n 0x11, 0x4f, 0xad, 0xf3, 0x70, 0x2e, 0xcc, 0x92, 0xd3, 0x8d, 0x6f, 0x31, 0xb2, 0xec, 0x0e, 0x50,\n 0xaf, 0xf1, 0x13, 0x4d, 0xce, 0x90, 0x72, 0x2c, 0x6d, 0x33, 0xd1, 0x8f, 0x0c, 0x52, 0xb0, 0xee,\n 0x32, 0x6c, 0x8e, 0xd0, 0x53, 0x0d, 0xef, 0xb1, 0xf0, 0xae, 0x4c, 0x12, 0x91, 0xcf, 0x2d, 0x73,\n 0xca, 0x94, 0x76, 0x28, 0xab, 0xf5, 0x17, 0x49, 0x08, 0x56, 0xb4, 0xea, 0x69, 0x37, 0xd5, 0x8b,\n 0x57, 0x09, 0xeb, 0xb5, 0x36, 0x68, 0x8a, 0xd4, 0x95, 0xcb, 0x29, 0x77, 0xf4, 0xaa, 0x48, 0x16,\n 0xe9, 0xb7, 0x55, 0x0b, 0x88, 0xd6, 0x34, 0x6a, 0x2b, 0x75, 0x97, 0xc9, 0x4a, 0x14, 0xf6, 0xa8,\n 0x74, 0x2a, 0xc8, 0x96, 0x15, 0x4b, 0xa9, 0xf7, 0xb6, 0xe8, 0x0a, 0x54, 0xd7, 0x89, 0x6b, 0x35\n];\n\nif (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE);\n\nconst crc81wire = defineCrc('dallas-1-wire', function(buf, previous) {\n if (!Buffer.isBuffer(buf)) buf = createBuffer(buf);\n\n let crc = ~~previous;\n\n for (let index = 0; index < buf.length; index++) {\n const byte = buf[index];\n crc = TABLE[(crc ^ byte) & 0xff] & 0xff;\n }\n\n return crc;\n});\n\nexport default crc81wire;\n","import { Buffer } from 'buffer';\nimport createBuffer from './create_buffer';\nimport defineCrc from './define_crc';\n\n// Generated by `./pycrc.py --algorithm=table-driven --model=crc-16 --generate=c`\n// prettier-ignore\nlet TABLE = [\n 0x0000, 0xc0c1, 0xc181, 0x0140, 0xc301, 0x03c0, 0x0280, 0xc241,\n 0xc601, 0x06c0, 0x0780, 0xc741, 0x0500, 0xc5c1, 0xc481, 0x0440,\n 0xcc01, 0x0cc0, 0x0d80, 0xcd41, 0x0f00, 0xcfc1, 0xce81, 0x0e40,\n 0x0a00, 0xcac1, 0xcb81, 0x0b40, 0xc901, 0x09c0, 0x0880, 0xc841,\n 0xd801, 0x18c0, 0x1980, 0xd941, 0x1b00, 0xdbc1, 0xda81, 0x1a40,\n 0x1e00, 0xdec1, 0xdf81, 0x1f40, 0xdd01, 0x1dc0, 0x1c80, 0xdc41,\n 0x1400, 0xd4c1, 0xd581, 0x1540, 0xd701, 0x17c0, 0x1680, 0xd641,\n 0xd201, 0x12c0, 0x1380, 0xd341, 0x1100, 0xd1c1, 0xd081, 0x1040,\n 0xf001, 0x30c0, 0x3180, 0xf141, 0x3300, 0xf3c1, 0xf281, 0x3240,\n 0x3600, 0xf6c1, 0xf781, 0x3740, 0xf501, 0x35c0, 0x3480, 0xf441,\n 0x3c00, 0xfcc1, 0xfd81, 0x3d40, 0xff01, 0x3fc0, 0x3e80, 0xfe41,\n 0xfa01, 0x3ac0, 0x3b80, 0xfb41, 0x3900, 0xf9c1, 0xf881, 0x3840,\n 0x2800, 0xe8c1, 0xe981, 0x2940, 0xeb01, 0x2bc0, 0x2a80, 0xea41,\n 0xee01, 0x2ec0, 0x2f80, 0xef41, 0x2d00, 0xedc1, 0xec81, 0x2c40,\n 0xe401, 0x24c0, 0x2580, 0xe541, 0x2700, 0xe7c1, 0xe681, 0x2640,\n 0x2200, 0xe2c1, 0xe381, 0x2340, 0xe101, 0x21c0, 0x2080, 0xe041,\n 0xa001, 0x60c0, 0x6180, 0xa141, 0x6300, 0xa3c1, 0xa281, 0x6240,\n 0x6600, 0xa6c1, 0xa781, 0x6740, 0xa501, 0x65c0, 0x6480, 0xa441,\n 0x6c00, 0xacc1, 0xad81, 0x6d40, 0xaf01, 0x6fc0, 0x6e80, 0xae41,\n 0xaa01, 0x6ac0, 0x6b80, 0xab41, 0x6900, 0xa9c1, 0xa881, 0x6840,\n 0x7800, 0xb8c1, 0xb981, 0x7940, 0xbb01, 0x7bc0, 0x7a80, 0xba41,\n 0xbe01, 0x7ec0, 0x7f80, 0xbf41, 0x7d00, 0xbdc1, 0xbc81, 0x7c40,\n 0xb401, 0x74c0, 0x7580, 0xb541, 0x7700, 0xb7c1, 0xb681, 0x7640,\n 0x7200, 0xb2c1, 0xb381, 0x7340, 0xb101, 0x71c0, 0x7080, 0xb041,\n 0x5000, 0x90c1, 0x9181, 0x5140, 0x9301, 0x53c0, 0x5280, 0x9241,\n 0x9601, 0x56c0, 0x5780, 0x9741, 0x5500, 0x95c1, 0x9481, 0x5440,\n 0x9c01, 0x5cc0, 0x5d80, 0x9d41, 0x5f00, 0x9fc1, 0x9e81, 0x5e40,\n 0x5a00, 0x9ac1, 0x9b81, 0x5b40, 0x9901, 0x59c0, 0x5880, 0x9841,\n 0x8801, 0x48c0, 0x4980, 0x8941, 0x4b00, 0x8bc1, 0x8a81, 0x4a40,\n 0x4e00, 0x8ec1, 0x8f81, 0x4f40, 0x8d01, 0x4dc0, 0x4c80, 0x8c41,\n 0x4400, 0x84c1, 0x8581, 0x4540, 0x8701, 0x47c0, 0x4680, 0x8641,\n 0x8201, 0x42c0, 0x4380, 0x8341, 0x4100, 0x81c1, 0x8081, 0x4040\n]\n\nif (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE);\n\nconst crc16 = defineCrc('crc-16', function(buf, previous) {\n if (!Buffer.isBuffer(buf)) buf = createBuffer(buf);\n\n let crc = ~~previous;\n\n for (let index = 0; index < buf.length; index++) {\n const byte = buf[index];\n crc = (TABLE[(crc ^ byte) & 0xff] ^ (crc >> 8)) & 0xffff;\n }\n\n return crc;\n});\n\nexport default crc16;\n","import { Buffer } from 'buffer';\nimport createBuffer from './create_buffer';\nimport defineCrc from './define_crc';\n\n// Generated by `./pycrc.py --algorithm=table-driven --model=ccitt --generate=c`\n// prettier-ignore\nlet TABLE = [\n 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,\n 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,\n 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,\n 0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,\n 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,\n 0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,\n 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,\n 0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,\n 0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,\n 0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,\n 0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,\n 0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,\n 0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,\n 0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,\n 0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,\n 0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,\n 0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,\n 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,\n 0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,\n 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,\n 0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,\n 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\n\nif (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE);\n\nconst crc16ccitt = defineCrc('ccitt', function(buf, previous) {\n if (!Buffer.isBuffer(buf)) buf = createBuffer(buf);\n\n let crc = typeof previous !== 'undefined' ? ~~previous : 0xffff;\n\n for (let index = 0; index < buf.length; index++) {\n const byte = buf[index];\n crc = (TABLE[((crc >> 8) ^ byte) & 0xff] ^ (crc << 8)) & 0xffff;\n }\n\n return crc;\n});\n\nexport default crc16ccitt;\n","import { Buffer } from 'buffer';\nimport createBuffer from './create_buffer';\nimport defineCrc from './define_crc';\n\n// Generated by `./pycrc.py --algorithm=table-driven --model=crc-16-modbus --generate=c`\n// prettier-ignore\nlet TABLE = [\n 0x0000, 0xc0c1, 0xc181, 0x0140, 0xc301, 0x03c0, 0x0280, 0xc241,\n 0xc601, 0x06c0, 0x0780, 0xc741, 0x0500, 0xc5c1, 0xc481, 0x0440,\n 0xcc01, 0x0cc0, 0x0d80, 0xcd41, 0x0f00, 0xcfc1, 0xce81, 0x0e40,\n 0x0a00, 0xcac1, 0xcb81, 0x0b40, 0xc901, 0x09c0, 0x0880, 0xc841,\n 0xd801, 0x18c0, 0x1980, 0xd941, 0x1b00, 0xdbc1, 0xda81, 0x1a40,\n 0x1e00, 0xdec1, 0xdf81, 0x1f40, 0xdd01, 0x1dc0, 0x1c80, 0xdc41,\n 0x1400, 0xd4c1, 0xd581, 0x1540, 0xd701, 0x17c0, 0x1680, 0xd641,\n 0xd201, 0x12c0, 0x1380, 0xd341, 0x1100, 0xd1c1, 0xd081, 0x1040,\n 0xf001, 0x30c0, 0x3180, 0xf141, 0x3300, 0xf3c1, 0xf281, 0x3240,\n 0x3600, 0xf6c1, 0xf781, 0x3740, 0xf501, 0x35c0, 0x3480, 0xf441,\n 0x3c00, 0xfcc1, 0xfd81, 0x3d40, 0xff01, 0x3fc0, 0x3e80, 0xfe41,\n 0xfa01, 0x3ac0, 0x3b80, 0xfb41, 0x3900, 0xf9c1, 0xf881, 0x3840,\n 0x2800, 0xe8c1, 0xe981, 0x2940, 0xeb01, 0x2bc0, 0x2a80, 0xea41,\n 0xee01, 0x2ec0, 0x2f80, 0xef41, 0x2d00, 0xedc1, 0xec81, 0x2c40,\n 0xe401, 0x24c0, 0x2580, 0xe541, 0x2700, 0xe7c1, 0xe681, 0x2640,\n 0x2200, 0xe2c1, 0xe381, 0x2340, 0xe101, 0x21c0, 0x2080, 0xe041,\n 0xa001, 0x60c0, 0x6180, 0xa141, 0x6300, 0xa3c1, 0xa281, 0x6240,\n 0x6600, 0xa6c1, 0xa781, 0x6740, 0xa501, 0x65c0, 0x6480, 0xa441,\n 0x6c00, 0xacc1, 0xad81, 0x6d40, 0xaf01, 0x6fc0, 0x6e80, 0xae41,\n 0xaa01, 0x6ac0, 0x6b80, 0xab41, 0x6900, 0xa9c1, 0xa881, 0x6840,\n 0x7800, 0xb8c1, 0xb981, 0x7940, 0xbb01, 0x7bc0, 0x7a80, 0xba41,\n 0xbe01, 0x7ec0, 0x7f80, 0xbf41, 0x7d00, 0xbdc1, 0xbc81, 0x7c40,\n 0xb401, 0x74c0, 0x7580, 0xb541, 0x7700, 0xb7c1, 0xb681, 0x7640,\n 0x7200, 0xb2c1, 0xb381, 0x7340, 0xb101, 0x71c0, 0x7080, 0xb041,\n 0x5000, 0x90c1, 0x9181, 0x5140, 0x9301, 0x53c0, 0x5280, 0x9241,\n 0x9601, 0x56c0, 0x5780, 0x9741, 0x5500, 0x95c1, 0x9481, 0x5440,\n 0x9c01, 0x5cc0, 0x5d80, 0x9d41, 0x5f00, 0x9fc1, 0x9e81, 0x5e40,\n 0x5a00, 0x9ac1, 0x9b81, 0x5b40, 0x9901, 0x59c0, 0x5880, 0x9841,\n 0x8801, 0x48c0, 0x4980, 0x8941, 0x4b00, 0x8bc1, 0x8a81, 0x4a40,\n 0x4e00, 0x8ec1, 0x8f81, 0x4f40, 0x8d01, 0x4dc0, 0x4c80, 0x8c41,\n 0x4400, 0x84c1, 0x8581, 0x4540, 0x8701, 0x47c0, 0x4680, 0x8641,\n 0x8201, 0x42c0, 0x4380, 0x8341, 0x4100, 0x81c1, 0x8081, 0x4040\n]\n\nif (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE);\n\nconst crc16modbus = defineCrc('crc-16-modbus', function(buf, previous) {\n if (!Buffer.isBuffer(buf)) buf = createBuffer(buf);\n\n let crc = typeof previous !== 'undefined' ? ~~previous : 0xffff;\n\n for (let index = 0; index < buf.length; index++) {\n const byte = buf[index];\n crc = (TABLE[(crc ^ byte) & 0xff] ^ (crc >> 8)) & 0xffff;\n }\n\n return crc;\n});\n\nexport default crc16modbus;\n","import { Buffer } from 'buffer';\nimport createBuffer from './create_buffer';\nimport defineCrc from './define_crc';\n\nconst crc16xmodem = defineCrc('xmodem', function(buf, previous) {\n if (!Buffer.isBuffer(buf)) buf = createBuffer(buf);\n\n let crc = typeof previous !== 'undefined' ? ~~previous : 0x0;\n\n for (let index = 0; index < buf.length; index++) {\n const byte = buf[index];\n let code = (crc >>> 8) & 0xff;\n\n code ^= byte & 0xff;\n code ^= code >>> 4;\n crc = (crc << 8) & 0xffff;\n crc ^= code;\n code = (code << 5) & 0xffff;\n crc ^= code;\n code = (code << 7) & 0xffff;\n crc ^= code;\n }\n\n return crc;\n});\n\nexport default crc16xmodem;\n","import { Buffer } from 'buffer';\nimport createBuffer from './create_buffer';\nimport defineCrc from './define_crc';\n\n// Generated by `./pycrc.py --algorithm=table-driven --model=kermit --generate=c`\n// prettier-ignore\nlet TABLE = [\n 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf,\n 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7,\n 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e,\n 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876,\n 0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd,\n 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5,\n 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c,\n 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974,\n 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb,\n 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3,\n 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a,\n 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72,\n 0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9,\n 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1,\n 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738,\n 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70,\n 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7,\n 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff,\n 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036,\n 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e,\n 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5,\n 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd,\n 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134,\n 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c,\n 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3,\n 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb,\n 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232,\n 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a,\n 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1,\n 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9,\n 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330,\n 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78\n];\n\nif (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE);\n\nconst crc16kermit = defineCrc('kermit', function(buf, previous) {\n if (!Buffer.isBuffer(buf)) buf = createBuffer(buf);\n\n let crc = typeof previous !== 'undefined' ? ~~previous : 0x0000;\n\n for (let index = 0; index < buf.length; index++) {\n const byte = buf[index];\n crc = (TABLE[(crc ^ byte) & 0xff] ^ (crc >> 8)) & 0xffff;\n }\n\n return crc;\n});\n\nexport default crc16kermit;\n","import { Buffer } from 'buffer';\nimport createBuffer from './create_buffer';\nimport defineCrc from './define_crc';\n\n// Generated by `./pycrc.py --algorithm=table-drive --model=crc-24 --generate=c`\n// prettier-ignore\nlet TABLE = [\n 0x000000, 0x864cfb, 0x8ad50d, 0x0c99f6, 0x93e6e1, 0x15aa1a, 0x1933ec, 0x9f7f17,\n 0xa18139, 0x27cdc2, 0x2b5434, 0xad18cf, 0x3267d8, 0xb42b23, 0xb8b2d5, 0x3efe2e,\n 0xc54e89, 0x430272, 0x4f9b84, 0xc9d77f, 0x56a868, 0xd0e493, 0xdc7d65, 0x5a319e,\n 0x64cfb0, 0xe2834b, 0xee1abd, 0x685646, 0xf72951, 0x7165aa, 0x7dfc5c, 0xfbb0a7,\n 0x0cd1e9, 0x8a9d12, 0x8604e4, 0x00481f, 0x9f3708, 0x197bf3, 0x15e205, 0x93aefe,\n 0xad50d0, 0x2b1c2b, 0x2785dd, 0xa1c926, 0x3eb631, 0xb8faca, 0xb4633c, 0x322fc7,\n 0xc99f60, 0x4fd39b, 0x434a6d, 0xc50696, 0x5a7981, 0xdc357a, 0xd0ac8c, 0x56e077,\n 0x681e59, 0xee52a2, 0xe2cb54, 0x6487af, 0xfbf8b8, 0x7db443, 0x712db5, 0xf7614e,\n 0x19a3d2, 0x9fef29, 0x9376df, 0x153a24, 0x8a4533, 0x0c09c8, 0x00903e, 0x86dcc5,\n 0xb822eb, 0x3e6e10, 0x32f7e6, 0xb4bb1d, 0x2bc40a, 0xad88f1, 0xa11107, 0x275dfc,\n 0xdced5b, 0x5aa1a0, 0x563856, 0xd074ad, 0x4f0bba, 0xc94741, 0xc5deb7, 0x43924c,\n 0x7d6c62, 0xfb2099, 0xf7b96f, 0x71f594, 0xee8a83, 0x68c678, 0x645f8e, 0xe21375,\n 0x15723b, 0x933ec0, 0x9fa736, 0x19ebcd, 0x8694da, 0x00d821, 0x0c41d7, 0x8a0d2c,\n 0xb4f302, 0x32bff9, 0x3e260f, 0xb86af4, 0x2715e3, 0xa15918, 0xadc0ee, 0x2b8c15,\n 0xd03cb2, 0x567049, 0x5ae9bf, 0xdca544, 0x43da53, 0xc596a8, 0xc90f5e, 0x4f43a5,\n 0x71bd8b, 0xf7f170, 0xfb6886, 0x7d247d, 0xe25b6a, 0x641791, 0x688e67, 0xeec29c,\n 0x3347a4, 0xb50b5f, 0xb992a9, 0x3fde52, 0xa0a145, 0x26edbe, 0x2a7448, 0xac38b3,\n 0x92c69d, 0x148a66, 0x181390, 0x9e5f6b, 0x01207c, 0x876c87, 0x8bf571, 0x0db98a,\n 0xf6092d, 0x7045d6, 0x7cdc20, 0xfa90db, 0x65efcc, 0xe3a337, 0xef3ac1, 0x69763a,\n 0x578814, 0xd1c4ef, 0xdd5d19, 0x5b11e2, 0xc46ef5, 0x42220e, 0x4ebbf8, 0xc8f703,\n 0x3f964d, 0xb9dab6, 0xb54340, 0x330fbb, 0xac70ac, 0x2a3c57, 0x26a5a1, 0xa0e95a,\n 0x9e1774, 0x185b8f, 0x14c279, 0x928e82, 0x0df195, 0x8bbd6e, 0x872498, 0x016863,\n 0xfad8c4, 0x7c943f, 0x700dc9, 0xf64132, 0x693e25, 0xef72de, 0xe3eb28, 0x65a7d3,\n 0x5b59fd, 0xdd1506, 0xd18cf0, 0x57c00b, 0xc8bf1c, 0x4ef3e7, 0x426a11, 0xc426ea,\n 0x2ae476, 0xaca88d, 0xa0317b, 0x267d80, 0xb90297, 0x3f4e6c, 0x33d79a, 0xb59b61,\n 0x8b654f, 0x0d29b4, 0x01b042, 0x87fcb9, 0x1883ae, 0x9ecf55, 0x9256a3, 0x141a58,\n 0xefaaff, 0x69e604, 0x657ff2, 0xe33309, 0x7c4c1e, 0xfa00e5, 0xf69913, 0x70d5e8,\n 0x4e2bc6, 0xc8673d, 0xc4fecb, 0x42b230, 0xddcd27, 0x5b81dc, 0x57182a, 0xd154d1,\n 0x26359f, 0xa07964, 0xace092, 0x2aac69, 0xb5d37e, 0x339f85, 0x3f0673, 0xb94a88,\n 0x87b4a6, 0x01f85d, 0x0d61ab, 0x8b2d50, 0x145247, 0x921ebc, 0x9e874a, 0x18cbb1,\n 0xe37b16, 0x6537ed, 0x69ae1b, 0xefe2e0, 0x709df7, 0xf6d10c, 0xfa48fa, 0x7c0401,\n 0x42fa2f, 0xc4b6d4, 0xc82f22, 0x4e63d9, 0xd11cce, 0x575035, 0x5bc9c3, 0xdd8538\n]\n\nif (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE);\n\nconst crc24 = defineCrc('crc-24', function(buf, previous) {\n if (!Buffer.isBuffer(buf)) buf = createBuffer(buf);\n\n let crc = typeof previous !== 'undefined' ? ~~previous : 0xb704ce;\n\n for (let index = 0; index < buf.length; index++) {\n const byte = buf[index];\n crc = (TABLE[((crc >> 16) ^ byte) & 0xff] ^ (crc << 8)) & 0xffffff;\n }\n\n return crc;\n});\n\nexport default crc24;\n","import { Buffer } from 'buffer';\nimport createBuffer from './create_buffer';\nimport defineCrc from './define_crc';\n\n// Generated by `./pycrc.py --algorithm=table-driven --model=crc-32 --generate=c`\n// prettier-ignore\nlet TABLE = [\n 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,\n 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,\n 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,\n 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,\n 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,\n 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,\n 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec,\n 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,\n 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,\n 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,\n 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940,\n 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,\n 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116,\n 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,\n 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,\n 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,\n 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a,\n 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,\n 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818,\n 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,\n 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,\n 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,\n 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c,\n 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,\n 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,\n 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,\n 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,\n 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,\n 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086,\n 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,\n 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4,\n 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,\n 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,\n 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,\n 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,\n 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,\n 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe,\n 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,\n 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,\n 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,\n 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252,\n 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,\n 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60,\n 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,\n 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,\n 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,\n 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04,\n 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,\n 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a,\n 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,\n 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,\n 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,\n 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e,\n 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,\n 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,\n 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,\n 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,\n 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,\n 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0,\n 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,\n 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6,\n 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,\n 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,\n 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d\n];\n\nif (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE);\n\nconst crc32 = defineCrc('crc-32', function(buf, previous) {\n if (!Buffer.isBuffer(buf)) buf = createBuffer(buf);\n\n let crc = previous === 0 ? 0 : ~~previous ^ -1;\n\n for (let index = 0; index < buf.length; index++) {\n const byte = buf[index];\n crc = TABLE[(crc ^ byte) & 0xff] ^ (crc >>> 8);\n }\n\n return crc ^ -1;\n});\n\nexport default crc32;\n","import { Buffer } from 'buffer';\nimport createBuffer from './create_buffer';\nimport defineCrc from './define_crc';\n\n// Generated by `./pycrc.py --algorithm=table-driven --model=jam --generate=c`\n// prettier-ignore\nlet TABLE = [\n 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,\n 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,\n 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,\n 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,\n 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,\n 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,\n 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec,\n 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,\n 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,\n 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,\n 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940,\n 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,\n 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116,\n 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,\n 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,\n 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,\n 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a,\n 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,\n 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818,\n 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,\n 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,\n 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,\n 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c,\n 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,\n 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,\n 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,\n 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,\n 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,\n 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086,\n 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,\n 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4,\n 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,\n 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,\n 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,\n 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,\n 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,\n 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe,\n 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,\n 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,\n 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,\n 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252,\n 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,\n 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60,\n 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,\n 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,\n 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,\n 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04,\n 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,\n 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a,\n 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,\n 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,\n 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,\n 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e,\n 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,\n 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,\n 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,\n 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,\n 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,\n 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0,\n 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,\n 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6,\n 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,\n 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,\n 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d\n];\n\nif (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE);\n\nconst crcjam = defineCrc('jam', function(buf, previous = -1) {\n if (!Buffer.isBuffer(buf)) buf = createBuffer(buf);\n\n let crc = previous === 0 ? 0 : ~~previous;\n\n for (let index = 0; index < buf.length; index++) {\n const byte = buf[index];\n crc = TABLE[(crc ^ byte) & 0xff] ^ (crc >>> 8);\n }\n\n return crc;\n});\n\nexport default crcjam;\n","import crc1 from './crc1';\nimport crc8 from './crc8';\nimport crc81wire from './crc81wire';\nimport crc16 from './crc16';\nimport crc16ccitt from './crc16ccitt';\nimport crc16modbus from './crc16modbus';\nimport crc16xmodem from './crc16xmodem';\nimport crc16kermit from './crc16kermit';\nimport crc24 from './crc24';\nimport crc32 from './crc32';\nimport crcjam from './crcjam';\n\nexport { crc1 };\nexport { crc8 };\nexport { crc81wire };\nexport { crc16 };\nexport { crc16ccitt };\nexport { crc16modbus };\nexport { crc16xmodem };\nexport { crc16kermit };\nexport { crc24 };\nexport { crc32 };\nexport { crcjam };\n\nexport default {\n crc1,\n crc8,\n crc81wire,\n crc16,\n crc16ccitt,\n crc16modbus,\n crc16xmodem,\n crc16kermit,\n crc24,\n crc32,\n crcjam,\n};\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","'use strict'\r\n\r\n/**\r\n * Credits to https://github.com/cryptocoinjs/blake-hash\r\n */\r\nBlake256.sigma = [\r\n [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],\r\n [14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3],\r\n [11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4],\r\n [7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8],\r\n [9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13],\r\n [2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9],\r\n [12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11],\r\n [13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10],\r\n [6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5],\r\n [10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0],\r\n [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],\r\n [14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3],\r\n [11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4],\r\n [7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8],\r\n [9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13],\r\n [2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9]\r\n]\r\n\r\nBlake256.u256 = [\r\n 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344,\r\n 0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89,\r\n 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c,\r\n 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917\r\n]\r\n\r\nBlake256.padding = Buffer.from([\r\n 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\r\n])\r\n\r\nBlake256.prototype._length_carry = function (arr) {\r\n for (var j = 0; j < arr.length; ++j) {\r\n if (arr[j] < 0x0100000000) break\r\n arr[j] -= 0x0100000000\r\n arr[j + 1] += 1\r\n }\r\n}\r\n\r\nBlake256.prototype.update = function (data, encoding) {\r\n data = Buffer.from(data, encoding)\r\n var block = this._block\r\n var offset = 0\r\n\r\n while (this._blockOffset + data.length - offset >= block.length) {\r\n for (var i = this._blockOffset; i < block.length;) block[i++] = data[offset++]\r\n\r\n this._length[0] += block.length * 8\r\n this._length_carry(this._length)\r\n\r\n this._compress()\r\n this._blockOffset = 0\r\n }\r\n\r\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\r\n return this\r\n}\r\n\r\nvar zo = Buffer.from([0x01])\r\nvar oo = Buffer.from([0x81])\r\n\r\nfunction rot (x, n) {\r\n return ((x << (32 - n)) | (x >>> n)) >>> 0\r\n}\r\n\r\nfunction g (v, m, i, a, b, c, d, e) {\r\n var sigma = Blake256.sigma\r\n var u256 = Blake256.u256\r\n\r\n v[a] = (v[a] + ((m[sigma[i][e]] ^ u256[sigma[i][e + 1]]) >>> 0) + v[b]) >>> 0\r\n v[d] = rot(v[d] ^ v[a], 16)\r\n v[c] = (v[c] + v[d]) >>> 0\r\n v[b] = rot(v[b] ^ v[c], 12)\r\n v[a] = (v[a] + ((m[sigma[i][e + 1]] ^ u256[sigma[i][e]]) >>> 0) + v[b]) >>> 0\r\n v[d] = rot(v[d] ^ v[a], 8)\r\n v[c] = (v[c] + v[d]) >>> 0\r\n v[b] = rot(v[b] ^ v[c], 7)\r\n}\r\n\r\nfunction Blake256 () {\r\n this._h = [\r\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\r\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\r\n ]\r\n\r\n this._s = [0, 0, 0, 0]\r\n\r\n this._block = Buffer.alloc(64)\r\n this._blockOffset = 0\r\n this._length = [0, 0]\r\n\r\n this._nullt = false\r\n\r\n this._zo = zo\r\n this._oo = oo\r\n}\r\n\r\nBlake256.prototype._compress = function () {\r\n var u256 = Blake256.u256\r\n var v = new Array(16)\r\n var m = new Array(16)\r\n var i\r\n\r\n for (i = 0; i < 16; ++i) m[i] = this._block.readUInt32BE(i * 4)\r\n for (i = 0; i < 8; ++i) v[i] = this._h[i] >>> 0\r\n for (i = 8; i < 12; ++i) v[i] = (this._s[i - 8] ^ u256[i - 8]) >>> 0\r\n for (i = 12; i < 16; ++i) v[i] = u256[i - 8]\r\n\r\n if (!this._nullt) {\r\n v[12] = (v[12] ^ this._length[0]) >>> 0\r\n v[13] = (v[13] ^ this._length[0]) >>> 0\r\n v[14] = (v[14] ^ this._length[1]) >>> 0\r\n v[15] = (v[15] ^ this._length[1]) >>> 0\r\n }\r\n\r\n for (i = 0; i < 14; ++i) {\r\n /* column step */\r\n g(v, m, i, 0, 4, 8, 12, 0)\r\n g(v, m, i, 1, 5, 9, 13, 2)\r\n g(v, m, i, 2, 6, 10, 14, 4)\r\n g(v, m, i, 3, 7, 11, 15, 6)\r\n /* diagonal step */\r\n g(v, m, i, 0, 5, 10, 15, 8)\r\n g(v, m, i, 1, 6, 11, 12, 10)\r\n g(v, m, i, 2, 7, 8, 13, 12)\r\n g(v, m, i, 3, 4, 9, 14, 14)\r\n }\r\n\r\n for (i = 0; i < 16; ++i) this._h[i % 8] = (this._h[i % 8] ^ v[i]) >>> 0\r\n for (i = 0; i < 8; ++i) this._h[i] = (this._h[i] ^ this._s[i % 4]) >>> 0\r\n}\r\n\r\nBlake256.prototype._padding = function () {\r\n var lo = this._length[0] + this._blockOffset * 8\r\n var hi = this._length[1]\r\n if (lo >= 0x0100000000) {\r\n lo -= 0x0100000000\r\n hi += 1\r\n }\r\n\r\n var msglen = Buffer.alloc(8)\r\n msglen.writeUInt32BE(hi, 0)\r\n msglen.writeUInt32BE(lo, 4)\r\n\r\n if (this._blockOffset === 55) {\r\n this._length[0] -= 8\r\n this.update(this._oo)\r\n } else {\r\n if (this._blockOffset < 55) {\r\n if (this._blockOffset === 0) this._nullt = true\r\n this._length[0] -= (55 - this._blockOffset) * 8\r\n this.update(Blake256.padding.slice(0, 55 - this._blockOffset))\r\n } else {\r\n this._length[0] -= (64 - this._blockOffset) * 8\r\n this.update(Blake256.padding.slice(0, 64 - this._blockOffset))\r\n this._length[0] -= 55 * 8\r\n this.update(Blake256.padding.slice(1, 1 + 55))\r\n this._nullt = true\r\n }\r\n\r\n this.update(this._zo)\r\n this._length[0] -= 8\r\n }\r\n\r\n this._length[0] -= 64\r\n this.update(msglen)\r\n}\r\n\r\nBlake256.prototype.digest = function (encoding) {\r\n this._padding()\r\n\r\n var buffer = Buffer.alloc(32)\r\n for (var i = 0; i < 8; ++i) buffer.writeUInt32BE(this._h[i], i * 4)\r\n return buffer.toString(encoding)\r\n}\r\n\r\nmodule.exports = Blake256\r\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","/***\n * @license\n * https://github.com/bitcoincashjs/bchaddr\n * Copyright (c) 2018 Emilio Almansi\n * Distributed under the MIT software license, see the accompanying\n * file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n */\n\nvar bs58check = require('bs58check')\nvar cashaddr = require('cashaddrjs-slp')\n\n/**\n * General purpose Bitcoin Cash address detection and translation.
\n * Supports all major Bitcoin Cash address formats.
\n * Currently:\n *
    \n *
  • Legacy format
  • \n *
  • Bitpay format
  • \n *
  • Cashaddr format
  • \n *
\n * @module bchaddr\n */\n\n/**\n * @static\n * Supported Bitcoin Cash address formats.\n */\nvar Format = {}\nFormat.Legacy = 'legacy'\nFormat.Bitpay = 'bitpay'\nFormat.Cashaddr = 'cashaddr'\nFormat.Slpaddr = 'slpaddr'\n\n/**\n * @static\n * Supported networks.\n */\nvar Network = {}\nNetwork.Mainnet = 'mainnet'\nNetwork.Testnet = 'testnet'\n\n/**\n * @static\n * Supported address types.\n */\nvar Type = {}\nType.P2PKH = 'p2pkh'\nType.P2SH = 'p2sh'\n\n/**\n * Returns a boolean indicating whether the given input is a valid Bitcoin Cash address.\n * @static\n * @param {*} input - Any input to check for validity.\n * @returns {boolean}\n */\nfunction isValidAddress (input) {\n try {\n decodeAddress(input)\n return true\n } catch (error) {\n return false\n }\n}\n\n/**\n * Detects what is the given address' format.\n * @static\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @return {string}\n * @throws {InvalidAddressError}\n */\nfunction detectAddressFormat (address) {\n return decodeAddress(address).format\n}\n\n/**\n * Detects what is the given address' network.\n * @static\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @return {string}\n * @throws {InvalidAddressError}\n */\nfunction detectAddressNetwork (address) {\n return decodeAddress(address).network\n}\n\n/**\n * Detects what is the given address' type.\n * @static\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @return {string}\n * @throws {InvalidAddressError}\n */\nfunction detectAddressType (address) {\n return decodeAddress(address).type\n}\n\n/**\n * Translates the given address into legacy format.\n * @static\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @return {string}\n * @throws {InvalidAddressError}\n */\nfunction toLegacyAddress (address) {\n var decoded = decodeAddress(address)\n if (decoded.format === Format.Legacy) {\n return address\n }\n return encodeAsLegacy(decoded)\n}\n\n/**\n * Translates the given address into bitpay format.\n * @static\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @return {string}\n * @throws {InvalidAddressError}\n */\nfunction toBitpayAddress (address) {\n var decoded = decodeAddress(address)\n if (decoded.format === Format.Bitpay) {\n return address\n }\n return encodeAsBitpay(decoded)\n}\n\n/**\n * Translates the given address into cashaddr format.\n * @static\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @return {string}\n * @throws {InvalidAddressError}\n */\nfunction toCashAddress (address) {\n var decoded = decodeAddress(address)\n return encodeAsCashaddr(decoded)\n}\n\n/**\n * Translates the given address into cashaddr format.\n * @static\n * @param {string} address - A valid address in any format.\n * @return {string}\n * @throws {InvalidAddressError}\n */\nfunction toSlpAddress (address) {\n var decoded = decodeAddress(address)\n return encodeAsSlpaddr(decoded)\n}\n\n/**\n * Translates the given address into mainnet format.\n * @static\n * @param {string} address - A valid address in any format.\n * @return {string}\n * @throws {InvalidAddressError}\n */\nfunction toMainnetAddress (address) {\n var decoded = decodeAddress(address)\n return encodeAsMainnetaddr(decoded)\n}\n\n/**\n * Translates the given address into testnet format.\n * @static\n * @param {string} address - A valid address in any format.\n * @return {string}\n * @throws {InvalidAddressError}\n */\nfunction toTestnetAddress (address) {\n var decoded = decodeAddress(address)\n return encodeAsTestnetaddr(decoded)\n}\n\n/**\n * Translates the given address into regtest format.\n * @static\n * @param {string} address - A valid address in any format.\n * @return {string}\n * @throws {InvalidAddressError}\n */\nfunction toRegtestAddress (address) {\n var decoded = decodeAddress(address)\n return encodeAsRegtestaddr(decoded)\n}\n\n/**\n * Translates the given address into regtest format.\n * @static\n * @param {string} address - A valid address in any format.\n * @return {string}\n * @throws {InvalidAddressError}\n */\nfunction toSlpRegtestAddress (address) {\n var decoded = decodeAddress(address)\n return encodeAsSlpRegtestaddr(decoded)\n}\n\n/**\n * Version byte table for base58 formats.\n * @private\n */\nvar VERSION_BYTE = {}\nVERSION_BYTE[Format.Legacy] = {}\nVERSION_BYTE[Format.Legacy][Network.Mainnet] = {}\nVERSION_BYTE[Format.Legacy][Network.Mainnet][Type.P2PKH] = 0\nVERSION_BYTE[Format.Legacy][Network.Mainnet][Type.P2SH] = 5\nVERSION_BYTE[Format.Legacy][Network.Testnet] = {}\nVERSION_BYTE[Format.Legacy][Network.Testnet][Type.P2PKH] = 111\nVERSION_BYTE[Format.Legacy][Network.Testnet][Type.P2SH] = 196\nVERSION_BYTE[Format.Bitpay] = {}\nVERSION_BYTE[Format.Bitpay][Network.Mainnet] = {}\nVERSION_BYTE[Format.Bitpay][Network.Mainnet][Type.P2PKH] = 28\nVERSION_BYTE[Format.Bitpay][Network.Mainnet][Type.P2SH] = 40\nVERSION_BYTE[Format.Bitpay][Network.Testnet] = {}\nVERSION_BYTE[Format.Bitpay][Network.Testnet][Type.P2PKH] = 111\nVERSION_BYTE[Format.Bitpay][Network.Testnet][Type.P2SH] = 196\n\n/**\n * Decodes the given address into its constituting hash, format, network and type.\n * @private\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @return {object}\n * @throws {InvalidAddressError}\n */\nfunction decodeAddress (address) {\n try {\n return decodeBase58Address(address)\n } catch (error) {\n }\n try {\n return decodeCashAddress(address)\n } catch (error) {\n }\n try {\n return decodeSlpAddress(address)\n } catch (error) {\n }\n throw new InvalidAddressError()\n}\n\n/**\n * Length of a valid base58check encoding payload: 1 byte for\n * the version byte plus 20 bytes for a RIPEMD-160 hash.\n * @private\n */\nvar BASE_58_CHECK_PAYLOAD_LENGTH = 21\n\n/**\n * Attempts to decode the given address assuming it is a base58 address.\n * @private\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @return {object}\n * @throws {InvalidAddressError}\n */\nfunction decodeBase58Address (address) {\n try {\n var payload = bs58check.decode(address)\n if (payload.length !== BASE_58_CHECK_PAYLOAD_LENGTH) {\n throw new InvalidAddressError()\n }\n var versionByte = payload[0]\n var hash = Array.prototype.slice.call(payload, 1)\n switch (versionByte) {\n case VERSION_BYTE[Format.Legacy][Network.Mainnet][Type.P2PKH]:\n return {\n hash: hash,\n format: Format.Legacy,\n network: Network.Mainnet,\n type: Type.P2PKH\n }\n case VERSION_BYTE[Format.Legacy][Network.Mainnet][Type.P2SH]:\n return {\n hash: hash,\n format: Format.Legacy,\n network: Network.Mainnet,\n type: Type.P2SH\n }\n case VERSION_BYTE[Format.Legacy][Network.Testnet][Type.P2PKH]:\n return {\n hash: hash,\n format: Format.Legacy,\n network: Network.Testnet,\n type: Type.P2PKH\n }\n case VERSION_BYTE[Format.Legacy][Network.Testnet][Type.P2SH]:\n return {\n hash: hash,\n format: Format.Legacy,\n network: Network.Testnet,\n type: Type.P2SH\n }\n case VERSION_BYTE[Format.Bitpay][Network.Mainnet][Type.P2PKH]:\n return {\n hash: hash,\n format: Format.Bitpay,\n network: Network.Mainnet,\n type: Type.P2PKH\n }\n case VERSION_BYTE[Format.Bitpay][Network.Mainnet][Type.P2SH]:\n return {\n hash: hash,\n format: Format.Bitpay,\n network: Network.Mainnet,\n type: Type.P2SH\n }\n }\n } catch (error) {\n }\n throw new InvalidAddressError()\n}\n\n/**\n * Attempts to decode the given address assuming it is a cashaddr address.\n * @private\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @return {object}\n * @throws {InvalidAddressError}\n */\nfunction decodeCashAddress (address) {\n if (address.indexOf(':') !== -1) {\n try {\n return decodeCashAddressWithPrefix(address)\n } catch (error) {\n }\n } else {\n var prefixes = ['bitcoincash', 'bchtest', 'regtest', 'bchreg']\n for (var i = 0; i < prefixes.length; ++i) {\n try {\n var prefix = prefixes[i]\n return decodeCashAddressWithPrefix(prefix + ':' + address)\n } catch (error) {\n }\n }\n }\n throw new InvalidAddressError()\n}\n\n/**\n * Attempts to decode the given address assuming it is a cashaddr address with explicit prefix.\n * @private\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @return {object}\n * @throws {InvalidAddressError}\n */\nfunction decodeCashAddressWithPrefix (address) {\n try {\n var decoded = cashaddr.decode(address)\n var hash = Array.prototype.slice.call(decoded.hash, 0)\n var type = decoded.type === 'P2PKH' ? Type.P2PKH : Type.P2SH\n switch (decoded.prefix) {\n case 'bitcoincash':\n return {\n hash: hash,\n format: Format.Cashaddr,\n network: Network.Mainnet,\n type: type\n }\n case 'bchtest':\n case 'regtest':\n case 'bchreg':\n return {\n hash: hash,\n format: Format.Cashaddr,\n network: Network.Testnet,\n type: type\n }\n }\n } catch (error) {\n }\n throw new InvalidAddressError()\n}\n\n/**\n * Attempts to decode the given address assuming it is a slpaddr address.\n * @private\n * @param {string} address - A valid SLP address in any format.\n * @return {object}\n * @throws {InvalidAddressError}\n */\nfunction decodeSlpAddress (address) {\n if (address.indexOf(':') !== -1) {\n try {\n return decodeSlpAddressWithPrefix(address)\n } catch (error) {\n }\n } else {\n var prefixes = ['simpleledger', 'slptest', 'slpreg']\n for (var i = 0; i < prefixes.length; ++i) {\n try {\n var prefix = prefixes[i]\n return decodeSlpAddressWithPrefix(prefix + ':' + address)\n } catch (error) {\n }\n }\n }\n throw new InvalidAddressError()\n}\n\n/**\n * Attempts to decode the given address assuming it is a slpaddr address with explicit prefix.\n * @private\n * @param {string} address - A valid SLP address in any format.\n * @return {object}\n * @throws {InvalidAddressError}\n */\nfunction decodeSlpAddressWithPrefix (address) {\n try {\n var decoded = cashaddr.decode(address)\n var hash = Array.prototype.slice.call(decoded.hash, 0)\n var type = decoded.type === 'P2PKH' ? Type.P2PKH : Type.P2SH\n switch (decoded.prefix) {\n case 'simpleledger':\n return {\n hash: hash,\n format: Format.Slpaddr,\n network: Network.Mainnet,\n type: type\n }\n case 'slptest':\n case 'slpreg':\n return {\n hash: hash,\n format: Format.Slpaddr,\n network: Network.Testnet,\n type: type\n }\n }\n } catch (error) {\n }\n throw new InvalidAddressError()\n}\n\n/**\n * Encodes the given decoded address into legacy format.\n * @private\n * @param {object} decoded\n * @returns {string}\n */\nfunction encodeAsLegacy (decoded) {\n var versionByte = VERSION_BYTE[Format.Legacy][decoded.network][decoded.type]\n var buffer = Buffer.alloc(1 + decoded.hash.length)\n buffer[0] = versionByte\n buffer.set(decoded.hash, 1)\n return bs58check.encode(buffer)\n}\n\n/**\n * Encodes the given decoded address into bitpay format.\n * @private\n * @param {object} decoded\n * @returns {string}\n */\nfunction encodeAsBitpay (decoded) {\n var versionByte = VERSION_BYTE[Format.Bitpay][decoded.network][decoded.type]\n var buffer = Buffer.alloc(1 + decoded.hash.length)\n buffer[0] = versionByte\n buffer.set(decoded.hash, 1)\n return bs58check.encode(buffer)\n}\n\n/**\n * Encodes the given decoded address into cashaddr format.\n * @private\n * @param {object} decoded\n * @returns {string}\n */\nfunction encodeAsCashaddr (decoded) {\n var prefix = decoded.network === Network.Mainnet ? 'bitcoincash' : 'bchtest'\n var type = decoded.type === Type.P2PKH ? 'P2PKH' : 'P2SH'\n var hash = Uint8Array.from(decoded.hash)\n return cashaddr.encode(prefix, type, hash)\n}\n\n/**\n * Encodes the given decoded address into slpaddr format.\n * @private\n * @param {object} decoded\n * @returns {string}\n */\nfunction encodeAsSlpaddr (decoded) {\n var prefix = decoded.network === Network.Mainnet ? 'simpleledger' : 'slptest'\n var type = decoded.type === Type.P2PKH ? 'P2PKH' : 'P2SH'\n var hash = Uint8Array.from(decoded.hash)\n return cashaddr.encode(prefix, type, hash)\n}\n\n/**\n * Encodes the given decoded address into mainnet format.\n * @private\n * @param {object} decoded\n * @returns {string}\n */\nfunction encodeAsMainnetaddr (decoded) {\n var prefix = 'bitcoincash'\n var type = decoded.type === Type.P2PKH ? 'P2PKH' : 'P2SH'\n var hash = Uint8Array.from(decoded.hash)\n if (decoded.format === Format.Slpaddr) {\n prefix = 'simpleledger'\n }\n return cashaddr.encode(prefix, type, hash)\n}\n\n/**\n * Encodes the given decoded address into testnet format.\n * @private\n * @param {object} decoded\n * @returns {string}\n */\nfunction encodeAsTestnetaddr (decoded) {\n var prefix = 'bchtest'\n var type = decoded.type === Type.P2PKH ? 'P2PKH' : 'P2SH'\n var hash = Uint8Array.from(decoded.hash)\n if (decoded.format === Format.Slpaddr) {\n prefix = 'slptest'\n }\n return cashaddr.encode(prefix, type, hash)\n}\n\n/**\n * Encodes the given decoded address into regtest format.\n * @private\n * @param {object} decoded\n * @returns {string}\n */\nfunction encodeAsRegtestaddr (decoded) {\n var prefix = 'bchreg'\n var type = decoded.type === Type.P2PKH ? 'P2PKH' : 'P2SH'\n var hash = Uint8Array.from(decoded.hash)\n if (decoded.format === Format.Slpaddr) {\n prefix = 'slpreg'\n }\n return cashaddr.encode(prefix, type, hash)\n}\n\n/**\n * Encodes the given decoded address into regtest format.\n * @private\n * @param {object} decoded\n * @returns {string}\n */\nfunction encodeAsSlpRegtestaddr (decoded) {\n var prefix = 'slpreg'\n var type = decoded.type === Type.P2PKH ? 'P2PKH' : 'P2SH'\n var hash = Uint8Array.from(decoded.hash)\n return cashaddr.encode(prefix, type, hash)\n}\n\n/**\n * Returns a boolean indicating whether the address is in legacy format.\n * @static\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @returns {boolean}\n * @throws {InvalidAddressError}\n */\nfunction isLegacyAddress (address) {\n return detectAddressFormat(address) === Format.Legacy\n}\n\n/**\n * Returns a boolean indicating whether the address is in bitpay format.\n * @static\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @returns {boolean}\n * @throws {InvalidAddressError}\n */\nfunction isBitpayAddress (address) {\n return detectAddressFormat(address) === Format.Bitpay\n}\n\n/**\n * Returns a boolean indicating whether the address is in cashaddr format.\n * @static\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @returns {boolean}\n * @throws {InvalidAddressError}\n */\nfunction isCashAddress (address) {\n return detectAddressFormat(address) === Format.Cashaddr\n}\n\n/**\n * Returns a boolean indicating whether the address is in cashaddr format.\n * @static\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @returns {boolean}\n * @throws {InvalidAddressError}\n */\nfunction isSlpAddress (address) {\n return detectAddressFormat(address) === Format.Slpaddr\n}\n\n/**\n * Returns a boolean indicating whether the address is a mainnet address.\n * @static\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @returns {boolean}\n * @throws {InvalidAddressError}\n */\nfunction isMainnetAddress (address) {\n return detectAddressNetwork(address) === Network.Mainnet\n}\n\n/**\n * Returns a boolean indicating whether the address is a testnet address.\n * @static\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @returns {boolean}\n * @throws {InvalidAddressError}\n */\nfunction isTestnetAddress (address) {\n return detectAddressNetwork(address) === Network.Testnet\n}\n\n/**\n * Returns a boolean indicating whether the address is a p2pkh address.\n * @static\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @returns {boolean}\n * @throws {InvalidAddressError}\n */\nfunction isP2PKHAddress (address) {\n return detectAddressType(address) === Type.P2PKH\n}\n\n/**\n * Returns a boolean indicating whether the address is a p2sh address.\n * @static\n * @param {string} address - A valid Bitcoin Cash address in any format.\n * @returns {boolean}\n * @throws {InvalidAddressError}\n */\nfunction isP2SHAddress (address) {\n return detectAddressType(address) === Type.P2SH\n}\n\n/**\n * Error thrown when the address given as input is not a valid Bitcoin Cash address.\n * @constructor\n * InvalidAddressError\n */\nfunction InvalidAddressError () {\n var error = new Error()\n this.name = error.name = 'InvalidAddressError'\n this.message = error.message = 'Received an invalid Bitcoin Cash address as input.'\n this.stack = error.stack\n}\n\nInvalidAddressError.prototype = Object.create(Error.prototype)\n\nmodule.exports = {\n Format: Format,\n Network: Network,\n Type: Type,\n isValidAddress: isValidAddress,\n detectAddressFormat: detectAddressFormat,\n detectAddressNetwork: detectAddressNetwork,\n detectAddressType: detectAddressType,\n decodeAddress: decodeAddress,\n toLegacyAddress: toLegacyAddress,\n toBitpayAddress: toBitpayAddress,\n encodeAsCashaddr: encodeAsCashaddr,\n toCashAddress: toCashAddress,\n encodeAsSlpaddr: encodeAsSlpaddr,\n toSlpAddress: toSlpAddress,\n toMainnetAddress: toMainnetAddress,\n toTestnetAddress: toTestnetAddress,\n encodeAsMainnetaddr: encodeAsMainnetaddr,\n encodeAsTestnetaddr: encodeAsTestnetaddr,\n encodeAsRegtestaddr: encodeAsRegtestaddr,\n toRegtestAddress: toRegtestAddress,\n encodeAsSlpRegtestaddr: encodeAsSlpRegtestaddr,\n toSlpRegtestAddress: toSlpRegtestAddress,\n encodeAsLegacy: encodeAsLegacy,\n isLegacyAddress: isLegacyAddress,\n encodeAsBitpay: encodeAsBitpay,\n isBitpayAddress: isBitpayAddress,\n isCashAddress: isCashAddress,\n isSlpAddress: isSlpAddress,\n isMainnetAddress: isMainnetAddress,\n isTestnetAddress: isTestnetAddress,\n isP2PKHAddress: isP2PKHAddress,\n isP2SHAddress: isP2SHAddress,\n InvalidAddressError: InvalidAddressError\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n var p = this._readableState.buffer.head;\n var content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","module.exports = require('./lib/_stream_writable.js');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n};\n/**/\n\nmodule.exports = Duplex;\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright (c) 2017-2018 Emilio Almansi\n// Copyright (c) 2017 Pieter Wuille\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n'use strict';\n\nvar validate = require('./validation').validate;\n\n/**\n * Converts an array of integers made up of 'from' bits into an\n * array of integers made up of 'to' bits. The output array is\n * zero-padded if necessary, unless strict mode is true.\n * Throws a {@link ValidationError} if input is invalid.\n * Original by Pieter Wuille: https://github.com/sipa/bech32.\n *\n * @param {Uint8Array} data Array of integers made up of 'from' bits.\n * @param {number} from Length in bits of elements in the input array.\n * @param {number} to Length in bits of elements in the output array.\n * @param {bool} strictMode Require the conversion to be completed without padding.\n * @returns {Uint8Array}\n */\nmodule.exports = function(data, from, to, strictMode) {\n var length = strictMode\n ? Math.floor(data.length * from / to)\n : Math.ceil(data.length * from / to);\n var mask = (1 << to) - 1;\n var result = new Uint8Array(length);\n var index = 0;\n var accumulator = 0;\n var bits = 0;\n for (var i = 0; i < data.length; ++i) {\n var value = data[i];\n validate(0 <= value && (value >> from) === 0, 'Invalid value: ' + value + '.');\n accumulator = (accumulator << from) | value;\n bits += from;\n while (bits >= to) {\n bits -= to;\n result[index] = (accumulator >> bits) & mask;\n ++index;\n }\n }\n if (!strictMode) {\n if (bits > 0) {\n result[index] = (accumulator << (to - bits)) & mask;\n ++index;\n }\n } else {\n validate(\n bits < from && ((accumulator << (to - bits)) & mask) === 0,\n 'Input cannot be converted to ' + to + ' bits without padding, but strict mode was used.'\n );\n }\n return result;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hashSha256 = exports.sha256 = exports.sha256nodeCrypto = exports.sha256js = void 0;\nvar buffer_1 = require(\"buffer/\");\n/**\n * From https://github.com/crypto-browserify/sha.js/blob/master/sha256.js\n *\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\nvar sha256js = /** @class */ (function () {\n function sha256js() {\n this._blockSize = 64;\n this._finalSize = 56;\n this._len = 0;\n this._w = new Array(64);\n this._a = 0x6a09e667;\n this._b = 0xbb67ae85;\n this._c = 0x3c6ef372;\n this._d = 0xa54ff53a;\n this._e = 0x510e527f;\n this._f = 0x9b05688c;\n this._g = 0x1f83d9ab;\n this._h = 0x5be0cd19;\n this._block = buffer_1.Buffer.alloc(this._blockSize);\n }\n sha256js.prototype.update = function (data, encoding) {\n if (typeof data === 'string') {\n encoding = encoding || 'utf8';\n data = buffer_1.Buffer.from(data, encoding);\n }\n var block = this._block;\n var blockSize = this._blockSize;\n var length = data.length;\n var accum = this._len;\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize;\n var remainder = Math.min(length - offset, blockSize - assigned);\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i];\n }\n accum += remainder;\n offset += remainder;\n if ((accum % blockSize) === 0) {\n this._update(block);\n }\n }\n this._len += length;\n return this;\n };\n sha256js.prototype.digest = function (encoding) {\n var rem = this._len % this._blockSize;\n this._block[rem] = 0x80;\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1);\n if (rem >= this._finalSize) {\n this._update(this._block);\n this._block.fill(0);\n }\n var bits = this._len * 8;\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4);\n // uint64\n }\n else {\n var lowBits = (bits & 0xffffffff) >>> 0;\n var highBits = (bits - lowBits) / 0x100000000;\n this._block.writeUInt32BE(highBits, this._blockSize - 8);\n this._block.writeUInt32BE(lowBits, this._blockSize - 4);\n }\n this._update(this._block);\n var hash = buffer_1.Buffer.alloc(32);\n hash.writeInt32BE(this._a, 0);\n hash.writeInt32BE(this._b, 4);\n hash.writeInt32BE(this._c, 8);\n hash.writeInt32BE(this._d, 12);\n hash.writeInt32BE(this._e, 16);\n hash.writeInt32BE(this._f, 20);\n hash.writeInt32BE(this._g, 24);\n hash.writeInt32BE(this._h, 28);\n return encoding ? hash.toString(encoding) : hash;\n };\n sha256js.prototype.ch = function (x, y, z) {\n return z ^ (x & (y ^ z));\n };\n sha256js.prototype.maj = function (x, y, z) {\n return (x & y) | (z & (x | y));\n };\n sha256js.prototype.sigma0 = function (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10);\n };\n sha256js.prototype.sigma1 = function (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7);\n };\n sha256js.prototype.gamma0 = function (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3);\n };\n sha256js.prototype.gamma1 = function (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10);\n };\n sha256js.prototype._update = function (M) {\n var W = this._w;\n var a = this._a | 0;\n var b = this._b | 0;\n var c = this._c | 0;\n var d = this._d | 0;\n var e = this._e | 0;\n var f = this._f | 0;\n var g = this._g | 0;\n var h = this._h | 0;\n var i = 0;\n for (; i < 16; ++i)\n W[i] = M.readInt32BE(i * 4);\n for (; i < 64; ++i)\n W[i] = (this.gamma1(W[i - 2]) + W[i - 7] + this.gamma0(W[i - 15]) + W[i - 16]) | 0;\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + this.sigma1(e) + this.ch(e, f, g) + sha256js.K[j] + W[j]) | 0;\n var T2 = (this.sigma0(a) + this.maj(a, b, c)) | 0;\n h = g;\n g = f;\n f = e;\n e = (d + T1) | 0;\n d = c;\n c = b;\n b = a;\n a = (T1 + T2) | 0;\n }\n this._a = (a + this._a) | 0;\n this._b = (b + this._b) | 0;\n this._c = (c + this._c) | 0;\n this._d = (d + this._d) | 0;\n this._e = (e + this._e) | 0;\n this._f = (f + this._f) | 0;\n this._g = (g + this._g) | 0;\n this._h = (h + this._h) | 0;\n };\n sha256js.K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n ];\n return sha256js;\n}());\nexports.sha256js = sha256js;\nvar sha256nodeCrypto = /** @class */ (function () {\n function sha256nodeCrypto() {\n if (!sha256nodeCrypto.useCryptoModuleCache || sha256nodeCrypto.nodeCryptoCreateHash === undefined) {\n sha256nodeCrypto.nodeCryptoCreateHash = require('crypto').createHash;\n }\n this.hash = sha256nodeCrypto.nodeCryptoCreateHash('sha256');\n }\n sha256nodeCrypto.prototype.update = function (data, encoding) {\n this.hash.update(data, encoding);\n return this;\n };\n sha256nodeCrypto.prototype.digest = function (encoding) {\n if (encoding) {\n return this.hash.digest(encoding);\n }\n else {\n return this.hash.digest();\n }\n };\n sha256nodeCrypto.useCryptoModuleCache = true;\n return sha256nodeCrypto;\n}());\nexports.sha256nodeCrypto = sha256nodeCrypto;\nvar _nodeCryptoAvailable = undefined;\nfunction isNodeCryptoAvailable() {\n if (sha256nodeCrypto.useCryptoModuleCache && _nodeCryptoAvailable !== undefined) {\n return _nodeCryptoAvailable;\n }\n var isAvailable = false;\n try {\n if (typeof require === 'function') {\n var cryptoModule = require('crypto');\n isAvailable = cryptoModule && typeof cryptoModule.createHash === 'function';\n }\n }\n catch (error) {\n // ignore\n }\n _nodeCryptoAvailable = isAvailable;\n return isAvailable;\n}\nvar sha256 = /** @class */ (function () {\n function sha256() {\n if (isNodeCryptoAvailable()) {\n this.instance = new sha256nodeCrypto();\n }\n else {\n this.instance = new sha256js();\n }\n }\n sha256.prototype.update = function (data, encoding) {\n this.instance.update(data, encoding);\n return this;\n };\n sha256.prototype.digest = function (encoding) {\n if (encoding) {\n return this.instance.digest(encoding);\n }\n else {\n return this.instance.digest();\n }\n };\n return sha256;\n}());\nexports.sha256 = sha256;\n/**\n * Use Nodejs `crypto` module if available, otherwise uses js implementation.\n * @param data Input data to hash.\n */\nfunction hashSha256(data) {\n return new sha256().update(data).digest();\n}\nexports.hashSha256 = hashSha256;\nexports.default = hashSha256;\n//# sourceMappingURL=index.js.map","\"use strict\";\nexports.__esModule = true;\n/**\n * @module transaction\n */\nvar converter_1 = require(\"@iota/converter\");\nvar curl_1 = require(\"@iota/curl\");\nvar kerl_1 = require(\"@iota/kerl\");\nvar signing_1 = require(\"@iota/signing\");\nvar warning = require(\"warning\");\nvar errors = require(\"../../errors\");\nvar guards_1 = require(\"../../guards\");\nrequire(\"../../typed-array\");\nexports.SIGNATURE_OR_MESSAGE_OFFSET = 0;\nexports.SIGNATURE_OR_MESSAGE_LENGTH = signing_1.FRAGMENT_LENGTH;\n// export const EXTRA_DATA_DIGEST_OFFSET = SIGNATURE_OR_MESSAGE_OFFSET + SIGNATURE_OR_MESSAGE_LENGTH\n// export const EXTRA_DATA_DIGEST_LENGTH = 243\nexports.ADDRESS_OFFSET = exports.SIGNATURE_OR_MESSAGE_OFFSET + exports.SIGNATURE_OR_MESSAGE_LENGTH; // EXTRA_DATA_DIGEST_OFFSET + EXTRA_DATA_DIGEST_LENGTH\nexports.ADDRESS_LENGTH = kerl_1[\"default\"].HASH_LENGTH;\nexports.VALUE_OFFSET = exports.ADDRESS_OFFSET + exports.ADDRESS_LENGTH;\nexports.VALUE_LENGTH = 81;\nexports.OBSOLETE_TAG_OFFSET = exports.VALUE_OFFSET + exports.VALUE_LENGTH;\nexports.OBSOLETE_TAG_LENGTH = 81;\nexports.ISSUANCE_TIMESTAMP_OFFSET = exports.OBSOLETE_TAG_OFFSET + exports.OBSOLETE_TAG_LENGTH;\nexports.ISSUANCE_TIMESTAMP_LENGTH = 27;\n// export const TIMELOCK_LOWER_BOUND_OFFSET = ISSUANCE_TIMESTAMP_OFFSET + ISSUANCE_TIMESTAMP_LENGTH\n// export const TIMELOCK_LOWER_BOUND_LENGTH = 27\n// export const TIMELOCK_UPPER_BOUND_OFFSET = TIMELOCK_LOWER_BOUND_OFFSET + TIMELOCK_LOWER_BOUND_LENGTH\n// export const TIMELOCK_UPPER_BOUND_LENGTH = 27\nexports.CURRENT_INDEX_OFFSET = exports.ISSUANCE_TIMESTAMP_OFFSET + exports.ISSUANCE_TIMESTAMP_LENGTH;\nexports.CURRENT_INDEX_LENGTH = 27;\nexports.LAST_INDEX_OFFSET = exports.CURRENT_INDEX_OFFSET + exports.CURRENT_INDEX_LENGTH;\nexports.LAST_INDEX_LENGTH = 27;\n// export const BUNDLE_NONCE_OFFSET = TIMELOCK_UPPER_BOUND_OFFSET + TIMELOCK_LOWER_BOUND_LENGTH\n// export const BUNDLE_NONCE_LENGTH = 243\nexports.BUNDLE_OFFSET = exports.LAST_INDEX_OFFSET + exports.LAST_INDEX_LENGTH;\nexports.BUNDLE_LENGTH = kerl_1[\"default\"].HASH_LENGTH;\nexports.TRUNK_TRANSACTION_OFFSET = exports.BUNDLE_OFFSET + exports.BUNDLE_LENGTH; // BUNDLE_NONCE_OFFSET + BUNDLE_NONCE_LENGTH\nexports.TRUNK_TRANSACTION_LENGTH = curl_1[\"default\"].HASH_LENGTH;\nexports.BRANCH_TRANSACTION_OFFSET = exports.TRUNK_TRANSACTION_OFFSET + exports.TRUNK_TRANSACTION_LENGTH;\nexports.BRANCH_TRANSACTION_LENGTH = curl_1[\"default\"].HASH_LENGTH;\nexports.TAG_OFFSET = exports.BRANCH_TRANSACTION_OFFSET + exports.BRANCH_TRANSACTION_LENGTH;\nexports.TAG_LENGTH = 81;\nexports.ATTACHMENT_TIMESTAMP_OFFSET = exports.TAG_OFFSET + exports.TAG_LENGTH;\nexports.ATTACHMENT_TIMESTAMP_LENGTH = 27;\nexports.ATTACHMENT_TIMESTAMP_LOWER_BOUND_OFFSET = exports.ATTACHMENT_TIMESTAMP_OFFSET + exports.ATTACHMENT_TIMESTAMP_LENGTH;\nexports.ATTACHMENT_TIMESTAMP_LOWER_BOUND_LENGTH = 27;\nexports.ATTACHMENT_TIMESTAMP_UPPER_BOUND_OFFSET = exports.ATTACHMENT_TIMESTAMP_LOWER_BOUND_OFFSET + exports.ATTACHMENT_TIMESTAMP_LOWER_BOUND_LENGTH;\nexports.ATTACHMENT_TIMESTAMP_UPPER_BOUND_LENGTH = 27;\nexports.TRANSACTION_NONCE_OFFSET = exports.ATTACHMENT_TIMESTAMP_UPPER_BOUND_OFFSET + exports.ATTACHMENT_TIMESTAMP_UPPER_BOUND_LENGTH;\nexports.TRANSACTION_NONCE_LENGTH = 81;\nexports.TRANSACTION_ESSENCE_OFFSET = exports.ADDRESS_OFFSET; // EXTRA_DATA_DIGEST_OFFSET\nexports.TRANSACTION_ESSENCE_LENGTH = exports.BUNDLE_OFFSET - exports.ADDRESS_OFFSET; // BUNDLE_NONCE_OFFSET - EXTRA_DATA_DIGEST_OFFSET\nexports.TRANSACTION_LENGTH = exports.TRANSACTION_NONCE_OFFSET + exports.TRANSACTION_NONCE_LENGTH;\nexports.TRANSACTION_HASH_LENGTH = curl_1[\"default\"].HASH_LENGTH;\n/**\n * Checks if given value is a valid transaction buffer length or offset.\n *\n * @method isMultipleOfTransactionLength\n *\n * @param {Int8Array} lengthOrOffset\n *\n * @return {boolean}\n */\nexports.isMultipleOfTransactionLength = function (lengthOrOffset) {\n if (!Number.isInteger(lengthOrOffset)) {\n throw new TypeError(errors.ILLEGAL_LENGTH_OR_OFFSET);\n }\n return lengthOrOffset >= 0 && lengthOrOffset % exports.TRANSACTION_LENGTH === 0;\n};\n/**\n * Creates a function that copies a fixed size part of the buffer.\n *\n * @method transactionBufferSlice\n *\n * @param {number} transactionFieldOffset\n * @param {number} transactionFieldLength\n *\n * @return {Function}\n *\n * @ignore\n */\nexports.transactionBufferSlice = function (transactionFieldOffset, transactionFieldLength) {\n if (!Number.isInteger(transactionFieldOffset)) {\n throw new TypeError(errors.ILLEGAL_TRANSACTION_FIELD_OFFSET);\n }\n if (transactionFieldOffset < 0) {\n throw new RangeError(errors.ILLEGAL_TRANSACTION_FIELD_OFFSET);\n }\n if (!Number.isInteger(transactionFieldLength)) {\n throw new TypeError(errors.ILLEGAL_TRANSACTION_FIELD_LENGTH);\n }\n if (transactionFieldLength < 0) {\n throw new RangeError(errors.ILLEGAL_TRANSACTION_FIELD_LENGTH);\n }\n return function (transactionBuffer, transactionOffset) {\n if (transactionOffset === void 0) { transactionOffset = 0; }\n if (!(transactionBuffer instanceof Int8Array)) {\n throw new Error(errors.ILLEGAL_TRANSACTION_BUFFER);\n }\n if (!exports.isMultipleOfTransactionLength(transactionBuffer.length)) {\n throw new RangeError(errors.ILLEGAL_TRANSACTION_BUFFER_LENGTH);\n }\n if (!exports.isMultipleOfTransactionLength(transactionOffset)) {\n throw new RangeError(errors.ILLEGAL_TRANSACTION_OFFSET);\n }\n return transactionBuffer.slice(transactionOffset + transactionFieldOffset, transactionOffset + transactionFieldOffset + transactionFieldLength);\n };\n};\n/**\n * Gets the `signatureOrMessage` field of all transactions in a bundle.\n *\n * @method signatureOrMessage\n *\n * @param {Int8Array} buffer - Transaction trytes\n *\n * @return {Int8Array}\n */\nexports.signatureOrMessage = exports.transactionBufferSlice(exports.SIGNATURE_OR_MESSAGE_OFFSET, exports.SIGNATURE_OR_MESSAGE_LENGTH);\n/**\n * Returns a copy of `address` field.\n *\n * @method address\n *\n * @param {Int8Array} buffer - Transaction buffer. Buffer length must be a multiple of transaction length\n * @param {Number} [offset=0] - Transaction trit offset. It must be a multiple of transaction length.\n *\n * @return {Int8Array}\n */\nexports.address = exports.transactionBufferSlice(exports.ADDRESS_OFFSET, exports.ADDRESS_LENGTH);\n/**\n * Returns a copy of `value` field.\n *\n * @method value\n *\n * @param {Int8Array} buffer - Transaction buffer. Buffer length must be a multiple of transaction length.\n * @param {Number} [offset=0] - Transaction trit offset. It must be a multiple of transaction length.\n *\n * @return {Int8Array}\n */\nexports.value = exports.transactionBufferSlice(exports.VALUE_OFFSET, exports.VALUE_LENGTH);\nexports.createObsoleteTag = function (warn) {\n if (warn === void 0) { warn = true; }\n /**\n * Returns a copy of `obsoleteTag` field.\n *\n * @method obsoleteTag\n *\n * @param {Int8Array} buffer - Transaction buffer. Buffer length must be a multiple of transaction length.\n * @param {Number} [offset=0] - Transaction trit offset. It must be a multiple of transaction length.\n *\n * @return {Int8Array}\n */\n return function (buffer, offset) {\n if (offset === void 0) { offset = 0; }\n warning(warn, 'Deprecation warning: `obsoleteTag` field will be removed in final design.');\n return exports.transactionBufferSlice(exports.OBSOLETE_TAG_OFFSET, exports.OBSOLETE_TAG_LENGTH)(buffer, offset);\n };\n};\nexports.obsoleteTag = exports.createObsoleteTag();\n/**\n * Returns a copy of `issuanceTimestamp` field.\n *\n * @method issuanceTimestamp\n *\n * @param {Int8Array} buffer - Transaction buffer. Buffer length must be a multiple of transaction length.\n * @param {Number} [offset=0] - Transaction trit offset. It must be a multiple of transaction length.\n *\n * @return {Int8Array}\n */\nexports.issuanceTimestamp = exports.transactionBufferSlice(exports.ISSUANCE_TIMESTAMP_OFFSET, exports.ISSUANCE_TIMESTAMP_LENGTH);\nexports.createCurrentIndex = function (warn) {\n if (warn === void 0) { warn = true; }\n /**\n * Returns a copy of `currentIndex` field.\n *\n * @method currentIndex\n *\n * @param {Int8Array} buffer - Transaction buffer. Buffer length must be a multiple of transaction length.\n * @param {Number} [offset=0] - Transaction trit offset. It must be a multiple of transaction length.\n *\n * @return {Int8Array}\n */\n return function (buffer, offset) {\n if (offset === void 0) { offset = 0; }\n warning(warn, 'Deprecation warning: `currentIndex` field will be removed in final design.');\n return exports.transactionBufferSlice(exports.CURRENT_INDEX_OFFSET, exports.CURRENT_INDEX_LENGTH)(buffer, offset);\n };\n};\nexports.currentIndex = exports.createCurrentIndex();\nexports.createLastIndex = function (warn) {\n if (warn === void 0) { warn = true; }\n /**\n * Returns a copy of `lastIndex` field.\n *\n * @method lastIndex\n *\n * @param {Int8Array} buffer - Transaction buffer. Buffer length must be a multiple of transaction length.\n * @param {Number} [offset=0] - Transaction trit offset. It must be a multiple of transaction length.\n *\n * @return {Int8Array}\n */\n return function (buffer, offset) {\n if (offset === void 0) { offset = 0; }\n warning(warn, 'Deprecation warning: `lastIndex` field will be removed in final design.');\n return exports.transactionBufferSlice(exports.LAST_INDEX_OFFSET, exports.LAST_INDEX_LENGTH)(buffer, offset);\n };\n};\nexports.lastIndex = exports.createLastIndex();\nexports.createBundle = function (warn) {\n if (warn === void 0) { warn = true; }\n /**\n * Returns a copy of `bundle` field.\n *\n * @method bundle\n *\n * @param {Int8Array} buffer - Transaction buffer. Buffer length must be a multiple of transaction length.\n * @param {Number} [offset=0] - Transaction trit offset. It must be a multiple of transaction length.\n *\n * @return {Int8Array}\n */\n return function (buffer, offset) {\n if (offset === void 0) { offset = 0; }\n warning(warn, 'Deprecation warning: `bundle` field will be removed in final design.');\n return exports.transactionBufferSlice(exports.BUNDLE_OFFSET, exports.BUNDLE_LENGTH)(buffer, offset);\n };\n};\nexports.bundle = exports.createBundle();\n/**\n * Returns a copy of `trunkTransaction` field.\n *\n * @method trunkTransaction\n *\n * @param {Int8Array} buffer - Transaction buffer. Buffer length must be a multiple of transaction length.\n * @param {Number} [offset=0] - Transaction trit offset. It must be a multiple of transaction length.\n *\n * @return {Int8Array}\n */\nexports.trunkTransaction = exports.transactionBufferSlice(exports.TRUNK_TRANSACTION_OFFSET, exports.TRUNK_TRANSACTION_LENGTH);\n/**\n * Returns a copy of `branchTransaction` field.\n *\n * @method branchTransaction\n *\n * @param {Int8Array} buffer - Transaction buffer. Buffer length must be a multiple of transaction length.\n * @param {Number} [offset=0] - Transaction trit offset. It must be a multiple of transaction length.\n *\n * @return {Int8Array}\n */\nexports.branchTransaction = exports.transactionBufferSlice(exports.BRANCH_TRANSACTION_OFFSET, exports.BRANCH_TRANSACTION_LENGTH);\n/**\n * Returns a copy of `tag` field.\n *\n * @method tag\n *\n * @param {Int8Array} buffer - Transaction buffer. Buffer length must be a multiple of transaction length.\n * @param {Number} [offset=0] - Transaction trit offset. It must be a multiple of transaction length.\n *\n * @return {Int8Array}\n */\nexports.tag = exports.transactionBufferSlice(exports.TAG_OFFSET, exports.TAG_LENGTH);\n/**\n * Returns a copy of `attachmentTimestamp` field.\n *\n * @method attachmentTimestamp\n *\n * @param {Int8Array} buffer - Transaction buffer. Buffer length must be a multiple of transaction length.\n * @param {Number} [offset=0] - Transaction trit offset. It must be a multiple of transaction length.\n *\n * @return {Int8Array}\n */\nexports.attachmentTimestamp = exports.transactionBufferSlice(exports.ATTACHMENT_TIMESTAMP_OFFSET, exports.ATTACHMENT_TIMESTAMP_LENGTH);\n/**\n * Returns a copy of `attachmentTimestampLowerBound` field.\n *\n * @method attachmentTimestampLowerBound\n *\n * @param {Int8Array} buffer - Transaction buffer. Buffer length must be a multiple of transaction length.\n * @param {Number} [offset=0] - Transaction trit offset. It must be a multiple of transaction length.\n *\n * @return {Int8Array}\n */\nexports.attachmentTimestampLowerBound = exports.transactionBufferSlice(exports.ATTACHMENT_TIMESTAMP_LOWER_BOUND_OFFSET, exports.ATTACHMENT_TIMESTAMP_LOWER_BOUND_LENGTH);\n/**\n * Returns a copy of `attachmentTimestampUpperBound` field.\n *\n * @method attachmentTimestampUpperBound\n *\n * @param {Int8Array} buffer - Transaction buffer. Buffer length must be a multiple of transaction length.\n * @param {Number} [offset=0] - Transaction trit offset. It must be a multiple of transaction length.\n *\n * @return {Int8Array}\n */\nexports.attachmentTimestampUpperBound = exports.transactionBufferSlice(exports.ATTACHMENT_TIMESTAMP_UPPER_BOUND_OFFSET, exports.ATTACHMENT_TIMESTAMP_UPPER_BOUND_LENGTH);\n/**\n * Returns a copy of `tansactionNonce` field.\n *\n * @method transactionNonce\n *\n * @param {Int8Array} buffer - Transaction buffer. Buffer length must be a multiple of transaction length.\n * @param {Number} [offset=0] - Transaction trit offset. It must be a multiple of transaction length.\n *\n * @return {Int8Array}\n */\nexports.transactionNonce = exports.transactionBufferSlice(exports.TRANSACTION_NONCE_OFFSET, exports.TRANSACTION_NONCE_LENGTH);\n/**\n * Returns a copy of transaction essence fields.\n *\n * @method bundle\n *\n * @param {Int8Array} buffer - Transaction buffer. Buffer length must be a multiple of transaction length.\n * @param {Number} [offset=0] - Transaction trit offset. It must be a multiple of transaction length.\n *\n * @return {Int8Array}\n */\nexports.transactionEssence = exports.transactionBufferSlice(exports.TRANSACTION_ESSENCE_OFFSET, exports.TRANSACTION_ESSENCE_LENGTH);\n/**\n * This method takes transaction trits, and returns the transaction hash.\n *\n * ## Related methods\n *\n * To validate the length of transaction trits, use the [`isMultipleOfTransactionLength()`]{@link #module_transaction.isMultipleOfTransactionLength} method.\n *\n * To get a transaction's trits from the Tangle, use the [`getTrytes()`]{@link #module_core.getTrytes} method, then convert them to trits, using the [`trytesToTrits()`]{@link #module_converter.trytesToTrits} method.\n *\n * @method transactionHash\n *\n * @summary Generates the transaction hash for a given transaction.\n *\n * @memberof module:transaction\n *\n * @param {Int8Array} buffer - Transactions in trits\n * @param {Number} [offset=0] - Offset in trits to define a transaction to hash in the `buffer` argument\n *\n * @example\n * ```js\n * let hash = Transaction.transactionHash(transactions);\n * ```\n *\n * @return {Int8Array} Transaction hash\n *\n * @throws {errors.ILLEGAL_TRANSACTION_BUFFER_LENGTH}: Make sure that the `buffer` argument contains 8,019 trits (the length of a transaction without the transaction hash).\n * @throws {errors.ILLEGAL_TRANSACTION_OFFSET}: Make sure that the `offset` argument is a multiple of 8,019 (the length of a transaction without the transaction hash).\n */\nexports.transactionHash = function (buffer, offset) {\n if (offset === void 0) { offset = 0; }\n if (!exports.isMultipleOfTransactionLength(buffer.length)) {\n throw new Error(errors.ILLEGAL_TRANSACTION_BUFFER_LENGTH);\n }\n if (!exports.isMultipleOfTransactionLength(offset)) {\n throw new Error(errors.ILLEGAL_TRANSACTION_OFFSET);\n }\n var output = new Int8Array(curl_1[\"default\"].HASH_LENGTH);\n var sponge = new curl_1[\"default\"]();\n sponge.absorb(buffer, offset, exports.TRANSACTION_LENGTH);\n sponge.squeeze(output, 0, curl_1[\"default\"].HASH_LENGTH);\n return output;\n};\n/* Guards */\n/**\n * This method takes an array of transaction trits and validates whether they form a valid transaction by checking the following:\n *\n * - Addresses in value transactions have a 0 trit at the end, which means they were generated using the Kerl hashing function\n * - The transaction would result in a valid hash, according to the given [`minWeightMagnitude`](https://docs.iota.org/docs/getting-started/0.1/network/minimum-weight-magnitude) argument\n *\n * ## Related methods\n *\n * To get a transaction's trits from the Tangle, use the [`getTrytes()`]{@link #module_core.getTrytes} method, then convert them to trits, using the [`trytesToTrits()`]{@link #module_converter.trytesToTrits} method.\n *\n * @method isTransaction\n *\n * @summary Validates the structure and contents of a given transaction.\n *\n * @memberof module:transaction\n *\n * @param {Int8Array} transaction - Transaction trits\n * @param {number} [minWeightMagnitude=0] - Minimum weight magnitude\n *\n * @example\n * ```js\n * let valid = Transaction.isTransaction(transaction);\n * ```\n *\n * @return {boolean} valid - Whether the transaction is valid.\n *\n * @throws {errors.ILLEGAL_MIN_WEIGHT_MAGNITUDE}: Make sure that the `minWeightMagnitude` argument is a number between 1 and 81.\n * @throws {errors.ILLEGAL_TRANSACTION_BUFFER_LENGTH}: Make sure that the `transaction` argument contains 8,019 trits (the length of a transaction without the transaction hash).\n */\nexports.isTransaction = function (transaction, minWeightMagnitude) {\n if (minWeightMagnitude === void 0) { minWeightMagnitude = 0; }\n if (!Number.isInteger(minWeightMagnitude)) {\n throw new TypeError(errors.ILLEGAL_MIN_WEIGHT_MAGNITUDE);\n }\n if (minWeightMagnitude < 0 || minWeightMagnitude > exports.TRANSACTION_HASH_LENGTH) {\n throw new RangeError(errors.ILLEGAL_MIN_WEIGHT_MAGNITUDE);\n }\n return (transaction.length === exports.TRANSACTION_LENGTH &&\n guards_1.isTrits(transaction) &&\n // Last address trit of value transaction must be 0.\n // Revisions in signature scheme may affect this in the future.\n (converter_1.tritsToValue(exports.value(transaction)) === 0 || transaction[exports.ADDRESS_OFFSET + exports.ADDRESS_LENGTH - 1] === 0) &&\n (!minWeightMagnitude ||\n exports.transactionHash(transaction)\n .subarray(exports.TRANSACTION_HASH_LENGTH - minWeightMagnitude, exports.TRANSACTION_HASH_LENGTH)\n .every(function (trit) { return trit === 0; })));\n};\n/**\n * This method takes an array of transaction trits, and checks its `currentIndex` field to validate whether it is the tail transaction in a bundle.\n *\n * ## Related methods\n *\n * To get a transaction's trits from the Tangle, use the [`getTrytes()`]{@link #module_core.getTrytes} method, then convert them to trits, using the [`trytesToTrits()`]{@link #module_converter.trytesToTrits} method.\n *\n * @method isTailTransaction\n *\n * @summary Checks if the given transaction is a tail transaction in a bundle.\n *\n * @memberof module:transaction\n *\n * @param {Int8Array} transaction - Transaction trits\n *\n * @example\n * ```js\n * let tail = Transaction.isTailTransaction(transaction);\n * ```\n *\n * @return {boolean} tail - Whether the transaction is a tail transaction.\n *\n * @throws {errors.ILLEGAL_TRANSACTION_BUFFER_LENGTH}: Make sure that the `transaction` argument contains 8,019 trits (the length of a transaction without the transaction hash).\n */\nexports.isTail = function (transaction) {\n return exports.isTransaction(transaction) && converter_1.tritsToValue(exports.createCurrentIndex(false)(transaction)) === 0;\n};\n/**\n * This method takes an array of transaction trits, and checks its `currentIndex` field to validate whether it is the head transaction in a bundle.\n *\n * ## Related methods\n *\n * To get a transaction's trits from the Tangle, use the [`getTrytes()`]{@link #module_core.getTrytes} method, then convert them to trits, using the [`trytesToTrits()`]{@link #module_converter.trytesToTrits} method.\n *\n * @method isHeadTransaction\n *\n * @summary Checks if the given transaction is a head transaction in a bundle.\n *\n * @memberof module:transaction\n *\n * @param {Int8Array} transaction - Transaction trits\n *\n * @example\n * ```js\n * let head = Transaction.isHeadTransaction(transaction);\n * ```\n *\n * @return {boolean} head - Whether the transaction is a head transaction.\n *\n * @throws {errors.ILLEGAL_TRANSACTION_BUFFER_LENGTH}: Make sure that the `transaction` argument contains 8,019 trits (the length of a transaction without the transaction hash).\n */\nexports.isHead = function (transaction) {\n return exports.isTransaction(transaction) &&\n converter_1.tritsToValue(exports.createCurrentIndex(false)(transaction)) === converter_1.tritsToValue(exports.createLastIndex(false)(transaction));\n};\n/**\n * This method checks if the given transaction trits include a proof of work by validating that the its `attachmentTimestamp` field has a non-zero value.\n *\n * The `attachmentTimestamp` field is set by the `attachToTangle` endpoint. Therefore, if this field is non-zero, this method assumes that proof of work was done.\n *\n * **Note:** This method does not validate proof of work.\n *\n * ## Related methods\n *\n * To get a transaction's trits from the Tangle, use the [`getTrytes()`]{@link #module_core.getTrytes} method, then convert them to trits, using the [`trytesToTrits()`]{@link #module_converter.trytesToTrits} method.\n *\n * @method isAttachedTransaction\n *\n * @ignore\n *\n * @summary Checks if the given transaction has a non-zero value in its `attachmentTimestamp` field.\n *\n * @memberof module:transaction\n *\n * @param {Int8Array} transaction - Transaction trits\n *\n * @example\n * ```js\n * let attached = Transaction.isAttachedTransaction(transaction);\n * ```\n *\n * @return {boolean} attached - Whether the transaction has a non-zero value in its `attachmentTimestamp` field.\n *\n * @throws {errors.ILLEGAL_TRANSACTION_BUFFER_LENGTH}: Make sure that the `transaction` argument contains 8,019 trits (the length of a transaction without the transaction hash).\n */\nexports.isAttached = function (transaction) {\n return exports.isTransaction(transaction) &&\n transaction\n .subarray(exports.ATTACHMENT_TIMESTAMP_OFFSET, exports.ATTACHMENT_TIMESTAMP_OFFSET + exports.ATTACHMENT_TIMESTAMP_LENGTH)\n .some(function (trit) { return trit !== 0; });\n};\n//# sourceMappingURL=transaction.js.map","'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n","const ardorRegex = new RegExp('^ARDOR(-[A-Z0-9]{4}){3}(-[A-Z0-9]{5})$')\r\n\r\nmodule.exports = {\r\n isValidAddress: function (address, currency, networkType) {\r\n if (!ardorRegex.test(address)) {\r\n return false\r\n }\r\n\r\n return true\r\n }\r\n}\r\n","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","'use strict'\r\n\r\n/**\r\n * Credits to https://github.com/emilbayes/blake2b\r\n *\r\n * Copyright (c) 2017, Emil Bay github@tixz.dk\r\n *\r\n * Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\r\n */\r\n\r\n// 64-bit unsigned addition\r\n// Sets v[a,a+1] += v[b,b+1]\r\n// v should be a Uint32Array\r\nfunction ADD64AA (v, a, b) {\r\n var o0 = v[a] + v[b]\r\n var o1 = v[a + 1] + v[b + 1]\r\n if (o0 >= 0x100000000) {\r\n o1++\r\n }\r\n v[a] = o0\r\n v[a + 1] = o1\r\n}\r\n\r\n// 64-bit unsigned addition\r\n// Sets v[a,a+1] += b\r\n// b0 is the low 32 bits of b, b1 represents the high 32 bits\r\nfunction ADD64AC (v, a, b0, b1) {\r\n var o0 = v[a] + b0\r\n if (b0 < 0) {\r\n o0 += 0x100000000\r\n }\r\n var o1 = v[a + 1] + b1\r\n if (o0 >= 0x100000000) {\r\n o1++\r\n }\r\n v[a] = o0\r\n v[a + 1] = o1\r\n}\r\n\r\n// Little-endian byte access\r\nfunction B2B_GET32 (arr, i) {\r\n return (arr[i] ^\r\n (arr[i + 1] << 8) ^\r\n (arr[i + 2] << 16) ^\r\n (arr[i + 3] << 24))\r\n}\r\n\r\n// G Mixing function\r\n// The ROTRs are inlined for speed\r\nfunction B2B_G (a, b, c, d, ix, iy) {\r\n var x0 = m[ix]\r\n var x1 = m[ix + 1]\r\n var y0 = m[iy]\r\n var y1 = m[iy + 1]\r\n\r\n ADD64AA(v, a, b) // v[a,a+1] += v[b,b+1] ... in JS we must store a uint64 as two uint32s\r\n ADD64AC(v, a, x0, x1) // v[a, a+1] += x ... x0 is the low 32 bits of x, x1 is the high 32 bits\r\n\r\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated to the right by 32 bits\r\n var xor0 = v[d] ^ v[a]\r\n var xor1 = v[d + 1] ^ v[a + 1]\r\n v[d] = xor1\r\n v[d + 1] = xor0\r\n\r\n ADD64AA(v, c, d)\r\n\r\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 24 bits\r\n xor0 = v[b] ^ v[c]\r\n xor1 = v[b + 1] ^ v[c + 1]\r\n v[b] = (xor0 >>> 24) ^ (xor1 << 8)\r\n v[b + 1] = (xor1 >>> 24) ^ (xor0 << 8)\r\n\r\n ADD64AA(v, a, b)\r\n ADD64AC(v, a, y0, y1)\r\n\r\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated right by 16 bits\r\n xor0 = v[d] ^ v[a]\r\n xor1 = v[d + 1] ^ v[a + 1]\r\n v[d] = (xor0 >>> 16) ^ (xor1 << 16)\r\n v[d + 1] = (xor1 >>> 16) ^ (xor0 << 16)\r\n\r\n ADD64AA(v, c, d)\r\n\r\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 63 bits\r\n xor0 = v[b] ^ v[c]\r\n xor1 = v[b + 1] ^ v[c + 1]\r\n v[b] = (xor1 >>> 31) ^ (xor0 << 1)\r\n v[b + 1] = (xor0 >>> 31) ^ (xor1 << 1)\r\n}\r\n\r\n// Initialization Vector\r\nvar BLAKE2B_IV32 = new Uint32Array([\r\n 0xF3BCC908, 0x6A09E667, 0x84CAA73B, 0xBB67AE85,\r\n 0xFE94F82B, 0x3C6EF372, 0x5F1D36F1, 0xA54FF53A,\r\n 0xADE682D1, 0x510E527F, 0x2B3E6C1F, 0x9B05688C,\r\n 0xFB41BD6B, 0x1F83D9AB, 0x137E2179, 0x5BE0CD19\r\n])\r\n\r\nvar SIGMA8 = [\r\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\r\n 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3,\r\n 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4,\r\n 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8,\r\n 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13,\r\n 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9,\r\n 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11,\r\n 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10,\r\n 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5,\r\n 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0,\r\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\r\n 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3\r\n]\r\n\r\n// These are offsets into a uint64 buffer.\r\n// Multiply them all by 2 to make them offsets into a uint32 buffer,\r\n// because this is Javascript and we don't have uint64s\r\nvar SIGMA82 = new Uint8Array(SIGMA8.map(function (x) { return x * 2 }))\r\n\r\n// Compression function. 'last' flag indicates last block.\r\n// Note we're representing 16 uint64s as 32 uint32s\r\nvar v = new Uint32Array(32)\r\nvar m = new Uint32Array(32)\r\nfunction blake2bCompress (ctx, last) {\r\n var i = 0\r\n\r\n // init work variables\r\n for (i = 0; i < 16; i++) {\r\n v[i] = ctx.h[i]\r\n v[i + 16] = BLAKE2B_IV32[i]\r\n }\r\n\r\n // low 64 bits of offset\r\n v[24] = v[24] ^ ctx.t\r\n v[25] = v[25] ^ (ctx.t / 0x100000000)\r\n // high 64 bits not supported, offset may not be higher than 2**53-1\r\n\r\n // last block flag set ?\r\n if (last) {\r\n v[28] = ~v[28]\r\n v[29] = ~v[29]\r\n }\r\n\r\n // get little-endian words\r\n for (i = 0; i < 32; i++) {\r\n m[i] = B2B_GET32(ctx.b, 4 * i)\r\n }\r\n\r\n // twelve rounds of mixing\r\n for (i = 0; i < 12; i++) {\r\n B2B_G(0, 8, 16, 24, SIGMA82[i * 16 + 0], SIGMA82[i * 16 + 1])\r\n B2B_G(2, 10, 18, 26, SIGMA82[i * 16 + 2], SIGMA82[i * 16 + 3])\r\n B2B_G(4, 12, 20, 28, SIGMA82[i * 16 + 4], SIGMA82[i * 16 + 5])\r\n B2B_G(6, 14, 22, 30, SIGMA82[i * 16 + 6], SIGMA82[i * 16 + 7])\r\n B2B_G(0, 10, 20, 30, SIGMA82[i * 16 + 8], SIGMA82[i * 16 + 9])\r\n B2B_G(2, 12, 22, 24, SIGMA82[i * 16 + 10], SIGMA82[i * 16 + 11])\r\n B2B_G(4, 14, 16, 26, SIGMA82[i * 16 + 12], SIGMA82[i * 16 + 13])\r\n B2B_G(6, 8, 18, 28, SIGMA82[i * 16 + 14], SIGMA82[i * 16 + 15])\r\n }\r\n\r\n for (i = 0; i < 16; i++) {\r\n ctx.h[i] = ctx.h[i] ^ v[i] ^ v[i + 16]\r\n }\r\n}\r\n\r\n// reusable parameter_block\r\nvar parameter_block = new Uint8Array([\r\n 0, 0, 0, 0, // 0: outlen, keylen, fanout, depth\r\n 0, 0, 0, 0, // 4: leaf length, sequential mode\r\n 0, 0, 0, 0, // 8: node offset\r\n 0, 0, 0, 0, // 12: node offset\r\n 0, 0, 0, 0, // 16: node depth, inner length, rfu\r\n 0, 0, 0, 0, // 20: rfu\r\n 0, 0, 0, 0, // 24: rfu\r\n 0, 0, 0, 0, // 28: rfu\r\n 0, 0, 0, 0, // 32: salt\r\n 0, 0, 0, 0, // 36: salt\r\n 0, 0, 0, 0, // 40: salt\r\n 0, 0, 0, 0, // 44: salt\r\n 0, 0, 0, 0, // 48: personal\r\n 0, 0, 0, 0, // 52: personal\r\n 0, 0, 0, 0, // 56: personal\r\n 0, 0, 0, 0 // 60: personal\r\n])\r\n\r\n// Creates a BLAKE2b hashing context\r\n// Requires an output length between 1 and 64 bytes\r\n// Takes an optional Uint8Array key\r\nfunction Blake2b (outlen, key, salt, personal) {\r\n // zero out parameter_block before usage\r\n parameter_block.fill(0)\r\n // state, 'param block'\r\n\r\n this.b = new Uint8Array(128)\r\n this.h = new Uint32Array(16)\r\n this.t = 0 // input count\r\n this.c = 0 // pointer within buffer\r\n this.outlen = outlen // output length in bytes\r\n\r\n parameter_block[0] = outlen\r\n if (key) parameter_block[1] = key.length\r\n parameter_block[2] = 1 // fanout\r\n parameter_block[3] = 1 // depth\r\n\r\n if (salt) parameter_block.set(salt, 32)\r\n if (personal) parameter_block.set(personal, 48)\r\n\r\n // initialize hash state\r\n for (var i = 0; i < 16; i++) {\r\n this.h[i] = BLAKE2B_IV32[i] ^ B2B_GET32(parameter_block, i * 4)\r\n }\r\n\r\n // key the hash, if applicable\r\n if (key) {\r\n blake2bUpdate(this, key)\r\n // at the end\r\n this.c = 128\r\n }\r\n}\r\n\r\nBlake2b.prototype.update = function (input) {\r\n blake2bUpdate(this, input)\r\n return this\r\n}\r\n\r\nBlake2b.prototype.digest = function (out) {\r\n var buf = (!out || out === 'binary' || out === 'hex') ? new Uint8Array(this.outlen) : out\r\n blake2bFinal(this, buf)\r\n if (out === 'hex') return hexSlice(buf)\r\n return buf\r\n}\r\n\r\nBlake2b.prototype.final = Blake2b.prototype.digest\r\n\r\n// Updates a BLAKE2b streaming hash\r\n// Requires hash context and Uint8Array (byte array)\r\nfunction blake2bUpdate (ctx, input) {\r\n for (var i = 0; i < input.length; i++) {\r\n if (ctx.c === 128) { // buffer full ?\r\n ctx.t += ctx.c // add counters\r\n blake2bCompress(ctx, false) // compress (not last)\r\n ctx.c = 0 // counter to zero\r\n }\r\n ctx.b[ctx.c++] = input[i]\r\n }\r\n}\r\n\r\n// Completes a BLAKE2b streaming hash\r\n// Returns a Uint8Array containing the message digest\r\nfunction blake2bFinal (ctx, out) {\r\n ctx.t += ctx.c // mark last block offset\r\n\r\n while (ctx.c < 128) { // fill up with zeros\r\n ctx.b[ctx.c++] = 0\r\n }\r\n blake2bCompress(ctx, true) // final block flag = 1\r\n\r\n for (var i = 0; i < ctx.outlen; i++) {\r\n out[i] = ctx.h[i >> 2] >> (8 * (i & 3))\r\n }\r\n return out\r\n}\r\n\r\nfunction hexSlice (buf) {\r\n var str = ''\r\n for (var i = 0; i < buf.length; i++) str += toHex(buf[i])\r\n return str\r\n}\r\n\r\nfunction toHex (n) {\r\n if (n < 16) return '0' + n.toString(16)\r\n return n.toString(16)\r\n}\r\n\r\nmodule.exports = Blake2b\r\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n","/* global self */\r\n/**\r\n * [js-sha3]{@link https://github.com/emn178/js-sha3}\r\n *\r\n * @version 0.7.0\r\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\r\n * @copyright Chen, Yi-Cyuan 2015-2017\r\n * @license MIT\r\n */\r\n/* jslint bitwise: true */\r\n'use strict'\r\n\r\nvar ERROR = 'input is invalid type'\r\nvar WINDOW = typeof window === 'object'\r\nvar root = WINDOW ? window : {}\r\nif (root.JS_SHA3_NO_WINDOW) {\r\n WINDOW = false\r\n}\r\nvar WEB_WORKER = !WINDOW && typeof self === 'object'\r\nvar NODE_JS = !root.JS_SHA3_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node\r\nif (NODE_JS) {\r\n root = global\r\n} else if (WEB_WORKER) {\r\n root = self\r\n}\r\nvar ARRAY_BUFFER = !root.JS_SHA3_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined'\r\nvar HEX_CHARS = '0123456789abcdef'.split('')\r\nvar SHAKE_PADDING = [31, 7936, 2031616, 520093696]\r\nvar CSHAKE_PADDING = [4, 1024, 262144, 67108864]\r\nvar KECCAK_PADDING = [1, 256, 65536, 16777216]\r\nvar PADDING = [6, 1536, 393216, 100663296]\r\nvar SHIFT = [0, 8, 16, 24]\r\nvar RC = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0, 2147483649,\r\n 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0, 2147516425, 0,\r\n 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905, 2147483648, 32771,\r\n 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0, 2147483658, 2147483648,\r\n 2147516545, 2147483648, 32896, 2147483648, 2147483649, 0, 2147516424, 2147483648]\r\nvar BITS = [224, 256, 384, 512]\r\nvar SHAKE_BITS = [128, 256]\r\nvar OUTPUT_TYPES = ['hex', 'buffer', 'arrayBuffer', 'array', 'digest']\r\nvar CSHAKE_BYTEPAD = {\r\n '128': 168,\r\n '256': 136\r\n}\r\n\r\nif (root.JS_SHA3_NO_NODE_JS || !Array.isArray) {\r\n Array.isArray = function (obj) {\r\n return Object.prototype.toString.call(obj) === '[object Array]'\r\n }\r\n}\r\n\r\nif (ARRAY_BUFFER && (root.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\r\n ArrayBuffer.isView = function (obj) {\r\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer\r\n }\r\n}\r\n\r\nvar createOutputMethod = function (bits, padding, outputType) {\r\n return function (message) {\r\n return new Keccak(bits, padding, bits).update(message)[outputType]()\r\n }\r\n}\r\n\r\nvar createShakeOutputMethod = function (bits, padding, outputType) {\r\n return function (message, outputBits) {\r\n return new Keccak(bits, padding, outputBits).update(message)[outputType]()\r\n }\r\n}\r\n\r\nvar createCshakeOutputMethod = function (bits, padding, outputType) {\r\n return function (message, outputBits, n, s) {\r\n return methods['cshake' + bits].update(message, outputBits, n, s)[outputType]()\r\n }\r\n}\r\n\r\nvar createKmacOutputMethod = function (bits, padding, outputType) {\r\n return function (key, message, outputBits, s) {\r\n return methods['kmac' + bits].update(key, message, outputBits, s)[outputType]()\r\n }\r\n}\r\n\r\nvar createOutputMethods = function (method, createMethod, bits, padding) {\r\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\r\n var type = OUTPUT_TYPES[i]\r\n method[type] = createMethod(bits, padding, type)\r\n }\r\n return method\r\n}\r\n\r\nvar createMethod = function (bits, padding) {\r\n var method = createOutputMethod(bits, padding, 'hex')\r\n method.create = function () {\r\n return new Keccak(bits, padding, bits)\r\n }\r\n method.update = function (message) {\r\n return method.create().update(message)\r\n }\r\n return createOutputMethods(method, createOutputMethod, bits, padding)\r\n}\r\n\r\nvar createShakeMethod = function (bits, padding) {\r\n var method = createShakeOutputMethod(bits, padding, 'hex')\r\n method.create = function (outputBits) {\r\n return new Keccak(bits, padding, outputBits)\r\n }\r\n method.update = function (message, outputBits) {\r\n return method.create(outputBits).update(message)\r\n }\r\n return createOutputMethods(method, createShakeOutputMethod, bits, padding)\r\n}\r\n\r\nvar createCshakeMethod = function (bits, padding) {\r\n var w = CSHAKE_BYTEPAD[bits]\r\n var method = createCshakeOutputMethod(bits, padding, 'hex')\r\n method.create = function (outputBits, n, s) {\r\n if (!n && !s) {\r\n return methods['shake' + bits].create(outputBits)\r\n } else {\r\n return new Keccak(bits, padding, outputBits).bytepad([n, s], w)\r\n }\r\n }\r\n method.update = function (message, outputBits, n, s) {\r\n return method.create(outputBits, n, s).update(message)\r\n }\r\n return createOutputMethods(method, createCshakeOutputMethod, bits, padding)\r\n}\r\n\r\nvar createKmacMethod = function (bits, padding) {\r\n var w = CSHAKE_BYTEPAD[bits]\r\n var method = createKmacOutputMethod(bits, padding, 'hex')\r\n method.create = function (key, outputBits, s) {\r\n return new Kmac(bits, padding, outputBits).bytepad(['KMAC', s], w).bytepad([key], w)\r\n }\r\n method.update = function (key, message, outputBits, s) {\r\n return method.create(key, outputBits, s).update(message)\r\n }\r\n return createOutputMethods(method, createKmacOutputMethod, bits, padding)\r\n}\r\n\r\nvar algorithms = [\r\n { name: 'keccak', padding: KECCAK_PADDING, bits: BITS, createMethod: createMethod },\r\n { name: 'sha3', padding: PADDING, bits: BITS, createMethod: createMethod },\r\n { name: 'shake', padding: SHAKE_PADDING, bits: SHAKE_BITS, createMethod: createShakeMethod },\r\n { name: 'cshake', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createCshakeMethod },\r\n { name: 'kmac', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createKmacMethod }\r\n]\r\n\r\nvar methods = {}; var methodNames = []\r\n\r\nfor (var i = 0; i < algorithms.length; ++i) {\r\n var algorithm = algorithms[i]\r\n var bits = algorithm.bits\r\n for (var j = 0; j < bits.length; ++j) {\r\n var methodName = algorithm.name + '_' + bits[j]\r\n methodNames.push(methodName)\r\n methods[methodName] = algorithm.createMethod(bits[j], algorithm.padding)\r\n if (algorithm.name !== 'sha3') {\r\n var newMethodName = algorithm.name + bits[j]\r\n methodNames.push(newMethodName)\r\n methods[newMethodName] = methods[methodName]\r\n }\r\n }\r\n}\r\n\r\nfunction Keccak (bits, padding, outputBits) {\r\n this.blocks = []\r\n this.s = []\r\n this.padding = padding\r\n this.outputBits = outputBits\r\n this.reset = true\r\n this.finalized = false\r\n this.block = 0\r\n this.start = 0\r\n this.blockCount = (1600 - (bits << 1)) >> 5\r\n this.byteCount = this.blockCount << 2\r\n this.outputBlocks = outputBits >> 5\r\n this.extraBytes = (outputBits & 31) >> 3\r\n\r\n for (var i = 0; i < 50; ++i) {\r\n this.s[i] = 0\r\n }\r\n}\r\n\r\nKeccak.prototype.update = function (message) {\r\n if (this.finalized) {\r\n return\r\n }\r\n var notString; var type = typeof message\r\n if (type !== 'string') {\r\n if (type === 'object') {\r\n if (message === null) {\r\n throw ERROR\r\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\r\n message = new Uint8Array(message)\r\n } else if (!Array.isArray(message)) {\r\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\r\n throw ERROR\r\n }\r\n }\r\n } else {\r\n throw ERROR\r\n }\r\n notString = true\r\n }\r\n var blocks = this.blocks; var byteCount = this.byteCount; var length = message.length\r\n\r\n var blockCount = this.blockCount; var index = 0; var s = this.s; var i; var code\r\n\r\n while (index < length) {\r\n if (this.reset) {\r\n this.reset = false\r\n blocks[0] = this.block\r\n for (i = 1; i < blockCount + 1; ++i) {\r\n blocks[i] = 0\r\n }\r\n }\r\n if (notString) {\r\n for (i = this.start; index < length && i < byteCount; ++index) {\r\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3]\r\n }\r\n } else {\r\n for (i = this.start; index < length && i < byteCount; ++index) {\r\n code = message.charCodeAt(index)\r\n if (code < 0x80) {\r\n blocks[i >> 2] |= code << SHIFT[i++ & 3]\r\n } else if (code < 0x800) {\r\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3]\r\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3]\r\n } else if (code < 0xd800 || code >= 0xe000) {\r\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3]\r\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3]\r\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3]\r\n } else {\r\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff))\r\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3]\r\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3]\r\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3]\r\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3]\r\n }\r\n }\r\n }\r\n this.lastByteIndex = i\r\n if (i >= byteCount) {\r\n this.start = i - byteCount\r\n this.block = blocks[blockCount]\r\n for (i = 0; i < blockCount; ++i) {\r\n s[i] ^= blocks[i]\r\n }\r\n f(s)\r\n this.reset = true\r\n } else {\r\n this.start = i\r\n }\r\n }\r\n return this\r\n}\r\n\r\nKeccak.prototype.encode = function (x, right) {\r\n var o = x & 255; var n = 1\r\n var bytes = [o]\r\n x = x >> 8\r\n o = x & 255\r\n while (o > 0) {\r\n bytes.unshift(o)\r\n x = x >> 8\r\n o = x & 255\r\n ++n\r\n }\r\n if (right) {\r\n bytes.push(n)\r\n } else {\r\n bytes.unshift(n)\r\n }\r\n this.update(bytes)\r\n return bytes.length\r\n}\r\n\r\nKeccak.prototype.encodeString = function (str) {\r\n var notString; var type = typeof str\r\n if (type !== 'string') {\r\n if (type === 'object') {\r\n if (str === null) {\r\n throw ERROR\r\n } else if (ARRAY_BUFFER && str.constructor === ArrayBuffer) {\r\n str = new Uint8Array(str)\r\n } else if (!Array.isArray(str)) {\r\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(str)) {\r\n throw ERROR\r\n }\r\n }\r\n } else {\r\n throw ERROR\r\n }\r\n notString = true\r\n }\r\n var bytes = 0; var length = str.length\r\n if (notString) {\r\n bytes = length\r\n } else {\r\n for (var i = 0; i < str.length; ++i) {\r\n var code = str.charCodeAt(i)\r\n if (code < 0x80) {\r\n bytes += 1\r\n } else if (code < 0x800) {\r\n bytes += 2\r\n } else if (code < 0xd800 || code >= 0xe000) {\r\n bytes += 3\r\n } else {\r\n code = 0x10000 + (((code & 0x3ff) << 10) | (str.charCodeAt(++i) & 0x3ff))\r\n bytes += 4\r\n }\r\n }\r\n }\r\n bytes += this.encode(bytes * 8)\r\n this.update(str)\r\n return bytes\r\n}\r\n\r\nKeccak.prototype.bytepad = function (strs, w) {\r\n var bytes = this.encode(w)\r\n for (var i = 0; i < strs.length; ++i) {\r\n bytes += this.encodeString(strs[i])\r\n }\r\n var paddingBytes = w - bytes % w\r\n var zeros = []\r\n zeros.length = paddingBytes\r\n this.update(zeros)\r\n return this\r\n}\r\n\r\nKeccak.prototype.finalize = function () {\r\n if (this.finalized) {\r\n return\r\n }\r\n this.finalized = true\r\n var blocks = this.blocks; var i = this.lastByteIndex; var blockCount = this.blockCount; var s = this.s\r\n blocks[i >> 2] |= this.padding[i & 3]\r\n if (this.lastByteIndex === this.byteCount) {\r\n blocks[0] = blocks[blockCount]\r\n for (i = 1; i < blockCount + 1; ++i) {\r\n blocks[i] = 0\r\n }\r\n }\r\n blocks[blockCount - 1] |= 0x80000000\r\n for (i = 0; i < blockCount; ++i) {\r\n s[i] ^= blocks[i]\r\n }\r\n f(s)\r\n}\r\n\r\nKeccak.prototype.toString = Keccak.prototype.hex = function () {\r\n this.finalize()\r\n\r\n var blockCount = this.blockCount; var s = this.s; var outputBlocks = this.outputBlocks\r\n\r\n var extraBytes = this.extraBytes; var i = 0; var j = 0\r\n var hex = ''; var block\r\n while (j < outputBlocks) {\r\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\r\n block = s[i]\r\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F] +\r\n HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F] +\r\n HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F] +\r\n HEX_CHARS[(block >> 28) & 0x0F] + HEX_CHARS[(block >> 24) & 0x0F]\r\n }\r\n if (j % blockCount === 0) {\r\n f(s)\r\n i = 0\r\n }\r\n }\r\n if (extraBytes) {\r\n block = s[i]\r\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F]\r\n if (extraBytes > 1) {\r\n hex += HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F]\r\n }\r\n if (extraBytes > 2) {\r\n hex += HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F]\r\n }\r\n }\r\n return hex\r\n}\r\n\r\nKeccak.prototype.arrayBuffer = function () {\r\n this.finalize()\r\n\r\n var blockCount = this.blockCount; var s = this.s; var outputBlocks = this.outputBlocks\r\n\r\n var extraBytes = this.extraBytes; var i = 0; var j = 0\r\n var bytes = this.outputBits >> 3\r\n var buffer\r\n if (extraBytes) {\r\n buffer = new ArrayBuffer((outputBlocks + 1) << 2)\r\n } else {\r\n buffer = new ArrayBuffer(bytes)\r\n }\r\n var array = new Uint32Array(buffer)\r\n while (j < outputBlocks) {\r\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\r\n array[j] = s[i]\r\n }\r\n if (j % blockCount === 0) {\r\n f(s)\r\n }\r\n }\r\n if (extraBytes) {\r\n array[i] = s[i]\r\n buffer = buffer.slice(0, bytes)\r\n }\r\n return buffer\r\n}\r\n\r\nKeccak.prototype.buffer = Keccak.prototype.arrayBuffer\r\n\r\nKeccak.prototype.digest = Keccak.prototype.array = function () {\r\n this.finalize()\r\n\r\n var blockCount = this.blockCount; var s = this.s; var outputBlocks = this.outputBlocks\r\n\r\n var extraBytes = this.extraBytes; var i = 0; var j = 0\r\n var array = []; var offset; var block\r\n while (j < outputBlocks) {\r\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\r\n offset = j << 2\r\n block = s[i]\r\n array[offset] = block & 0xFF\r\n array[offset + 1] = (block >> 8) & 0xFF\r\n array[offset + 2] = (block >> 16) & 0xFF\r\n array[offset + 3] = (block >> 24) & 0xFF\r\n }\r\n if (j % blockCount === 0) {\r\n f(s)\r\n }\r\n }\r\n if (extraBytes) {\r\n offset = j << 2\r\n block = s[i]\r\n array[offset] = block & 0xFF\r\n if (extraBytes > 1) {\r\n array[offset + 1] = (block >> 8) & 0xFF\r\n }\r\n if (extraBytes > 2) {\r\n array[offset + 2] = (block >> 16) & 0xFF\r\n }\r\n }\r\n return array\r\n}\r\n\r\nfunction Kmac (bits, padding, outputBits) {\r\n Keccak.call(this, bits, padding, outputBits)\r\n}\r\n\r\nKmac.prototype = new Keccak()\r\n\r\nKmac.prototype.finalize = function () {\r\n this.encode(this.outputBits, true)\r\n return Keccak.prototype.finalize.call(this)\r\n}\r\n\r\nvar f = function (s) {\r\n var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9,\r\n b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17,\r\n b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33,\r\n b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49\r\n for (n = 0; n < 48; n += 2) {\r\n c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40]\r\n c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41]\r\n c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42]\r\n c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43]\r\n c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44]\r\n c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45]\r\n c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46]\r\n c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47]\r\n c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48]\r\n c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49]\r\n\r\n h = c8 ^ ((c2 << 1) | (c3 >>> 31))\r\n l = c9 ^ ((c3 << 1) | (c2 >>> 31))\r\n s[0] ^= h\r\n s[1] ^= l\r\n s[10] ^= h\r\n s[11] ^= l\r\n s[20] ^= h\r\n s[21] ^= l\r\n s[30] ^= h\r\n s[31] ^= l\r\n s[40] ^= h\r\n s[41] ^= l\r\n h = c0 ^ ((c4 << 1) | (c5 >>> 31))\r\n l = c1 ^ ((c5 << 1) | (c4 >>> 31))\r\n s[2] ^= h\r\n s[3] ^= l\r\n s[12] ^= h\r\n s[13] ^= l\r\n s[22] ^= h\r\n s[23] ^= l\r\n s[32] ^= h\r\n s[33] ^= l\r\n s[42] ^= h\r\n s[43] ^= l\r\n h = c2 ^ ((c6 << 1) | (c7 >>> 31))\r\n l = c3 ^ ((c7 << 1) | (c6 >>> 31))\r\n s[4] ^= h\r\n s[5] ^= l\r\n s[14] ^= h\r\n s[15] ^= l\r\n s[24] ^= h\r\n s[25] ^= l\r\n s[34] ^= h\r\n s[35] ^= l\r\n s[44] ^= h\r\n s[45] ^= l\r\n h = c4 ^ ((c8 << 1) | (c9 >>> 31))\r\n l = c5 ^ ((c9 << 1) | (c8 >>> 31))\r\n s[6] ^= h\r\n s[7] ^= l\r\n s[16] ^= h\r\n s[17] ^= l\r\n s[26] ^= h\r\n s[27] ^= l\r\n s[36] ^= h\r\n s[37] ^= l\r\n s[46] ^= h\r\n s[47] ^= l\r\n h = c6 ^ ((c0 << 1) | (c1 >>> 31))\r\n l = c7 ^ ((c1 << 1) | (c0 >>> 31))\r\n s[8] ^= h\r\n s[9] ^= l\r\n s[18] ^= h\r\n s[19] ^= l\r\n s[28] ^= h\r\n s[29] ^= l\r\n s[38] ^= h\r\n s[39] ^= l\r\n s[48] ^= h\r\n s[49] ^= l\r\n\r\n b0 = s[0]\r\n b1 = s[1]\r\n b32 = (s[11] << 4) | (s[10] >>> 28)\r\n b33 = (s[10] << 4) | (s[11] >>> 28)\r\n b14 = (s[20] << 3) | (s[21] >>> 29)\r\n b15 = (s[21] << 3) | (s[20] >>> 29)\r\n b46 = (s[31] << 9) | (s[30] >>> 23)\r\n b47 = (s[30] << 9) | (s[31] >>> 23)\r\n b28 = (s[40] << 18) | (s[41] >>> 14)\r\n b29 = (s[41] << 18) | (s[40] >>> 14)\r\n b20 = (s[2] << 1) | (s[3] >>> 31)\r\n b21 = (s[3] << 1) | (s[2] >>> 31)\r\n b2 = (s[13] << 12) | (s[12] >>> 20)\r\n b3 = (s[12] << 12) | (s[13] >>> 20)\r\n b34 = (s[22] << 10) | (s[23] >>> 22)\r\n b35 = (s[23] << 10) | (s[22] >>> 22)\r\n b16 = (s[33] << 13) | (s[32] >>> 19)\r\n b17 = (s[32] << 13) | (s[33] >>> 19)\r\n b48 = (s[42] << 2) | (s[43] >>> 30)\r\n b49 = (s[43] << 2) | (s[42] >>> 30)\r\n b40 = (s[5] << 30) | (s[4] >>> 2)\r\n b41 = (s[4] << 30) | (s[5] >>> 2)\r\n b22 = (s[14] << 6) | (s[15] >>> 26)\r\n b23 = (s[15] << 6) | (s[14] >>> 26)\r\n b4 = (s[25] << 11) | (s[24] >>> 21)\r\n b5 = (s[24] << 11) | (s[25] >>> 21)\r\n b36 = (s[34] << 15) | (s[35] >>> 17)\r\n b37 = (s[35] << 15) | (s[34] >>> 17)\r\n b18 = (s[45] << 29) | (s[44] >>> 3)\r\n b19 = (s[44] << 29) | (s[45] >>> 3)\r\n b10 = (s[6] << 28) | (s[7] >>> 4)\r\n b11 = (s[7] << 28) | (s[6] >>> 4)\r\n b42 = (s[17] << 23) | (s[16] >>> 9)\r\n b43 = (s[16] << 23) | (s[17] >>> 9)\r\n b24 = (s[26] << 25) | (s[27] >>> 7)\r\n b25 = (s[27] << 25) | (s[26] >>> 7)\r\n b6 = (s[36] << 21) | (s[37] >>> 11)\r\n b7 = (s[37] << 21) | (s[36] >>> 11)\r\n b38 = (s[47] << 24) | (s[46] >>> 8)\r\n b39 = (s[46] << 24) | (s[47] >>> 8)\r\n b30 = (s[8] << 27) | (s[9] >>> 5)\r\n b31 = (s[9] << 27) | (s[8] >>> 5)\r\n b12 = (s[18] << 20) | (s[19] >>> 12)\r\n b13 = (s[19] << 20) | (s[18] >>> 12)\r\n b44 = (s[29] << 7) | (s[28] >>> 25)\r\n b45 = (s[28] << 7) | (s[29] >>> 25)\r\n b26 = (s[38] << 8) | (s[39] >>> 24)\r\n b27 = (s[39] << 8) | (s[38] >>> 24)\r\n b8 = (s[48] << 14) | (s[49] >>> 18)\r\n b9 = (s[49] << 14) | (s[48] >>> 18)\r\n\r\n s[0] = b0 ^ (~b2 & b4)\r\n s[1] = b1 ^ (~b3 & b5)\r\n s[10] = b10 ^ (~b12 & b14)\r\n s[11] = b11 ^ (~b13 & b15)\r\n s[20] = b20 ^ (~b22 & b24)\r\n s[21] = b21 ^ (~b23 & b25)\r\n s[30] = b30 ^ (~b32 & b34)\r\n s[31] = b31 ^ (~b33 & b35)\r\n s[40] = b40 ^ (~b42 & b44)\r\n s[41] = b41 ^ (~b43 & b45)\r\n s[2] = b2 ^ (~b4 & b6)\r\n s[3] = b3 ^ (~b5 & b7)\r\n s[12] = b12 ^ (~b14 & b16)\r\n s[13] = b13 ^ (~b15 & b17)\r\n s[22] = b22 ^ (~b24 & b26)\r\n s[23] = b23 ^ (~b25 & b27)\r\n s[32] = b32 ^ (~b34 & b36)\r\n s[33] = b33 ^ (~b35 & b37)\r\n s[42] = b42 ^ (~b44 & b46)\r\n s[43] = b43 ^ (~b45 & b47)\r\n s[4] = b4 ^ (~b6 & b8)\r\n s[5] = b5 ^ (~b7 & b9)\r\n s[14] = b14 ^ (~b16 & b18)\r\n s[15] = b15 ^ (~b17 & b19)\r\n s[24] = b24 ^ (~b26 & b28)\r\n s[25] = b25 ^ (~b27 & b29)\r\n s[34] = b34 ^ (~b36 & b38)\r\n s[35] = b35 ^ (~b37 & b39)\r\n s[44] = b44 ^ (~b46 & b48)\r\n s[45] = b45 ^ (~b47 & b49)\r\n s[6] = b6 ^ (~b8 & b0)\r\n s[7] = b7 ^ (~b9 & b1)\r\n s[16] = b16 ^ (~b18 & b10)\r\n s[17] = b17 ^ (~b19 & b11)\r\n s[26] = b26 ^ (~b28 & b20)\r\n s[27] = b27 ^ (~b29 & b21)\r\n s[36] = b36 ^ (~b38 & b30)\r\n s[37] = b37 ^ (~b39 & b31)\r\n s[46] = b46 ^ (~b48 & b40)\r\n s[47] = b47 ^ (~b49 & b41)\r\n s[8] = b8 ^ (~b0 & b2)\r\n s[9] = b9 ^ (~b1 & b3)\r\n s[18] = b18 ^ (~b10 & b12)\r\n s[19] = b19 ^ (~b11 & b13)\r\n s[28] = b28 ^ (~b20 & b22)\r\n s[29] = b29 ^ (~b21 & b23)\r\n s[38] = b38 ^ (~b30 & b32)\r\n s[39] = b39 ^ (~b31 & b33)\r\n s[48] = b48 ^ (~b40 & b42)\r\n s[49] = b49 ^ (~b41 & b43)\r\n\r\n s[0] ^= RC[n]\r\n s[1] ^= RC[n + 1]\r\n }\r\n}\r\n\r\nmodule.exports = methods\r\n","\"use strict\";\nexports.__esModule = true;\nexports.HASH_TRYTE_SIZE = 81;\nexports.TAG_TRYTE_SIZE = 27;\nexports.SIGNATURE_MESSAGE_FRAGMENT_TRYTE_SIZE = 2187;\nexports.TRANSACTION_TRYTE_SIZE = 2673;\nexports.MAX_INDEX_DIFF = 1000;\nexports.NULL_HASH_TRYTES = '9'.repeat(exports.HASH_TRYTE_SIZE);\nexports.NULL_TAG_TRYTES = '9'.repeat(exports.TAG_TRYTE_SIZE);\nexports.NULL_SIGNATURE_MESSAGE_FRAGMENT_TRYTES = '9'.repeat(exports.SIGNATURE_MESSAGE_FRAGMENT_TRYTE_SIZE);\nexports.NULL_TRANSACTION_TRYTES = '9'.repeat(exports.TRANSACTION_TRYTE_SIZE);\n//# sourceMappingURL=constants.js.map","\"use strict\";\nif (!Int8Array.prototype.slice) {\n Object.defineProperty(Int8Array.prototype, 'slice', {\n value: Array.prototype.slice\n });\n}\nif (!Int8Array.prototype.subarray) {\n Object.defineProperty(Uint8Array.prototype, 'subarray', {\n value: Array.prototype.slice\n });\n}\nif (!Int8Array.prototype.map) {\n Object.defineProperty(Int8Array.prototype, 'map', {\n value: Array.prototype.map\n });\n}\nif (!Int8Array.prototype.every) {\n Object.defineProperty(Int8Array.prototype, 'every', {\n value: Array.prototype.every\n });\n}\nif (!Int8Array.prototype.some) {\n Object.defineProperty(Uint8Array.prototype, 'some', {\n value: Array.prototype.some\n });\n}\nif (!Int8Array.prototype.indexOf) {\n Object.defineProperty(Int8Array.prototype, 'indexOf', {\n value: Array.prototype.indexOf\n });\n}\n// Source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/fill#Polyfill\n// Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/\nif (!Int8Array.prototype.fill) {\n Object.defineProperty(Int8Array.prototype, 'fill', {\n value: function (input) {\n // Steps 1-2.\n if (this == null) {\n throw new TypeError('this is null or not defined');\n }\n var O = Object(this);\n // Steps 3-5.\n var len = O.length >>> 0;\n // Steps 6-7.\n var start = arguments[1];\n var relativeStart = start >> 0;\n // Step 8.\n var k = relativeStart < 0 ? Math.max(len + relativeStart, 0) : Math.min(relativeStart, len);\n // Steps 9-10.\n var end = arguments[2];\n var relativeEnd = end === undefined ? len : end >> 0;\n // Step 11.\n var last = relativeEnd < 0 ? Math.max(len + relativeEnd, 0) : Math.min(relativeEnd, len);\n // Step 12.\n while (k < last) {\n O[k] = input;\n k++;\n }\n // Step 13.\n return O;\n }\n });\n}\nif (!Uint32Array.prototype.slice) {\n Object.defineProperty(Uint8Array.prototype, 'slice', {\n value: Array.prototype.slice\n });\n}\nif (!Uint32Array.prototype.reverse) {\n Object.defineProperty(Uint8Array.prototype, 'reverse', {\n value: Array.prototype.reverse\n });\n}\n//# sourceMappingURL=typed-array.js.map","\"use strict\";\nexports.__esModule = true;\n// tslint:disable no-conditional-assignment\nrequire(\"../../typed-array\");\nvar NUMBER_OF_ROUNDS = 81;\nvar HASH_LENGTH = 243;\nvar STATE_LENGTH = 3 * HASH_LENGTH;\nvar TRUTH_TABLE = [1, 0, -1, 2, 1, -1, 0, 2, -1, 1, 0];\n/**\n * @class Curl\n * @ignore\n */\nvar Curl = /** @class */ (function () {\n /**\n * @constructor\n *\n * @ignore\n *\n * @param rounds\n */\n function Curl(rounds) {\n if (rounds === void 0) { rounds = NUMBER_OF_ROUNDS; }\n this.rounds = rounds;\n if (rounds !== 27 && rounds !== 81) {\n throw new Error('Illegal number of rounds. Only `27` and `81` rounds are supported.');\n }\n this.state = new Int8Array(STATE_LENGTH);\n }\n /**\n * Initializes the state with `STATE_LENGTH` trits\n *\n * @method initialize\n *\n * @ignore\n *\n * @param {Int8Array} [state]\n */\n Curl.prototype.initialize = function (state) {\n if (state === void 0) { state = new Int8Array(STATE_LENGTH); }\n if (state.length !== STATE_LENGTH) {\n throw new Error('Illegal state length. ');\n }\n this.state = state.slice();\n for (var i = 0; i < STATE_LENGTH; i++) {\n this.state[i] = 0;\n }\n };\n /**\n * Resets the state\n *\n * @ignore\n *\n * @method reset\n */\n Curl.prototype.reset = function () {\n this.initialize();\n };\n /**\n * Absorbs trits given an offset and length\n *\n * @method absorb\n *\n * @ignore\n *\n * @param {Int8Array} trits\n * @param {number} offset\n * @param {number} length\n **/\n Curl.prototype.absorb = function (trits, offset, length) {\n do {\n var i = 0;\n var limit = length < HASH_LENGTH ? length : HASH_LENGTH;\n while (i < limit) {\n this.state[i++] = trits[offset++];\n }\n this.transform();\n } while ((length -= HASH_LENGTH) > 0);\n };\n /**\n * Squeezes trits given an offset and length\n *\n * @method squeeze\n *\n * @ignore\n *\n * @param {Int8Array} trits\n * @param {number} offset\n * @param {number} length\n **/\n Curl.prototype.squeeze = function (trits, offset, length) {\n do {\n var i = 0;\n var limit = length < HASH_LENGTH ? length : HASH_LENGTH;\n while (i < limit) {\n trits[offset++] = this.state[i++];\n }\n this.transform();\n } while ((length -= HASH_LENGTH) > 0);\n };\n /**\n * Sponge transform function\n *\n * @method transform\n *\n * @ignore\n *\n * @private\n */\n Curl.prototype.transform = function () {\n var stateCopy = new Int8Array(STATE_LENGTH);\n var index = 0;\n for (var round = 0; round < this.rounds; round++) {\n stateCopy = this.state.slice();\n for (var i = 0; i < STATE_LENGTH; i++) {\n this.state[i] =\n TRUTH_TABLE[stateCopy[index] + (stateCopy[(index += index < 365 ? 364 : -365)] << 2) + 5];\n }\n }\n };\n Curl.HASH_LENGTH = HASH_LENGTH;\n return Curl;\n}());\nexports[\"default\"] = Curl;\n//# sourceMappingURL=index.js.map","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n pna.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n pna.nextTick(emitErrorNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, _this, err);\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","\"use strict\";\nexports.__esModule = true;\nexports.ILLEGAL_LENGTH = 'Illegal trits length';\nexports.ILLEGAL_SUBSEED_INDEX = 'Illegal subseed length';\nexports.ILLEGAL_SUBSEED_LENGTH = 'Illegal subseed length';\nexports.ILLEGAL_NUMBER_OF_FRAGMENTS = 'Illegal number of fragments';\nexports.ILLEGAL_KEY_LENGTH = 'Illegal key length';\nexports.ILLEGAL_DIGESTS_LENGTH = 'Illegal digests length';\nexports.ILLEGAL_NORMALIZED_FRAGMENT_LENGTH = 'Illegal normalized fragment length';\nexports.ILLEGAL_SIGNATURE_FRAGMENT_LENGTH = 'Illegal signature fragment length';\nexports.ILLEGAL_BUNDLE_HASH_LENGTH = 'Illegal bundle hash length';\nexports.ILLEGAL_KEY_FRAGMENT_LENGTH = 'Illegal key fragment length';\nexports.ILLEGAL_TRIT_CONVERSION_INPUT = 'Illegal conversion input. Expected trits as Int8Array.';\nexports.ILLEGAL_TRYTE_CONVERSION_INPUT = 'Illegal conversion input. Expected trytes string or integer.';\nexports.ILLEGAL_MIN_WEIGHT_MAGNITUDE = 'Illegal minWeightMagnitude value.';\nexports.ILLEGAL_ADDRESS_LAST_TRIT = 'Illegal address. Last trit must be 0.';\nexports.ILLEGAL_ADDRESS_LENGTH = 'Illegal address length.';\nexports.ILLEGAL_BUNDLE_LENGTH = 'Illegal bundle hash length.';\nexports.ILLEGAL_OBSOLETE_TAG_LENGTH = 'Illegal obsoleteTag length.';\nexports.ILLEGAL_SIGNATURE_OR_MESSAGE = 'Illegal signature or message.';\nexports.ILLEGAL_SIGNATURE_OR_MESSAGE_LENGTH = 'Illegal signatureOrMessage length.';\nexports.ILLEGAL_TAG_LENGTH = 'Illegal tag length.';\nexports.ILLEGAL_ISSUANCE_TIMESTAMP = 'Illegal issuance timestamp';\nexports.ILLEGAL_ISSUANCE_TIMESTAMP_LENGTH = 'Illegal issuanceTimestamp length.';\nexports.ILLEGAL_VALUE_LENGTH = 'Illegal value length.';\nexports.ILLEGAL_TRANSACTION_FIELD_OFFSET = 'Illegal transaction field offset.';\nexports.ILLEGAL_TRANSACTION_FIELD_LENGTH = 'Illegal transaction field length.';\nexports.ILLEGAL_LENGTH_OR_OFFSET = 'Illegal length or offset.';\nexports.ILLEGAL_TRANSACTION_BUFFER = 'Illegal transaction buffer. Expected `Int8Array`.';\nexports.ILLEGAL_TRANSACTION_BUFFER_LENGTH = 'Illegal transaction buffer length.';\nexports.ILLEGAL_TRANSACTION_OFFSET = 'Illegal transaction offset.';\nexports.ILLEGAL_TRANSACTION_LENGTH = 'Illegal transaction length.';\nexports.ILLEGAL_TRANSACTION_ORDER = 'Illegal transaction order.';\nexports.ILLEGAL_TRANSACTION_INDEX = 'Illegal transaction index.';\nexports.ILLEGAL_SEED_LENGTH = 'Illegal seed length. Expected length of 243 trits.';\nexports.ILLEGAL_KEY_INDEX = 'Illegal key index.';\nexports.ILLEGAL_CDA_LENGTH = 'Illegal cda length.';\nexports.ILLEGAL_BATCH = 'Illegal batch.';\nexports.CDA_ALREADY_IN_STORE = 'CDA is already in store.';\nexports.ILLEGAL_PERSISTENCE_ID = 'Illegal persistence id.';\nexports.ILLEGAL_PERSISTENCE_PATH = 'Illegal persistence path.';\nexports.ILLEGAL_PADDING_LENGTH = 'Illegal padding length. Input value length exceeds padding length.';\nexports.INCONSISTENT_SUBTANGLE = 'Inconsistent subtangle';\nexports.INSUFFICIENT_BALANCE = 'Insufficient balance';\nexports.INVALID_ADDRESS = 'Invalid address';\nexports.INVALID_REMAINDER_ADDRESS = 'Invalid remainder address';\nexports.INVALID_BRANCH_TRANSACTION = 'Invalid branch transaction';\nexports.INVALID_BUNDLE = 'Invalid bundle';\nexports.INVALID_BUNDLE_HASH = 'Invalid bundle hash';\nexports.INVALID_CHECKSUM = 'Invalid checksum';\nexports.INVALID_COMMAND = 'Invalid command format';\nexports.INVALID_DEPTH = 'Invalid depth';\nexports.INVALID_HASH = 'Invalid hash';\nexports.INVALID_INDEX = 'Invalid index option';\nexports.INVALID_TOTAL_OPTION = 'Invalid total option';\nexports.INVALID_INPUT = 'Invalid input';\nexports.INVALID_KEY = 'Invalid key value';\nexports.INVALID_MIN_WEIGHT_MAGNITUDE = 'Invalid Min Weight Magnitude';\nexports.INVALID_SEARCH_KEY = 'Invalid search key';\nexports.INVALID_SECURITY_LEVEL = 'Invalid security option';\nexports.INVALID_SECURITY_OPTION = 'Invalid security option';\nexports.INVALID_SEED = 'Invalid seed';\nexports.INVALID_START_END_OPTIONS = 'Invalid end option';\nexports.INVALID_START_OPTION = 'Invalid start option';\nexports.INVALID_TAG = 'Invalid tag';\nexports.INVALID_TRANSACTION = 'Invalid transaction';\nexports.INVALID_TRANSACTION_TRYTES = 'Invalid transaction trytes';\nexports.INVALID_ATTACHED_TRYTES = 'Invalid attached trytes';\nexports.INVALID_TRANSACTION_HASH = 'Invalid transaction hash';\nexports.INVALID_TAIL_TRANSACTION = 'Invalid tail transaction';\nexports.INVALID_THRESHOLD = 'Invalid threshold option';\nexports.INVALID_TRANSFER = 'Invalid transfer array';\nexports.INVALID_TRUNK_TRANSACTION = 'Invalid trunk transaction';\nexports.INVALID_REFERENCE_HASH = 'Invalid reference hash';\nexports.INVALID_TRYTES = 'Invalid trytes';\nexports.INVALID_URI = 'Invalid uri';\nexports.INVALID_ASCII_INPUT = 'Conversion to trytes requires type of input to be encoded in ascii.';\nexports.INVALID_ODD_LENGTH = 'Conversion from trytes requires length of trytes to be even.';\nexports.INVALID_TRYTE_ENCODED_JSON = 'Invalid tryte encoded JSON message';\nexports.NOT_INT = 'One of the inputs is not integer';\nexports.SENDING_BACK_TO_INPUTS = 'One of the transaction inputs is used as output.';\nexports.INVALID_TRANSACTIONS_TO_APPROVE = 'Invalid transactions to approve.';\nexports.NO_INPUTS = 'Could not find any available inputs.';\nexports.invalidChecksum = function (address) { return \"Invalid Checksum: \" + address; };\nexports.inconsistentTransaction = function (reason) { return \"Transaction is inconsistent. Reason: \" + reason; };\nexports.INVALID_DELAY = 'Invalid delay.';\n//# sourceMappingURL=errors.js.map","/*\r\n\tJavaScript BigInteger library version 0.9.1\r\n\thttp://silentmatt.com/biginteger/\r\n\tCopyright (c) 2009 Matthew Crumley \r\n\tCopyright (c) 2010,2011 by John Tobey \r\n\tLicensed under the MIT license.\r\n\tSupport for arbitrary internal representation base was added by\r\n\tVitaly Magerya.\r\n*/\r\n\r\n/*\r\n\tFile: biginteger.js\r\n\tExports:\r\n\t\t\r\n*/\r\n(function (exports) {\r\n 'use strict'\r\n /*\r\n Class: BigInteger\r\n An arbitrarily-large integer.\r\n objects should be considered immutable. None of the \"built-in\"\r\n methods modify *this* or their arguments. All properties should be\r\n considered private.\r\n All the methods of instances can be called \"statically\". The\r\n static versions are convenient if you don't already have a \r\n object.\r\n As an example, these calls are equivalent.\r\n > BigInteger(4).multiply(5); // returns BigInteger(20);\r\n > BigInteger.multiply(4, 5); // returns BigInteger(20);\r\n > var a = 42;\r\n > var a = BigInteger.toJSValue(\"0b101010\"); // Not completely useless...\r\n */\r\n\r\n var CONSTRUCT = {} // Unique token to call \"private\" version of constructor\r\n\r\n /*\r\n Constructor: BigInteger()\r\n Convert a value to a .\r\n Although is the constructor for objects, it is\r\n best not to call it as a constructor. If *n* is a object, it is\r\n simply returned as-is. Otherwise, is equivalent to \r\n without a radix argument.\r\n > var n0 = BigInteger(); // Same as \r\n > var n1 = BigInteger(\"123\"); // Create a new with value 123\r\n > var n2 = BigInteger(123); // Create a new with value 123\r\n > var n3 = BigInteger(n2); // Return n2, unchanged\r\n The constructor form only takes an array and a sign. *n* must be an\r\n array of numbers in little-endian order, where each digit is between 0\r\n and BigInteger.base. The second parameter sets the sign: -1 for\r\n negative, +1 for positive, or 0 for zero. The array is *not copied and\r\n may be modified*. If the array contains only zeros, the sign parameter\r\n is ignored and is forced to zero.\r\n > new BigInteger([5], -1): create a new BigInteger with value -5\r\n Parameters:\r\n n - Value to convert to a .\r\n Returns:\r\n A value.\r\n See Also:\r\n , \r\n */\r\n function BigInteger (n, s, token) {\r\n if (token !== CONSTRUCT) {\r\n if (n instanceof BigInteger) {\r\n return n\r\n } else if (typeof n === 'undefined') {\r\n return ZERO\r\n }\r\n return BigInteger.parse(n)\r\n }\r\n\r\n n = n || [] // Provide the nullary constructor for subclasses.\r\n while (n.length && !n[n.length - 1]) {\r\n --n.length\r\n }\r\n this._d = n\r\n this._s = n.length ? (s || 1) : 0\r\n }\r\n\r\n BigInteger._construct = function (n, s) {\r\n return new BigInteger(n, s, CONSTRUCT)\r\n }\r\n\r\n // Base-10 speedup hacks in parse, toString, exp10 and log functions\r\n // require base to be a power of 10. 10^7 is the largest such power\r\n // that won't cause a precision loss when digits are multiplied.\r\n var BigInteger_base = 10000000\r\n var BigInteger_base_log10 = 7\r\n\r\n BigInteger.base = BigInteger_base\r\n BigInteger.base_log10 = BigInteger_base_log10\r\n\r\n var ZERO = new BigInteger([], 0, CONSTRUCT)\r\n // Constant: ZERO\r\n // 0.\r\n BigInteger.ZERO = ZERO\r\n\r\n var ONE = new BigInteger([1], 1, CONSTRUCT)\r\n // Constant: ONE\r\n // 1.\r\n BigInteger.ONE = ONE\r\n\r\n var M_ONE = new BigInteger(ONE._d, -1, CONSTRUCT)\r\n // Constant: M_ONE\r\n // -1.\r\n BigInteger.M_ONE = M_ONE\r\n\r\n // Constant: _0\r\n // Shortcut for .\r\n BigInteger._0 = ZERO\r\n\r\n // Constant: _1\r\n // Shortcut for .\r\n BigInteger._1 = ONE\r\n\r\n /*\r\n Constant: small\r\n Array of from 0 to 36.\r\n These are used internally for parsing, but useful when you need a \"small\"\r\n .\r\n See Also:\r\n , , <_0>, <_1>\r\n */\r\n BigInteger.small = [\r\n ZERO,\r\n ONE,\r\n /* Assuming BigInteger_base > 36 */\r\n new BigInteger([2], 1, CONSTRUCT),\r\n new BigInteger([3], 1, CONSTRUCT),\r\n new BigInteger([4], 1, CONSTRUCT),\r\n new BigInteger([5], 1, CONSTRUCT),\r\n new BigInteger([6], 1, CONSTRUCT),\r\n new BigInteger([7], 1, CONSTRUCT),\r\n new BigInteger([8], 1, CONSTRUCT),\r\n new BigInteger([9], 1, CONSTRUCT),\r\n new BigInteger([10], 1, CONSTRUCT),\r\n new BigInteger([11], 1, CONSTRUCT),\r\n new BigInteger([12], 1, CONSTRUCT),\r\n new BigInteger([13], 1, CONSTRUCT),\r\n new BigInteger([14], 1, CONSTRUCT),\r\n new BigInteger([15], 1, CONSTRUCT),\r\n new BigInteger([16], 1, CONSTRUCT),\r\n new BigInteger([17], 1, CONSTRUCT),\r\n new BigInteger([18], 1, CONSTRUCT),\r\n new BigInteger([19], 1, CONSTRUCT),\r\n new BigInteger([20], 1, CONSTRUCT),\r\n new BigInteger([21], 1, CONSTRUCT),\r\n new BigInteger([22], 1, CONSTRUCT),\r\n new BigInteger([23], 1, CONSTRUCT),\r\n new BigInteger([24], 1, CONSTRUCT),\r\n new BigInteger([25], 1, CONSTRUCT),\r\n new BigInteger([26], 1, CONSTRUCT),\r\n new BigInteger([27], 1, CONSTRUCT),\r\n new BigInteger([28], 1, CONSTRUCT),\r\n new BigInteger([29], 1, CONSTRUCT),\r\n new BigInteger([30], 1, CONSTRUCT),\r\n new BigInteger([31], 1, CONSTRUCT),\r\n new BigInteger([32], 1, CONSTRUCT),\r\n new BigInteger([33], 1, CONSTRUCT),\r\n new BigInteger([34], 1, CONSTRUCT),\r\n new BigInteger([35], 1, CONSTRUCT),\r\n new BigInteger([36], 1, CONSTRUCT)\r\n ]\r\n\r\n // Used for parsing/radix conversion\r\n BigInteger.digits = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('')\r\n\r\n /*\r\n Method: toString\r\n Convert a to a string.\r\n When *base* is greater than 10, letters are upper case.\r\n Parameters:\r\n base - Optional base to represent the number in (default is base 10).\r\n Must be between 2 and 36 inclusive, or an Error will be thrown.\r\n Returns:\r\n The string representation of the .\r\n */\r\n BigInteger.prototype.toString = function (base) {\r\n base = +base || 10\r\n if (base < 2 || base > 36) {\r\n throw new Error('illegal radix ' + base + '.')\r\n }\r\n if (this._s === 0) {\r\n return '0'\r\n }\r\n if (base === 10) {\r\n var str = this._s < 0 ? '-' : ''\r\n str += this._d[this._d.length - 1].toString()\r\n for (var i = this._d.length - 2; i >= 0; i--) {\r\n var group = this._d[i].toString()\r\n while (group.length < BigInteger_base_log10) group = '0' + group\r\n str += group\r\n }\r\n return str\r\n } else {\r\n var numerals = BigInteger.digits\r\n base = BigInteger.small[base]\r\n var sign = this._s\r\n\r\n var n = this.abs()\r\n var digits = []\r\n var digit\r\n\r\n while (n._s !== 0) {\r\n var divmod = n.divRem(base)\r\n n = divmod[0]\r\n digit = divmod[1]\r\n // TODO: This could be changed to unshift instead of reversing at the end.\r\n // Benchmark both to compare speeds.\r\n digits.push(numerals[digit.valueOf()])\r\n }\r\n return (sign < 0 ? '-' : '') + digits.reverse().join('')\r\n }\r\n }\r\n\r\n // Verify strings for parsing\r\n BigInteger.radixRegex = [\r\n /^$/,\r\n /^$/,\r\n /^[01]*$/,\r\n /^[012]*$/,\r\n /^[0-3]*$/,\r\n /^[0-4]*$/,\r\n /^[0-5]*$/,\r\n /^[0-6]*$/,\r\n /^[0-7]*$/,\r\n /^[0-8]*$/,\r\n /^[0-9]*$/,\r\n /^[0-9aA]*$/,\r\n /^[0-9abAB]*$/,\r\n /^[0-9abcABC]*$/,\r\n /^[0-9a-dA-D]*$/,\r\n /^[0-9a-eA-E]*$/,\r\n /^[0-9a-fA-F]*$/,\r\n /^[0-9a-gA-G]*$/,\r\n /^[0-9a-hA-H]*$/,\r\n /^[0-9a-iA-I]*$/,\r\n /^[0-9a-jA-J]*$/,\r\n /^[0-9a-kA-K]*$/,\r\n /^[0-9a-lA-L]*$/,\r\n /^[0-9a-mA-M]*$/,\r\n /^[0-9a-nA-N]*$/,\r\n /^[0-9a-oA-O]*$/,\r\n /^[0-9a-pA-P]*$/,\r\n /^[0-9a-qA-Q]*$/,\r\n /^[0-9a-rA-R]*$/,\r\n /^[0-9a-sA-S]*$/,\r\n /^[0-9a-tA-T]*$/,\r\n /^[0-9a-uA-U]*$/,\r\n /^[0-9a-vA-V]*$/,\r\n /^[0-9a-wA-W]*$/,\r\n /^[0-9a-xA-X]*$/,\r\n /^[0-9a-yA-Y]*$/,\r\n /^[0-9a-zA-Z]*$/\r\n ]\r\n\r\n /*\r\n Function: parse\r\n Parse a string into a .\r\n *base* is optional but, if provided, must be from 2 to 36 inclusive. If\r\n *base* is not provided, it will be guessed based on the leading characters\r\n of *s* as follows:\r\n - \"0x\" or \"0X\": *base* = 16\r\n - \"0c\" or \"0C\": *base* = 8\r\n - \"0b\" or \"0B\": *base* = 2\r\n - else: *base* = 10\r\n If no base is provided, or *base* is 10, the number can be in exponential\r\n form. For example, these are all valid:\r\n > BigInteger.parse(\"1e9\"); // Same as \"1000000000\"\r\n > BigInteger.parse(\"1.234*10^3\"); // Same as 1234\r\n > BigInteger.parse(\"56789 * 10 ** -2\"); // Same as 567\r\n If any characters fall outside the range defined by the radix, an exception\r\n will be thrown.\r\n Parameters:\r\n s - The string to parse.\r\n base - Optional radix (default is to guess based on *s*).\r\n Returns:\r\n a instance.\r\n */\r\n BigInteger.parse = function (s, base) {\r\n // Expands a number in exponential form to decimal form.\r\n // expandExponential(\"-13.441*10^5\") === \"1344100\";\r\n // expandExponential(\"1.12300e-1\") === \"0.112300\";\r\n // expandExponential(1000000000000000000000000000000) === \"1000000000000000000000000000000\";\r\n function expandExponential (str) {\r\n str = str.replace(/\\s*[*xX]\\s*10\\s*(\\^|\\*\\*)\\s*/, 'e')\r\n\r\n return str.replace(/^([+\\-])?(\\d+)\\.?(\\d*)[eE]([+\\-]?\\d+)$/, function (x, s, n, f, c) {\r\n c = +c\r\n var l = c < 0\r\n var i = n.length + c\r\n x = (l ? n : f).length\r\n c = ((c = Math.abs(c)) >= x ? c - x + l : 0)\r\n var z = (new Array(c + 1)).join('0')\r\n var r = n + f\r\n return (s || '') + (l ? r = z + r : r += z).substr(0, i += l ? z.length : 0) + (i < r.length ? '.' + r.substr(i) : '')\r\n })\r\n }\r\n\r\n s = s.toString()\r\n if (typeof base === 'undefined' || +base === 10) {\r\n s = expandExponential(s)\r\n }\r\n\r\n var prefixRE\r\n if (typeof base === 'undefined') {\r\n prefixRE = '0[xcb]'\r\n } else if (base == 16) {\r\n prefixRE = '0x'\r\n } else if (base == 8) {\r\n prefixRE = '0c'\r\n } else if (base == 2) {\r\n prefixRE = '0b'\r\n } else {\r\n prefixRE = ''\r\n }\r\n var parts = new RegExp('^([+\\\\-]?)(' + prefixRE + ')?([0-9a-z]*)(?:\\\\.\\\\d*)?$', 'i').exec(s)\r\n if (parts) {\r\n var sign = parts[1] || '+'\r\n var baseSection = parts[2] || ''\r\n var digits = parts[3] || ''\r\n\r\n if (typeof base === 'undefined') {\r\n // Guess base\r\n if (baseSection === '0x' || baseSection === '0X') { // Hex\r\n base = 16\r\n } else if (baseSection === '0c' || baseSection === '0C') { // Octal\r\n base = 8\r\n } else if (baseSection === '0b' || baseSection === '0B') { // Binary\r\n base = 2\r\n } else {\r\n base = 10\r\n }\r\n } else if (base < 2 || base > 36) {\r\n throw new Error('Illegal radix ' + base + '.')\r\n }\r\n\r\n base = +base\r\n\r\n // Check for digits outside the range\r\n if (!(BigInteger.radixRegex[base].test(digits))) {\r\n throw new Error('Bad digit for radix ' + base)\r\n }\r\n\r\n // Strip leading zeros, and convert to array\r\n digits = digits.replace(/^0+/, '').split('')\r\n if (digits.length === 0) {\r\n return ZERO\r\n }\r\n\r\n // Get the sign (we know it's not zero)\r\n sign = (sign === '-') ? -1 : 1\r\n\r\n // Optimize 10\r\n if (base == 10) {\r\n var d = []\r\n while (digits.length >= BigInteger_base_log10) {\r\n d.push(parseInt(digits.splice(digits.length - BigInteger.base_log10, BigInteger.base_log10).join(''), 10))\r\n }\r\n d.push(parseInt(digits.join(''), 10))\r\n return new BigInteger(d, sign, CONSTRUCT)\r\n }\r\n\r\n // Do the conversion\r\n var d = ZERO\r\n base = BigInteger.small[base]\r\n var small = BigInteger.small\r\n for (var i = 0; i < digits.length; i++) {\r\n d = d.multiply(base).add(small[parseInt(digits[i], 36)])\r\n }\r\n return new BigInteger(d._d, sign, CONSTRUCT)\r\n } else {\r\n throw new Error('Invalid BigInteger format: ' + s)\r\n }\r\n }\r\n\r\n /*\r\n Function: add\r\n Add two .\r\n Parameters:\r\n n - The number to add to *this*. Will be converted to a .\r\n Returns:\r\n The numbers added together.\r\n See Also:\r\n , , , \r\n */\r\n BigInteger.prototype.add = function (n) {\r\n if (this._s === 0) {\r\n return BigInteger(n)\r\n }\r\n\r\n n = BigInteger(n)\r\n if (n._s === 0) {\r\n return this\r\n }\r\n if (this._s !== n._s) {\r\n n = n.negate()\r\n return this.subtract(n)\r\n }\r\n\r\n var a = this._d\r\n var b = n._d\r\n var al = a.length\r\n var bl = b.length\r\n var sum = new Array(Math.max(al, bl) + 1)\r\n var size = Math.min(al, bl)\r\n var carry = 0\r\n var digit\r\n\r\n for (var i = 0; i < size; i++) {\r\n digit = a[i] + b[i] + carry\r\n sum[i] = digit % BigInteger_base\r\n carry = (digit / BigInteger_base) | 0\r\n }\r\n if (bl > al) {\r\n a = b\r\n al = bl\r\n }\r\n for (i = size; carry && i < al; i++) {\r\n digit = a[i] + carry\r\n sum[i] = digit % BigInteger_base\r\n carry = (digit / BigInteger_base) | 0\r\n }\r\n if (carry) {\r\n sum[i] = carry\r\n }\r\n\r\n for (; i < al; i++) {\r\n sum[i] = a[i]\r\n }\r\n\r\n return new BigInteger(sum, this._s, CONSTRUCT)\r\n }\r\n\r\n /*\r\n Function: negate\r\n Get the additive inverse of a .\r\n Returns:\r\n A with the same magnatude, but with the opposite sign.\r\n See Also:\r\n \r\n */\r\n BigInteger.prototype.negate = function () {\r\n return new BigInteger(this._d, (-this._s) | 0, CONSTRUCT)\r\n }\r\n\r\n /*\r\n Function: abs\r\n Get the absolute value of a .\r\n Returns:\r\n A with the same magnatude, but always positive (or zero).\r\n See Also:\r\n \r\n */\r\n BigInteger.prototype.abs = function () {\r\n return (this._s < 0) ? this.negate() : this\r\n }\r\n\r\n /*\r\n Function: subtract\r\n Subtract two .\r\n Parameters:\r\n n - The number to subtract from *this*. Will be converted to a .\r\n Returns:\r\n The *n* subtracted from *this*.\r\n See Also:\r\n , , , \r\n */\r\n BigInteger.prototype.subtract = function (n) {\r\n if (this._s === 0) {\r\n return BigInteger(n).negate()\r\n }\r\n\r\n n = BigInteger(n)\r\n if (n._s === 0) {\r\n return this\r\n }\r\n if (this._s !== n._s) {\r\n n = n.negate()\r\n return this.add(n)\r\n }\r\n\r\n var m = this\r\n // negative - negative => -|a| - -|b| => -|a| + |b| => |b| - |a|\r\n if (this._s < 0) {\r\n m = new BigInteger(n._d, 1, CONSTRUCT)\r\n n = new BigInteger(this._d, 1, CONSTRUCT)\r\n }\r\n\r\n // Both are positive => a - b\r\n var sign = m.compareAbs(n)\r\n if (sign === 0) {\r\n return ZERO\r\n } else if (sign < 0) {\r\n // swap m and n\r\n var t = n\r\n n = m\r\n m = t\r\n }\r\n\r\n // a > b\r\n var a = m._d\r\n var b = n._d\r\n var al = a.length\r\n var bl = b.length\r\n var diff = new Array(al) // al >= bl since a > b\r\n var borrow = 0\r\n var i\r\n var digit\r\n\r\n for (i = 0; i < bl; i++) {\r\n digit = a[i] - borrow - b[i]\r\n if (digit < 0) {\r\n digit += BigInteger_base\r\n borrow = 1\r\n } else {\r\n borrow = 0\r\n }\r\n diff[i] = digit\r\n }\r\n for (i = bl; i < al; i++) {\r\n digit = a[i] - borrow\r\n if (digit < 0) {\r\n digit += BigInteger_base\r\n } else {\r\n diff[i++] = digit\r\n break\r\n }\r\n diff[i] = digit\r\n }\r\n for (; i < al; i++) {\r\n diff[i] = a[i]\r\n }\r\n\r\n return new BigInteger(diff, sign, CONSTRUCT)\r\n };\r\n\r\n (function () {\r\n function addOne (n, sign) {\r\n var a = n._d\r\n var sum = a.slice()\r\n var carry = true\r\n var i = 0\r\n\r\n while (true) {\r\n var digit = (a[i] || 0) + 1\r\n sum[i] = digit % BigInteger_base\r\n if (digit <= BigInteger_base - 1) {\r\n break\r\n }\r\n ++i\r\n }\r\n\r\n return new BigInteger(sum, sign, CONSTRUCT)\r\n }\r\n\r\n function subtractOne (n, sign) {\r\n var a = n._d\r\n var sum = a.slice()\r\n var borrow = true\r\n var i = 0\r\n\r\n while (true) {\r\n var digit = (a[i] || 0) - 1\r\n if (digit < 0) {\r\n sum[i] = digit + BigInteger_base\r\n } else {\r\n sum[i] = digit\r\n break\r\n }\r\n ++i\r\n }\r\n\r\n return new BigInteger(sum, sign, CONSTRUCT)\r\n }\r\n\r\n /*\r\n Function: next\r\n Get the next (add one).\r\n Returns:\r\n *this* + 1.\r\n See Also:\r\n , \r\n */\r\n BigInteger.prototype.next = function () {\r\n switch (this._s) {\r\n case 0:\r\n return ONE\r\n case -1:\r\n return subtractOne(this, -1)\r\n // case 1:\r\n default:\r\n return addOne(this, 1)\r\n }\r\n }\r\n\r\n /*\r\n Function: prev\r\n Get the previous (subtract one).\r\n Returns:\r\n *this* - 1.\r\n See Also:\r\n , \r\n */\r\n BigInteger.prototype.prev = function () {\r\n switch (this._s) {\r\n case 0:\r\n return M_ONE\r\n case -1:\r\n return addOne(this, -1)\r\n // case 1:\r\n default:\r\n return subtractOne(this, 1)\r\n }\r\n }\r\n })()\r\n\r\n /*\r\n Function: compareAbs\r\n Compare the absolute value of two .\r\n Calling is faster than calling twice, then .\r\n Parameters:\r\n n - The number to compare to *this*. Will be converted to a .\r\n Returns:\r\n -1, 0, or +1 if *|this|* is less than, equal to, or greater than *|n|*.\r\n See Also:\r\n , \r\n */\r\n BigInteger.prototype.compareAbs = function (n) {\r\n if (this === n) {\r\n return 0\r\n }\r\n\r\n if (!(n instanceof BigInteger)) {\r\n if (!isFinite(n)) {\r\n return (isNaN(n) ? n : -1)\r\n }\r\n n = BigInteger(n)\r\n }\r\n\r\n if (this._s === 0) {\r\n return (n._s !== 0) ? -1 : 0\r\n }\r\n if (n._s === 0) {\r\n return 1\r\n }\r\n\r\n var l = this._d.length\r\n var nl = n._d.length\r\n if (l < nl) {\r\n return -1\r\n } else if (l > nl) {\r\n return 1\r\n }\r\n\r\n var a = this._d\r\n var b = n._d\r\n for (var i = l - 1; i >= 0; i--) {\r\n if (a[i] !== b[i]) {\r\n return a[i] < b[i] ? -1 : 1\r\n }\r\n }\r\n\r\n return 0\r\n }\r\n\r\n /*\r\n Function: compare\r\n Compare two .\r\n Parameters:\r\n n - The number to compare to *this*. Will be converted to a .\r\n Returns:\r\n -1, 0, or +1 if *this* is less than, equal to, or greater than *n*.\r\n See Also:\r\n , , , \r\n */\r\n BigInteger.prototype.compare = function (n) {\r\n if (this === n) {\r\n return 0\r\n }\r\n\r\n n = BigInteger(n)\r\n\r\n if (this._s === 0) {\r\n return -n._s\r\n }\r\n\r\n if (this._s === n._s) { // both positive or both negative\r\n var cmp = this.compareAbs(n)\r\n return cmp * this._s\r\n } else {\r\n return this._s\r\n }\r\n }\r\n\r\n /*\r\n Function: isUnit\r\n Return true iff *this* is either 1 or -1.\r\n Returns:\r\n true if *this* compares equal to or .\r\n See Also:\r\n , , , , ,\r\n , \r\n */\r\n BigInteger.prototype.isUnit = function () {\r\n return this === ONE ||\r\n this === M_ONE ||\r\n (this._d.length === 1 && this._d[0] === 1)\r\n }\r\n\r\n /*\r\n Function: multiply\r\n Multiply two .\r\n Parameters:\r\n n - The number to multiply *this* by. Will be converted to a\r\n .\r\n Returns:\r\n The numbers multiplied together.\r\n See Also:\r\n , , , \r\n */\r\n BigInteger.prototype.multiply = function (n) {\r\n // TODO: Consider adding Karatsuba multiplication for large numbers\r\n if (this._s === 0) {\r\n return ZERO\r\n }\r\n\r\n n = BigInteger(n)\r\n if (n._s === 0) {\r\n return ZERO\r\n }\r\n if (this.isUnit()) {\r\n if (this._s < 0) {\r\n return n.negate()\r\n }\r\n return n\r\n }\r\n if (n.isUnit()) {\r\n if (n._s < 0) {\r\n return this.negate()\r\n }\r\n return this\r\n }\r\n if (this === n) {\r\n return this.square()\r\n }\r\n\r\n var r = (this._d.length >= n._d.length)\r\n var a = (r ? this : n)._d // a will be longer than b\r\n var b = (r ? n : this)._d\r\n var al = a.length\r\n var bl = b.length\r\n\r\n var pl = al + bl\r\n var partial = new Array(pl)\r\n var i\r\n for (i = 0; i < pl; i++) {\r\n partial[i] = 0\r\n }\r\n\r\n for (i = 0; i < bl; i++) {\r\n var carry = 0\r\n var bi = b[i]\r\n var jlimit = al + i\r\n var digit\r\n for (var j = i; j < jlimit; j++) {\r\n digit = partial[j] + bi * a[j - i] + carry\r\n carry = (digit / BigInteger_base) | 0\r\n partial[j] = (digit % BigInteger_base) | 0\r\n }\r\n if (carry) {\r\n digit = partial[j] + carry\r\n carry = (digit / BigInteger_base) | 0\r\n partial[j] = digit % BigInteger_base\r\n }\r\n }\r\n return new BigInteger(partial, this._s * n._s, CONSTRUCT)\r\n }\r\n\r\n // Multiply a BigInteger by a single-digit native number\r\n // Assumes that this and n are >= 0\r\n // This is not really intended to be used outside the library itself\r\n BigInteger.prototype.multiplySingleDigit = function (n) {\r\n if (n === 0 || this._s === 0) {\r\n return ZERO\r\n }\r\n if (n === 1) {\r\n return this\r\n }\r\n\r\n var digit\r\n if (this._d.length === 1) {\r\n digit = this._d[0] * n\r\n if (digit >= BigInteger_base) {\r\n return new BigInteger([(digit % BigInteger_base) | 0,\r\n (digit / BigInteger_base) | 0], 1, CONSTRUCT)\r\n }\r\n return new BigInteger([digit], 1, CONSTRUCT)\r\n }\r\n\r\n if (n === 2) {\r\n return this.add(this)\r\n }\r\n if (this.isUnit()) {\r\n return new BigInteger([n], 1, CONSTRUCT)\r\n }\r\n\r\n var a = this._d\r\n var al = a.length\r\n\r\n var pl = al + 1\r\n var partial = new Array(pl)\r\n for (var i = 0; i < pl; i++) {\r\n partial[i] = 0\r\n }\r\n\r\n var carry = 0\r\n for (var j = 0; j < al; j++) {\r\n digit = n * a[j] + carry\r\n carry = (digit / BigInteger_base) | 0\r\n partial[j] = (digit % BigInteger_base) | 0\r\n }\r\n if (carry) {\r\n partial[j] = carry\r\n }\r\n\r\n return new BigInteger(partial, 1, CONSTRUCT)\r\n }\r\n\r\n /*\r\n Function: square\r\n Multiply a by itself.\r\n This is slightly faster than regular multiplication, since it removes the\r\n duplicated multiplcations.\r\n Returns:\r\n > this.multiply(this)\r\n See Also:\r\n \r\n */\r\n BigInteger.prototype.square = function () {\r\n // Normally, squaring a 10-digit number would take 100 multiplications.\r\n // Of these 10 are unique diagonals, of the remaining 90 (100-10), 45 are repeated.\r\n // This procedure saves (N*(N-1))/2 multiplications, (e.g., 45 of 100 multiplies).\r\n // Based on code by Gary Darby, Intellitech Systems Inc., www.DelphiForFun.org\r\n\r\n if (this._s === 0) {\r\n return ZERO\r\n }\r\n if (this.isUnit()) {\r\n return ONE\r\n }\r\n\r\n var digits = this._d\r\n var length = digits.length\r\n var imult1 = new Array(length + length + 1)\r\n var product, carry, k\r\n var i\r\n\r\n // Calculate diagonal\r\n for (i = 0; i < length; i++) {\r\n k = i * 2\r\n product = digits[i] * digits[i]\r\n carry = (product / BigInteger_base) | 0\r\n imult1[k] = product % BigInteger_base\r\n imult1[k + 1] = carry\r\n }\r\n\r\n // Calculate repeating part\r\n for (i = 0; i < length; i++) {\r\n carry = 0\r\n k = i * 2 + 1\r\n for (var j = i + 1; j < length; j++, k++) {\r\n product = digits[j] * digits[i] * 2 + imult1[k] + carry\r\n carry = (product / BigInteger_base) | 0\r\n imult1[k] = product % BigInteger_base\r\n }\r\n k = length + i\r\n var digit = carry + imult1[k]\r\n carry = (digit / BigInteger_base) | 0\r\n imult1[k] = digit % BigInteger_base\r\n imult1[k + 1] += carry\r\n }\r\n\r\n return new BigInteger(imult1, 1, CONSTRUCT)\r\n }\r\n\r\n /*\r\n Function: quotient\r\n Divide two and truncate towards zero.\r\n throws an exception if *n* is zero.\r\n Parameters:\r\n n - The number to divide *this* by. Will be converted to a .\r\n Returns:\r\n The *this* / *n*, truncated to an integer.\r\n See Also:\r\n , , , , \r\n */\r\n BigInteger.prototype.quotient = function (n) {\r\n return this.divRem(n)[0]\r\n }\r\n\r\n /*\r\n Function: divide\r\n Deprecated synonym for .\r\n */\r\n BigInteger.prototype.divide = BigInteger.prototype.quotient\r\n\r\n /*\r\n Function: remainder\r\n Calculate the remainder of two .\r\n throws an exception if *n* is zero.\r\n Parameters:\r\n n - The remainder after *this* is divided *this* by *n*. Will be\r\n converted to a .\r\n Returns:\r\n *this* % *n*.\r\n See Also:\r\n , \r\n */\r\n BigInteger.prototype.remainder = function (n) {\r\n return this.divRem(n)[1]\r\n }\r\n\r\n /*\r\n Function: divRem\r\n Calculate the integer quotient and remainder of two .\r\n throws an exception if *n* is zero.\r\n Parameters:\r\n n - The number to divide *this* by. Will be converted to a .\r\n Returns:\r\n A two-element array containing the quotient and the remainder.\r\n > a.divRem(b)\r\n is exactly equivalent to\r\n > [a.quotient(b), a.remainder(b)]\r\n except it is faster, because they are calculated at the same time.\r\n See Also:\r\n , \r\n */\r\n BigInteger.prototype.divRem = function (n) {\r\n n = BigInteger(n)\r\n if (n._s === 0) {\r\n throw new Error('Divide by zero')\r\n }\r\n if (this._s === 0) {\r\n return [ZERO, ZERO]\r\n }\r\n if (n._d.length === 1) {\r\n return this.divRemSmall(n._s * n._d[0])\r\n }\r\n\r\n // Test for easy cases -- |n1| <= |n2|\r\n switch (this.compareAbs(n)) {\r\n case 0: // n1 == n2\r\n return [this._s === n._s ? ONE : M_ONE, ZERO]\r\n case -1: // |n1| < |n2|\r\n return [ZERO, this]\r\n }\r\n\r\n var sign = this._s * n._s\r\n var a = n.abs()\r\n var b_digits = this._d\r\n var b_index = b_digits.length\r\n var digits = n._d.length\r\n var quot = []\r\n var guess\r\n\r\n var part = new BigInteger([], 0, CONSTRUCT)\r\n\r\n while (b_index) {\r\n part._d.unshift(b_digits[--b_index])\r\n part = new BigInteger(part._d, 1, CONSTRUCT)\r\n\r\n if (part.compareAbs(n) < 0) {\r\n quot.push(0)\r\n continue\r\n }\r\n if (part._s === 0) {\r\n guess = 0\r\n } else {\r\n var xlen = part._d.length; var ylen = a._d.length\r\n var highx = part._d[xlen - 1] * BigInteger_base + part._d[xlen - 2]\r\n var highy = a._d[ylen - 1] * BigInteger_base + a._d[ylen - 2]\r\n if (part._d.length > a._d.length) {\r\n // The length of part._d can either match a._d length,\r\n // or exceed it by one.\r\n highx = (highx + 1) * BigInteger_base\r\n }\r\n guess = Math.ceil(highx / highy)\r\n }\r\n do {\r\n var check = a.multiplySingleDigit(guess)\r\n if (check.compareAbs(part) <= 0) {\r\n break\r\n }\r\n guess--\r\n } while (guess)\r\n\r\n quot.push(guess)\r\n if (!guess) {\r\n continue\r\n }\r\n var diff = part.subtract(check)\r\n part._d = diff._d.slice()\r\n }\r\n\r\n return [new BigInteger(quot.reverse(), sign, CONSTRUCT),\r\n new BigInteger(part._d, this._s, CONSTRUCT)]\r\n }\r\n\r\n // Throws an exception if n is outside of (-BigInteger.base, -1] or\r\n // [1, BigInteger.base). It's not necessary to call this, since the\r\n // other division functions will call it if they are able to.\r\n BigInteger.prototype.divRemSmall = function (n) {\r\n var r\r\n n = +n\r\n if (n === 0) {\r\n throw new Error('Divide by zero')\r\n }\r\n\r\n var n_s = n < 0 ? -1 : 1\r\n var sign = this._s * n_s\r\n n = Math.abs(n)\r\n\r\n if (n < 1 || n >= BigInteger_base) {\r\n throw new Error('Argument out of range')\r\n }\r\n\r\n if (this._s === 0) {\r\n return [ZERO, ZERO]\r\n }\r\n\r\n if (n === 1 || n === -1) {\r\n return [(sign === 1) ? this.abs() : new BigInteger(this._d, sign, CONSTRUCT), ZERO]\r\n }\r\n\r\n // 2 <= n < BigInteger_base\r\n\r\n // divide a single digit by a single digit\r\n if (this._d.length === 1) {\r\n var q = new BigInteger([(this._d[0] / n) | 0], 1, CONSTRUCT)\r\n r = new BigInteger([(this._d[0] % n) | 0], 1, CONSTRUCT)\r\n if (sign < 0) {\r\n q = q.negate()\r\n }\r\n if (this._s < 0) {\r\n r = r.negate()\r\n }\r\n return [q, r]\r\n }\r\n\r\n var digits = this._d.slice()\r\n var quot = new Array(digits.length)\r\n var part = 0\r\n var diff = 0\r\n var i = 0\r\n var guess\r\n\r\n while (digits.length) {\r\n part = part * BigInteger_base + digits[digits.length - 1]\r\n if (part < n) {\r\n quot[i++] = 0\r\n digits.pop()\r\n diff = BigInteger_base * diff + part\r\n continue\r\n }\r\n if (part === 0) {\r\n guess = 0\r\n } else {\r\n guess = (part / n) | 0\r\n }\r\n\r\n var check = n * guess\r\n diff = part - check\r\n quot[i++] = guess\r\n if (!guess) {\r\n digits.pop()\r\n continue\r\n }\r\n\r\n digits.pop()\r\n part = diff\r\n }\r\n\r\n r = new BigInteger([diff], 1, CONSTRUCT)\r\n if (this._s < 0) {\r\n r = r.negate()\r\n }\r\n return [new BigInteger(quot.reverse(), sign, CONSTRUCT), r]\r\n }\r\n\r\n /*\r\n Function: isEven\r\n Return true iff *this* is divisible by two.\r\n Note that is even.\r\n Returns:\r\n true if *this* is even, false otherwise.\r\n See Also:\r\n \r\n */\r\n BigInteger.prototype.isEven = function () {\r\n var digits = this._d\r\n return this._s === 0 || digits.length === 0 || (digits[0] % 2) === 0\r\n }\r\n\r\n /*\r\n Function: isOdd\r\n Return true iff *this* is not divisible by two.\r\n Returns:\r\n true if *this* is odd, false otherwise.\r\n See Also:\r\n \r\n */\r\n BigInteger.prototype.isOdd = function () {\r\n return !this.isEven()\r\n }\r\n\r\n /*\r\n Function: sign\r\n Get the sign of a .\r\n Returns:\r\n * -1 if *this* < 0\r\n * 0 if *this* == 0\r\n * +1 if *this* > 0\r\n See Also:\r\n , , , , \r\n */\r\n BigInteger.prototype.sign = function () {\r\n return this._s\r\n }\r\n\r\n /*\r\n Function: isPositive\r\n Return true iff *this* > 0.\r\n Returns:\r\n true if *this*.compare() == 1.\r\n See Also:\r\n , , , , , \r\n */\r\n BigInteger.prototype.isPositive = function () {\r\n return this._s > 0\r\n }\r\n\r\n /*\r\n Function: isNegative\r\n Return true iff *this* < 0.\r\n Returns:\r\n true if *this*.compare() == -1.\r\n See Also:\r\n , , , , , \r\n */\r\n BigInteger.prototype.isNegative = function () {\r\n return this._s < 0\r\n }\r\n\r\n /*\r\n Function: isZero\r\n Return true iff *this* == 0.\r\n Returns:\r\n true if *this*.compare() == 0.\r\n See Also:\r\n , , , , \r\n */\r\n BigInteger.prototype.isZero = function () {\r\n return this._s === 0\r\n }\r\n\r\n /*\r\n Function: exp10\r\n Multiply a by a power of 10.\r\n This is equivalent to, but faster than\r\n > if (n >= 0) {\r\n > return this.multiply(BigInteger(\"1e\" + n));\r\n > }\r\n > else { // n <= 0\r\n > return this.quotient(BigInteger(\"1e\" + -n));\r\n > }\r\n Parameters:\r\n n - The power of 10 to multiply *this* by. *n* is converted to a\r\n javascipt number and must be no greater than \r\n (0x7FFFFFFF), or an exception will be thrown.\r\n Returns:\r\n *this* * (10 ** *n*), truncated to an integer if necessary.\r\n See Also:\r\n , \r\n */\r\n BigInteger.prototype.exp10 = function (n) {\r\n n = +n\r\n if (n === 0) {\r\n return this\r\n }\r\n if (Math.abs(n) > Number(MAX_EXP)) {\r\n throw new Error('exponent too large in BigInteger.exp10')\r\n }\r\n // Optimization for this == 0. This also keeps us from having to trim zeros in the positive n case\r\n if (this._s === 0) {\r\n return ZERO\r\n }\r\n if (n > 0) {\r\n var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT)\r\n\r\n for (; n >= BigInteger_base_log10; n -= BigInteger_base_log10) {\r\n k._d.unshift(0)\r\n }\r\n if (n == 0) { return k }\r\n k._s = 1\r\n k = k.multiplySingleDigit(Math.pow(10, n))\r\n return (this._s < 0 ? k.negate() : k)\r\n } else if (-n >= this._d.length * BigInteger_base_log10) {\r\n return ZERO\r\n } else {\r\n var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT)\r\n\r\n for (n = -n; n >= BigInteger_base_log10; n -= BigInteger_base_log10) {\r\n k._d.shift()\r\n }\r\n return (n == 0) ? k : k.divRemSmall(Math.pow(10, n))[0]\r\n }\r\n }\r\n\r\n /*\r\n Function: pow\r\n Raise a to a power.\r\n In this implementation, 0**0 is 1.\r\n Parameters:\r\n n - The exponent to raise *this* by. *n* must be no greater than\r\n (0x7FFFFFFF), or an exception will be thrown.\r\n Returns:\r\n *this* raised to the *nth* power.\r\n See Also:\r\n \r\n */\r\n BigInteger.prototype.pow = function (n) {\r\n if (this.isUnit()) {\r\n if (this._s > 0) {\r\n return this\r\n } else {\r\n return BigInteger(n).isOdd() ? this : this.negate()\r\n }\r\n }\r\n\r\n n = BigInteger(n)\r\n if (n._s === 0) {\r\n return ONE\r\n } else if (n._s < 0) {\r\n if (this._s === 0) {\r\n throw new Error('Divide by zero')\r\n } else {\r\n return ZERO\r\n }\r\n }\r\n if (this._s === 0) {\r\n return ZERO\r\n }\r\n if (n.isUnit()) {\r\n return this\r\n }\r\n\r\n if (n.compareAbs(MAX_EXP) > 0) {\r\n throw new Error('exponent too large in BigInteger.pow')\r\n }\r\n var x = this\r\n var aux = ONE\r\n var two = BigInteger.small[2]\r\n\r\n while (n.isPositive()) {\r\n if (n.isOdd()) {\r\n aux = aux.multiply(x)\r\n if (n.isUnit()) {\r\n return aux\r\n }\r\n }\r\n x = x.square()\r\n n = n.quotient(two)\r\n }\r\n\r\n return aux\r\n }\r\n\r\n /*\r\n Function: modPow\r\n Raise a to a power (mod m).\r\n Because it is reduced by a modulus, is not limited by\r\n like .\r\n Parameters:\r\n exponent - The exponent to raise *this* by. Must be positive.\r\n modulus - The modulus.\r\n Returns:\r\n *this* ^ *exponent* (mod *modulus*).\r\n See Also:\r\n , \r\n */\r\n BigInteger.prototype.modPow = function (exponent, modulus) {\r\n var result = ONE\r\n var base = this\r\n\r\n while (exponent.isPositive()) {\r\n if (exponent.isOdd()) {\r\n result = result.multiply(base).remainder(modulus)\r\n }\r\n\r\n exponent = exponent.quotient(BigInteger.small[2])\r\n if (exponent.isPositive()) {\r\n base = base.square().remainder(modulus)\r\n }\r\n }\r\n\r\n return result\r\n }\r\n\r\n /*\r\n Function: log\r\n Get the natural logarithm of a as a native JavaScript number.\r\n This is equivalent to\r\n > Math.log(this.toJSValue())\r\n but handles values outside of the native number range.\r\n Returns:\r\n log( *this* )\r\n See Also:\r\n \r\n */\r\n BigInteger.prototype.log = function () {\r\n switch (this._s) {\r\n case 0:\t return -Infinity\r\n case -1: return NaN\r\n default: // Fall through.\r\n }\r\n\r\n var l = this._d.length\r\n\r\n if (l * BigInteger_base_log10 < 30) {\r\n return Math.log(this.valueOf())\r\n }\r\n\r\n var N = Math.ceil(30 / BigInteger_base_log10)\r\n var firstNdigits = this._d.slice(l - N)\r\n return Math.log((new BigInteger(firstNdigits, 1, CONSTRUCT)).valueOf()) + (l - N) * Math.log(BigInteger_base)\r\n }\r\n\r\n /*\r\n Function: valueOf\r\n Convert a to a native JavaScript integer.\r\n This is called automatically by JavaScipt to convert a to a\r\n native value.\r\n Returns:\r\n > parseInt(this.toString(), 10)\r\n See Also:\r\n , \r\n */\r\n BigInteger.prototype.valueOf = function () {\r\n return parseInt(this.toString(), 10)\r\n }\r\n\r\n /*\r\n Function: toJSValue\r\n Convert a to a native JavaScript integer.\r\n This is the same as valueOf, but more explicitly named.\r\n Returns:\r\n > parseInt(this.toString(), 10)\r\n See Also:\r\n , \r\n */\r\n BigInteger.prototype.toJSValue = function () {\r\n return parseInt(this.toString(), 10)\r\n }\r\n\r\n /*\r\n Function: lowVal\r\n Author: Lucas Jones\r\n */\r\n BigInteger.prototype.lowVal = function () {\r\n return this._d[0] || 0\r\n }\r\n\r\n var MAX_EXP = BigInteger(0x7FFFFFFF)\r\n // Constant: MAX_EXP\r\n // The largest exponent allowed in and (0x7FFFFFFF or 2147483647).\r\n BigInteger.MAX_EXP = MAX_EXP;\r\n\r\n (function () {\r\n function makeUnary (fn) {\r\n return function (a) {\r\n return fn.call(BigInteger(a))\r\n }\r\n }\r\n\r\n function makeBinary (fn) {\r\n return function (a, b) {\r\n return fn.call(BigInteger(a), BigInteger(b))\r\n }\r\n }\r\n\r\n function makeTrinary (fn) {\r\n return function (a, b, c) {\r\n return fn.call(BigInteger(a), BigInteger(b), BigInteger(c))\r\n }\r\n }\r\n\r\n (function () {\r\n var i, fn\r\n var unary = 'toJSValue,isEven,isOdd,sign,isZero,isNegative,abs,isUnit,square,negate,isPositive,toString,next,prev,log'.split(',')\r\n var binary = 'compare,remainder,divRem,subtract,add,quotient,divide,multiply,pow,compareAbs'.split(',')\r\n var trinary = ['modPow']\r\n\r\n for (i = 0; i < unary.length; i++) {\r\n fn = unary[i]\r\n BigInteger[fn] = makeUnary(BigInteger.prototype[fn])\r\n }\r\n\r\n for (i = 0; i < binary.length; i++) {\r\n fn = binary[i]\r\n BigInteger[fn] = makeBinary(BigInteger.prototype[fn])\r\n }\r\n\r\n for (i = 0; i < trinary.length; i++) {\r\n fn = trinary[i]\r\n BigInteger[fn] = makeTrinary(BigInteger.prototype[fn])\r\n }\r\n\r\n BigInteger.exp10 = function (x, n) {\r\n return BigInteger(x).exp10(n)\r\n }\r\n })()\r\n })()\r\n\r\n exports.JSBigInt = BigInteger // exports.BigInteger changed to exports.JSBigInt\r\n})(typeof exports !== 'undefined' ? exports : this)\r\n","var cryptoUtils = require('./crypto/utils')\r\nvar baseX = require('base-x')\r\n\r\nvar ALLOWED_CHARS = '13456789abcdefghijkmnopqrstuwxyz'\r\n\r\nvar codec = baseX(ALLOWED_CHARS)\r\n// https://github.com/nanocurrency/raiblocks/wiki/Accounts,-Keys,-Seeds,-and-Wallet-Identifiers\r\nvar regexp = new RegExp('^(xrb|nano)_([' + ALLOWED_CHARS + ']{60})$')\r\n\r\nmodule.exports = {\r\n isValidAddress: function (address) {\r\n if (regexp.test(address)) {\r\n return this.verifyChecksum(address)\r\n }\r\n\r\n return false\r\n },\r\n\r\n verifyChecksum: function (address) {\r\n var bytes = codec.decode(regexp.exec(address)[2]).slice(-37)\r\n // https://github.com/nanocurrency/raiblocks/blob/master/rai/lib/numbers.cpp#L73\r\n var computedChecksum = cryptoUtils.blake2b(cryptoUtils.toHex(bytes.slice(0, -5)), 5)\r\n var checksum = cryptoUtils.toHex(bytes.slice(-5).reverse())\r\n\r\n return computedChecksum === checksum\r\n }\r\n}\r\n","var base58 = require('./crypto/base58')\r\n\r\nconst ALLOWED_CHARS = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\r\n\r\nvar regexp = new RegExp('^(ak_)([' + ALLOWED_CHARS + ']+)$') // Begins with ak_ followed by\r\n\r\nmodule.exports = {\r\n isValidAddress: function (address, currency, networkType) {\r\n let match = regexp.exec(address)\r\n if (match !== null) {\r\n return this.verifyChecksum(match[2])\r\n } else {\r\n return false\r\n }\r\n },\r\n\r\n verifyChecksum: function (address) {\r\n var decoded = base58.decode(address)\r\n decoded.splice(-4, 4) // remove last 4 elements. Why is base 58 adding them?\r\n return decoded.length === 32\r\n }\r\n}\r\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\nvar _require2 = require('util'),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n}();","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","/*\n * [js-sha512]{@link https://github.com/emn178/js-sha512}\n *\n * @version 0.8.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2018\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var INPUT_ERROR = 'input is invalid type';\n var FINALIZE_ERROR = 'finalize already called';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA512_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA512_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA512_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA512_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [-2147483648, 8388608, 32768, 128];\n var SHIFT = [24, 16, 8, 0];\n var K = [\n 0x428A2F98, 0xD728AE22, 0x71374491, 0x23EF65CD,\n 0xB5C0FBCF, 0xEC4D3B2F, 0xE9B5DBA5, 0x8189DBBC,\n 0x3956C25B, 0xF348B538, 0x59F111F1, 0xB605D019,\n 0x923F82A4, 0xAF194F9B, 0xAB1C5ED5, 0xDA6D8118,\n 0xD807AA98, 0xA3030242, 0x12835B01, 0x45706FBE,\n 0x243185BE, 0x4EE4B28C, 0x550C7DC3, 0xD5FFB4E2,\n 0x72BE5D74, 0xF27B896F, 0x80DEB1FE, 0x3B1696B1,\n 0x9BDC06A7, 0x25C71235, 0xC19BF174, 0xCF692694,\n 0xE49B69C1, 0x9EF14AD2, 0xEFBE4786, 0x384F25E3,\n 0x0FC19DC6, 0x8B8CD5B5, 0x240CA1CC, 0x77AC9C65,\n 0x2DE92C6F, 0x592B0275, 0x4A7484AA, 0x6EA6E483,\n 0x5CB0A9DC, 0xBD41FBD4, 0x76F988DA, 0x831153B5,\n 0x983E5152, 0xEE66DFAB, 0xA831C66D, 0x2DB43210,\n 0xB00327C8, 0x98FB213F, 0xBF597FC7, 0xBEEF0EE4,\n 0xC6E00BF3, 0x3DA88FC2, 0xD5A79147, 0x930AA725,\n 0x06CA6351, 0xE003826F, 0x14292967, 0x0A0E6E70,\n 0x27B70A85, 0x46D22FFC, 0x2E1B2138, 0x5C26C926,\n 0x4D2C6DFC, 0x5AC42AED, 0x53380D13, 0x9D95B3DF,\n 0x650A7354, 0x8BAF63DE, 0x766A0ABB, 0x3C77B2A8,\n 0x81C2C92E, 0x47EDAEE6, 0x92722C85, 0x1482353B,\n 0xA2BFE8A1, 0x4CF10364, 0xA81A664B, 0xBC423001,\n 0xC24B8B70, 0xD0F89791, 0xC76C51A3, 0x0654BE30,\n 0xD192E819, 0xD6EF5218, 0xD6990624, 0x5565A910,\n 0xF40E3585, 0x5771202A, 0x106AA070, 0x32BBD1B8,\n 0x19A4C116, 0xB8D2D0C8, 0x1E376C08, 0x5141AB53,\n 0x2748774C, 0xDF8EEB99, 0x34B0BCB5, 0xE19B48A8,\n 0x391C0CB3, 0xC5C95A63, 0x4ED8AA4A, 0xE3418ACB,\n 0x5B9CCA4F, 0x7763E373, 0x682E6FF3, 0xD6B2B8A3,\n 0x748F82EE, 0x5DEFB2FC, 0x78A5636F, 0x43172F60,\n 0x84C87814, 0xA1F0AB72, 0x8CC70208, 0x1A6439EC,\n 0x90BEFFFA, 0x23631E28, 0xA4506CEB, 0xDE82BDE9,\n 0xBEF9A3F7, 0xB2C67915, 0xC67178F2, 0xE372532B,\n 0xCA273ECE, 0xEA26619C, 0xD186B8C7, 0x21C0C207,\n 0xEADA7DD6, 0xCDE0EB1E, 0xF57D4F7F, 0xEE6ED178,\n 0x06F067AA, 0x72176FBA, 0x0A637DC5, 0xA2C898A6,\n 0x113F9804, 0xBEF90DAE, 0x1B710B35, 0x131C471B,\n 0x28DB77F5, 0x23047D84, 0x32CAAB7B, 0x40C72493,\n 0x3C9EBE0A, 0x15C9BEBC, 0x431D67C4, 0x9C100D4C,\n 0x4CC5D4BE, 0xCB3E42B6, 0x597F299C, 0xFC657E2A,\n 0x5FCB6FAB, 0x3AD6FAEC, 0x6C44198C, 0x4A475817\n ];\n\n var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];\n\n var blocks = [];\n\n if (root.JS_SHA512_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA512_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (outputType, bits) {\n return function (message) {\n return new Sha512(bits, true).update(message)[outputType]();\n };\n };\n\n var createMethod = function (bits) {\n var method = createOutputMethod('hex', bits);\n method.create = function () {\n return new Sha512(bits);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createOutputMethod(type, bits);\n }\n return method;\n };\n\n var createHmacOutputMethod = function (outputType, bits) {\n return function (key, message) {\n return new HmacSha512(key, bits, true).update(message)[outputType]();\n };\n };\n\n var createHmacMethod = function (bits) {\n var method = createHmacOutputMethod('hex', bits);\n method.create = function (key) {\n return new HmacSha512(key, bits);\n };\n method.update = function (key, message) {\n return method.create(key).update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createHmacOutputMethod(type, bits);\n }\n return method;\n };\n\n function Sha512(bits, sharedMemory) {\n if (sharedMemory) {\n blocks[0] = blocks[1] = blocks[2] = blocks[3] = blocks[4] =\n blocks[5] = blocks[6] = blocks[7] = blocks[8] =\n blocks[9] = blocks[10] = blocks[11] = blocks[12] =\n blocks[13] = blocks[14] = blocks[15] = blocks[16] =\n blocks[17] = blocks[18] = blocks[19] = blocks[20] =\n blocks[21] = blocks[22] = blocks[23] = blocks[24] =\n blocks[25] = blocks[26] = blocks[27] = blocks[28] =\n blocks[29] = blocks[30] = blocks[31] = blocks[32] = 0;\n this.blocks = blocks;\n } else {\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n }\n\n if (bits == 384) {\n this.h0h = 0xCBBB9D5D;\n this.h0l = 0xC1059ED8;\n this.h1h = 0x629A292A;\n this.h1l = 0x367CD507;\n this.h2h = 0x9159015A;\n this.h2l = 0x3070DD17;\n this.h3h = 0x152FECD8;\n this.h3l = 0xF70E5939;\n this.h4h = 0x67332667;\n this.h4l = 0xFFC00B31;\n this.h5h = 0x8EB44A87;\n this.h5l = 0x68581511;\n this.h6h = 0xDB0C2E0D;\n this.h6l = 0x64F98FA7;\n this.h7h = 0x47B5481D;\n this.h7l = 0xBEFA4FA4;\n } else if (bits == 256) {\n this.h0h = 0x22312194;\n this.h0l = 0xFC2BF72C;\n this.h1h = 0x9F555FA3;\n this.h1l = 0xC84C64C2;\n this.h2h = 0x2393B86B;\n this.h2l = 0x6F53B151;\n this.h3h = 0x96387719;\n this.h3l = 0x5940EABD;\n this.h4h = 0x96283EE2;\n this.h4l = 0xA88EFFE3;\n this.h5h = 0xBE5E1E25;\n this.h5l = 0x53863992;\n this.h6h = 0x2B0199FC;\n this.h6l = 0x2C85B8AA;\n this.h7h = 0x0EB72DDC;\n this.h7l = 0x81C52CA2;\n } else if (bits == 224) {\n this.h0h = 0x8C3D37C8;\n this.h0l = 0x19544DA2;\n this.h1h = 0x73E19966;\n this.h1l = 0x89DCD4D6;\n this.h2h = 0x1DFAB7AE;\n this.h2l = 0x32FF9C82;\n this.h3h = 0x679DD514;\n this.h3l = 0x582F9FCF;\n this.h4h = 0x0F6D2B69;\n this.h4l = 0x7BD44DA8;\n this.h5h = 0x77E36F73;\n this.h5l = 0x04C48942;\n this.h6h = 0x3F9D85A8;\n this.h6l = 0x6A1D36C8;\n this.h7h = 0x1112E6AD;\n this.h7l = 0x91D692A1;\n } else { // 512\n this.h0h = 0x6A09E667;\n this.h0l = 0xF3BCC908;\n this.h1h = 0xBB67AE85;\n this.h1l = 0x84CAA73B;\n this.h2h = 0x3C6EF372;\n this.h2l = 0xFE94F82B;\n this.h3h = 0xA54FF53A;\n this.h3l = 0x5F1D36F1;\n this.h4h = 0x510E527F;\n this.h4l = 0xADE682D1;\n this.h5h = 0x9B05688C;\n this.h5l = 0x2B3E6C1F;\n this.h6h = 0x1F83D9AB;\n this.h6l = 0xFB41BD6B;\n this.h7h = 0x5BE0CD19;\n this.h7l = 0x137E2179;\n }\n this.bits = bits;\n\n this.block = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n }\n\n Sha512.prototype.update = function (message) {\n if (this.finalized) {\n throw new Error(FINALIZE_ERROR);\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var code, index = 0, i, length = message.length, blocks = this.blocks;\n\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = this.block;\n blocks[1] = blocks[2] = blocks[3] = blocks[4] =\n blocks[5] = blocks[6] = blocks[7] = blocks[8] =\n blocks[9] = blocks[10] = blocks[11] = blocks[12] =\n blocks[13] = blocks[14] = blocks[15] = blocks[16] =\n blocks[17] = blocks[18] = blocks[19] = blocks[20] =\n blocks[21] = blocks[22] = blocks[23] = blocks[24] =\n blocks[25] = blocks[26] = blocks[27] = blocks[28] =\n blocks[29] = blocks[30] = blocks[31] = blocks[32] = 0;\n }\n\n if(notString) {\n for (i = this.start; index < length && i < 128; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < 128; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 128) {\n this.block = blocks[32];\n this.start = i - 128;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n };\n\n Sha512.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex;\n blocks[32] = this.block;\n blocks[i >> 2] |= EXTRA[i & 3];\n this.block = blocks[32];\n if (i >= 112) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = this.block;\n blocks[1] = blocks[2] = blocks[3] = blocks[4] =\n blocks[5] = blocks[6] = blocks[7] = blocks[8] =\n blocks[9] = blocks[10] = blocks[11] = blocks[12] =\n blocks[13] = blocks[14] = blocks[15] = blocks[16] =\n blocks[17] = blocks[18] = blocks[19] = blocks[20] =\n blocks[21] = blocks[22] = blocks[23] = blocks[24] =\n blocks[25] = blocks[26] = blocks[27] = blocks[28] =\n blocks[29] = blocks[30] = blocks[31] = blocks[32] = 0;\n }\n blocks[30] = this.hBytes << 3 | this.bytes >>> 29;\n blocks[31] = this.bytes << 3;\n this.hash();\n };\n\n Sha512.prototype.hash = function () {\n var h0h = this.h0h, h0l = this.h0l, h1h = this.h1h, h1l = this.h1l,\n h2h = this.h2h, h2l = this.h2l, h3h = this.h3h, h3l = this.h3l,\n h4h = this.h4h, h4l = this.h4l, h5h = this.h5h, h5l = this.h5l,\n h6h = this.h6h, h6l = this.h6l, h7h = this.h7h, h7l = this.h7l,\n blocks = this.blocks, j, s0h, s0l, s1h, s1l, c1, c2, c3, c4,\n abh, abl, dah, dal, cdh, cdl, bch, bcl,\n majh, majl, t1h, t1l, t2h, t2l, chh, chl;\n\n for (j = 32; j < 160; j += 2) {\n t1h = blocks[j - 30];\n t1l = blocks[j - 29];\n s0h = ((t1h >>> 1) | (t1l << 31)) ^ ((t1h >>> 8) | (t1l << 24)) ^ (t1h >>> 7);\n s0l = ((t1l >>> 1) | (t1h << 31)) ^ ((t1l >>> 8) | (t1h << 24)) ^ ((t1l >>> 7) | t1h << 25);\n\n t1h = blocks[j - 4];\n t1l = blocks[j - 3];\n s1h = ((t1h >>> 19) | (t1l << 13)) ^ ((t1l >>> 29) | (t1h << 3)) ^ (t1h >>> 6);\n s1l = ((t1l >>> 19) | (t1h << 13)) ^ ((t1h >>> 29) | (t1l << 3)) ^ ((t1l >>> 6) | t1h << 26);\n\n t1h = blocks[j - 32];\n t1l = blocks[j - 31];\n t2h = blocks[j - 14];\n t2l = blocks[j - 13];\n\n c1 = (t2l & 0xFFFF) + (t1l & 0xFFFF) + (s0l & 0xFFFF) + (s1l & 0xFFFF);\n c2 = (t2l >>> 16) + (t1l >>> 16) + (s0l >>> 16) + (s1l >>> 16) + (c1 >>> 16);\n c3 = (t2h & 0xFFFF) + (t1h & 0xFFFF) + (s0h & 0xFFFF) + (s1h & 0xFFFF) + (c2 >>> 16);\n c4 = (t2h >>> 16) + (t1h >>> 16) + (s0h >>> 16) + (s1h >>> 16) + (c3 >>> 16);\n\n blocks[j] = (c4 << 16) | (c3 & 0xFFFF);\n blocks[j + 1] = (c2 << 16) | (c1 & 0xFFFF);\n }\n\n var ah = h0h, al = h0l, bh = h1h, bl = h1l, ch = h2h, cl = h2l, dh = h3h, dl = h3l, eh = h4h, el = h4l, fh = h5h, fl = h5l, gh = h6h, gl = h6l, hh = h7h, hl = h7l;\n bch = bh & ch;\n bcl = bl & cl;\n for (j = 0; j < 160; j += 8) {\n s0h = ((ah >>> 28) | (al << 4)) ^ ((al >>> 2) | (ah << 30)) ^ ((al >>> 7) | (ah << 25));\n s0l = ((al >>> 28) | (ah << 4)) ^ ((ah >>> 2) | (al << 30)) ^ ((ah >>> 7) | (al << 25));\n\n s1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((el >>> 9) | (eh << 23));\n s1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((eh >>> 9) | (el << 23));\n\n abh = ah & bh;\n abl = al & bl;\n majh = abh ^ (ah & ch) ^ bch;\n majl = abl ^ (al & cl) ^ bcl;\n\n chh = (eh & fh) ^ (~eh & gh);\n chl = (el & fl) ^ (~el & gl);\n\n t1h = blocks[j];\n t1l = blocks[j + 1];\n t2h = K[j];\n t2l = K[j + 1];\n\n c1 = (t2l & 0xFFFF) + (t1l & 0xFFFF) + (chl & 0xFFFF) + (s1l & 0xFFFF) + (hl & 0xFFFF);\n c2 = (t2l >>> 16) + (t1l >>> 16) + (chl >>> 16) + (s1l >>> 16) + (hl >>> 16) + (c1 >>> 16);\n c3 = (t2h & 0xFFFF) + (t1h & 0xFFFF) + (chh & 0xFFFF) + (s1h & 0xFFFF) + (hh & 0xFFFF) + (c2 >>> 16);\n c4 = (t2h >>> 16) + (t1h >>> 16) + (chh >>> 16) + (s1h >>> 16) + (hh >>> 16) + (c3 >>> 16);\n\n t1h = (c4 << 16) | (c3 & 0xFFFF);\n t1l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (majl & 0xFFFF) + (s0l & 0xFFFF);\n c2 = (majl >>> 16) + (s0l >>> 16) + (c1 >>> 16);\n c3 = (majh & 0xFFFF) + (s0h & 0xFFFF) + (c2 >>> 16);\n c4 = (majh >>> 16) + (s0h >>> 16) + (c3 >>> 16);\n\n t2h = (c4 << 16) | (c3 & 0xFFFF);\n t2l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (dl & 0xFFFF) + (t1l & 0xFFFF);\n c2 = (dl >>> 16) + (t1l >>> 16) + (c1 >>> 16);\n c3 = (dh & 0xFFFF) + (t1h & 0xFFFF) + (c2 >>> 16);\n c4 = (dh >>> 16) + (t1h >>> 16) + (c3 >>> 16);\n\n hh = (c4 << 16) | (c3 & 0xFFFF);\n hl = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (t2l & 0xFFFF) + (t1l & 0xFFFF);\n c2 = (t2l >>> 16) + (t1l >>> 16) + (c1 >>> 16);\n c3 = (t2h & 0xFFFF) + (t1h & 0xFFFF) + (c2 >>> 16);\n c4 = (t2h >>> 16) + (t1h >>> 16) + (c3 >>> 16);\n\n dh = (c4 << 16) | (c3 & 0xFFFF);\n dl = (c2 << 16) | (c1 & 0xFFFF);\n\n s0h = ((dh >>> 28) | (dl << 4)) ^ ((dl >>> 2) | (dh << 30)) ^ ((dl >>> 7) | (dh << 25));\n s0l = ((dl >>> 28) | (dh << 4)) ^ ((dh >>> 2) | (dl << 30)) ^ ((dh >>> 7) | (dl << 25));\n\n s1h = ((hh >>> 14) | (hl << 18)) ^ ((hh >>> 18) | (hl << 14)) ^ ((hl >>> 9) | (hh << 23));\n s1l = ((hl >>> 14) | (hh << 18)) ^ ((hl >>> 18) | (hh << 14)) ^ ((hh >>> 9) | (hl << 23));\n\n dah = dh & ah;\n dal = dl & al;\n majh = dah ^ (dh & bh) ^ abh;\n majl = dal ^ (dl & bl) ^ abl;\n\n chh = (hh & eh) ^ (~hh & fh);\n chl = (hl & el) ^ (~hl & fl);\n\n t1h = blocks[j + 2];\n t1l = blocks[j + 3];\n t2h = K[j + 2];\n t2l = K[j + 3];\n\n c1 = (t2l & 0xFFFF) + (t1l & 0xFFFF) + (chl & 0xFFFF) + (s1l & 0xFFFF) + (gl & 0xFFFF);\n c2 = (t2l >>> 16) + (t1l >>> 16) + (chl >>> 16) + (s1l >>> 16) + (gl >>> 16) + (c1 >>> 16);\n c3 = (t2h & 0xFFFF) + (t1h & 0xFFFF) + (chh & 0xFFFF) + (s1h & 0xFFFF) + (gh & 0xFFFF) + (c2 >>> 16);\n c4 = (t2h >>> 16) + (t1h >>> 16) + (chh >>> 16) + (s1h >>> 16) + (gh >>> 16) + (c3 >>> 16);\n\n t1h = (c4 << 16) | (c3 & 0xFFFF);\n t1l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (majl & 0xFFFF) + (s0l & 0xFFFF);\n c2 = (majl >>> 16) + (s0l >>> 16) + (c1 >>> 16);\n c3 = (majh & 0xFFFF) + (s0h & 0xFFFF) + (c2 >>> 16);\n c4 = (majh >>> 16) + (s0h >>> 16) + (c3 >>> 16);\n\n t2h = (c4 << 16) | (c3 & 0xFFFF);\n t2l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (cl & 0xFFFF) + (t1l & 0xFFFF);\n c2 = (cl >>> 16) + (t1l >>> 16) + (c1 >>> 16);\n c3 = (ch & 0xFFFF) + (t1h & 0xFFFF) + (c2 >>> 16);\n c4 = (ch >>> 16) + (t1h >>> 16) + (c3 >>> 16);\n\n gh = (c4 << 16) | (c3 & 0xFFFF);\n gl = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (t2l & 0xFFFF) + (t1l & 0xFFFF);\n c2 = (t2l >>> 16) + (t1l >>> 16) + (c1 >>> 16);\n c3 = (t2h & 0xFFFF) + (t1h & 0xFFFF) + (c2 >>> 16);\n c4 = (t2h >>> 16) + (t1h >>> 16) + (c3 >>> 16);\n\n ch = (c4 << 16) | (c3 & 0xFFFF);\n cl = (c2 << 16) | (c1 & 0xFFFF);\n\n s0h = ((ch >>> 28) | (cl << 4)) ^ ((cl >>> 2) | (ch << 30)) ^ ((cl >>> 7) | (ch << 25));\n s0l = ((cl >>> 28) | (ch << 4)) ^ ((ch >>> 2) | (cl << 30)) ^ ((ch >>> 7) | (cl << 25));\n\n s1h = ((gh >>> 14) | (gl << 18)) ^ ((gh >>> 18) | (gl << 14)) ^ ((gl >>> 9) | (gh << 23));\n s1l = ((gl >>> 14) | (gh << 18)) ^ ((gl >>> 18) | (gh << 14)) ^ ((gh >>> 9) | (gl << 23));\n\n cdh = ch & dh;\n cdl = cl & dl;\n majh = cdh ^ (ch & ah) ^ dah;\n majl = cdl ^ (cl & al) ^ dal;\n\n chh = (gh & hh) ^ (~gh & eh);\n chl = (gl & hl) ^ (~gl & el);\n\n t1h = blocks[j + 4];\n t1l = blocks[j + 5];\n t2h = K[j + 4];\n t2l = K[j + 5];\n\n c1 = (t2l & 0xFFFF) + (t1l & 0xFFFF) + (chl & 0xFFFF) + (s1l & 0xFFFF) + (fl & 0xFFFF);\n c2 = (t2l >>> 16) + (t1l >>> 16) + (chl >>> 16) + (s1l >>> 16) + (fl >>> 16) + (c1 >>> 16);\n c3 = (t2h & 0xFFFF) + (t1h & 0xFFFF) + (chh & 0xFFFF) + (s1h & 0xFFFF) + (fh & 0xFFFF) + (c2 >>> 16);\n c4 = (t2h >>> 16) + (t1h >>> 16) + (chh >>> 16) + (s1h >>> 16) + (fh >>> 16) + (c3 >>> 16);\n\n t1h = (c4 << 16) | (c3 & 0xFFFF);\n t1l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (majl & 0xFFFF) + (s0l & 0xFFFF);\n c2 = (majl >>> 16) + (s0l >>> 16) + (c1 >>> 16);\n c3 = (majh & 0xFFFF) + (s0h & 0xFFFF) + (c2 >>> 16);\n c4 = (majh >>> 16) + (s0h >>> 16) + (c3 >>> 16);\n\n t2h = (c4 << 16) | (c3 & 0xFFFF);\n t2l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (bl & 0xFFFF) + (t1l & 0xFFFF);\n c2 = (bl >>> 16) + (t1l >>> 16) + (c1 >>> 16);\n c3 = (bh & 0xFFFF) + (t1h & 0xFFFF) + (c2 >>> 16);\n c4 = (bh >>> 16) + (t1h >>> 16) + (c3 >>> 16);\n\n fh = (c4 << 16) | (c3 & 0xFFFF);\n fl = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (t2l & 0xFFFF) + (t1l & 0xFFFF);\n c2 = (t2l >>> 16) + (t1l >>> 16) + (c1 >>> 16);\n c3 = (t2h & 0xFFFF) + (t1h & 0xFFFF) + (c2 >>> 16);\n c4 = (t2h >>> 16) + (t1h >>> 16) + (c3 >>> 16);\n\n bh = (c4 << 16) | (c3 & 0xFFFF);\n bl = (c2 << 16) | (c1 & 0xFFFF);\n\n s0h = ((bh >>> 28) | (bl << 4)) ^ ((bl >>> 2) | (bh << 30)) ^ ((bl >>> 7) | (bh << 25));\n s0l = ((bl >>> 28) | (bh << 4)) ^ ((bh >>> 2) | (bl << 30)) ^ ((bh >>> 7) | (bl << 25));\n\n s1h = ((fh >>> 14) | (fl << 18)) ^ ((fh >>> 18) | (fl << 14)) ^ ((fl >>> 9) | (fh << 23));\n s1l = ((fl >>> 14) | (fh << 18)) ^ ((fl >>> 18) | (fh << 14)) ^ ((fh >>> 9) | (fl << 23));\n\n bch = bh & ch;\n bcl = bl & cl;\n majh = bch ^ (bh & dh) ^ cdh;\n majl = bcl ^ (bl & dl) ^ cdl;\n\n chh = (fh & gh) ^ (~fh & hh);\n chl = (fl & gl) ^ (~fl & hl);\n\n t1h = blocks[j + 6];\n t1l = blocks[j + 7];\n t2h = K[j + 6];\n t2l = K[j + 7];\n\n c1 = (t2l & 0xFFFF) + (t1l & 0xFFFF) + (chl & 0xFFFF) + (s1l & 0xFFFF) + (el & 0xFFFF);\n c2 = (t2l >>> 16) + (t1l >>> 16) + (chl >>> 16) + (s1l >>> 16) + (el >>> 16) + (c1 >>> 16);\n c3 = (t2h & 0xFFFF) + (t1h & 0xFFFF) + (chh & 0xFFFF) + (s1h & 0xFFFF) + (eh & 0xFFFF) + (c2 >>> 16);\n c4 = (t2h >>> 16) + (t1h >>> 16) + (chh >>> 16) + (s1h >>> 16) + (eh >>> 16) + (c3 >>> 16);\n\n t1h = (c4 << 16) | (c3 & 0xFFFF);\n t1l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (majl & 0xFFFF) + (s0l & 0xFFFF);\n c2 = (majl >>> 16) + (s0l >>> 16) + (c1 >>> 16);\n c3 = (majh & 0xFFFF) + (s0h & 0xFFFF) + (c2 >>> 16);\n c4 = (majh >>> 16) + (s0h >>> 16) + (c3 >>> 16);\n\n t2h = (c4 << 16) | (c3 & 0xFFFF);\n t2l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (al & 0xFFFF) + (t1l & 0xFFFF);\n c2 = (al >>> 16) + (t1l >>> 16) + (c1 >>> 16);\n c3 = (ah & 0xFFFF) + (t1h & 0xFFFF) + (c2 >>> 16);\n c4 = (ah >>> 16) + (t1h >>> 16) + (c3 >>> 16);\n\n eh = (c4 << 16) | (c3 & 0xFFFF);\n el = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (t2l & 0xFFFF) + (t1l & 0xFFFF);\n c2 = (t2l >>> 16) + (t1l >>> 16) + (c1 >>> 16);\n c3 = (t2h & 0xFFFF) + (t1h & 0xFFFF) + (c2 >>> 16);\n c4 = (t2h >>> 16) + (t1h >>> 16) + (c3 >>> 16);\n\n ah = (c4 << 16) | (c3 & 0xFFFF);\n al = (c2 << 16) | (c1 & 0xFFFF);\n }\n\n c1 = (h0l & 0xFFFF) + (al & 0xFFFF);\n c2 = (h0l >>> 16) + (al >>> 16) + (c1 >>> 16);\n c3 = (h0h & 0xFFFF) + (ah & 0xFFFF) + (c2 >>> 16);\n c4 = (h0h >>> 16) + (ah >>> 16) + (c3 >>> 16);\n\n this.h0h = (c4 << 16) | (c3 & 0xFFFF);\n this.h0l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (h1l & 0xFFFF) + (bl & 0xFFFF);\n c2 = (h1l >>> 16) + (bl >>> 16) + (c1 >>> 16);\n c3 = (h1h & 0xFFFF) + (bh & 0xFFFF) + (c2 >>> 16);\n c4 = (h1h >>> 16) + (bh >>> 16) + (c3 >>> 16);\n\n this.h1h = (c4 << 16) | (c3 & 0xFFFF);\n this.h1l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (h2l & 0xFFFF) + (cl & 0xFFFF);\n c2 = (h2l >>> 16) + (cl >>> 16) + (c1 >>> 16);\n c3 = (h2h & 0xFFFF) + (ch & 0xFFFF) + (c2 >>> 16);\n c4 = (h2h >>> 16) + (ch >>> 16) + (c3 >>> 16);\n\n this.h2h = (c4 << 16) | (c3 & 0xFFFF);\n this.h2l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (h3l & 0xFFFF) + (dl & 0xFFFF);\n c2 = (h3l >>> 16) + (dl >>> 16) + (c1 >>> 16);\n c3 = (h3h & 0xFFFF) + (dh & 0xFFFF) + (c2 >>> 16);\n c4 = (h3h >>> 16) + (dh >>> 16) + (c3 >>> 16);\n\n this.h3h = (c4 << 16) | (c3 & 0xFFFF);\n this.h3l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (h4l & 0xFFFF) + (el & 0xFFFF);\n c2 = (h4l >>> 16) + (el >>> 16) + (c1 >>> 16);\n c3 = (h4h & 0xFFFF) + (eh & 0xFFFF) + (c2 >>> 16);\n c4 = (h4h >>> 16) + (eh >>> 16) + (c3 >>> 16);\n\n this.h4h = (c4 << 16) | (c3 & 0xFFFF);\n this.h4l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (h5l & 0xFFFF) + (fl & 0xFFFF);\n c2 = (h5l >>> 16) + (fl >>> 16) + (c1 >>> 16);\n c3 = (h5h & 0xFFFF) + (fh & 0xFFFF) + (c2 >>> 16);\n c4 = (h5h >>> 16) + (fh >>> 16) + (c3 >>> 16);\n\n this.h5h = (c4 << 16) | (c3 & 0xFFFF);\n this.h5l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (h6l & 0xFFFF) + (gl & 0xFFFF);\n c2 = (h6l >>> 16) + (gl >>> 16) + (c1 >>> 16);\n c3 = (h6h & 0xFFFF) + (gh & 0xFFFF) + (c2 >>> 16);\n c4 = (h6h >>> 16) + (gh >>> 16) + (c3 >>> 16);\n\n this.h6h = (c4 << 16) | (c3 & 0xFFFF);\n this.h6l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (h7l & 0xFFFF) + (hl & 0xFFFF);\n c2 = (h7l >>> 16) + (hl >>> 16) + (c1 >>> 16);\n c3 = (h7h & 0xFFFF) + (hh & 0xFFFF) + (c2 >>> 16);\n c4 = (h7h >>> 16) + (hh >>> 16) + (c3 >>> 16);\n\n this.h7h = (c4 << 16) | (c3 & 0xFFFF);\n this.h7l = (c2 << 16) | (c1 & 0xFFFF);\n };\n\n Sha512.prototype.hex = function () {\n this.finalize();\n\n var h0h = this.h0h, h0l = this.h0l, h1h = this.h1h, h1l = this.h1l,\n h2h = this.h2h, h2l = this.h2l, h3h = this.h3h, h3l = this.h3l,\n h4h = this.h4h, h4l = this.h4l, h5h = this.h5h, h5l = this.h5l,\n h6h = this.h6h, h6l = this.h6l, h7h = this.h7h, h7l = this.h7l,\n bits = this.bits;\n\n var hex = HEX_CHARS[(h0h >> 28) & 0x0F] + HEX_CHARS[(h0h >> 24) & 0x0F] +\n HEX_CHARS[(h0h >> 20) & 0x0F] + HEX_CHARS[(h0h >> 16) & 0x0F] +\n HEX_CHARS[(h0h >> 12) & 0x0F] + HEX_CHARS[(h0h >> 8) & 0x0F] +\n HEX_CHARS[(h0h >> 4) & 0x0F] + HEX_CHARS[h0h & 0x0F] +\n HEX_CHARS[(h0l >> 28) & 0x0F] + HEX_CHARS[(h0l >> 24) & 0x0F] +\n HEX_CHARS[(h0l >> 20) & 0x0F] + HEX_CHARS[(h0l >> 16) & 0x0F] +\n HEX_CHARS[(h0l >> 12) & 0x0F] + HEX_CHARS[(h0l >> 8) & 0x0F] +\n HEX_CHARS[(h0l >> 4) & 0x0F] + HEX_CHARS[h0l & 0x0F] +\n HEX_CHARS[(h1h >> 28) & 0x0F] + HEX_CHARS[(h1h >> 24) & 0x0F] +\n HEX_CHARS[(h1h >> 20) & 0x0F] + HEX_CHARS[(h1h >> 16) & 0x0F] +\n HEX_CHARS[(h1h >> 12) & 0x0F] + HEX_CHARS[(h1h >> 8) & 0x0F] +\n HEX_CHARS[(h1h >> 4) & 0x0F] + HEX_CHARS[h1h & 0x0F] +\n HEX_CHARS[(h1l >> 28) & 0x0F] + HEX_CHARS[(h1l >> 24) & 0x0F] +\n HEX_CHARS[(h1l >> 20) & 0x0F] + HEX_CHARS[(h1l >> 16) & 0x0F] +\n HEX_CHARS[(h1l >> 12) & 0x0F] + HEX_CHARS[(h1l >> 8) & 0x0F] +\n HEX_CHARS[(h1l >> 4) & 0x0F] + HEX_CHARS[h1l & 0x0F] +\n HEX_CHARS[(h2h >> 28) & 0x0F] + HEX_CHARS[(h2h >> 24) & 0x0F] +\n HEX_CHARS[(h2h >> 20) & 0x0F] + HEX_CHARS[(h2h >> 16) & 0x0F] +\n HEX_CHARS[(h2h >> 12) & 0x0F] + HEX_CHARS[(h2h >> 8) & 0x0F] +\n HEX_CHARS[(h2h >> 4) & 0x0F] + HEX_CHARS[h2h & 0x0F] +\n HEX_CHARS[(h2l >> 28) & 0x0F] + HEX_CHARS[(h2l >> 24) & 0x0F] +\n HEX_CHARS[(h2l >> 20) & 0x0F] + HEX_CHARS[(h2l >> 16) & 0x0F] +\n HEX_CHARS[(h2l >> 12) & 0x0F] + HEX_CHARS[(h2l >> 8) & 0x0F] +\n HEX_CHARS[(h2l >> 4) & 0x0F] + HEX_CHARS[h2l & 0x0F] +\n HEX_CHARS[(h3h >> 28) & 0x0F] + HEX_CHARS[(h3h >> 24) & 0x0F] +\n HEX_CHARS[(h3h >> 20) & 0x0F] + HEX_CHARS[(h3h >> 16) & 0x0F] +\n HEX_CHARS[(h3h >> 12) & 0x0F] + HEX_CHARS[(h3h >> 8) & 0x0F] +\n HEX_CHARS[(h3h >> 4) & 0x0F] + HEX_CHARS[h3h & 0x0F];\n if (bits >= 256) {\n hex += HEX_CHARS[(h3l >> 28) & 0x0F] + HEX_CHARS[(h3l >> 24) & 0x0F] +\n HEX_CHARS[(h3l >> 20) & 0x0F] + HEX_CHARS[(h3l >> 16) & 0x0F] +\n HEX_CHARS[(h3l >> 12) & 0x0F] + HEX_CHARS[(h3l >> 8) & 0x0F] +\n HEX_CHARS[(h3l >> 4) & 0x0F] + HEX_CHARS[h3l & 0x0F];\n }\n if (bits >= 384) {\n hex += HEX_CHARS[(h4h >> 28) & 0x0F] + HEX_CHARS[(h4h >> 24) & 0x0F] +\n HEX_CHARS[(h4h >> 20) & 0x0F] + HEX_CHARS[(h4h >> 16) & 0x0F] +\n HEX_CHARS[(h4h >> 12) & 0x0F] + HEX_CHARS[(h4h >> 8) & 0x0F] +\n HEX_CHARS[(h4h >> 4) & 0x0F] + HEX_CHARS[h4h & 0x0F] +\n HEX_CHARS[(h4l >> 28) & 0x0F] + HEX_CHARS[(h4l >> 24) & 0x0F] +\n HEX_CHARS[(h4l >> 20) & 0x0F] + HEX_CHARS[(h4l >> 16) & 0x0F] +\n HEX_CHARS[(h4l >> 12) & 0x0F] + HEX_CHARS[(h4l >> 8) & 0x0F] +\n HEX_CHARS[(h4l >> 4) & 0x0F] + HEX_CHARS[h4l & 0x0F] +\n HEX_CHARS[(h5h >> 28) & 0x0F] + HEX_CHARS[(h5h >> 24) & 0x0F] +\n HEX_CHARS[(h5h >> 20) & 0x0F] + HEX_CHARS[(h5h >> 16) & 0x0F] +\n HEX_CHARS[(h5h >> 12) & 0x0F] + HEX_CHARS[(h5h >> 8) & 0x0F] +\n HEX_CHARS[(h5h >> 4) & 0x0F] + HEX_CHARS[h5h & 0x0F] +\n HEX_CHARS[(h5l >> 28) & 0x0F] + HEX_CHARS[(h5l >> 24) & 0x0F] +\n HEX_CHARS[(h5l >> 20) & 0x0F] + HEX_CHARS[(h5l >> 16) & 0x0F] +\n HEX_CHARS[(h5l >> 12) & 0x0F] + HEX_CHARS[(h5l >> 8) & 0x0F] +\n HEX_CHARS[(h5l >> 4) & 0x0F] + HEX_CHARS[h5l & 0x0F];\n }\n if (bits == 512) {\n hex += HEX_CHARS[(h6h >> 28) & 0x0F] + HEX_CHARS[(h6h >> 24) & 0x0F] +\n HEX_CHARS[(h6h >> 20) & 0x0F] + HEX_CHARS[(h6h >> 16) & 0x0F] +\n HEX_CHARS[(h6h >> 12) & 0x0F] + HEX_CHARS[(h6h >> 8) & 0x0F] +\n HEX_CHARS[(h6h >> 4) & 0x0F] + HEX_CHARS[h6h & 0x0F] +\n HEX_CHARS[(h6l >> 28) & 0x0F] + HEX_CHARS[(h6l >> 24) & 0x0F] +\n HEX_CHARS[(h6l >> 20) & 0x0F] + HEX_CHARS[(h6l >> 16) & 0x0F] +\n HEX_CHARS[(h6l >> 12) & 0x0F] + HEX_CHARS[(h6l >> 8) & 0x0F] +\n HEX_CHARS[(h6l >> 4) & 0x0F] + HEX_CHARS[h6l & 0x0F] +\n HEX_CHARS[(h7h >> 28) & 0x0F] + HEX_CHARS[(h7h >> 24) & 0x0F] +\n HEX_CHARS[(h7h >> 20) & 0x0F] + HEX_CHARS[(h7h >> 16) & 0x0F] +\n HEX_CHARS[(h7h >> 12) & 0x0F] + HEX_CHARS[(h7h >> 8) & 0x0F] +\n HEX_CHARS[(h7h >> 4) & 0x0F] + HEX_CHARS[h7h & 0x0F] +\n HEX_CHARS[(h7l >> 28) & 0x0F] + HEX_CHARS[(h7l >> 24) & 0x0F] +\n HEX_CHARS[(h7l >> 20) & 0x0F] + HEX_CHARS[(h7l >> 16) & 0x0F] +\n HEX_CHARS[(h7l >> 12) & 0x0F] + HEX_CHARS[(h7l >> 8) & 0x0F] +\n HEX_CHARS[(h7l >> 4) & 0x0F] + HEX_CHARS[h7l & 0x0F];\n }\n return hex;\n };\n\n Sha512.prototype.toString = Sha512.prototype.hex;\n\n Sha512.prototype.digest = function () {\n this.finalize();\n\n var h0h = this.h0h, h0l = this.h0l, h1h = this.h1h, h1l = this.h1l,\n h2h = this.h2h, h2l = this.h2l, h3h = this.h3h, h3l = this.h3l,\n h4h = this.h4h, h4l = this.h4l, h5h = this.h5h, h5l = this.h5l,\n h6h = this.h6h, h6l = this.h6l, h7h = this.h7h, h7l = this.h7l,\n bits = this.bits;\n\n var arr = [\n (h0h >> 24) & 0xFF, (h0h >> 16) & 0xFF, (h0h >> 8) & 0xFF, h0h & 0xFF,\n (h0l >> 24) & 0xFF, (h0l >> 16) & 0xFF, (h0l >> 8) & 0xFF, h0l & 0xFF,\n (h1h >> 24) & 0xFF, (h1h >> 16) & 0xFF, (h1h >> 8) & 0xFF, h1h & 0xFF,\n (h1l >> 24) & 0xFF, (h1l >> 16) & 0xFF, (h1l >> 8) & 0xFF, h1l & 0xFF,\n (h2h >> 24) & 0xFF, (h2h >> 16) & 0xFF, (h2h >> 8) & 0xFF, h2h & 0xFF,\n (h2l >> 24) & 0xFF, (h2l >> 16) & 0xFF, (h2l >> 8) & 0xFF, h2l & 0xFF,\n (h3h >> 24) & 0xFF, (h3h >> 16) & 0xFF, (h3h >> 8) & 0xFF, h3h & 0xFF\n ];\n\n if (bits >= 256) {\n arr.push((h3l >> 24) & 0xFF, (h3l >> 16) & 0xFF, (h3l >> 8) & 0xFF, h3l & 0xFF);\n }\n if (bits >= 384) {\n arr.push(\n (h4h >> 24) & 0xFF, (h4h >> 16) & 0xFF, (h4h >> 8) & 0xFF, h4h & 0xFF,\n (h4l >> 24) & 0xFF, (h4l >> 16) & 0xFF, (h4l >> 8) & 0xFF, h4l & 0xFF,\n (h5h >> 24) & 0xFF, (h5h >> 16) & 0xFF, (h5h >> 8) & 0xFF, h5h & 0xFF,\n (h5l >> 24) & 0xFF, (h5l >> 16) & 0xFF, (h5l >> 8) & 0xFF, h5l & 0xFF\n );\n }\n if (bits == 512) {\n arr.push(\n (h6h >> 24) & 0xFF, (h6h >> 16) & 0xFF, (h6h >> 8) & 0xFF, h6h & 0xFF,\n (h6l >> 24) & 0xFF, (h6l >> 16) & 0xFF, (h6l >> 8) & 0xFF, h6l & 0xFF,\n (h7h >> 24) & 0xFF, (h7h >> 16) & 0xFF, (h7h >> 8) & 0xFF, h7h & 0xFF,\n (h7l >> 24) & 0xFF, (h7l >> 16) & 0xFF, (h7l >> 8) & 0xFF, h7l & 0xFF\n );\n }\n return arr;\n };\n\n Sha512.prototype.array = Sha512.prototype.digest;\n\n Sha512.prototype.arrayBuffer = function () {\n this.finalize();\n\n var bits = this.bits;\n var buffer = new ArrayBuffer(bits / 8);\n var dataView = new DataView(buffer);\n dataView.setUint32(0, this.h0h);\n dataView.setUint32(4, this.h0l);\n dataView.setUint32(8, this.h1h);\n dataView.setUint32(12, this.h1l);\n dataView.setUint32(16, this.h2h);\n dataView.setUint32(20, this.h2l);\n dataView.setUint32(24, this.h3h);\n\n if (bits >= 256) {\n dataView.setUint32(28, this.h3l);\n }\n if (bits >= 384) {\n dataView.setUint32(32, this.h4h);\n dataView.setUint32(36, this.h4l);\n dataView.setUint32(40, this.h5h);\n dataView.setUint32(44, this.h5l);\n }\n if (bits == 512) {\n dataView.setUint32(48, this.h6h);\n dataView.setUint32(52, this.h6l);\n dataView.setUint32(56, this.h7h);\n dataView.setUint32(60, this.h7l);\n }\n return buffer;\n };\n\n Sha512.prototype.clone = function () {\n var hash = new Sha512(this.bits, false);\n this.copyTo(hash);\n return hash;\n };\n\n Sha512.prototype.copyTo = function (hash) {\n var i = 0, attrs = [\n 'h0h', 'h0l', 'h1h', 'h1l', 'h2h', 'h2l', 'h3h', 'h3l', 'h4h', 'h4l', 'h5h', 'h5l', 'h6h', 'h6l', 'h7h', 'h7l',\n 'start', 'bytes', 'hBytes', 'finalized', 'hashed', 'lastByteIndex'\n ];\n for (i = 0; i < attrs.length; ++i) {\n hash[attrs[i]] = this[attrs[i]];\n }\n for (i = 0; i < this.blocks.length; ++i) {\n hash.blocks[i] = this.blocks[i];\n }\n };\n\n function HmacSha512(key, bits, sharedMemory) {\n var notString, type = typeof key;\n if (type !== 'string') {\n if (type === 'object') {\n if (key === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && key.constructor === ArrayBuffer) {\n key = new Uint8Array(key);\n } else if (!Array.isArray(key)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(key)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var length = key.length;\n if (!notString) {\n var bytes = [], length = key.length, index = 0, code;\n for (var i = 0; i < length; ++i) {\n code = key.charCodeAt(i);\n if (code < 0x80) {\n bytes[index++] = code;\n } else if (code < 0x800) {\n bytes[index++] = (0xc0 | (code >> 6));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes[index++] = (0xe0 | (code >> 12));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (key.charCodeAt(++i) & 0x3ff));\n bytes[index++] = (0xf0 | (code >> 18));\n bytes[index++] = (0x80 | ((code >> 12) & 0x3f));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n }\n }\n key = bytes;\n }\n\n if (key.length > 128) {\n key = (new Sha512(bits, true)).update(key).array();\n }\n\n var oKeyPad = [], iKeyPad = [];\n for (var i = 0; i < 128; ++i) {\n var b = key[i] || 0;\n oKeyPad[i] = 0x5c ^ b;\n iKeyPad[i] = 0x36 ^ b;\n }\n\n Sha512.call(this, bits, sharedMemory);\n\n this.update(iKeyPad);\n this.oKeyPad = oKeyPad;\n this.inner = true;\n this.sharedMemory = sharedMemory;\n }\n HmacSha512.prototype = new Sha512();\n\n HmacSha512.prototype.finalize = function () {\n Sha512.prototype.finalize.call(this);\n if (this.inner) {\n this.inner = false;\n var innerHash = this.array();\n Sha512.call(this, this.bits, this.sharedMemory);\n this.update(this.oKeyPad);\n this.update(innerHash);\n Sha512.prototype.finalize.call(this);\n }\n };\n\n HmacSha512.prototype.clone = function () {\n var hash = new HmacSha512([], this.bits, false);\n this.copyTo(hash);\n hash.inner = this.inner;\n for (var i = 0; i < this.oKeyPad.length; ++i) {\n hash.oKeyPad[i] = this.oKeyPad[i];\n }\n return hash;\n };\n\n var exports = createMethod(512);\n exports.sha512 = exports;\n exports.sha384 = createMethod(384);\n exports.sha512_256 = createMethod(256);\n exports.sha512_224 = createMethod(224);\n exports.sha512.hmac = createHmacMethod(512);\n exports.sha384.hmac = createHmacMethod(384);\n exports.sha512_256.hmac = createHmacMethod(256);\n exports.sha512_224.hmac = createHmacMethod(224);\n\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n root.sha512 = exports.sha512;\n root.sha384 = exports.sha384;\n root.sha512_256 = exports.sha512_256;\n root.sha512_224 = exports.sha512_224;\n if (AMD) {\n define(function () {\n return exports;\n });\n }\n }\n})();\n","\"use strict\";\nexports.__esModule = true;\nexports.ILLEGAL_TRITS_LENGTH = 'Illegal trits length';\nexports.ILLEGAL_WORDS_LENGTH = 'Illegal words length';\n//# sourceMappingURL=errors.js.map","/*\r\n * The MIT License (MIT)\r\n *\r\n * Copyright (c) 2014 Patrick Gansterer \r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in all\r\n * copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n * SOFTWARE.\r\n */\r\n\r\n(function(global, undefined) { \"use strict\";\r\nvar POW_2_24 = Math.pow(2, -24),\r\n POW_2_32 = Math.pow(2, 32),\r\n POW_2_53 = Math.pow(2, 53);\r\n\r\nfunction encode(value) {\r\n var data = new ArrayBuffer(256);\r\n var dataView = new DataView(data);\r\n var lastLength;\r\n var offset = 0;\r\n\r\n function ensureSpace(length) {\r\n var newByteLength = data.byteLength;\r\n var requiredLength = offset + length;\r\n while (newByteLength < requiredLength)\r\n newByteLength *= 2;\r\n if (newByteLength !== data.byteLength) {\r\n var oldDataView = dataView;\r\n data = new ArrayBuffer(newByteLength);\r\n dataView = new DataView(data);\r\n var uint32count = (offset + 3) >> 2;\r\n for (var i = 0; i < uint32count; ++i)\r\n dataView.setUint32(i * 4, oldDataView.getUint32(i * 4));\r\n }\r\n\r\n lastLength = length;\r\n return dataView;\r\n }\r\n function write() {\r\n offset += lastLength;\r\n }\r\n function writeFloat64(value) {\r\n write(ensureSpace(8).setFloat64(offset, value));\r\n }\r\n function writeUint8(value) {\r\n write(ensureSpace(1).setUint8(offset, value));\r\n }\r\n function writeUint8Array(value) {\r\n var dataView = ensureSpace(value.length);\r\n for (var i = 0; i < value.length; ++i)\r\n dataView.setUint8(offset + i, value[i]);\r\n write();\r\n }\r\n function writeUint16(value) {\r\n write(ensureSpace(2).setUint16(offset, value));\r\n }\r\n function writeUint32(value) {\r\n write(ensureSpace(4).setUint32(offset, value));\r\n }\r\n function writeUint64(value) {\r\n var low = value % POW_2_32;\r\n var high = (value - low) / POW_2_32;\r\n var dataView = ensureSpace(8);\r\n dataView.setUint32(offset, high);\r\n dataView.setUint32(offset + 4, low);\r\n write();\r\n }\r\n function writeTypeAndLength(type, length) {\r\n if (length < 24) {\r\n writeUint8(type << 5 | length);\r\n } else if (length < 0x100) {\r\n writeUint8(type << 5 | 24);\r\n writeUint8(length);\r\n } else if (length < 0x10000) {\r\n writeUint8(type << 5 | 25);\r\n writeUint16(length);\r\n } else if (length < 0x100000000) {\r\n writeUint8(type << 5 | 26);\r\n writeUint32(length);\r\n } else {\r\n writeUint8(type << 5 | 27);\r\n writeUint64(length);\r\n }\r\n }\r\n \r\n function encodeItem(value) {\r\n var i;\r\n\r\n if (value === false)\r\n return writeUint8(0xf4);\r\n if (value === true)\r\n return writeUint8(0xf5);\r\n if (value === null)\r\n return writeUint8(0xf6);\r\n if (value === undefined)\r\n return writeUint8(0xf7);\r\n \r\n switch (typeof value) {\r\n case \"number\":\r\n if (Math.floor(value) === value) {\r\n if (0 <= value && value <= POW_2_53)\r\n return writeTypeAndLength(0, value);\r\n if (-POW_2_53 <= value && value < 0)\r\n return writeTypeAndLength(1, -(value + 1));\r\n }\r\n writeUint8(0xfb);\r\n return writeFloat64(value);\r\n\r\n case \"string\":\r\n var utf8data = [];\r\n for (i = 0; i < value.length; ++i) {\r\n var charCode = value.charCodeAt(i);\r\n if (charCode < 0x80) {\r\n utf8data.push(charCode);\r\n } else if (charCode < 0x800) {\r\n utf8data.push(0xc0 | charCode >> 6);\r\n utf8data.push(0x80 | charCode & 0x3f);\r\n } else if (charCode < 0xd800) {\r\n utf8data.push(0xe0 | charCode >> 12);\r\n utf8data.push(0x80 | (charCode >> 6) & 0x3f);\r\n utf8data.push(0x80 | charCode & 0x3f);\r\n } else {\r\n charCode = (charCode & 0x3ff) << 10;\r\n charCode |= value.charCodeAt(++i) & 0x3ff;\r\n charCode += 0x10000;\r\n\r\n utf8data.push(0xf0 | charCode >> 18);\r\n utf8data.push(0x80 | (charCode >> 12) & 0x3f);\r\n utf8data.push(0x80 | (charCode >> 6) & 0x3f);\r\n utf8data.push(0x80 | charCode & 0x3f);\r\n }\r\n }\r\n\r\n writeTypeAndLength(3, utf8data.length);\r\n return writeUint8Array(utf8data);\r\n\r\n default:\r\n var length;\r\n if (Array.isArray(value)) {\r\n length = value.length;\r\n writeTypeAndLength(4, length);\r\n for (i = 0; i < length; ++i)\r\n encodeItem(value[i]);\r\n } else if (value instanceof Uint8Array) {\r\n writeTypeAndLength(2, value.length);\r\n writeUint8Array(value);\r\n } else {\r\n var keys = Object.keys(value);\r\n length = keys.length;\r\n writeTypeAndLength(5, length);\r\n for (i = 0; i < length; ++i) {\r\n var key = keys[i];\r\n encodeItem(key);\r\n encodeItem(value[key]);\r\n }\r\n }\r\n }\r\n }\r\n \r\n encodeItem(value);\r\n\r\n if (\"slice\" in data)\r\n return data.slice(0, offset);\r\n \r\n var ret = new ArrayBuffer(offset);\r\n var retView = new DataView(ret);\r\n for (var i = 0; i < offset; ++i)\r\n retView.setUint8(i, dataView.getUint8(i));\r\n return ret;\r\n}\r\n\r\nfunction decode(data, tagger, simpleValue) {\r\n var dataView = new DataView(data);\r\n var offset = 0;\r\n \r\n if (typeof tagger !== \"function\")\r\n tagger = function(value) { return value; };\r\n if (typeof simpleValue !== \"function\")\r\n simpleValue = function() { return undefined; };\r\n\r\n function read(value, length) {\r\n offset += length;\r\n return value;\r\n }\r\n function readArrayBuffer(length) {\r\n return read(new Uint8Array(data, offset, length), length);\r\n }\r\n function readFloat16() {\r\n var tempArrayBuffer = new ArrayBuffer(4);\r\n var tempDataView = new DataView(tempArrayBuffer);\r\n var value = readUint16();\r\n\r\n var sign = value & 0x8000;\r\n var exponent = value & 0x7c00;\r\n var fraction = value & 0x03ff;\r\n \r\n if (exponent === 0x7c00)\r\n exponent = 0xff << 10;\r\n else if (exponent !== 0)\r\n exponent += (127 - 15) << 10;\r\n else if (fraction !== 0)\r\n return fraction * POW_2_24;\r\n \r\n tempDataView.setUint32(0, sign << 16 | exponent << 13 | fraction << 13);\r\n return tempDataView.getFloat32(0);\r\n }\r\n function readFloat32() {\r\n return read(dataView.getFloat32(offset), 4);\r\n }\r\n function readFloat64() {\r\n return read(dataView.getFloat64(offset), 8);\r\n }\r\n function readUint8() {\r\n return read(dataView.getUint8(offset), 1);\r\n }\r\n function readUint16() {\r\n return read(dataView.getUint16(offset), 2);\r\n }\r\n function readUint32() {\r\n return read(dataView.getUint32(offset), 4);\r\n }\r\n function readUint64() {\r\n return readUint32() * POW_2_32 + readUint32();\r\n }\r\n function readBreak() {\r\n if (dataView.getUint8(offset) !== 0xff)\r\n return false;\r\n offset += 1;\r\n return true;\r\n }\r\n function readLength(additionalInformation) {\r\n if (additionalInformation < 24)\r\n return additionalInformation;\r\n if (additionalInformation === 24)\r\n return readUint8();\r\n if (additionalInformation === 25)\r\n return readUint16();\r\n if (additionalInformation === 26)\r\n return readUint32();\r\n if (additionalInformation === 27)\r\n return readUint64();\r\n if (additionalInformation === 31)\r\n return -1;\r\n throw \"Invalid length encoding\";\r\n }\r\n function readIndefiniteStringLength(majorType) {\r\n var initialByte = readUint8();\r\n if (initialByte === 0xff)\r\n return -1;\r\n var length = readLength(initialByte & 0x1f);\r\n if (length < 0 || (initialByte >> 5) !== majorType)\r\n throw \"Invalid indefinite length element\";\r\n return length;\r\n }\r\n\r\n function appendUtf16data(utf16data, length) {\r\n for (var i = 0; i < length; ++i) {\r\n var value = readUint8();\r\n if (value & 0x80) {\r\n if (value < 0xe0) {\r\n value = (value & 0x1f) << 6\r\n | (readUint8() & 0x3f);\r\n length -= 1;\r\n } else if (value < 0xf0) {\r\n value = (value & 0x0f) << 12\r\n | (readUint8() & 0x3f) << 6\r\n | (readUint8() & 0x3f);\r\n length -= 2;\r\n } else {\r\n value = (value & 0x0f) << 18\r\n | (readUint8() & 0x3f) << 12\r\n | (readUint8() & 0x3f) << 6\r\n | (readUint8() & 0x3f);\r\n length -= 3;\r\n }\r\n }\r\n\r\n if (value < 0x10000) {\r\n utf16data.push(value);\r\n } else {\r\n value -= 0x10000;\r\n utf16data.push(0xd800 | (value >> 10));\r\n utf16data.push(0xdc00 | (value & 0x3ff));\r\n }\r\n }\r\n }\r\n\r\n function decodeItem() {\r\n var initialByte = readUint8();\r\n var majorType = initialByte >> 5;\r\n var additionalInformation = initialByte & 0x1f;\r\n var i;\r\n var length;\r\n\r\n if (majorType === 7) {\r\n switch (additionalInformation) {\r\n case 25:\r\n return readFloat16();\r\n case 26:\r\n return readFloat32();\r\n case 27:\r\n return readFloat64();\r\n }\r\n }\r\n\r\n length = readLength(additionalInformation);\r\n if (length < 0 && (majorType < 2 || 6 < majorType))\r\n throw \"Invalid length\";\r\n\r\n switch (majorType) {\r\n case 0:\r\n return length;\r\n case 1:\r\n return -1 - length;\r\n case 2:\r\n if (length < 0) {\r\n var elements = [];\r\n var fullArrayLength = 0;\r\n while ((length = readIndefiniteStringLength(majorType)) >= 0) {\r\n fullArrayLength += length;\r\n elements.push(readArrayBuffer(length));\r\n }\r\n var fullArray = new Uint8Array(fullArrayLength);\r\n var fullArrayOffset = 0;\r\n for (i = 0; i < elements.length; ++i) {\r\n fullArray.set(elements[i], fullArrayOffset);\r\n fullArrayOffset += elements[i].length;\r\n }\r\n return fullArray;\r\n }\r\n return readArrayBuffer(length);\r\n case 3:\r\n var utf16data = [];\r\n if (length < 0) {\r\n while ((length = readIndefiniteStringLength(majorType)) >= 0)\r\n appendUtf16data(utf16data, length);\r\n } else\r\n appendUtf16data(utf16data, length);\r\n return String.fromCharCode.apply(null, utf16data);\r\n case 4:\r\n var retArray;\r\n if (length < 0) {\r\n retArray = [];\r\n while (!readBreak())\r\n retArray.push(decodeItem());\r\n } else {\r\n retArray = new Array(length);\r\n for (i = 0; i < length; ++i)\r\n retArray[i] = decodeItem();\r\n }\r\n return retArray;\r\n case 5:\r\n var retObject = {};\r\n for (i = 0; i < length || length < 0 && !readBreak(); ++i) {\r\n var key = decodeItem();\r\n retObject[key] = decodeItem();\r\n }\r\n return retObject;\r\n case 6:\r\n return tagger(decodeItem(), length);\r\n case 7:\r\n switch (length) {\r\n case 20:\r\n return false;\r\n case 21:\r\n return true;\r\n case 22:\r\n return null;\r\n case 23:\r\n return undefined;\r\n default:\r\n return simpleValue(length);\r\n }\r\n }\r\n }\r\n\r\n var ret = decodeItem();\r\n if (offset !== data.byteLength)\r\n throw \"Remaining bytes\";\r\n return ret;\r\n}\r\n\r\nvar obj = { encode: encode, decode: decode };\r\n\r\nif (typeof define === \"function\" && define.amd)\r\n define(\"cbor/cbor\", obj);\r\nelse if (typeof module !== 'undefined' && module.exports)\r\n module.exports = obj;\r\nelse if (!global.CBOR)\r\n global.CBOR = obj;\r\n\r\n})(this);\r\n","\"use strict\";\nexports.__esModule = true;\nexports.INVALID_TRYTES = 'Invalid trytes';\nexports.INVALID_TRITS = 'Invalid trits';\nexports.INVALID_ODD_LENGTH = 'Invalid trytes length. Expected trytes of even length.';\nexports.INVALID_ASCII_CHARS = 'Invalid ascii charactes.';\n//# sourceMappingURL=errors.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.c32ToB58 = exports.b58ToC32 = exports.c32addressDecode = exports.c32address = exports.versions = void 0;\nvar checksum_1 = require(\"./checksum\");\nvar base58check = require(\"./base58check\");\nexports.versions = {\n mainnet: {\n p2pkh: 22,\n p2sh: 20 // 'M'\n },\n testnet: {\n p2pkh: 26,\n p2sh: 21 // 'N'\n }\n};\n// address conversion : bitcoin to stacks\nvar ADDR_BITCOIN_TO_STACKS = {};\nADDR_BITCOIN_TO_STACKS[0] = exports.versions.mainnet.p2pkh;\nADDR_BITCOIN_TO_STACKS[5] = exports.versions.mainnet.p2sh;\nADDR_BITCOIN_TO_STACKS[111] = exports.versions.testnet.p2pkh;\nADDR_BITCOIN_TO_STACKS[196] = exports.versions.testnet.p2sh;\n// address conversion : stacks to bitcoin \nvar ADDR_STACKS_TO_BITCOIN = {};\nADDR_STACKS_TO_BITCOIN[exports.versions.mainnet.p2pkh] = 0;\nADDR_STACKS_TO_BITCOIN[exports.versions.mainnet.p2sh] = 5;\nADDR_STACKS_TO_BITCOIN[exports.versions.testnet.p2pkh] = 111;\nADDR_STACKS_TO_BITCOIN[exports.versions.testnet.p2sh] = 196;\n/**\n * Make a c32check address with the given version and hash160\n * The only difference between a c32check string and c32 address\n * is that the letter 'S' is pre-pended.\n * @param {number} version - the address version number\n * @param {string} hash160hex - the hash160 to encode (must be a hash160)\n * @returns {string} the address\n */\nfunction c32address(version, hash160hex) {\n if (!hash160hex.match(/^[0-9a-fA-F]{40}$/)) {\n throw new Error('Invalid argument: not a hash160 hex string');\n }\n var c32string = checksum_1.c32checkEncode(version, hash160hex);\n return \"S\" + c32string;\n}\nexports.c32address = c32address;\n/**\n * Decode a c32 address into its version and hash160\n * @param {string} c32addr - the c32check-encoded address\n * @returns {[number, string]} a tuple with the version and hash160\n */\nfunction c32addressDecode(c32addr) {\n if (c32addr.length <= 5) {\n throw new Error('Invalid c32 address: invalid length');\n }\n if (c32addr[0] != 'S') {\n throw new Error('Invalid c32 address: must start with \"S\"');\n }\n return checksum_1.c32checkDecode(c32addr.slice(1));\n}\nexports.c32addressDecode = c32addressDecode;\n/*\n * Convert a base58check address to a c32check address.\n * Try to convert the version number if one is not given.\n * @param {string} b58check - the base58check encoded address\n * @param {number} version - the version number, if not inferred from the address\n * @returns {string} the c32 address with the given version number (or the\n * semantically-equivalent c32 version number, if not given)\n */\nfunction b58ToC32(b58check, version) {\n if (version === void 0) { version = -1; }\n var addrInfo = base58check.decode(b58check);\n var hash160String = addrInfo.data.toString('hex');\n var addrVersion = parseInt(addrInfo.prefix.toString('hex'), 16);\n var stacksVersion;\n if (version < 0) {\n stacksVersion = addrVersion;\n if (ADDR_BITCOIN_TO_STACKS[addrVersion] !== undefined) {\n stacksVersion = ADDR_BITCOIN_TO_STACKS[addrVersion];\n }\n }\n else {\n stacksVersion = version;\n }\n return c32address(stacksVersion, hash160String);\n}\nexports.b58ToC32 = b58ToC32;\n/*\n * Convert a c32check address to a base58check address.\n * @param {string} c32string - the c32check address\n * @param {number} version - the version number, if not inferred from the address\n * @returns {string} the base58 address with the given version number (or the\n * semantically-equivalent bitcoin version number, if not given)\n */\nfunction c32ToB58(c32string, version) {\n if (version === void 0) { version = -1; }\n var addrInfo = c32addressDecode(c32string);\n var stacksVersion = addrInfo[0];\n var hash160String = addrInfo[1];\n var bitcoinVersion;\n if (version < 0) {\n bitcoinVersion = stacksVersion;\n if (ADDR_STACKS_TO_BITCOIN[stacksVersion] !== undefined) {\n bitcoinVersion = ADDR_STACKS_TO_BITCOIN[stacksVersion];\n }\n }\n else {\n bitcoinVersion = version;\n }\n var prefix = bitcoinVersion.toString(16);\n if (prefix.length === 1) {\n prefix = \"0\" + prefix;\n }\n return base58check.encode(hash160String, prefix);\n}\nexports.c32ToB58 = c32ToB58;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/readable.js');\nStream.Writable = require('readable-stream/writable.js');\nStream.Duplex = require('readable-stream/duplex.js');\nStream.Transform = require('readable-stream/transform.js');\nStream.PassThrough = require('readable-stream/passthrough.js');\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","// Copyright (c) 2017 Pieter Wuille\r\n//\r\n// Permission is hereby granted, free of charge, to any person obtaining a copy\r\n// of this software and associated documentation files (the \"Software\"), to deal\r\n// in the Software without restriction, including without limitation the rights\r\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n// copies of the Software, and to permit persons to whom the Software is\r\n// furnished to do so, subject to the following conditions:\r\n//\r\n// The above copyright notice and this permission notice shall be included in\r\n// all copies or substantial portions of the Software.\r\n//\r\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n// THE SOFTWARE.\r\n\r\nvar bech32 = require('./bech32')\r\n\r\nfunction convertbits (data, frombits, tobits, pad) {\r\n var acc = 0\r\n var bits = 0\r\n var ret = []\r\n var maxv = (1 << tobits) - 1\r\n for (var p = 0; p < data.length; ++p) {\r\n var value = data[p]\r\n if (value < 0 || (value >> frombits) !== 0) {\r\n return null\r\n }\r\n acc = (acc << frombits) | value\r\n bits += frombits\r\n while (bits >= tobits) {\r\n bits -= tobits\r\n ret.push((acc >> bits) & maxv)\r\n }\r\n }\r\n if (pad) {\r\n if (bits > 0) {\r\n ret.push((acc << (tobits - bits)) & maxv)\r\n }\r\n } else if (bits >= frombits || ((acc << (tobits - bits)) & maxv)) {\r\n return null\r\n }\r\n return ret\r\n}\r\n\r\nfunction decode (hrp, addr) {\r\n var dec = bech32.decode(addr)\r\n if (dec === null || dec.hrp !== hrp || dec.data.length < 1 || dec.data[0] > 16) {\r\n return null\r\n }\r\n var res = convertbits(dec.data.slice(1), 5, 8, false)\r\n if (res === null || res.length < 2 || res.length > 40) {\r\n return null\r\n }\r\n if (dec.data[0] === 0 && res.length !== 20 && res.length !== 32) {\r\n return null\r\n }\r\n return { version: dec.data[0], program: res }\r\n}\r\n\r\nfunction encode (hrp, version, program) {\r\n var ret = bech32.encode(hrp, [version].concat(convertbits(program, 8, 5, true)))\r\n if (decode(hrp, ret) === null) {\r\n return null\r\n }\r\n return ret\r\n}\r\n\r\nfunction isValidAddress (address) {\r\n var hrp = 'bc'\r\n var ret = decode(hrp, address)\r\n\r\n if (ret === null) {\r\n hrp = 'tb'\r\n ret = decode(hrp, address)\r\n }\r\n\r\n if (ret === null) {\r\n return false\r\n }\r\n\r\n var recreate = encode(hrp, ret.version, ret.program)\r\n return recreate === address.toLowerCase()\r\n}\r\n\r\nmodule.exports = {\r\n encode: encode,\r\n decode: decode,\r\n isValidAddress: isValidAddress\r\n}\r\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","var regexp = new RegExp('^(bnb)([a-z0-9]{39})$') // bnb + 39 a-z0-9\r\n\r\nmodule.exports = {\r\n isValidAddress: function (address, currency, networkType) {\r\n let match = regexp.exec(address)\r\n return match !== null\r\n }\r\n}\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.c32decode = exports.c32normalize = exports.c32encode = exports.c32 = void 0;\nvar buffer_1 = require(\"buffer/\");\nexports.c32 = '0123456789ABCDEFGHJKMNPQRSTVWXYZ';\nvar hex = '0123456789abcdef';\n/**\n * Encode a hex string as a c32 string. Note that the hex string is assumed\n * to be big-endian (and the resulting c32 string will be as well).\n * @param {string} inputHex - the input to encode\n * @param {number} minLength - the minimum length of the c32 string\n * @returns {string} the c32check-encoded representation of the data, as a string\n */\nfunction c32encode(inputHex, minLength) {\n // must be hex\n if (!inputHex.match(/^[0-9a-fA-F]*$/)) {\n throw new Error('Not a hex-encoded string');\n }\n if ((inputHex.length) % 2 !== 0) {\n inputHex = \"0\" + inputHex;\n }\n inputHex = inputHex.toLowerCase();\n var res = [];\n var carry = 0;\n for (var i = inputHex.length - 1; i >= 0; i--) {\n if (carry < 4) {\n var currentCode = hex.indexOf(inputHex[i]) >> carry;\n var nextCode = 0;\n if (i !== 0) {\n nextCode = hex.indexOf(inputHex[i - 1]);\n }\n // carry = 0, nextBits is 1, carry = 1, nextBits is 2\n var nextBits = 1 + carry;\n var nextLowBits = (nextCode % (1 << nextBits)) << (5 - nextBits);\n var curC32Digit = exports.c32[currentCode + nextLowBits];\n carry = nextBits;\n res.unshift(curC32Digit);\n }\n else {\n carry = 0;\n }\n }\n var C32leadingZeros = 0;\n for (var i = 0; i < res.length; i++) {\n if (res[i] !== '0') {\n break;\n }\n else {\n C32leadingZeros++;\n }\n }\n res = res.slice(C32leadingZeros);\n var zeroPrefix = buffer_1.Buffer.from(inputHex, 'hex').toString().match(/^\\u0000*/);\n var numLeadingZeroBytesInHex = zeroPrefix ? zeroPrefix[0].length : 0;\n for (var i = 0; i < numLeadingZeroBytesInHex; i++) {\n res.unshift(exports.c32[0]);\n }\n if (minLength) {\n var count = minLength - res.length;\n for (var i = 0; i < count; i++) {\n res.unshift(exports.c32[0]);\n }\n }\n return res.join('');\n}\nexports.c32encode = c32encode;\n/*\n * Normalize a c32 string\n * @param {string} c32input - the c32-encoded input string\n * @returns {string} the canonical representation of the c32 input string\n */\nfunction c32normalize(c32input) {\n // must be upper-case\n // replace all O's with 0's\n // replace all I's and L's with 1's\n return c32input.toUpperCase()\n .replace(/O/g, '0')\n .replace(/L|I/g, '1');\n}\nexports.c32normalize = c32normalize;\n/*\n * Decode a c32 string back into a hex string. Note that the c32 input\n * string is assumed to be big-endian (and the resulting hex string will\n * be as well).\n * @param {string} c32input - the c32-encoded input to decode\n * @param {number} minLength - the minimum length of the output hex string (in bytes)\n * @returns {string} the hex-encoded representation of the data, as a string\n */\nfunction c32decode(c32input, minLength) {\n c32input = c32normalize(c32input);\n // must result in a c32 string\n if (!c32input.match(\"^[\" + exports.c32 + \"]*$\")) {\n throw new Error('Not a c32-encoded string');\n }\n var zeroPrefix = c32input.match(\"^\" + exports.c32[0] + \"*\");\n var numLeadingZeroBytes = zeroPrefix ? zeroPrefix[0].length : 0;\n var res = [];\n var carry = 0;\n var carryBits = 0;\n for (var i = c32input.length - 1; i >= 0; i--) {\n if (carryBits === 4) {\n res.unshift(hex[carry]);\n carryBits = 0;\n carry = 0;\n }\n var currentCode = exports.c32.indexOf(c32input[i]) << carryBits;\n var currentValue = currentCode + carry;\n var currentHexDigit = hex[currentValue % 16];\n carryBits += 1;\n carry = currentValue >> 4;\n if (carry > 1 << carryBits) {\n throw new Error('Panic error in decoding.');\n }\n res.unshift(currentHexDigit);\n }\n // one last carry\n res.unshift(hex[carry]);\n if (res.length % 2 === 1) {\n res.unshift('0');\n }\n var hexLeadingZeros = 0;\n for (var i = 0; i < res.length; i++) {\n if (res[i] !== '0') {\n break;\n }\n else {\n hexLeadingZeros++;\n }\n }\n res = res.slice(hexLeadingZeros - (hexLeadingZeros % 2));\n var hexStr = res.join('');\n for (var i = 0; i < numLeadingZeroBytes; i++) {\n hexStr = \"00\" + hexStr;\n }\n if (minLength) {\n var count = minLength * 2 - hexStr.length;\n for (var i = 0; i < count; i += 2) {\n hexStr = \"00\" + hexStr;\n }\n }\n return hexStr;\n}\nexports.c32decode = c32decode;\n","var utils = require('./crypto/utils')\r\n\r\nconst ALLOWED_CHARS = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'\r\n\r\nvar regexp = new RegExp('^(zil)1([' + ALLOWED_CHARS + ']+)$') // zil + bech32 separated by '1'\r\n\r\nmodule.exports = {\r\n isValidAddress: function (address, currency, networkType) {\r\n let match = regexp.exec(address)\r\n if (match !== null) {\r\n return this.verifyChecksum(address)\r\n } else {\r\n return false\r\n }\r\n },\r\n\r\n verifyChecksum: function (address) {\r\n var decoded = utils.bech32.decode(address)\r\n if (decoded !== null) {\r\n return decoded.data.length === 32\r\n } else {\r\n return false\r\n }\r\n }\r\n}\r\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","\"use strict\";\nexports.__esModule = true;\nvar _1 = require(\"./\");\nvar errors = require(\"./errors\");\n/**\n * This method converts ASCII characters to [trytes](https://docs.iota.org/docs/getting-started/0.1/introduction/ternary).\n *\n * ## Related methods\n *\n * To convert trytes to ASCII characters, use the [`trytesToAscii()`]{@link #module_converter.trytesToAscii} method.\n *\n * @method asciiToTrytes\n *\n * @summary Converts ASCII characters to trytes.\n *\n * @memberof module:converter\n *\n * @param {string} input - ASCII input\n *\n * @example\n * ```js\n * let trytes = Converter.asciiToTrytes('Hello, where is my coffee?');\n * ```\n *\n * @return {string} Trytes\n *\n * @throws {errors.INVALID_ASCII_CHARS}: Make sure that the `input` argument contains only valid ASCII characters.\n */\nexports.asciiToTrytes = function (input) {\n // If input is not an ascii string, throw error\n if (!/^[\\x00-\\x7F]*$/.test(input)) {\n throw new Error(errors.INVALID_ASCII_CHARS);\n }\n var trytes = '';\n for (var i = 0; i < input.length; i++) {\n var dec = input[i].charCodeAt(0);\n trytes += _1.TRYTE_ALPHABET[dec % 27];\n trytes += _1.TRYTE_ALPHABET[(dec - (dec % 27)) / 27];\n }\n return trytes;\n};\n/**\n * This method converts trytes to ASCII characters.\n *\n * Because each ASCII character is represented as 2 trytes, the given trytes must be of an even length.\n *\n * ## Related methods\n *\n * To convert ASCII characters to trytes, use the [`asciiToTrytes()`]{@link #module_converter.asciiToTrytes} method.\n *\n * @method trytesToAscii\n *\n * @summary Converts trytes to ASCII characters.\n *\n * @memberof module:converter\n *\n * @param {string} trytes - An even number of trytes\n *\n * @example\n * ```js\n * let message = Converter.trytesToAscii('IOTA');\n * ```\n *\n * @return {string} ASCII characters\n *\n * @throws {errors.INVALID_TRYTES}: Make sure that the `trytes` argument contains only valid trytes (A-Z or 9).\n * @throws {errors.INVALID_ODD_LENGTH}: Make sure that the `trytes` argument contains an even number of trytes.\n */\nexports.trytesToAscii = function (trytes) {\n if (typeof trytes !== 'string' || !new RegExp(\"^[9A-Z]{1,}$\").test(trytes)) {\n throw new Error(errors.INVALID_TRYTES);\n }\n if (trytes.length % 2) {\n throw new Error(errors.INVALID_ODD_LENGTH);\n }\n var ascii = '';\n for (var i = 0; i < trytes.length; i += 2) {\n var charCode = _1.TRYTE_ALPHABET.indexOf(trytes[i]) + _1.TRYTE_ALPHABET.indexOf(trytes[i + 1]) * 27;\n if (charCode) {\n ascii += String.fromCharCode(charCode);\n }\n }\n return ascii;\n};\n//# sourceMappingURL=ascii.js.map","\"use strict\";\nexports.__esModule = true;\nexports.ILLEGAL_LENGTH = 'Illegal trits length';\nexports.ILLEGAL_SUBSEED_INDEX = 'Illegal subseed length';\nexports.ILLEGAL_SUBSEED_LENGTH = 'Illegal subseed length';\nexports.ILLEGAL_NUMBER_OF_FRAGMENTS = 'Illegal number of fragments';\nexports.ILLEGAL_KEY_LENGTH = 'Illegal key length';\nexports.ILLEGAL_DIGESTS_LENGTH = 'Illegal digests length';\nexports.ILLEGAL_NORMALIZED_FRAGMENT_LENGTH = 'Illegal normalized fragment length';\nexports.ILLEGAL_SIGNATURE_FRAGMENT_LENGTH = 'Illegal signature fragment length';\nexports.ILLEGAL_BUNDLE_HASH_LENGTH = 'Illegal bundle hash length';\nexports.ILLEGAL_KEY_FRAGMENT_LENGTH = 'Illegal key fragment length';\nexports.ILLEGAL_TRIT_CONVERSION_INPUT = 'Illegal conversion input. Expected trits as Int8Array.';\nexports.ILLEGAL_TRYTE_CONVERSION_INPUT = 'Illegal conversion input. Expected trytes string or integer.';\nexports.ILLEGAL_MIN_WEIGHT_MAGNITUDE = 'Illegal minWeightMagnitude value.';\nexports.ILLEGAL_ADDRESS_LAST_TRIT = 'Illegal address. Last trit must be 0.';\nexports.ILLEGAL_ADDRESS_LENGTH = 'Illegal address length.';\nexports.ILLEGAL_BUNDLE_LENGTH = 'Illegal bundle hash length.';\nexports.ILLEGAL_OBSOLETE_TAG_LENGTH = 'Illegal obsoleteTag length.';\nexports.ILLEGAL_SIGNATURE_OR_MESSAGE = 'Illegal signature or message.';\nexports.ILLEGAL_SIGNATURE_OR_MESSAGE_LENGTH = 'Illegal signatureOrMessage length.';\nexports.ILLEGAL_TAG_LENGTH = 'Illegal tag length.';\nexports.ILLEGAL_ISSUANCE_TIMESTAMP = 'Illegal issuance timestamp';\nexports.ILLEGAL_ISSUANCE_TIMESTAMP_LENGTH = 'Illegal issuanceTimestamp length.';\nexports.ILLEGAL_VALUE_LENGTH = 'Illegal value length.';\nexports.ILLEGAL_TRANSACTION_FIELD_OFFSET = 'Illegal transaction field offset.';\nexports.ILLEGAL_TRANSACTION_FIELD_LENGTH = 'Illegal transaction field length.';\nexports.ILLEGAL_LENGTH_OR_OFFSET = 'Illegal length or offset.';\nexports.ILLEGAL_TRANSACTION_BUFFER = 'Illegal transaction buffer. Expected `Int8Array`.';\nexports.ILLEGAL_TRANSACTION_BUFFER_LENGTH = 'Illegal transaction buffer length.';\nexports.ILLEGAL_TRANSACTION_OFFSET = 'Illegal transaction offset.';\nexports.ILLEGAL_TRANSACTION_LENGTH = 'Illegal transaction length.';\nexports.ILLEGAL_TRANSACTION_ORDER = 'Illegal transaction order.';\nexports.ILLEGAL_TRANSACTION_INDEX = 'Illegal transaction index.';\nexports.ILLEGAL_SEED_LENGTH = 'Illegal seed length. Expected length of 243 trits.';\nexports.ILLEGAL_KEY_INDEX = 'Illegal key index.';\nexports.ILLEGAL_CDA_LENGTH = 'Illegal cda length.';\nexports.ILLEGAL_BATCH = 'Illegal batch.';\nexports.CDA_ALREADY_IN_STORE = 'CDA is already in store.';\nexports.ILLEGAL_PERSISTENCE_ID = 'Illegal persistence id.';\nexports.ILLEGAL_PERSISTENCE_PATH = 'Illegal persistence path.';\nexports.ILLEGAL_PADDING_LENGTH = 'Illegal padding length. Input value length exceeds padding length.';\nexports.INCONSISTENT_SUBTANGLE = 'Inconsistent subtangle';\nexports.INSUFFICIENT_BALANCE = 'Insufficient balance';\nexports.INVALID_ADDRESS = 'Invalid address';\nexports.INVALID_REMAINDER_ADDRESS = 'Invalid remainder address';\nexports.INVALID_BRANCH_TRANSACTION = 'Invalid branch transaction';\nexports.INVALID_BUNDLE = 'Invalid bundle';\nexports.INVALID_BUNDLE_HASH = 'Invalid bundle hash';\nexports.INVALID_CHECKSUM = 'Invalid checksum';\nexports.INVALID_COMMAND = 'Invalid command format';\nexports.INVALID_DEPTH = 'Invalid depth';\nexports.INVALID_HASH = 'Invalid hash';\nexports.INVALID_INDEX = 'Invalid index option';\nexports.INVALID_TOTAL_OPTION = 'Invalid total option';\nexports.INVALID_INPUT = 'Invalid input';\nexports.INVALID_KEY = 'Invalid key value';\nexports.INVALID_MIN_WEIGHT_MAGNITUDE = 'Invalid Min Weight Magnitude';\nexports.INVALID_SEARCH_KEY = 'Invalid search key';\nexports.INVALID_SECURITY_LEVEL = 'Invalid security option';\nexports.INVALID_SECURITY_OPTION = 'Invalid security option';\nexports.INVALID_SEED = 'Invalid seed';\nexports.INVALID_START_END_OPTIONS = 'Invalid end option';\nexports.INVALID_START_OPTION = 'Invalid start option';\nexports.INVALID_TAG = 'Invalid tag';\nexports.INVALID_TRANSACTION = 'Invalid transaction';\nexports.INVALID_TRANSACTION_TRYTES = 'Invalid transaction trytes';\nexports.INVALID_ATTACHED_TRYTES = 'Invalid attached trytes';\nexports.INVALID_TRANSACTION_HASH = 'Invalid transaction hash';\nexports.INVALID_TAIL_TRANSACTION = 'Invalid tail transaction';\nexports.INVALID_THRESHOLD = 'Invalid threshold option';\nexports.INVALID_TRANSFER = 'Invalid transfer array';\nexports.INVALID_TRUNK_TRANSACTION = 'Invalid trunk transaction';\nexports.INVALID_REFERENCE_HASH = 'Invalid reference hash';\nexports.INVALID_TRYTES = 'Invalid trytes';\nexports.INVALID_URI = 'Invalid uri';\nexports.INVALID_ASCII_INPUT = 'Conversion to trytes requires type of input to be encoded in ascii.';\nexports.INVALID_ODD_LENGTH = 'Conversion from trytes requires length of trytes to be even.';\nexports.INVALID_TRYTE_ENCODED_JSON = 'Invalid tryte encoded JSON message';\nexports.NOT_INT = 'One of the inputs is not integer';\nexports.SENDING_BACK_TO_INPUTS = 'One of the transaction inputs is used as output.';\nexports.INVALID_TRANSACTIONS_TO_APPROVE = 'Invalid transactions to approve.';\nexports.NO_INPUTS = 'Could not find any available inputs.';\nexports.invalidChecksum = function (address) { return \"Invalid Checksum: \" + address; };\nexports.inconsistentTransaction = function (reason) { return \"Transaction is inconsistent. Reason: \" + reason; };\nexports.INVALID_DELAY = 'Invalid delay.';\n//# sourceMappingURL=errors.js.map","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.b58ToC32 = exports.c32ToB58 = exports.versions = exports.c32normalize = exports.c32addressDecode = exports.c32address = exports.c32checkDecode = exports.c32checkEncode = exports.c32decode = exports.c32encode = void 0;\nvar encoding_1 = require(\"./encoding\");\nObject.defineProperty(exports, \"c32encode\", { enumerable: true, get: function () { return encoding_1.c32encode; } });\nObject.defineProperty(exports, \"c32decode\", { enumerable: true, get: function () { return encoding_1.c32decode; } });\nObject.defineProperty(exports, \"c32normalize\", { enumerable: true, get: function () { return encoding_1.c32normalize; } });\nvar checksum_1 = require(\"./checksum\");\nObject.defineProperty(exports, \"c32checkEncode\", { enumerable: true, get: function () { return checksum_1.c32checkEncode; } });\nObject.defineProperty(exports, \"c32checkDecode\", { enumerable: true, get: function () { return checksum_1.c32checkDecode; } });\nvar address_1 = require(\"./address\");\nObject.defineProperty(exports, \"c32address\", { enumerable: true, get: function () { return address_1.c32address; } });\nObject.defineProperty(exports, \"c32addressDecode\", { enumerable: true, get: function () { return address_1.c32addressDecode; } });\nObject.defineProperty(exports, \"c32ToB58\", { enumerable: true, get: function () { return address_1.c32ToB58; } });\nObject.defineProperty(exports, \"b58ToC32\", { enumerable: true, get: function () { return address_1.b58ToC32; } });\nObject.defineProperty(exports, \"versions\", { enumerable: true, get: function () { return address_1.versions; } });\n","/**\n * @license\n * https://github.com/bitcoincashjs/cashaddr\n * Copyright (c) 2017-2018 Emilio Almansi\n * Distributed under the MIT software license, see the accompanying\n * file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n */\n\n'use strict';\n\n/**\n * Validation utility.\n *\n * @module validation\n */\n\n/**\n * Error thrown when encoding or decoding fail due to invalid input.\n *\n * @constructor ValidationError\n * @param {string} message Error description.\n */\nfunction ValidationError(message) {\n var error = new Error();\n this.name = error.name = 'ValidationError';\n this.message = error.message = message;\n this.stack = error.stack;\n}\n\nValidationError.prototype = Object.create(Error.prototype);\n\n/**\n * Validates a given condition, throwing a {@link ValidationError} if\n * the given condition does not hold.\n *\n * @static\n * @param {boolean} condition Condition to validate.\n * @param {string} message Error message in case the condition does not hold.\n */\nfunction validate(condition, message) {\n if (!condition) {\n throw new ValidationError(message);\n }\n}\n\nmodule.exports = {\n ValidationError: ValidationError,\n validate: validate,\n};\n","var JsSHA = require('jssha/src/sha256')\r\nvar Blake256 = require('./blake256')\r\nvar keccak256 = require('./sha3')['keccak256']\r\nvar Blake2B = require('./blake2b')\r\nconst BECH32 = require('./bech32')\r\n\r\nfunction numberToHex (number) {\r\n var hex = Math.round(number).toString(16)\r\n if (hex.length === 1) {\r\n hex = '0' + hex\r\n }\r\n return hex\r\n}\r\n\r\nmodule.exports = {\r\n bech32: BECH32,\r\n toHex: function (arrayOfBytes) {\r\n var hex = ''\r\n for (var i = 0; i < arrayOfBytes.length; i++) {\r\n hex += numberToHex(arrayOfBytes[i])\r\n }\r\n return hex\r\n },\r\n sha256: function (hexString) {\r\n var sha = new JsSHA('SHA-256', 'HEX')\r\n sha.update(hexString)\r\n return sha.getHash('HEX')\r\n },\r\n sha256Checksum: function (payload) {\r\n return this.sha256(this.sha256(payload)).substr(0, 8)\r\n },\r\n blake256: function (hexString) {\r\n return new Blake256().update(hexString, 'hex').digest('hex')\r\n },\r\n blake256Checksum: function (payload) {\r\n return this.blake256(this.blake256(payload)).substr(0, 8)\r\n },\r\n blake2b: function (hexString, outlen) {\r\n return new Blake2B(outlen).update(Buffer.from(hexString, 'hex')).digest('hex')\r\n },\r\n keccak256: function (hexString) {\r\n return keccak256(hexString)\r\n },\r\n keccak256Checksum: function (payload) {\r\n return keccak256(payload).toString().substr(0, 8)\r\n },\r\n blake2b256: function (hexString) {\r\n return new Blake2B(32).update(Buffer.from(hexString, 'hex'), 32).digest('hex')\r\n }\r\n}\r\n","const accountRegex = new RegExp('^[a-z0-9-.]{3,}$')\r\nconst segmentRegex = new RegExp('^[a-z][a-z0-9-]+[a-z0-9]$')\r\nconst doubleDashRegex = new RegExp('--')\r\n\r\nmodule.exports = {\r\n isValidAddress: function (address, currency, networkType) {\r\n if (!accountRegex.test(address)) {\r\n return false\r\n }\r\n\r\n let segments = address.split('.')\r\n for (let i = 0; i < segments.length; i++) {\r\n let segment = segments[i]\r\n if (segment.length < 3) {\r\n return false\r\n }\r\n\r\n if (!segmentRegex.test(segment)) {\r\n return false\r\n }\r\n\r\n if (doubleDashRegex.test(segment)) {\r\n return false\r\n }\r\n }\r\n\r\n return true\r\n }\r\n}\r\n","function isValidSCAddress (address, currency, networkType) {\r\n var regex = /^[0-9a-f]{76}$/g // 76 hex chars\r\n if (address.search(regex) !== -1) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n}\r\n\r\nmodule.exports = {\r\n isValidAddress: function (address, currency, networkType) {\r\n return isValidSCAddress(address, currency, networkType)\r\n }\r\n}\r\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","\"use strict\";\nif (!Int8Array.prototype.slice) {\n Object.defineProperty(Int8Array.prototype, 'slice', {\n value: Array.prototype.slice\n });\n}\nif (!Int8Array.prototype.subarray) {\n Object.defineProperty(Uint8Array.prototype, 'subarray', {\n value: Array.prototype.slice\n });\n}\nif (!Int8Array.prototype.map) {\n Object.defineProperty(Int8Array.prototype, 'map', {\n value: Array.prototype.map\n });\n}\nif (!Int8Array.prototype.every) {\n Object.defineProperty(Int8Array.prototype, 'every', {\n value: Array.prototype.every\n });\n}\nif (!Int8Array.prototype.some) {\n Object.defineProperty(Uint8Array.prototype, 'some', {\n value: Array.prototype.some\n });\n}\nif (!Int8Array.prototype.indexOf) {\n Object.defineProperty(Int8Array.prototype, 'indexOf', {\n value: Array.prototype.indexOf\n });\n}\n// Source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/fill#Polyfill\n// Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/\nif (!Int8Array.prototype.fill) {\n Object.defineProperty(Int8Array.prototype, 'fill', {\n value: function (input) {\n // Steps 1-2.\n if (this == null) {\n throw new TypeError('this is null or not defined');\n }\n var O = Object(this);\n // Steps 3-5.\n var len = O.length >>> 0;\n // Steps 6-7.\n var start = arguments[1];\n var relativeStart = start >> 0;\n // Step 8.\n var k = relativeStart < 0 ? Math.max(len + relativeStart, 0) : Math.min(relativeStart, len);\n // Steps 9-10.\n var end = arguments[2];\n var relativeEnd = end === undefined ? len : end >> 0;\n // Step 11.\n var last = relativeEnd < 0 ? Math.max(len + relativeEnd, 0) : Math.min(relativeEnd, len);\n // Step 12.\n while (k < last) {\n O[k] = input;\n k++;\n }\n // Step 13.\n return O;\n }\n });\n}\nif (!Uint32Array.prototype.slice) {\n Object.defineProperty(Uint8Array.prototype, 'slice', {\n value: Array.prototype.slice\n });\n}\nif (!Uint32Array.prototype.reverse) {\n Object.defineProperty(Uint8Array.prototype, 'reverse', {\n value: Array.prototype.reverse\n });\n}\n//# sourceMappingURL=typed-array.js.map","/* @preserve\n * The MIT License (MIT)\n * \n * Copyright (c) 2013-2018 Petka Antonov\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n * \n */\n/**\n * bluebird build version 3.7.2\n * Features enabled: core, race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each\n*/\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{var f;\"undefined\"!=typeof window?f=window:\"undefined\"!=typeof global?f=global:\"undefined\"!=typeof self&&(f=self),f.Promise=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof _dereq_==\"function\"&&_dereq_;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof _dereq_==\"function\"&&_dereq_;for(var o=0;o 0) {\n _drainQueueStep(queue);\n }\n}\n\nfunction _drainQueueStep(queue) {\n var fn = queue.shift();\n if (typeof fn !== \"function\") {\n fn._settlePromises();\n } else {\n var receiver = queue.shift();\n var arg = queue.shift();\n fn.call(receiver, arg);\n }\n}\n\nAsync.prototype._drainQueues = function () {\n _drainQueue(this._normalQueue);\n this._reset();\n this._haveDrainedQueues = true;\n _drainQueue(this._lateQueue);\n};\n\nAsync.prototype._queueTick = function () {\n if (!this._isTickUsed) {\n this._isTickUsed = true;\n this._schedule(this.drainQueues);\n }\n};\n\nAsync.prototype._reset = function () {\n this._isTickUsed = false;\n};\n\nmodule.exports = Async;\nmodule.exports.firstLineError = firstLineError;\n\n},{\"./queue\":26,\"./schedule\":29}],3:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) {\nvar calledBind = false;\nvar rejectThis = function(_, e) {\n this._reject(e);\n};\n\nvar targetRejected = function(e, context) {\n context.promiseRejectionQueued = true;\n context.bindingPromise._then(rejectThis, rejectThis, null, this, e);\n};\n\nvar bindingResolved = function(thisArg, context) {\n if (((this._bitField & 50397184) === 0)) {\n this._resolveCallback(context.target);\n }\n};\n\nvar bindingRejected = function(e, context) {\n if (!context.promiseRejectionQueued) this._reject(e);\n};\n\nPromise.prototype.bind = function (thisArg) {\n if (!calledBind) {\n calledBind = true;\n Promise.prototype._propagateFrom = debug.propagateFromFunction();\n Promise.prototype._boundValue = debug.boundValueFunction();\n }\n var maybePromise = tryConvertToPromise(thisArg);\n var ret = new Promise(INTERNAL);\n ret._propagateFrom(this, 1);\n var target = this._target();\n ret._setBoundTo(maybePromise);\n if (maybePromise instanceof Promise) {\n var context = {\n promiseRejectionQueued: false,\n promise: ret,\n target: target,\n bindingPromise: maybePromise\n };\n target._then(INTERNAL, targetRejected, undefined, ret, context);\n maybePromise._then(\n bindingResolved, bindingRejected, undefined, ret, context);\n ret._setOnCancel(maybePromise);\n } else {\n ret._resolveCallback(target);\n }\n return ret;\n};\n\nPromise.prototype._setBoundTo = function (obj) {\n if (obj !== undefined) {\n this._bitField = this._bitField | 2097152;\n this._boundTo = obj;\n } else {\n this._bitField = this._bitField & (~2097152);\n }\n};\n\nPromise.prototype._isBound = function () {\n return (this._bitField & 2097152) === 2097152;\n};\n\nPromise.bind = function (thisArg, value) {\n return Promise.resolve(value).bind(thisArg);\n};\n};\n\n},{}],4:[function(_dereq_,module,exports){\n\"use strict\";\nvar old;\nif (typeof Promise !== \"undefined\") old = Promise;\nfunction noConflict() {\n try { if (Promise === bluebird) Promise = old; }\n catch (e) {}\n return bluebird;\n}\nvar bluebird = _dereq_(\"./promise\")();\nbluebird.noConflict = noConflict;\nmodule.exports = bluebird;\n\n},{\"./promise\":22}],5:[function(_dereq_,module,exports){\n\"use strict\";\nvar cr = Object.create;\nif (cr) {\n var callerCache = cr(null);\n var getterCache = cr(null);\n callerCache[\" size\"] = getterCache[\" size\"] = 0;\n}\n\nmodule.exports = function(Promise) {\nvar util = _dereq_(\"./util\");\nvar canEvaluate = util.canEvaluate;\nvar isIdentifier = util.isIdentifier;\n\nvar getMethodCaller;\nvar getGetter;\nif (!true) {\nvar makeMethodCaller = function (methodName) {\n return new Function(\"ensureMethod\", \" \\n\\\n return function(obj) { \\n\\\n 'use strict' \\n\\\n var len = this.length; \\n\\\n ensureMethod(obj, 'methodName'); \\n\\\n switch(len) { \\n\\\n case 1: return obj.methodName(this[0]); \\n\\\n case 2: return obj.methodName(this[0], this[1]); \\n\\\n case 3: return obj.methodName(this[0], this[1], this[2]); \\n\\\n case 0: return obj.methodName(); \\n\\\n default: \\n\\\n return obj.methodName.apply(obj, this); \\n\\\n } \\n\\\n }; \\n\\\n \".replace(/methodName/g, methodName))(ensureMethod);\n};\n\nvar makeGetter = function (propertyName) {\n return new Function(\"obj\", \" \\n\\\n 'use strict'; \\n\\\n return obj.propertyName; \\n\\\n \".replace(\"propertyName\", propertyName));\n};\n\nvar getCompiled = function(name, compiler, cache) {\n var ret = cache[name];\n if (typeof ret !== \"function\") {\n if (!isIdentifier(name)) {\n return null;\n }\n ret = compiler(name);\n cache[name] = ret;\n cache[\" size\"]++;\n if (cache[\" size\"] > 512) {\n var keys = Object.keys(cache);\n for (var i = 0; i < 256; ++i) delete cache[keys[i]];\n cache[\" size\"] = keys.length - 256;\n }\n }\n return ret;\n};\n\ngetMethodCaller = function(name) {\n return getCompiled(name, makeMethodCaller, callerCache);\n};\n\ngetGetter = function(name) {\n return getCompiled(name, makeGetter, getterCache);\n};\n}\n\nfunction ensureMethod(obj, methodName) {\n var fn;\n if (obj != null) fn = obj[methodName];\n if (typeof fn !== \"function\") {\n var message = \"Object \" + util.classString(obj) + \" has no method '\" +\n util.toString(methodName) + \"'\";\n throw new Promise.TypeError(message);\n }\n return fn;\n}\n\nfunction caller(obj) {\n var methodName = this.pop();\n var fn = ensureMethod(obj, methodName);\n return fn.apply(obj, this);\n}\nPromise.prototype.call = function (methodName) {\n var args = [].slice.call(arguments, 1);;\n if (!true) {\n if (canEvaluate) {\n var maybeCaller = getMethodCaller(methodName);\n if (maybeCaller !== null) {\n return this._then(\n maybeCaller, undefined, undefined, args, undefined);\n }\n }\n }\n args.push(methodName);\n return this._then(caller, undefined, undefined, args, undefined);\n};\n\nfunction namedGetter(obj) {\n return obj[this];\n}\nfunction indexedGetter(obj) {\n var index = +this;\n if (index < 0) index = Math.max(0, index + obj.length);\n return obj[index];\n}\nPromise.prototype.get = function (propertyName) {\n var isIndex = (typeof propertyName === \"number\");\n var getter;\n if (!isIndex) {\n if (canEvaluate) {\n var maybeGetter = getGetter(propertyName);\n getter = maybeGetter !== null ? maybeGetter : namedGetter;\n } else {\n getter = namedGetter;\n }\n } else {\n getter = indexedGetter;\n }\n return this._then(getter, undefined, undefined, propertyName, undefined);\n};\n};\n\n},{\"./util\":36}],6:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, PromiseArray, apiRejection, debug) {\nvar util = _dereq_(\"./util\");\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\nvar async = Promise._async;\n\nPromise.prototype[\"break\"] = Promise.prototype.cancel = function() {\n if (!debug.cancellation()) return this._warn(\"cancellation is disabled\");\n\n var promise = this;\n var child = promise;\n while (promise._isCancellable()) {\n if (!promise._cancelBy(child)) {\n if (child._isFollowing()) {\n child._followee().cancel();\n } else {\n child._cancelBranched();\n }\n break;\n }\n\n var parent = promise._cancellationParent;\n if (parent == null || !parent._isCancellable()) {\n if (promise._isFollowing()) {\n promise._followee().cancel();\n } else {\n promise._cancelBranched();\n }\n break;\n } else {\n if (promise._isFollowing()) promise._followee().cancel();\n promise._setWillBeCancelled();\n child = promise;\n promise = parent;\n }\n }\n};\n\nPromise.prototype._branchHasCancelled = function() {\n this._branchesRemainingToCancel--;\n};\n\nPromise.prototype._enoughBranchesHaveCancelled = function() {\n return this._branchesRemainingToCancel === undefined ||\n this._branchesRemainingToCancel <= 0;\n};\n\nPromise.prototype._cancelBy = function(canceller) {\n if (canceller === this) {\n this._branchesRemainingToCancel = 0;\n this._invokeOnCancel();\n return true;\n } else {\n this._branchHasCancelled();\n if (this._enoughBranchesHaveCancelled()) {\n this._invokeOnCancel();\n return true;\n }\n }\n return false;\n};\n\nPromise.prototype._cancelBranched = function() {\n if (this._enoughBranchesHaveCancelled()) {\n this._cancel();\n }\n};\n\nPromise.prototype._cancel = function() {\n if (!this._isCancellable()) return;\n this._setCancelled();\n async.invoke(this._cancelPromises, this, undefined);\n};\n\nPromise.prototype._cancelPromises = function() {\n if (this._length() > 0) this._settlePromises();\n};\n\nPromise.prototype._unsetOnCancel = function() {\n this._onCancelField = undefined;\n};\n\nPromise.prototype._isCancellable = function() {\n return this.isPending() && !this._isCancelled();\n};\n\nPromise.prototype.isCancellable = function() {\n return this.isPending() && !this.isCancelled();\n};\n\nPromise.prototype._doInvokeOnCancel = function(onCancelCallback, internalOnly) {\n if (util.isArray(onCancelCallback)) {\n for (var i = 0; i < onCancelCallback.length; ++i) {\n this._doInvokeOnCancel(onCancelCallback[i], internalOnly);\n }\n } else if (onCancelCallback !== undefined) {\n if (typeof onCancelCallback === \"function\") {\n if (!internalOnly) {\n var e = tryCatch(onCancelCallback).call(this._boundValue());\n if (e === errorObj) {\n this._attachExtraTrace(e.e);\n async.throwLater(e.e);\n }\n }\n } else {\n onCancelCallback._resultCancelled(this);\n }\n }\n};\n\nPromise.prototype._invokeOnCancel = function() {\n var onCancelCallback = this._onCancel();\n this._unsetOnCancel();\n async.invoke(this._doInvokeOnCancel, this, onCancelCallback);\n};\n\nPromise.prototype._invokeInternalOnCancel = function() {\n if (this._isCancellable()) {\n this._doInvokeOnCancel(this._onCancel(), true);\n this._unsetOnCancel();\n }\n};\n\nPromise.prototype._resultCancelled = function() {\n this.cancel();\n};\n\n};\n\n},{\"./util\":36}],7:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(NEXT_FILTER) {\nvar util = _dereq_(\"./util\");\nvar getKeys = _dereq_(\"./es5\").keys;\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\n\nfunction catchFilter(instances, cb, promise) {\n return function(e) {\n var boundTo = promise._boundValue();\n predicateLoop: for (var i = 0; i < instances.length; ++i) {\n var item = instances[i];\n\n if (item === Error ||\n (item != null && item.prototype instanceof Error)) {\n if (e instanceof item) {\n return tryCatch(cb).call(boundTo, e);\n }\n } else if (typeof item === \"function\") {\n var matchesPredicate = tryCatch(item).call(boundTo, e);\n if (matchesPredicate === errorObj) {\n return matchesPredicate;\n } else if (matchesPredicate) {\n return tryCatch(cb).call(boundTo, e);\n }\n } else if (util.isObject(e)) {\n var keys = getKeys(item);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n if (item[key] != e[key]) {\n continue predicateLoop;\n }\n }\n return tryCatch(cb).call(boundTo, e);\n }\n }\n return NEXT_FILTER;\n };\n}\n\nreturn catchFilter;\n};\n\n},{\"./es5\":13,\"./util\":36}],8:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise) {\nvar longStackTraces = false;\nvar contextStack = [];\n\nPromise.prototype._promiseCreated = function() {};\nPromise.prototype._pushContext = function() {};\nPromise.prototype._popContext = function() {return null;};\nPromise._peekContext = Promise.prototype._peekContext = function() {};\n\nfunction Context() {\n this._trace = new Context.CapturedTrace(peekContext());\n}\nContext.prototype._pushContext = function () {\n if (this._trace !== undefined) {\n this._trace._promiseCreated = null;\n contextStack.push(this._trace);\n }\n};\n\nContext.prototype._popContext = function () {\n if (this._trace !== undefined) {\n var trace = contextStack.pop();\n var ret = trace._promiseCreated;\n trace._promiseCreated = null;\n return ret;\n }\n return null;\n};\n\nfunction createContext() {\n if (longStackTraces) return new Context();\n}\n\nfunction peekContext() {\n var lastIndex = contextStack.length - 1;\n if (lastIndex >= 0) {\n return contextStack[lastIndex];\n }\n return undefined;\n}\nContext.CapturedTrace = null;\nContext.create = createContext;\nContext.deactivateLongStackTraces = function() {};\nContext.activateLongStackTraces = function() {\n var Promise_pushContext = Promise.prototype._pushContext;\n var Promise_popContext = Promise.prototype._popContext;\n var Promise_PeekContext = Promise._peekContext;\n var Promise_peekContext = Promise.prototype._peekContext;\n var Promise_promiseCreated = Promise.prototype._promiseCreated;\n Context.deactivateLongStackTraces = function() {\n Promise.prototype._pushContext = Promise_pushContext;\n Promise.prototype._popContext = Promise_popContext;\n Promise._peekContext = Promise_PeekContext;\n Promise.prototype._peekContext = Promise_peekContext;\n Promise.prototype._promiseCreated = Promise_promiseCreated;\n longStackTraces = false;\n };\n longStackTraces = true;\n Promise.prototype._pushContext = Context.prototype._pushContext;\n Promise.prototype._popContext = Context.prototype._popContext;\n Promise._peekContext = Promise.prototype._peekContext = peekContext;\n Promise.prototype._promiseCreated = function() {\n var ctx = this._peekContext();\n if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this;\n };\n};\nreturn Context;\n};\n\n},{}],9:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, Context,\n enableAsyncHooks, disableAsyncHooks) {\nvar async = Promise._async;\nvar Warning = _dereq_(\"./errors\").Warning;\nvar util = _dereq_(\"./util\");\nvar es5 = _dereq_(\"./es5\");\nvar canAttachTrace = util.canAttachTrace;\nvar unhandledRejectionHandled;\nvar possiblyUnhandledRejection;\nvar bluebirdFramePattern =\n /[\\\\\\/]bluebird[\\\\\\/]js[\\\\\\/](release|debug|instrumented)/;\nvar nodeFramePattern = /\\((?:timers\\.js):\\d+:\\d+\\)/;\nvar parseLinePattern = /[\\/<\\(](.+?):(\\d+):(\\d+)\\)?\\s*$/;\nvar stackFramePattern = null;\nvar formatStack = null;\nvar indentStackFrames = false;\nvar printWarning;\nvar debugging = !!(util.env(\"BLUEBIRD_DEBUG\") != 0 &&\n (true ||\n util.env(\"BLUEBIRD_DEBUG\") ||\n util.env(\"NODE_ENV\") === \"development\"));\n\nvar warnings = !!(util.env(\"BLUEBIRD_WARNINGS\") != 0 &&\n (debugging || util.env(\"BLUEBIRD_WARNINGS\")));\n\nvar longStackTraces = !!(util.env(\"BLUEBIRD_LONG_STACK_TRACES\") != 0 &&\n (debugging || util.env(\"BLUEBIRD_LONG_STACK_TRACES\")));\n\nvar wForgottenReturn = util.env(\"BLUEBIRD_W_FORGOTTEN_RETURN\") != 0 &&\n (warnings || !!util.env(\"BLUEBIRD_W_FORGOTTEN_RETURN\"));\n\nvar deferUnhandledRejectionCheck;\n(function() {\n var promises = [];\n\n function unhandledRejectionCheck() {\n for (var i = 0; i < promises.length; ++i) {\n promises[i]._notifyUnhandledRejection();\n }\n unhandledRejectionClear();\n }\n\n function unhandledRejectionClear() {\n promises.length = 0;\n }\n\n deferUnhandledRejectionCheck = function(promise) {\n promises.push(promise);\n setTimeout(unhandledRejectionCheck, 1);\n };\n\n es5.defineProperty(Promise, \"_unhandledRejectionCheck\", {\n value: unhandledRejectionCheck\n });\n es5.defineProperty(Promise, \"_unhandledRejectionClear\", {\n value: unhandledRejectionClear\n });\n})();\n\nPromise.prototype.suppressUnhandledRejections = function() {\n var target = this._target();\n target._bitField = ((target._bitField & (~1048576)) |\n 524288);\n};\n\nPromise.prototype._ensurePossibleRejectionHandled = function () {\n if ((this._bitField & 524288) !== 0) return;\n this._setRejectionIsUnhandled();\n deferUnhandledRejectionCheck(this);\n};\n\nPromise.prototype._notifyUnhandledRejectionIsHandled = function () {\n fireRejectionEvent(\"rejectionHandled\",\n unhandledRejectionHandled, undefined, this);\n};\n\nPromise.prototype._setReturnedNonUndefined = function() {\n this._bitField = this._bitField | 268435456;\n};\n\nPromise.prototype._returnedNonUndefined = function() {\n return (this._bitField & 268435456) !== 0;\n};\n\nPromise.prototype._notifyUnhandledRejection = function () {\n if (this._isRejectionUnhandled()) {\n var reason = this._settledValue();\n this._setUnhandledRejectionIsNotified();\n fireRejectionEvent(\"unhandledRejection\",\n possiblyUnhandledRejection, reason, this);\n }\n};\n\nPromise.prototype._setUnhandledRejectionIsNotified = function () {\n this._bitField = this._bitField | 262144;\n};\n\nPromise.prototype._unsetUnhandledRejectionIsNotified = function () {\n this._bitField = this._bitField & (~262144);\n};\n\nPromise.prototype._isUnhandledRejectionNotified = function () {\n return (this._bitField & 262144) > 0;\n};\n\nPromise.prototype._setRejectionIsUnhandled = function () {\n this._bitField = this._bitField | 1048576;\n};\n\nPromise.prototype._unsetRejectionIsUnhandled = function () {\n this._bitField = this._bitField & (~1048576);\n if (this._isUnhandledRejectionNotified()) {\n this._unsetUnhandledRejectionIsNotified();\n this._notifyUnhandledRejectionIsHandled();\n }\n};\n\nPromise.prototype._isRejectionUnhandled = function () {\n return (this._bitField & 1048576) > 0;\n};\n\nPromise.prototype._warn = function(message, shouldUseOwnTrace, promise) {\n return warn(message, shouldUseOwnTrace, promise || this);\n};\n\nPromise.onPossiblyUnhandledRejection = function (fn) {\n var context = Promise._getContext();\n possiblyUnhandledRejection = util.contextBind(context, fn);\n};\n\nPromise.onUnhandledRejectionHandled = function (fn) {\n var context = Promise._getContext();\n unhandledRejectionHandled = util.contextBind(context, fn);\n};\n\nvar disableLongStackTraces = function() {};\nPromise.longStackTraces = function () {\n if (async.haveItemsQueued() && !config.longStackTraces) {\n throw new Error(\"cannot enable long stack traces after promises have been created\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n if (!config.longStackTraces && longStackTracesIsSupported()) {\n var Promise_captureStackTrace = Promise.prototype._captureStackTrace;\n var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace;\n var Promise_dereferenceTrace = Promise.prototype._dereferenceTrace;\n config.longStackTraces = true;\n disableLongStackTraces = function() {\n if (async.haveItemsQueued() && !config.longStackTraces) {\n throw new Error(\"cannot enable long stack traces after promises have been created\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n Promise.prototype._captureStackTrace = Promise_captureStackTrace;\n Promise.prototype._attachExtraTrace = Promise_attachExtraTrace;\n Promise.prototype._dereferenceTrace = Promise_dereferenceTrace;\n Context.deactivateLongStackTraces();\n config.longStackTraces = false;\n };\n Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace;\n Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace;\n Promise.prototype._dereferenceTrace = longStackTracesDereferenceTrace;\n Context.activateLongStackTraces();\n }\n};\n\nPromise.hasLongStackTraces = function () {\n return config.longStackTraces && longStackTracesIsSupported();\n};\n\n\nvar legacyHandlers = {\n unhandledrejection: {\n before: function() {\n var ret = util.global.onunhandledrejection;\n util.global.onunhandledrejection = null;\n return ret;\n },\n after: function(fn) {\n util.global.onunhandledrejection = fn;\n }\n },\n rejectionhandled: {\n before: function() {\n var ret = util.global.onrejectionhandled;\n util.global.onrejectionhandled = null;\n return ret;\n },\n after: function(fn) {\n util.global.onrejectionhandled = fn;\n }\n }\n};\n\nvar fireDomEvent = (function() {\n var dispatch = function(legacy, e) {\n if (legacy) {\n var fn;\n try {\n fn = legacy.before();\n return !util.global.dispatchEvent(e);\n } finally {\n legacy.after(fn);\n }\n } else {\n return !util.global.dispatchEvent(e);\n }\n };\n try {\n if (typeof CustomEvent === \"function\") {\n var event = new CustomEvent(\"CustomEvent\");\n util.global.dispatchEvent(event);\n return function(name, event) {\n name = name.toLowerCase();\n var eventData = {\n detail: event,\n cancelable: true\n };\n var domEvent = new CustomEvent(name, eventData);\n es5.defineProperty(\n domEvent, \"promise\", {value: event.promise});\n es5.defineProperty(\n domEvent, \"reason\", {value: event.reason});\n\n return dispatch(legacyHandlers[name], domEvent);\n };\n } else if (typeof Event === \"function\") {\n var event = new Event(\"CustomEvent\");\n util.global.dispatchEvent(event);\n return function(name, event) {\n name = name.toLowerCase();\n var domEvent = new Event(name, {\n cancelable: true\n });\n domEvent.detail = event;\n es5.defineProperty(domEvent, \"promise\", {value: event.promise});\n es5.defineProperty(domEvent, \"reason\", {value: event.reason});\n return dispatch(legacyHandlers[name], domEvent);\n };\n } else {\n var event = document.createEvent(\"CustomEvent\");\n event.initCustomEvent(\"testingtheevent\", false, true, {});\n util.global.dispatchEvent(event);\n return function(name, event) {\n name = name.toLowerCase();\n var domEvent = document.createEvent(\"CustomEvent\");\n domEvent.initCustomEvent(name, false, true,\n event);\n return dispatch(legacyHandlers[name], domEvent);\n };\n }\n } catch (e) {}\n return function() {\n return false;\n };\n})();\n\nvar fireGlobalEvent = (function() {\n if (util.isNode) {\n return function() {\n return process.emit.apply(process, arguments);\n };\n } else {\n if (!util.global) {\n return function() {\n return false;\n };\n }\n return function(name) {\n var methodName = \"on\" + name.toLowerCase();\n var method = util.global[methodName];\n if (!method) return false;\n method.apply(util.global, [].slice.call(arguments, 1));\n return true;\n };\n }\n})();\n\nfunction generatePromiseLifecycleEventObject(name, promise) {\n return {promise: promise};\n}\n\nvar eventToObjectGenerator = {\n promiseCreated: generatePromiseLifecycleEventObject,\n promiseFulfilled: generatePromiseLifecycleEventObject,\n promiseRejected: generatePromiseLifecycleEventObject,\n promiseResolved: generatePromiseLifecycleEventObject,\n promiseCancelled: generatePromiseLifecycleEventObject,\n promiseChained: function(name, promise, child) {\n return {promise: promise, child: child};\n },\n warning: function(name, warning) {\n return {warning: warning};\n },\n unhandledRejection: function (name, reason, promise) {\n return {reason: reason, promise: promise};\n },\n rejectionHandled: generatePromiseLifecycleEventObject\n};\n\nvar activeFireEvent = function (name) {\n var globalEventFired = false;\n try {\n globalEventFired = fireGlobalEvent.apply(null, arguments);\n } catch (e) {\n async.throwLater(e);\n globalEventFired = true;\n }\n\n var domEventFired = false;\n try {\n domEventFired = fireDomEvent(name,\n eventToObjectGenerator[name].apply(null, arguments));\n } catch (e) {\n async.throwLater(e);\n domEventFired = true;\n }\n\n return domEventFired || globalEventFired;\n};\n\nPromise.config = function(opts) {\n opts = Object(opts);\n if (\"longStackTraces\" in opts) {\n if (opts.longStackTraces) {\n Promise.longStackTraces();\n } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) {\n disableLongStackTraces();\n }\n }\n if (\"warnings\" in opts) {\n var warningsOption = opts.warnings;\n config.warnings = !!warningsOption;\n wForgottenReturn = config.warnings;\n\n if (util.isObject(warningsOption)) {\n if (\"wForgottenReturn\" in warningsOption) {\n wForgottenReturn = !!warningsOption.wForgottenReturn;\n }\n }\n }\n if (\"cancellation\" in opts && opts.cancellation && !config.cancellation) {\n if (async.haveItemsQueued()) {\n throw new Error(\n \"cannot enable cancellation after promises are in use\");\n }\n Promise.prototype._clearCancellationData =\n cancellationClearCancellationData;\n Promise.prototype._propagateFrom = cancellationPropagateFrom;\n Promise.prototype._onCancel = cancellationOnCancel;\n Promise.prototype._setOnCancel = cancellationSetOnCancel;\n Promise.prototype._attachCancellationCallback =\n cancellationAttachCancellationCallback;\n Promise.prototype._execute = cancellationExecute;\n propagateFromFunction = cancellationPropagateFrom;\n config.cancellation = true;\n }\n if (\"monitoring\" in opts) {\n if (opts.monitoring && !config.monitoring) {\n config.monitoring = true;\n Promise.prototype._fireEvent = activeFireEvent;\n } else if (!opts.monitoring && config.monitoring) {\n config.monitoring = false;\n Promise.prototype._fireEvent = defaultFireEvent;\n }\n }\n if (\"asyncHooks\" in opts && util.nodeSupportsAsyncResource) {\n var prev = config.asyncHooks;\n var cur = !!opts.asyncHooks;\n if (prev !== cur) {\n config.asyncHooks = cur;\n if (cur) {\n enableAsyncHooks();\n } else {\n disableAsyncHooks();\n }\n }\n }\n return Promise;\n};\n\nfunction defaultFireEvent() { return false; }\n\nPromise.prototype._fireEvent = defaultFireEvent;\nPromise.prototype._execute = function(executor, resolve, reject) {\n try {\n executor(resolve, reject);\n } catch (e) {\n return e;\n }\n};\nPromise.prototype._onCancel = function () {};\nPromise.prototype._setOnCancel = function (handler) { ; };\nPromise.prototype._attachCancellationCallback = function(onCancel) {\n ;\n};\nPromise.prototype._captureStackTrace = function () {};\nPromise.prototype._attachExtraTrace = function () {};\nPromise.prototype._dereferenceTrace = function () {};\nPromise.prototype._clearCancellationData = function() {};\nPromise.prototype._propagateFrom = function (parent, flags) {\n ;\n ;\n};\n\nfunction cancellationExecute(executor, resolve, reject) {\n var promise = this;\n try {\n executor(resolve, reject, function(onCancel) {\n if (typeof onCancel !== \"function\") {\n throw new TypeError(\"onCancel must be a function, got: \" +\n util.toString(onCancel));\n }\n promise._attachCancellationCallback(onCancel);\n });\n } catch (e) {\n return e;\n }\n}\n\nfunction cancellationAttachCancellationCallback(onCancel) {\n if (!this._isCancellable()) return this;\n\n var previousOnCancel = this._onCancel();\n if (previousOnCancel !== undefined) {\n if (util.isArray(previousOnCancel)) {\n previousOnCancel.push(onCancel);\n } else {\n this._setOnCancel([previousOnCancel, onCancel]);\n }\n } else {\n this._setOnCancel(onCancel);\n }\n}\n\nfunction cancellationOnCancel() {\n return this._onCancelField;\n}\n\nfunction cancellationSetOnCancel(onCancel) {\n this._onCancelField = onCancel;\n}\n\nfunction cancellationClearCancellationData() {\n this._cancellationParent = undefined;\n this._onCancelField = undefined;\n}\n\nfunction cancellationPropagateFrom(parent, flags) {\n if ((flags & 1) !== 0) {\n this._cancellationParent = parent;\n var branchesRemainingToCancel = parent._branchesRemainingToCancel;\n if (branchesRemainingToCancel === undefined) {\n branchesRemainingToCancel = 0;\n }\n parent._branchesRemainingToCancel = branchesRemainingToCancel + 1;\n }\n if ((flags & 2) !== 0 && parent._isBound()) {\n this._setBoundTo(parent._boundTo);\n }\n}\n\nfunction bindingPropagateFrom(parent, flags) {\n if ((flags & 2) !== 0 && parent._isBound()) {\n this._setBoundTo(parent._boundTo);\n }\n}\nvar propagateFromFunction = bindingPropagateFrom;\n\nfunction boundValueFunction() {\n var ret = this._boundTo;\n if (ret !== undefined) {\n if (ret instanceof Promise) {\n if (ret.isFulfilled()) {\n return ret.value();\n } else {\n return undefined;\n }\n }\n }\n return ret;\n}\n\nfunction longStackTracesCaptureStackTrace() {\n this._trace = new CapturedTrace(this._peekContext());\n}\n\nfunction longStackTracesAttachExtraTrace(error, ignoreSelf) {\n if (canAttachTrace(error)) {\n var trace = this._trace;\n if (trace !== undefined) {\n if (ignoreSelf) trace = trace._parent;\n }\n if (trace !== undefined) {\n trace.attachExtraTrace(error);\n } else if (!error.__stackCleaned__) {\n var parsed = parseStackAndMessage(error);\n util.notEnumerableProp(error, \"stack\",\n parsed.message + \"\\n\" + parsed.stack.join(\"\\n\"));\n util.notEnumerableProp(error, \"__stackCleaned__\", true);\n }\n }\n}\n\nfunction longStackTracesDereferenceTrace() {\n this._trace = undefined;\n}\n\nfunction checkForgottenReturns(returnValue, promiseCreated, name, promise,\n parent) {\n if (returnValue === undefined && promiseCreated !== null &&\n wForgottenReturn) {\n if (parent !== undefined && parent._returnedNonUndefined()) return;\n if ((promise._bitField & 65535) === 0) return;\n\n if (name) name = name + \" \";\n var handlerLine = \"\";\n var creatorLine = \"\";\n if (promiseCreated._trace) {\n var traceLines = promiseCreated._trace.stack.split(\"\\n\");\n var stack = cleanStack(traceLines);\n for (var i = stack.length - 1; i >= 0; --i) {\n var line = stack[i];\n if (!nodeFramePattern.test(line)) {\n var lineMatches = line.match(parseLinePattern);\n if (lineMatches) {\n handlerLine = \"at \" + lineMatches[1] +\n \":\" + lineMatches[2] + \":\" + lineMatches[3] + \" \";\n }\n break;\n }\n }\n\n if (stack.length > 0) {\n var firstUserLine = stack[0];\n for (var i = 0; i < traceLines.length; ++i) {\n\n if (traceLines[i] === firstUserLine) {\n if (i > 0) {\n creatorLine = \"\\n\" + traceLines[i - 1];\n }\n break;\n }\n }\n\n }\n }\n var msg = \"a promise was created in a \" + name +\n \"handler \" + handlerLine + \"but was not returned from it, \" +\n \"see http://goo.gl/rRqMUw\" +\n creatorLine;\n promise._warn(msg, true, promiseCreated);\n }\n}\n\nfunction deprecated(name, replacement) {\n var message = name +\n \" is deprecated and will be removed in a future version.\";\n if (replacement) message += \" Use \" + replacement + \" instead.\";\n return warn(message);\n}\n\nfunction warn(message, shouldUseOwnTrace, promise) {\n if (!config.warnings) return;\n var warning = new Warning(message);\n var ctx;\n if (shouldUseOwnTrace) {\n promise._attachExtraTrace(warning);\n } else if (config.longStackTraces && (ctx = Promise._peekContext())) {\n ctx.attachExtraTrace(warning);\n } else {\n var parsed = parseStackAndMessage(warning);\n warning.stack = parsed.message + \"\\n\" + parsed.stack.join(\"\\n\");\n }\n\n if (!activeFireEvent(\"warning\", warning)) {\n formatAndLogError(warning, \"\", true);\n }\n}\n\nfunction reconstructStack(message, stacks) {\n for (var i = 0; i < stacks.length - 1; ++i) {\n stacks[i].push(\"From previous event:\");\n stacks[i] = stacks[i].join(\"\\n\");\n }\n if (i < stacks.length) {\n stacks[i] = stacks[i].join(\"\\n\");\n }\n return message + \"\\n\" + stacks.join(\"\\n\");\n}\n\nfunction removeDuplicateOrEmptyJumps(stacks) {\n for (var i = 0; i < stacks.length; ++i) {\n if (stacks[i].length === 0 ||\n ((i + 1 < stacks.length) && stacks[i][0] === stacks[i+1][0])) {\n stacks.splice(i, 1);\n i--;\n }\n }\n}\n\nfunction removeCommonRoots(stacks) {\n var current = stacks[0];\n for (var i = 1; i < stacks.length; ++i) {\n var prev = stacks[i];\n var currentLastIndex = current.length - 1;\n var currentLastLine = current[currentLastIndex];\n var commonRootMeetPoint = -1;\n\n for (var j = prev.length - 1; j >= 0; --j) {\n if (prev[j] === currentLastLine) {\n commonRootMeetPoint = j;\n break;\n }\n }\n\n for (var j = commonRootMeetPoint; j >= 0; --j) {\n var line = prev[j];\n if (current[currentLastIndex] === line) {\n current.pop();\n currentLastIndex--;\n } else {\n break;\n }\n }\n current = prev;\n }\n}\n\nfunction cleanStack(stack) {\n var ret = [];\n for (var i = 0; i < stack.length; ++i) {\n var line = stack[i];\n var isTraceLine = \" (No stack trace)\" === line ||\n stackFramePattern.test(line);\n var isInternalFrame = isTraceLine && shouldIgnore(line);\n if (isTraceLine && !isInternalFrame) {\n if (indentStackFrames && line.charAt(0) !== \" \") {\n line = \" \" + line;\n }\n ret.push(line);\n }\n }\n return ret;\n}\n\nfunction stackFramesAsArray(error) {\n var stack = error.stack.replace(/\\s+$/g, \"\").split(\"\\n\");\n for (var i = 0; i < stack.length; ++i) {\n var line = stack[i];\n if (\" (No stack trace)\" === line || stackFramePattern.test(line)) {\n break;\n }\n }\n if (i > 0 && error.name != \"SyntaxError\") {\n stack = stack.slice(i);\n }\n return stack;\n}\n\nfunction parseStackAndMessage(error) {\n var stack = error.stack;\n var message = error.toString();\n stack = typeof stack === \"string\" && stack.length > 0\n ? stackFramesAsArray(error) : [\" (No stack trace)\"];\n return {\n message: message,\n stack: error.name == \"SyntaxError\" ? stack : cleanStack(stack)\n };\n}\n\nfunction formatAndLogError(error, title, isSoft) {\n if (typeof console !== \"undefined\") {\n var message;\n if (util.isObject(error)) {\n var stack = error.stack;\n message = title + formatStack(stack, error);\n } else {\n message = title + String(error);\n }\n if (typeof printWarning === \"function\") {\n printWarning(message, isSoft);\n } else if (typeof console.log === \"function\" ||\n typeof console.log === \"object\") {\n console.log(message);\n }\n }\n}\n\nfunction fireRejectionEvent(name, localHandler, reason, promise) {\n var localEventFired = false;\n try {\n if (typeof localHandler === \"function\") {\n localEventFired = true;\n if (name === \"rejectionHandled\") {\n localHandler(promise);\n } else {\n localHandler(reason, promise);\n }\n }\n } catch (e) {\n async.throwLater(e);\n }\n\n if (name === \"unhandledRejection\") {\n if (!activeFireEvent(name, reason, promise) && !localEventFired) {\n formatAndLogError(reason, \"Unhandled rejection \");\n }\n } else {\n activeFireEvent(name, promise);\n }\n}\n\nfunction formatNonError(obj) {\n var str;\n if (typeof obj === \"function\") {\n str = \"[function \" +\n (obj.name || \"anonymous\") +\n \"]\";\n } else {\n str = obj && typeof obj.toString === \"function\"\n ? obj.toString() : util.toString(obj);\n var ruselessToString = /\\[object [a-zA-Z0-9$_]+\\]/;\n if (ruselessToString.test(str)) {\n try {\n var newStr = JSON.stringify(obj);\n str = newStr;\n }\n catch(e) {\n\n }\n }\n if (str.length === 0) {\n str = \"(empty array)\";\n }\n }\n return (\"(<\" + snip(str) + \">, no stack trace)\");\n}\n\nfunction snip(str) {\n var maxChars = 41;\n if (str.length < maxChars) {\n return str;\n }\n return str.substr(0, maxChars - 3) + \"...\";\n}\n\nfunction longStackTracesIsSupported() {\n return typeof captureStackTrace === \"function\";\n}\n\nvar shouldIgnore = function() { return false; };\nvar parseLineInfoRegex = /[\\/<\\(]([^:\\/]+):(\\d+):(?:\\d+)\\)?\\s*$/;\nfunction parseLineInfo(line) {\n var matches = line.match(parseLineInfoRegex);\n if (matches) {\n return {\n fileName: matches[1],\n line: parseInt(matches[2], 10)\n };\n }\n}\n\nfunction setBounds(firstLineError, lastLineError) {\n if (!longStackTracesIsSupported()) return;\n var firstStackLines = (firstLineError.stack || \"\").split(\"\\n\");\n var lastStackLines = (lastLineError.stack || \"\").split(\"\\n\");\n var firstIndex = -1;\n var lastIndex = -1;\n var firstFileName;\n var lastFileName;\n for (var i = 0; i < firstStackLines.length; ++i) {\n var result = parseLineInfo(firstStackLines[i]);\n if (result) {\n firstFileName = result.fileName;\n firstIndex = result.line;\n break;\n }\n }\n for (var i = 0; i < lastStackLines.length; ++i) {\n var result = parseLineInfo(lastStackLines[i]);\n if (result) {\n lastFileName = result.fileName;\n lastIndex = result.line;\n break;\n }\n }\n if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName ||\n firstFileName !== lastFileName || firstIndex >= lastIndex) {\n return;\n }\n\n shouldIgnore = function(line) {\n if (bluebirdFramePattern.test(line)) return true;\n var info = parseLineInfo(line);\n if (info) {\n if (info.fileName === firstFileName &&\n (firstIndex <= info.line && info.line <= lastIndex)) {\n return true;\n }\n }\n return false;\n };\n}\n\nfunction CapturedTrace(parent) {\n this._parent = parent;\n this._promisesCreated = 0;\n var length = this._length = 1 + (parent === undefined ? 0 : parent._length);\n captureStackTrace(this, CapturedTrace);\n if (length > 32) this.uncycle();\n}\nutil.inherits(CapturedTrace, Error);\nContext.CapturedTrace = CapturedTrace;\n\nCapturedTrace.prototype.uncycle = function() {\n var length = this._length;\n if (length < 2) return;\n var nodes = [];\n var stackToIndex = {};\n\n for (var i = 0, node = this; node !== undefined; ++i) {\n nodes.push(node);\n node = node._parent;\n }\n length = this._length = i;\n for (var i = length - 1; i >= 0; --i) {\n var stack = nodes[i].stack;\n if (stackToIndex[stack] === undefined) {\n stackToIndex[stack] = i;\n }\n }\n for (var i = 0; i < length; ++i) {\n var currentStack = nodes[i].stack;\n var index = stackToIndex[currentStack];\n if (index !== undefined && index !== i) {\n if (index > 0) {\n nodes[index - 1]._parent = undefined;\n nodes[index - 1]._length = 1;\n }\n nodes[i]._parent = undefined;\n nodes[i]._length = 1;\n var cycleEdgeNode = i > 0 ? nodes[i - 1] : this;\n\n if (index < length - 1) {\n cycleEdgeNode._parent = nodes[index + 1];\n cycleEdgeNode._parent.uncycle();\n cycleEdgeNode._length =\n cycleEdgeNode._parent._length + 1;\n } else {\n cycleEdgeNode._parent = undefined;\n cycleEdgeNode._length = 1;\n }\n var currentChildLength = cycleEdgeNode._length + 1;\n for (var j = i - 2; j >= 0; --j) {\n nodes[j]._length = currentChildLength;\n currentChildLength++;\n }\n return;\n }\n }\n};\n\nCapturedTrace.prototype.attachExtraTrace = function(error) {\n if (error.__stackCleaned__) return;\n this.uncycle();\n var parsed = parseStackAndMessage(error);\n var message = parsed.message;\n var stacks = [parsed.stack];\n\n var trace = this;\n while (trace !== undefined) {\n stacks.push(cleanStack(trace.stack.split(\"\\n\")));\n trace = trace._parent;\n }\n removeCommonRoots(stacks);\n removeDuplicateOrEmptyJumps(stacks);\n util.notEnumerableProp(error, \"stack\", reconstructStack(message, stacks));\n util.notEnumerableProp(error, \"__stackCleaned__\", true);\n};\n\nvar captureStackTrace = (function stackDetection() {\n var v8stackFramePattern = /^\\s*at\\s*/;\n var v8stackFormatter = function(stack, error) {\n if (typeof stack === \"string\") return stack;\n\n if (error.name !== undefined &&\n error.message !== undefined) {\n return error.toString();\n }\n return formatNonError(error);\n };\n\n if (typeof Error.stackTraceLimit === \"number\" &&\n typeof Error.captureStackTrace === \"function\") {\n Error.stackTraceLimit += 6;\n stackFramePattern = v8stackFramePattern;\n formatStack = v8stackFormatter;\n var captureStackTrace = Error.captureStackTrace;\n\n shouldIgnore = function(line) {\n return bluebirdFramePattern.test(line);\n };\n return function(receiver, ignoreUntil) {\n Error.stackTraceLimit += 6;\n captureStackTrace(receiver, ignoreUntil);\n Error.stackTraceLimit -= 6;\n };\n }\n var err = new Error();\n\n if (typeof err.stack === \"string\" &&\n err.stack.split(\"\\n\")[0].indexOf(\"stackDetection@\") >= 0) {\n stackFramePattern = /@/;\n formatStack = v8stackFormatter;\n indentStackFrames = true;\n return function captureStackTrace(o) {\n o.stack = new Error().stack;\n };\n }\n\n var hasStackAfterThrow;\n try { throw new Error(); }\n catch(e) {\n hasStackAfterThrow = (\"stack\" in e);\n }\n if (!(\"stack\" in err) && hasStackAfterThrow &&\n typeof Error.stackTraceLimit === \"number\") {\n stackFramePattern = v8stackFramePattern;\n formatStack = v8stackFormatter;\n return function captureStackTrace(o) {\n Error.stackTraceLimit += 6;\n try { throw new Error(); }\n catch(e) { o.stack = e.stack; }\n Error.stackTraceLimit -= 6;\n };\n }\n\n formatStack = function(stack, error) {\n if (typeof stack === \"string\") return stack;\n\n if ((typeof error === \"object\" ||\n typeof error === \"function\") &&\n error.name !== undefined &&\n error.message !== undefined) {\n return error.toString();\n }\n return formatNonError(error);\n };\n\n return null;\n\n})([]);\n\nif (typeof console !== \"undefined\" && typeof console.warn !== \"undefined\") {\n printWarning = function (message) {\n console.warn(message);\n };\n if (util.isNode && process.stderr.isTTY) {\n printWarning = function(message, isSoft) {\n var color = isSoft ? \"\\u001b[33m\" : \"\\u001b[31m\";\n console.warn(color + message + \"\\u001b[0m\\n\");\n };\n } else if (!util.isNode && typeof (new Error().stack) === \"string\") {\n printWarning = function(message, isSoft) {\n console.warn(\"%c\" + message,\n isSoft ? \"color: darkorange\" : \"color: red\");\n };\n }\n}\n\nvar config = {\n warnings: warnings,\n longStackTraces: false,\n cancellation: false,\n monitoring: false,\n asyncHooks: false\n};\n\nif (longStackTraces) Promise.longStackTraces();\n\nreturn {\n asyncHooks: function() {\n return config.asyncHooks;\n },\n longStackTraces: function() {\n return config.longStackTraces;\n },\n warnings: function() {\n return config.warnings;\n },\n cancellation: function() {\n return config.cancellation;\n },\n monitoring: function() {\n return config.monitoring;\n },\n propagateFromFunction: function() {\n return propagateFromFunction;\n },\n boundValueFunction: function() {\n return boundValueFunction;\n },\n checkForgottenReturns: checkForgottenReturns,\n setBounds: setBounds,\n warn: warn,\n deprecated: deprecated,\n CapturedTrace: CapturedTrace,\n fireDomEvent: fireDomEvent,\n fireGlobalEvent: fireGlobalEvent\n};\n};\n\n},{\"./errors\":12,\"./es5\":13,\"./util\":36}],10:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise) {\nfunction returner() {\n return this.value;\n}\nfunction thrower() {\n throw this.reason;\n}\n\nPromise.prototype[\"return\"] =\nPromise.prototype.thenReturn = function (value) {\n if (value instanceof Promise) value.suppressUnhandledRejections();\n return this._then(\n returner, undefined, undefined, {value: value}, undefined);\n};\n\nPromise.prototype[\"throw\"] =\nPromise.prototype.thenThrow = function (reason) {\n return this._then(\n thrower, undefined, undefined, {reason: reason}, undefined);\n};\n\nPromise.prototype.catchThrow = function (reason) {\n if (arguments.length <= 1) {\n return this._then(\n undefined, thrower, undefined, {reason: reason}, undefined);\n } else {\n var _reason = arguments[1];\n var handler = function() {throw _reason;};\n return this.caught(reason, handler);\n }\n};\n\nPromise.prototype.catchReturn = function (value) {\n if (arguments.length <= 1) {\n if (value instanceof Promise) value.suppressUnhandledRejections();\n return this._then(\n undefined, returner, undefined, {value: value}, undefined);\n } else {\n var _value = arguments[1];\n if (_value instanceof Promise) _value.suppressUnhandledRejections();\n var handler = function() {return _value;};\n return this.caught(value, handler);\n }\n};\n};\n\n},{}],11:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar PromiseReduce = Promise.reduce;\nvar PromiseAll = Promise.all;\n\nfunction promiseAllThis() {\n return PromiseAll(this);\n}\n\nfunction PromiseMapSeries(promises, fn) {\n return PromiseReduce(promises, fn, INTERNAL, INTERNAL);\n}\n\nPromise.prototype.each = function (fn) {\n return PromiseReduce(this, fn, INTERNAL, 0)\n ._then(promiseAllThis, undefined, undefined, this, undefined);\n};\n\nPromise.prototype.mapSeries = function (fn) {\n return PromiseReduce(this, fn, INTERNAL, INTERNAL);\n};\n\nPromise.each = function (promises, fn) {\n return PromiseReduce(promises, fn, INTERNAL, 0)\n ._then(promiseAllThis, undefined, undefined, promises, undefined);\n};\n\nPromise.mapSeries = PromiseMapSeries;\n};\n\n\n},{}],12:[function(_dereq_,module,exports){\n\"use strict\";\nvar es5 = _dereq_(\"./es5\");\nvar Objectfreeze = es5.freeze;\nvar util = _dereq_(\"./util\");\nvar inherits = util.inherits;\nvar notEnumerableProp = util.notEnumerableProp;\n\nfunction subError(nameProperty, defaultMessage) {\n function SubError(message) {\n if (!(this instanceof SubError)) return new SubError(message);\n notEnumerableProp(this, \"message\",\n typeof message === \"string\" ? message : defaultMessage);\n notEnumerableProp(this, \"name\", nameProperty);\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n Error.call(this);\n }\n }\n inherits(SubError, Error);\n return SubError;\n}\n\nvar _TypeError, _RangeError;\nvar Warning = subError(\"Warning\", \"warning\");\nvar CancellationError = subError(\"CancellationError\", \"cancellation error\");\nvar TimeoutError = subError(\"TimeoutError\", \"timeout error\");\nvar AggregateError = subError(\"AggregateError\", \"aggregate error\");\ntry {\n _TypeError = TypeError;\n _RangeError = RangeError;\n} catch(e) {\n _TypeError = subError(\"TypeError\", \"type error\");\n _RangeError = subError(\"RangeError\", \"range error\");\n}\n\nvar methods = (\"join pop push shift unshift slice filter forEach some \" +\n \"every map indexOf lastIndexOf reduce reduceRight sort reverse\").split(\" \");\n\nfor (var i = 0; i < methods.length; ++i) {\n if (typeof Array.prototype[methods[i]] === \"function\") {\n AggregateError.prototype[methods[i]] = Array.prototype[methods[i]];\n }\n}\n\nes5.defineProperty(AggregateError.prototype, \"length\", {\n value: 0,\n configurable: false,\n writable: true,\n enumerable: true\n});\nAggregateError.prototype[\"isOperational\"] = true;\nvar level = 0;\nAggregateError.prototype.toString = function() {\n var indent = Array(level * 4 + 1).join(\" \");\n var ret = \"\\n\" + indent + \"AggregateError of:\" + \"\\n\";\n level++;\n indent = Array(level * 4 + 1).join(\" \");\n for (var i = 0; i < this.length; ++i) {\n var str = this[i] === this ? \"[Circular AggregateError]\" : this[i] + \"\";\n var lines = str.split(\"\\n\");\n for (var j = 0; j < lines.length; ++j) {\n lines[j] = indent + lines[j];\n }\n str = lines.join(\"\\n\");\n ret += str + \"\\n\";\n }\n level--;\n return ret;\n};\n\nfunction OperationalError(message) {\n if (!(this instanceof OperationalError))\n return new OperationalError(message);\n notEnumerableProp(this, \"name\", \"OperationalError\");\n notEnumerableProp(this, \"message\", message);\n this.cause = message;\n this[\"isOperational\"] = true;\n\n if (message instanceof Error) {\n notEnumerableProp(this, \"message\", message.message);\n notEnumerableProp(this, \"stack\", message.stack);\n } else if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n}\ninherits(OperationalError, Error);\n\nvar errorTypes = Error[\"__BluebirdErrorTypes__\"];\nif (!errorTypes) {\n errorTypes = Objectfreeze({\n CancellationError: CancellationError,\n TimeoutError: TimeoutError,\n OperationalError: OperationalError,\n RejectionError: OperationalError,\n AggregateError: AggregateError\n });\n es5.defineProperty(Error, \"__BluebirdErrorTypes__\", {\n value: errorTypes,\n writable: false,\n enumerable: false,\n configurable: false\n });\n}\n\nmodule.exports = {\n Error: Error,\n TypeError: _TypeError,\n RangeError: _RangeError,\n CancellationError: errorTypes.CancellationError,\n OperationalError: errorTypes.OperationalError,\n TimeoutError: errorTypes.TimeoutError,\n AggregateError: errorTypes.AggregateError,\n Warning: Warning\n};\n\n},{\"./es5\":13,\"./util\":36}],13:[function(_dereq_,module,exports){\nvar isES5 = (function(){\n \"use strict\";\n return this === undefined;\n})();\n\nif (isES5) {\n module.exports = {\n freeze: Object.freeze,\n defineProperty: Object.defineProperty,\n getDescriptor: Object.getOwnPropertyDescriptor,\n keys: Object.keys,\n names: Object.getOwnPropertyNames,\n getPrototypeOf: Object.getPrototypeOf,\n isArray: Array.isArray,\n isES5: isES5,\n propertyIsWritable: function(obj, prop) {\n var descriptor = Object.getOwnPropertyDescriptor(obj, prop);\n return !!(!descriptor || descriptor.writable || descriptor.set);\n }\n };\n} else {\n var has = {}.hasOwnProperty;\n var str = {}.toString;\n var proto = {}.constructor.prototype;\n\n var ObjectKeys = function (o) {\n var ret = [];\n for (var key in o) {\n if (has.call(o, key)) {\n ret.push(key);\n }\n }\n return ret;\n };\n\n var ObjectGetDescriptor = function(o, key) {\n return {value: o[key]};\n };\n\n var ObjectDefineProperty = function (o, key, desc) {\n o[key] = desc.value;\n return o;\n };\n\n var ObjectFreeze = function (obj) {\n return obj;\n };\n\n var ObjectGetPrototypeOf = function (obj) {\n try {\n return Object(obj).constructor.prototype;\n }\n catch (e) {\n return proto;\n }\n };\n\n var ArrayIsArray = function (obj) {\n try {\n return str.call(obj) === \"[object Array]\";\n }\n catch(e) {\n return false;\n }\n };\n\n module.exports = {\n isArray: ArrayIsArray,\n keys: ObjectKeys,\n names: ObjectKeys,\n defineProperty: ObjectDefineProperty,\n getDescriptor: ObjectGetDescriptor,\n freeze: ObjectFreeze,\n getPrototypeOf: ObjectGetPrototypeOf,\n isES5: isES5,\n propertyIsWritable: function() {\n return true;\n }\n };\n}\n\n},{}],14:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar PromiseMap = Promise.map;\n\nPromise.prototype.filter = function (fn, options) {\n return PromiseMap(this, fn, options, INTERNAL);\n};\n\nPromise.filter = function (promises, fn, options) {\n return PromiseMap(promises, fn, options, INTERNAL);\n};\n};\n\n},{}],15:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, tryConvertToPromise, NEXT_FILTER) {\nvar util = _dereq_(\"./util\");\nvar CancellationError = Promise.CancellationError;\nvar errorObj = util.errorObj;\nvar catchFilter = _dereq_(\"./catch_filter\")(NEXT_FILTER);\n\nfunction PassThroughHandlerContext(promise, type, handler) {\n this.promise = promise;\n this.type = type;\n this.handler = handler;\n this.called = false;\n this.cancelPromise = null;\n}\n\nPassThroughHandlerContext.prototype.isFinallyHandler = function() {\n return this.type === 0;\n};\n\nfunction FinallyHandlerCancelReaction(finallyHandler) {\n this.finallyHandler = finallyHandler;\n}\n\nFinallyHandlerCancelReaction.prototype._resultCancelled = function() {\n checkCancel(this.finallyHandler);\n};\n\nfunction checkCancel(ctx, reason) {\n if (ctx.cancelPromise != null) {\n if (arguments.length > 1) {\n ctx.cancelPromise._reject(reason);\n } else {\n ctx.cancelPromise._cancel();\n }\n ctx.cancelPromise = null;\n return true;\n }\n return false;\n}\n\nfunction succeed() {\n return finallyHandler.call(this, this.promise._target()._settledValue());\n}\nfunction fail(reason) {\n if (checkCancel(this, reason)) return;\n errorObj.e = reason;\n return errorObj;\n}\nfunction finallyHandler(reasonOrValue) {\n var promise = this.promise;\n var handler = this.handler;\n\n if (!this.called) {\n this.called = true;\n var ret = this.isFinallyHandler()\n ? handler.call(promise._boundValue())\n : handler.call(promise._boundValue(), reasonOrValue);\n if (ret === NEXT_FILTER) {\n return ret;\n } else if (ret !== undefined) {\n promise._setReturnedNonUndefined();\n var maybePromise = tryConvertToPromise(ret, promise);\n if (maybePromise instanceof Promise) {\n if (this.cancelPromise != null) {\n if (maybePromise._isCancelled()) {\n var reason =\n new CancellationError(\"late cancellation observer\");\n promise._attachExtraTrace(reason);\n errorObj.e = reason;\n return errorObj;\n } else if (maybePromise.isPending()) {\n maybePromise._attachCancellationCallback(\n new FinallyHandlerCancelReaction(this));\n }\n }\n return maybePromise._then(\n succeed, fail, undefined, this, undefined);\n }\n }\n }\n\n if (promise.isRejected()) {\n checkCancel(this);\n errorObj.e = reasonOrValue;\n return errorObj;\n } else {\n checkCancel(this);\n return reasonOrValue;\n }\n}\n\nPromise.prototype._passThrough = function(handler, type, success, fail) {\n if (typeof handler !== \"function\") return this.then();\n return this._then(success,\n fail,\n undefined,\n new PassThroughHandlerContext(this, type, handler),\n undefined);\n};\n\nPromise.prototype.lastly =\nPromise.prototype[\"finally\"] = function (handler) {\n return this._passThrough(handler,\n 0,\n finallyHandler,\n finallyHandler);\n};\n\n\nPromise.prototype.tap = function (handler) {\n return this._passThrough(handler, 1, finallyHandler);\n};\n\nPromise.prototype.tapCatch = function (handlerOrPredicate) {\n var len = arguments.length;\n if(len === 1) {\n return this._passThrough(handlerOrPredicate,\n 1,\n undefined,\n finallyHandler);\n } else {\n var catchInstances = new Array(len - 1),\n j = 0, i;\n for (i = 0; i < len - 1; ++i) {\n var item = arguments[i];\n if (util.isObject(item)) {\n catchInstances[j++] = item;\n } else {\n return Promise.reject(new TypeError(\n \"tapCatch statement predicate: \"\n + \"expecting an object but got \" + util.classString(item)\n ));\n }\n }\n catchInstances.length = j;\n var handler = arguments[i];\n return this._passThrough(catchFilter(catchInstances, handler, this),\n 1,\n undefined,\n finallyHandler);\n }\n\n};\n\nreturn PassThroughHandlerContext;\n};\n\n},{\"./catch_filter\":7,\"./util\":36}],16:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise,\n apiRejection,\n INTERNAL,\n tryConvertToPromise,\n Proxyable,\n debug) {\nvar errors = _dereq_(\"./errors\");\nvar TypeError = errors.TypeError;\nvar util = _dereq_(\"./util\");\nvar errorObj = util.errorObj;\nvar tryCatch = util.tryCatch;\nvar yieldHandlers = [];\n\nfunction promiseFromYieldHandler(value, yieldHandlers, traceParent) {\n for (var i = 0; i < yieldHandlers.length; ++i) {\n traceParent._pushContext();\n var result = tryCatch(yieldHandlers[i])(value);\n traceParent._popContext();\n if (result === errorObj) {\n traceParent._pushContext();\n var ret = Promise.reject(errorObj.e);\n traceParent._popContext();\n return ret;\n }\n var maybePromise = tryConvertToPromise(result, traceParent);\n if (maybePromise instanceof Promise) return maybePromise;\n }\n return null;\n}\n\nfunction PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) {\n if (debug.cancellation()) {\n var internal = new Promise(INTERNAL);\n var _finallyPromise = this._finallyPromise = new Promise(INTERNAL);\n this._promise = internal.lastly(function() {\n return _finallyPromise;\n });\n internal._captureStackTrace();\n internal._setOnCancel(this);\n } else {\n var promise = this._promise = new Promise(INTERNAL);\n promise._captureStackTrace();\n }\n this._stack = stack;\n this._generatorFunction = generatorFunction;\n this._receiver = receiver;\n this._generator = undefined;\n this._yieldHandlers = typeof yieldHandler === \"function\"\n ? [yieldHandler].concat(yieldHandlers)\n : yieldHandlers;\n this._yieldedPromise = null;\n this._cancellationPhase = false;\n}\nutil.inherits(PromiseSpawn, Proxyable);\n\nPromiseSpawn.prototype._isResolved = function() {\n return this._promise === null;\n};\n\nPromiseSpawn.prototype._cleanup = function() {\n this._promise = this._generator = null;\n if (debug.cancellation() && this._finallyPromise !== null) {\n this._finallyPromise._fulfill();\n this._finallyPromise = null;\n }\n};\n\nPromiseSpawn.prototype._promiseCancelled = function() {\n if (this._isResolved()) return;\n var implementsReturn = typeof this._generator[\"return\"] !== \"undefined\";\n\n var result;\n if (!implementsReturn) {\n var reason = new Promise.CancellationError(\n \"generator .return() sentinel\");\n Promise.coroutine.returnSentinel = reason;\n this._promise._attachExtraTrace(reason);\n this._promise._pushContext();\n result = tryCatch(this._generator[\"throw\"]).call(this._generator,\n reason);\n this._promise._popContext();\n } else {\n this._promise._pushContext();\n result = tryCatch(this._generator[\"return\"]).call(this._generator,\n undefined);\n this._promise._popContext();\n }\n this._cancellationPhase = true;\n this._yieldedPromise = null;\n this._continue(result);\n};\n\nPromiseSpawn.prototype._promiseFulfilled = function(value) {\n this._yieldedPromise = null;\n this._promise._pushContext();\n var result = tryCatch(this._generator.next).call(this._generator, value);\n this._promise._popContext();\n this._continue(result);\n};\n\nPromiseSpawn.prototype._promiseRejected = function(reason) {\n this._yieldedPromise = null;\n this._promise._attachExtraTrace(reason);\n this._promise._pushContext();\n var result = tryCatch(this._generator[\"throw\"])\n .call(this._generator, reason);\n this._promise._popContext();\n this._continue(result);\n};\n\nPromiseSpawn.prototype._resultCancelled = function() {\n if (this._yieldedPromise instanceof Promise) {\n var promise = this._yieldedPromise;\n this._yieldedPromise = null;\n promise.cancel();\n }\n};\n\nPromiseSpawn.prototype.promise = function () {\n return this._promise;\n};\n\nPromiseSpawn.prototype._run = function () {\n this._generator = this._generatorFunction.call(this._receiver);\n this._receiver =\n this._generatorFunction = undefined;\n this._promiseFulfilled(undefined);\n};\n\nPromiseSpawn.prototype._continue = function (result) {\n var promise = this._promise;\n if (result === errorObj) {\n this._cleanup();\n if (this._cancellationPhase) {\n return promise.cancel();\n } else {\n return promise._rejectCallback(result.e, false);\n }\n }\n\n var value = result.value;\n if (result.done === true) {\n this._cleanup();\n if (this._cancellationPhase) {\n return promise.cancel();\n } else {\n return promise._resolveCallback(value);\n }\n } else {\n var maybePromise = tryConvertToPromise(value, this._promise);\n if (!(maybePromise instanceof Promise)) {\n maybePromise =\n promiseFromYieldHandler(maybePromise,\n this._yieldHandlers,\n this._promise);\n if (maybePromise === null) {\n this._promiseRejected(\n new TypeError(\n \"A value %s was yielded that could not be treated as a promise\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\\u000a\".replace(\"%s\", String(value)) +\n \"From coroutine:\\u000a\" +\n this._stack.split(\"\\n\").slice(1, -7).join(\"\\n\")\n )\n );\n return;\n }\n }\n maybePromise = maybePromise._target();\n var bitField = maybePromise._bitField;\n ;\n if (((bitField & 50397184) === 0)) {\n this._yieldedPromise = maybePromise;\n maybePromise._proxy(this, null);\n } else if (((bitField & 33554432) !== 0)) {\n Promise._async.invoke(\n this._promiseFulfilled, this, maybePromise._value()\n );\n } else if (((bitField & 16777216) !== 0)) {\n Promise._async.invoke(\n this._promiseRejected, this, maybePromise._reason()\n );\n } else {\n this._promiseCancelled();\n }\n }\n};\n\nPromise.coroutine = function (generatorFunction, options) {\n if (typeof generatorFunction !== \"function\") {\n throw new TypeError(\"generatorFunction must be a function\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n var yieldHandler = Object(options).yieldHandler;\n var PromiseSpawn$ = PromiseSpawn;\n var stack = new Error().stack;\n return function () {\n var generator = generatorFunction.apply(this, arguments);\n var spawn = new PromiseSpawn$(undefined, undefined, yieldHandler,\n stack);\n var ret = spawn.promise();\n spawn._generator = generator;\n spawn._promiseFulfilled(undefined);\n return ret;\n };\n};\n\nPromise.coroutine.addYieldHandler = function(fn) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n yieldHandlers.push(fn);\n};\n\nPromise.spawn = function (generatorFunction) {\n debug.deprecated(\"Promise.spawn()\", \"Promise.coroutine()\");\n if (typeof generatorFunction !== \"function\") {\n return apiRejection(\"generatorFunction must be a function\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n var spawn = new PromiseSpawn(generatorFunction, this);\n var ret = spawn.promise();\n spawn._run(Promise.spawn);\n return ret;\n};\n};\n\n},{\"./errors\":12,\"./util\":36}],17:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports =\nfunction(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async) {\nvar util = _dereq_(\"./util\");\nvar canEvaluate = util.canEvaluate;\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\nvar reject;\n\nif (!true) {\nif (canEvaluate) {\n var thenCallback = function(i) {\n return new Function(\"value\", \"holder\", \" \\n\\\n 'use strict'; \\n\\\n holder.pIndex = value; \\n\\\n holder.checkFulfillment(this); \\n\\\n \".replace(/Index/g, i));\n };\n\n var promiseSetter = function(i) {\n return new Function(\"promise\", \"holder\", \" \\n\\\n 'use strict'; \\n\\\n holder.pIndex = promise; \\n\\\n \".replace(/Index/g, i));\n };\n\n var generateHolderClass = function(total) {\n var props = new Array(total);\n for (var i = 0; i < props.length; ++i) {\n props[i] = \"this.p\" + (i+1);\n }\n var assignment = props.join(\" = \") + \" = null;\";\n var cancellationCode= \"var promise;\\n\" + props.map(function(prop) {\n return \" \\n\\\n promise = \" + prop + \"; \\n\\\n if (promise instanceof Promise) { \\n\\\n promise.cancel(); \\n\\\n } \\n\\\n \";\n }).join(\"\\n\");\n var passedArguments = props.join(\", \");\n var name = \"Holder$\" + total;\n\n\n var code = \"return function(tryCatch, errorObj, Promise, async) { \\n\\\n 'use strict'; \\n\\\n function [TheName](fn) { \\n\\\n [TheProperties] \\n\\\n this.fn = fn; \\n\\\n this.asyncNeeded = true; \\n\\\n this.now = 0; \\n\\\n } \\n\\\n \\n\\\n [TheName].prototype._callFunction = function(promise) { \\n\\\n promise._pushContext(); \\n\\\n var ret = tryCatch(this.fn)([ThePassedArguments]); \\n\\\n promise._popContext(); \\n\\\n if (ret === errorObj) { \\n\\\n promise._rejectCallback(ret.e, false); \\n\\\n } else { \\n\\\n promise._resolveCallback(ret); \\n\\\n } \\n\\\n }; \\n\\\n \\n\\\n [TheName].prototype.checkFulfillment = function(promise) { \\n\\\n var now = ++this.now; \\n\\\n if (now === [TheTotal]) { \\n\\\n if (this.asyncNeeded) { \\n\\\n async.invoke(this._callFunction, this, promise); \\n\\\n } else { \\n\\\n this._callFunction(promise); \\n\\\n } \\n\\\n \\n\\\n } \\n\\\n }; \\n\\\n \\n\\\n [TheName].prototype._resultCancelled = function() { \\n\\\n [CancellationCode] \\n\\\n }; \\n\\\n \\n\\\n return [TheName]; \\n\\\n }(tryCatch, errorObj, Promise, async); \\n\\\n \";\n\n code = code.replace(/\\[TheName\\]/g, name)\n .replace(/\\[TheTotal\\]/g, total)\n .replace(/\\[ThePassedArguments\\]/g, passedArguments)\n .replace(/\\[TheProperties\\]/g, assignment)\n .replace(/\\[CancellationCode\\]/g, cancellationCode);\n\n return new Function(\"tryCatch\", \"errorObj\", \"Promise\", \"async\", code)\n (tryCatch, errorObj, Promise, async);\n };\n\n var holderClasses = [];\n var thenCallbacks = [];\n var promiseSetters = [];\n\n for (var i = 0; i < 8; ++i) {\n holderClasses.push(generateHolderClass(i + 1));\n thenCallbacks.push(thenCallback(i + 1));\n promiseSetters.push(promiseSetter(i + 1));\n }\n\n reject = function (reason) {\n this._reject(reason);\n };\n}}\n\nPromise.join = function () {\n var last = arguments.length - 1;\n var fn;\n if (last > 0 && typeof arguments[last] === \"function\") {\n fn = arguments[last];\n if (!true) {\n if (last <= 8 && canEvaluate) {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n var HolderClass = holderClasses[last - 1];\n var holder = new HolderClass(fn);\n var callbacks = thenCallbacks;\n\n for (var i = 0; i < last; ++i) {\n var maybePromise = tryConvertToPromise(arguments[i], ret);\n if (maybePromise instanceof Promise) {\n maybePromise = maybePromise._target();\n var bitField = maybePromise._bitField;\n ;\n if (((bitField & 50397184) === 0)) {\n maybePromise._then(callbacks[i], reject,\n undefined, ret, holder);\n promiseSetters[i](maybePromise, holder);\n holder.asyncNeeded = false;\n } else if (((bitField & 33554432) !== 0)) {\n callbacks[i].call(ret,\n maybePromise._value(), holder);\n } else if (((bitField & 16777216) !== 0)) {\n ret._reject(maybePromise._reason());\n } else {\n ret._cancel();\n }\n } else {\n callbacks[i].call(ret, maybePromise, holder);\n }\n }\n\n if (!ret._isFateSealed()) {\n if (holder.asyncNeeded) {\n var context = Promise._getContext();\n holder.fn = util.contextBind(context, holder.fn);\n }\n ret._setAsyncGuaranteed();\n ret._setOnCancel(holder);\n }\n return ret;\n }\n }\n }\n var args = [].slice.call(arguments);;\n if (fn) args.pop();\n var ret = new PromiseArray(args).promise();\n return fn !== undefined ? ret.spread(fn) : ret;\n};\n\n};\n\n},{\"./util\":36}],18:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise,\n PromiseArray,\n apiRejection,\n tryConvertToPromise,\n INTERNAL,\n debug) {\nvar util = _dereq_(\"./util\");\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\nvar async = Promise._async;\n\nfunction MappingPromiseArray(promises, fn, limit, _filter) {\n this.constructor$(promises);\n this._promise._captureStackTrace();\n var context = Promise._getContext();\n this._callback = util.contextBind(context, fn);\n this._preservedValues = _filter === INTERNAL\n ? new Array(this.length())\n : null;\n this._limit = limit;\n this._inFlight = 0;\n this._queue = [];\n async.invoke(this._asyncInit, this, undefined);\n if (util.isArray(promises)) {\n for (var i = 0; i < promises.length; ++i) {\n var maybePromise = promises[i];\n if (maybePromise instanceof Promise) {\n maybePromise.suppressUnhandledRejections();\n }\n }\n }\n}\nutil.inherits(MappingPromiseArray, PromiseArray);\n\nMappingPromiseArray.prototype._asyncInit = function() {\n this._init$(undefined, -2);\n};\n\nMappingPromiseArray.prototype._init = function () {};\n\nMappingPromiseArray.prototype._promiseFulfilled = function (value, index) {\n var values = this._values;\n var length = this.length();\n var preservedValues = this._preservedValues;\n var limit = this._limit;\n\n if (index < 0) {\n index = (index * -1) - 1;\n values[index] = value;\n if (limit >= 1) {\n this._inFlight--;\n this._drainQueue();\n if (this._isResolved()) return true;\n }\n } else {\n if (limit >= 1 && this._inFlight >= limit) {\n values[index] = value;\n this._queue.push(index);\n return false;\n }\n if (preservedValues !== null) preservedValues[index] = value;\n\n var promise = this._promise;\n var callback = this._callback;\n var receiver = promise._boundValue();\n promise._pushContext();\n var ret = tryCatch(callback).call(receiver, value, index, length);\n var promiseCreated = promise._popContext();\n debug.checkForgottenReturns(\n ret,\n promiseCreated,\n preservedValues !== null ? \"Promise.filter\" : \"Promise.map\",\n promise\n );\n if (ret === errorObj) {\n this._reject(ret.e);\n return true;\n }\n\n var maybePromise = tryConvertToPromise(ret, this._promise);\n if (maybePromise instanceof Promise) {\n maybePromise = maybePromise._target();\n var bitField = maybePromise._bitField;\n ;\n if (((bitField & 50397184) === 0)) {\n if (limit >= 1) this._inFlight++;\n values[index] = maybePromise;\n maybePromise._proxy(this, (index + 1) * -1);\n return false;\n } else if (((bitField & 33554432) !== 0)) {\n ret = maybePromise._value();\n } else if (((bitField & 16777216) !== 0)) {\n this._reject(maybePromise._reason());\n return true;\n } else {\n this._cancel();\n return true;\n }\n }\n values[index] = ret;\n }\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= length) {\n if (preservedValues !== null) {\n this._filter(values, preservedValues);\n } else {\n this._resolve(values);\n }\n return true;\n }\n return false;\n};\n\nMappingPromiseArray.prototype._drainQueue = function () {\n var queue = this._queue;\n var limit = this._limit;\n var values = this._values;\n while (queue.length > 0 && this._inFlight < limit) {\n if (this._isResolved()) return;\n var index = queue.pop();\n this._promiseFulfilled(values[index], index);\n }\n};\n\nMappingPromiseArray.prototype._filter = function (booleans, values) {\n var len = values.length;\n var ret = new Array(len);\n var j = 0;\n for (var i = 0; i < len; ++i) {\n if (booleans[i]) ret[j++] = values[i];\n }\n ret.length = j;\n this._resolve(ret);\n};\n\nMappingPromiseArray.prototype.preservedValues = function () {\n return this._preservedValues;\n};\n\nfunction map(promises, fn, options, _filter) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n\n var limit = 0;\n if (options !== undefined) {\n if (typeof options === \"object\" && options !== null) {\n if (typeof options.concurrency !== \"number\") {\n return Promise.reject(\n new TypeError(\"'concurrency' must be a number but it is \" +\n util.classString(options.concurrency)));\n }\n limit = options.concurrency;\n } else {\n return Promise.reject(new TypeError(\n \"options argument must be an object but it is \" +\n util.classString(options)));\n }\n }\n limit = typeof limit === \"number\" &&\n isFinite(limit) && limit >= 1 ? limit : 0;\n return new MappingPromiseArray(promises, fn, limit, _filter).promise();\n}\n\nPromise.prototype.map = function (fn, options) {\n return map(this, fn, options, null);\n};\n\nPromise.map = function (promises, fn, options, _filter) {\n return map(promises, fn, options, _filter);\n};\n\n\n};\n\n},{\"./util\":36}],19:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports =\nfunction(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) {\nvar util = _dereq_(\"./util\");\nvar tryCatch = util.tryCatch;\n\nPromise.method = function (fn) {\n if (typeof fn !== \"function\") {\n throw new Promise.TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n return function () {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._pushContext();\n var value = tryCatch(fn).apply(this, arguments);\n var promiseCreated = ret._popContext();\n debug.checkForgottenReturns(\n value, promiseCreated, \"Promise.method\", ret);\n ret._resolveFromSyncValue(value);\n return ret;\n };\n};\n\nPromise.attempt = Promise[\"try\"] = function (fn) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._pushContext();\n var value;\n if (arguments.length > 1) {\n debug.deprecated(\"calling Promise.try with more than 1 argument\");\n var arg = arguments[1];\n var ctx = arguments[2];\n value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg)\n : tryCatch(fn).call(ctx, arg);\n } else {\n value = tryCatch(fn)();\n }\n var promiseCreated = ret._popContext();\n debug.checkForgottenReturns(\n value, promiseCreated, \"Promise.try\", ret);\n ret._resolveFromSyncValue(value);\n return ret;\n};\n\nPromise.prototype._resolveFromSyncValue = function (value) {\n if (value === util.errorObj) {\n this._rejectCallback(value.e, false);\n } else {\n this._resolveCallback(value, true);\n }\n};\n};\n\n},{\"./util\":36}],20:[function(_dereq_,module,exports){\n\"use strict\";\nvar util = _dereq_(\"./util\");\nvar maybeWrapAsError = util.maybeWrapAsError;\nvar errors = _dereq_(\"./errors\");\nvar OperationalError = errors.OperationalError;\nvar es5 = _dereq_(\"./es5\");\n\nfunction isUntypedError(obj) {\n return obj instanceof Error &&\n es5.getPrototypeOf(obj) === Error.prototype;\n}\n\nvar rErrorKey = /^(?:name|message|stack|cause)$/;\nfunction wrapAsOperationalError(obj) {\n var ret;\n if (isUntypedError(obj)) {\n ret = new OperationalError(obj);\n ret.name = obj.name;\n ret.message = obj.message;\n ret.stack = obj.stack;\n var keys = es5.keys(obj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!rErrorKey.test(key)) {\n ret[key] = obj[key];\n }\n }\n return ret;\n }\n util.markAsOriginatingFromRejection(obj);\n return obj;\n}\n\nfunction nodebackForPromise(promise, multiArgs) {\n return function(err, value) {\n if (promise === null) return;\n if (err) {\n var wrapped = wrapAsOperationalError(maybeWrapAsError(err));\n promise._attachExtraTrace(wrapped);\n promise._reject(wrapped);\n } else if (!multiArgs) {\n promise._fulfill(value);\n } else {\n var args = [].slice.call(arguments, 1);;\n promise._fulfill(args);\n }\n promise = null;\n };\n}\n\nmodule.exports = nodebackForPromise;\n\n},{\"./errors\":12,\"./es5\":13,\"./util\":36}],21:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise) {\nvar util = _dereq_(\"./util\");\nvar async = Promise._async;\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\n\nfunction spreadAdapter(val, nodeback) {\n var promise = this;\n if (!util.isArray(val)) return successAdapter.call(promise, val, nodeback);\n var ret =\n tryCatch(nodeback).apply(promise._boundValue(), [null].concat(val));\n if (ret === errorObj) {\n async.throwLater(ret.e);\n }\n}\n\nfunction successAdapter(val, nodeback) {\n var promise = this;\n var receiver = promise._boundValue();\n var ret = val === undefined\n ? tryCatch(nodeback).call(receiver, null)\n : tryCatch(nodeback).call(receiver, null, val);\n if (ret === errorObj) {\n async.throwLater(ret.e);\n }\n}\nfunction errorAdapter(reason, nodeback) {\n var promise = this;\n if (!reason) {\n var newReason = new Error(reason + \"\");\n newReason.cause = reason;\n reason = newReason;\n }\n var ret = tryCatch(nodeback).call(promise._boundValue(), reason);\n if (ret === errorObj) {\n async.throwLater(ret.e);\n }\n}\n\nPromise.prototype.asCallback = Promise.prototype.nodeify = function (nodeback,\n options) {\n if (typeof nodeback == \"function\") {\n var adapter = successAdapter;\n if (options !== undefined && Object(options).spread) {\n adapter = spreadAdapter;\n }\n this._then(\n adapter,\n errorAdapter,\n undefined,\n this,\n nodeback\n );\n }\n return this;\n};\n};\n\n},{\"./util\":36}],22:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function() {\nvar makeSelfResolutionError = function () {\n return new TypeError(\"circular promise resolution chain\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n};\nvar reflectHandler = function() {\n return new Promise.PromiseInspection(this._target());\n};\nvar apiRejection = function(msg) {\n return Promise.reject(new TypeError(msg));\n};\nfunction Proxyable() {}\nvar UNDEFINED_BINDING = {};\nvar util = _dereq_(\"./util\");\nutil.setReflectHandler(reflectHandler);\n\nvar getDomain = function() {\n var domain = process.domain;\n if (domain === undefined) {\n return null;\n }\n return domain;\n};\nvar getContextDefault = function() {\n return null;\n};\nvar getContextDomain = function() {\n return {\n domain: getDomain(),\n async: null\n };\n};\nvar AsyncResource = util.isNode && util.nodeSupportsAsyncResource ?\n _dereq_(\"async_hooks\").AsyncResource : null;\nvar getContextAsyncHooks = function() {\n return {\n domain: getDomain(),\n async: new AsyncResource(\"Bluebird::Promise\")\n };\n};\nvar getContext = util.isNode ? getContextDomain : getContextDefault;\nutil.notEnumerableProp(Promise, \"_getContext\", getContext);\nvar enableAsyncHooks = function() {\n getContext = getContextAsyncHooks;\n util.notEnumerableProp(Promise, \"_getContext\", getContextAsyncHooks);\n};\nvar disableAsyncHooks = function() {\n getContext = getContextDomain;\n util.notEnumerableProp(Promise, \"_getContext\", getContextDomain);\n};\n\nvar es5 = _dereq_(\"./es5\");\nvar Async = _dereq_(\"./async\");\nvar async = new Async();\nes5.defineProperty(Promise, \"_async\", {value: async});\nvar errors = _dereq_(\"./errors\");\nvar TypeError = Promise.TypeError = errors.TypeError;\nPromise.RangeError = errors.RangeError;\nvar CancellationError = Promise.CancellationError = errors.CancellationError;\nPromise.TimeoutError = errors.TimeoutError;\nPromise.OperationalError = errors.OperationalError;\nPromise.RejectionError = errors.OperationalError;\nPromise.AggregateError = errors.AggregateError;\nvar INTERNAL = function(){};\nvar APPLY = {};\nvar NEXT_FILTER = {};\nvar tryConvertToPromise = _dereq_(\"./thenables\")(Promise, INTERNAL);\nvar PromiseArray =\n _dereq_(\"./promise_array\")(Promise, INTERNAL,\n tryConvertToPromise, apiRejection, Proxyable);\nvar Context = _dereq_(\"./context\")(Promise);\n /*jshint unused:false*/\nvar createContext = Context.create;\n\nvar debug = _dereq_(\"./debuggability\")(Promise, Context,\n enableAsyncHooks, disableAsyncHooks);\nvar CapturedTrace = debug.CapturedTrace;\nvar PassThroughHandlerContext =\n _dereq_(\"./finally\")(Promise, tryConvertToPromise, NEXT_FILTER);\nvar catchFilter = _dereq_(\"./catch_filter\")(NEXT_FILTER);\nvar nodebackForPromise = _dereq_(\"./nodeback\");\nvar errorObj = util.errorObj;\nvar tryCatch = util.tryCatch;\nfunction check(self, executor) {\n if (self == null || self.constructor !== Promise) {\n throw new TypeError(\"the promise constructor cannot be invoked directly\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n if (typeof executor !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(executor));\n }\n\n}\n\nfunction Promise(executor) {\n if (executor !== INTERNAL) {\n check(this, executor);\n }\n this._bitField = 0;\n this._fulfillmentHandler0 = undefined;\n this._rejectionHandler0 = undefined;\n this._promise0 = undefined;\n this._receiver0 = undefined;\n this._resolveFromExecutor(executor);\n this._promiseCreated();\n this._fireEvent(\"promiseCreated\", this);\n}\n\nPromise.prototype.toString = function () {\n return \"[object Promise]\";\n};\n\nPromise.prototype.caught = Promise.prototype[\"catch\"] = function (fn) {\n var len = arguments.length;\n if (len > 1) {\n var catchInstances = new Array(len - 1),\n j = 0, i;\n for (i = 0; i < len - 1; ++i) {\n var item = arguments[i];\n if (util.isObject(item)) {\n catchInstances[j++] = item;\n } else {\n return apiRejection(\"Catch statement predicate: \" +\n \"expecting an object but got \" + util.classString(item));\n }\n }\n catchInstances.length = j;\n fn = arguments[i];\n\n if (typeof fn !== \"function\") {\n throw new TypeError(\"The last argument to .catch() \" +\n \"must be a function, got \" + util.toString(fn));\n }\n return this.then(undefined, catchFilter(catchInstances, fn, this));\n }\n return this.then(undefined, fn);\n};\n\nPromise.prototype.reflect = function () {\n return this._then(reflectHandler,\n reflectHandler, undefined, this, undefined);\n};\n\nPromise.prototype.then = function (didFulfill, didReject) {\n if (debug.warnings() && arguments.length > 0 &&\n typeof didFulfill !== \"function\" &&\n typeof didReject !== \"function\") {\n var msg = \".then() only accepts functions but was passed: \" +\n util.classString(didFulfill);\n if (arguments.length > 1) {\n msg += \", \" + util.classString(didReject);\n }\n this._warn(msg);\n }\n return this._then(didFulfill, didReject, undefined, undefined, undefined);\n};\n\nPromise.prototype.done = function (didFulfill, didReject) {\n var promise =\n this._then(didFulfill, didReject, undefined, undefined, undefined);\n promise._setIsFinal();\n};\n\nPromise.prototype.spread = function (fn) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n return this.all()._then(fn, undefined, undefined, APPLY, undefined);\n};\n\nPromise.prototype.toJSON = function () {\n var ret = {\n isFulfilled: false,\n isRejected: false,\n fulfillmentValue: undefined,\n rejectionReason: undefined\n };\n if (this.isFulfilled()) {\n ret.fulfillmentValue = this.value();\n ret.isFulfilled = true;\n } else if (this.isRejected()) {\n ret.rejectionReason = this.reason();\n ret.isRejected = true;\n }\n return ret;\n};\n\nPromise.prototype.all = function () {\n if (arguments.length > 0) {\n this._warn(\".all() was passed arguments but it does not take any\");\n }\n return new PromiseArray(this).promise();\n};\n\nPromise.prototype.error = function (fn) {\n return this.caught(util.originatesFromRejection, fn);\n};\n\nPromise.getNewLibraryCopy = module.exports;\n\nPromise.is = function (val) {\n return val instanceof Promise;\n};\n\nPromise.fromNode = Promise.fromCallback = function(fn) {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs\n : false;\n var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs));\n if (result === errorObj) {\n ret._rejectCallback(result.e, true);\n }\n if (!ret._isFateSealed()) ret._setAsyncGuaranteed();\n return ret;\n};\n\nPromise.all = function (promises) {\n return new PromiseArray(promises).promise();\n};\n\nPromise.cast = function (obj) {\n var ret = tryConvertToPromise(obj);\n if (!(ret instanceof Promise)) {\n ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._setFulfilled();\n ret._rejectionHandler0 = obj;\n }\n return ret;\n};\n\nPromise.resolve = Promise.fulfilled = Promise.cast;\n\nPromise.reject = Promise.rejected = function (reason) {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._rejectCallback(reason, true);\n return ret;\n};\n\nPromise.setScheduler = function(fn) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n return async.setScheduler(fn);\n};\n\nPromise.prototype._then = function (\n didFulfill,\n didReject,\n _, receiver,\n internalData\n) {\n var haveInternalData = internalData !== undefined;\n var promise = haveInternalData ? internalData : new Promise(INTERNAL);\n var target = this._target();\n var bitField = target._bitField;\n\n if (!haveInternalData) {\n promise._propagateFrom(this, 3);\n promise._captureStackTrace();\n if (receiver === undefined &&\n ((this._bitField & 2097152) !== 0)) {\n if (!((bitField & 50397184) === 0)) {\n receiver = this._boundValue();\n } else {\n receiver = target === this ? undefined : this._boundTo;\n }\n }\n this._fireEvent(\"promiseChained\", this, promise);\n }\n\n var context = getContext();\n if (!((bitField & 50397184) === 0)) {\n var handler, value, settler = target._settlePromiseCtx;\n if (((bitField & 33554432) !== 0)) {\n value = target._rejectionHandler0;\n handler = didFulfill;\n } else if (((bitField & 16777216) !== 0)) {\n value = target._fulfillmentHandler0;\n handler = didReject;\n target._unsetRejectionIsUnhandled();\n } else {\n settler = target._settlePromiseLateCancellationObserver;\n value = new CancellationError(\"late cancellation observer\");\n target._attachExtraTrace(value);\n handler = didReject;\n }\n\n async.invoke(settler, target, {\n handler: util.contextBind(context, handler),\n promise: promise,\n receiver: receiver,\n value: value\n });\n } else {\n target._addCallbacks(didFulfill, didReject, promise,\n receiver, context);\n }\n\n return promise;\n};\n\nPromise.prototype._length = function () {\n return this._bitField & 65535;\n};\n\nPromise.prototype._isFateSealed = function () {\n return (this._bitField & 117506048) !== 0;\n};\n\nPromise.prototype._isFollowing = function () {\n return (this._bitField & 67108864) === 67108864;\n};\n\nPromise.prototype._setLength = function (len) {\n this._bitField = (this._bitField & -65536) |\n (len & 65535);\n};\n\nPromise.prototype._setFulfilled = function () {\n this._bitField = this._bitField | 33554432;\n this._fireEvent(\"promiseFulfilled\", this);\n};\n\nPromise.prototype._setRejected = function () {\n this._bitField = this._bitField | 16777216;\n this._fireEvent(\"promiseRejected\", this);\n};\n\nPromise.prototype._setFollowing = function () {\n this._bitField = this._bitField | 67108864;\n this._fireEvent(\"promiseResolved\", this);\n};\n\nPromise.prototype._setIsFinal = function () {\n this._bitField = this._bitField | 4194304;\n};\n\nPromise.prototype._isFinal = function () {\n return (this._bitField & 4194304) > 0;\n};\n\nPromise.prototype._unsetCancelled = function() {\n this._bitField = this._bitField & (~65536);\n};\n\nPromise.prototype._setCancelled = function() {\n this._bitField = this._bitField | 65536;\n this._fireEvent(\"promiseCancelled\", this);\n};\n\nPromise.prototype._setWillBeCancelled = function() {\n this._bitField = this._bitField | 8388608;\n};\n\nPromise.prototype._setAsyncGuaranteed = function() {\n if (async.hasCustomScheduler()) return;\n var bitField = this._bitField;\n this._bitField = bitField |\n (((bitField & 536870912) >> 2) ^\n 134217728);\n};\n\nPromise.prototype._setNoAsyncGuarantee = function() {\n this._bitField = (this._bitField | 536870912) &\n (~134217728);\n};\n\nPromise.prototype._receiverAt = function (index) {\n var ret = index === 0 ? this._receiver0 : this[\n index * 4 - 4 + 3];\n if (ret === UNDEFINED_BINDING) {\n return undefined;\n } else if (ret === undefined && this._isBound()) {\n return this._boundValue();\n }\n return ret;\n};\n\nPromise.prototype._promiseAt = function (index) {\n return this[\n index * 4 - 4 + 2];\n};\n\nPromise.prototype._fulfillmentHandlerAt = function (index) {\n return this[\n index * 4 - 4 + 0];\n};\n\nPromise.prototype._rejectionHandlerAt = function (index) {\n return this[\n index * 4 - 4 + 1];\n};\n\nPromise.prototype._boundValue = function() {};\n\nPromise.prototype._migrateCallback0 = function (follower) {\n var bitField = follower._bitField;\n var fulfill = follower._fulfillmentHandler0;\n var reject = follower._rejectionHandler0;\n var promise = follower._promise0;\n var receiver = follower._receiverAt(0);\n if (receiver === undefined) receiver = UNDEFINED_BINDING;\n this._addCallbacks(fulfill, reject, promise, receiver, null);\n};\n\nPromise.prototype._migrateCallbackAt = function (follower, index) {\n var fulfill = follower._fulfillmentHandlerAt(index);\n var reject = follower._rejectionHandlerAt(index);\n var promise = follower._promiseAt(index);\n var receiver = follower._receiverAt(index);\n if (receiver === undefined) receiver = UNDEFINED_BINDING;\n this._addCallbacks(fulfill, reject, promise, receiver, null);\n};\n\nPromise.prototype._addCallbacks = function (\n fulfill,\n reject,\n promise,\n receiver,\n context\n) {\n var index = this._length();\n\n if (index >= 65535 - 4) {\n index = 0;\n this._setLength(0);\n }\n\n if (index === 0) {\n this._promise0 = promise;\n this._receiver0 = receiver;\n if (typeof fulfill === \"function\") {\n this._fulfillmentHandler0 = util.contextBind(context, fulfill);\n }\n if (typeof reject === \"function\") {\n this._rejectionHandler0 = util.contextBind(context, reject);\n }\n } else {\n var base = index * 4 - 4;\n this[base + 2] = promise;\n this[base + 3] = receiver;\n if (typeof fulfill === \"function\") {\n this[base + 0] =\n util.contextBind(context, fulfill);\n }\n if (typeof reject === \"function\") {\n this[base + 1] =\n util.contextBind(context, reject);\n }\n }\n this._setLength(index + 1);\n return index;\n};\n\nPromise.prototype._proxy = function (proxyable, arg) {\n this._addCallbacks(undefined, undefined, arg, proxyable, null);\n};\n\nPromise.prototype._resolveCallback = function(value, shouldBind) {\n if (((this._bitField & 117506048) !== 0)) return;\n if (value === this)\n return this._rejectCallback(makeSelfResolutionError(), false);\n var maybePromise = tryConvertToPromise(value, this);\n if (!(maybePromise instanceof Promise)) return this._fulfill(value);\n\n if (shouldBind) this._propagateFrom(maybePromise, 2);\n\n\n var promise = maybePromise._target();\n\n if (promise === this) {\n this._reject(makeSelfResolutionError());\n return;\n }\n\n var bitField = promise._bitField;\n if (((bitField & 50397184) === 0)) {\n var len = this._length();\n if (len > 0) promise._migrateCallback0(this);\n for (var i = 1; i < len; ++i) {\n promise._migrateCallbackAt(this, i);\n }\n this._setFollowing();\n this._setLength(0);\n this._setFollowee(maybePromise);\n } else if (((bitField & 33554432) !== 0)) {\n this._fulfill(promise._value());\n } else if (((bitField & 16777216) !== 0)) {\n this._reject(promise._reason());\n } else {\n var reason = new CancellationError(\"late cancellation observer\");\n promise._attachExtraTrace(reason);\n this._reject(reason);\n }\n};\n\nPromise.prototype._rejectCallback =\nfunction(reason, synchronous, ignoreNonErrorWarnings) {\n var trace = util.ensureErrorObject(reason);\n var hasStack = trace === reason;\n if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) {\n var message = \"a promise was rejected with a non-error: \" +\n util.classString(reason);\n this._warn(message, true);\n }\n this._attachExtraTrace(trace, synchronous ? hasStack : false);\n this._reject(reason);\n};\n\nPromise.prototype._resolveFromExecutor = function (executor) {\n if (executor === INTERNAL) return;\n var promise = this;\n this._captureStackTrace();\n this._pushContext();\n var synchronous = true;\n var r = this._execute(executor, function(value) {\n promise._resolveCallback(value);\n }, function (reason) {\n promise._rejectCallback(reason, synchronous);\n });\n synchronous = false;\n this._popContext();\n\n if (r !== undefined) {\n promise._rejectCallback(r, true);\n }\n};\n\nPromise.prototype._settlePromiseFromHandler = function (\n handler, receiver, value, promise\n) {\n var bitField = promise._bitField;\n if (((bitField & 65536) !== 0)) return;\n promise._pushContext();\n var x;\n if (receiver === APPLY) {\n if (!value || typeof value.length !== \"number\") {\n x = errorObj;\n x.e = new TypeError(\"cannot .spread() a non-array: \" +\n util.classString(value));\n } else {\n x = tryCatch(handler).apply(this._boundValue(), value);\n }\n } else {\n x = tryCatch(handler).call(receiver, value);\n }\n var promiseCreated = promise._popContext();\n bitField = promise._bitField;\n if (((bitField & 65536) !== 0)) return;\n\n if (x === NEXT_FILTER) {\n promise._reject(value);\n } else if (x === errorObj) {\n promise._rejectCallback(x.e, false);\n } else {\n debug.checkForgottenReturns(x, promiseCreated, \"\", promise, this);\n promise._resolveCallback(x);\n }\n};\n\nPromise.prototype._target = function() {\n var ret = this;\n while (ret._isFollowing()) ret = ret._followee();\n return ret;\n};\n\nPromise.prototype._followee = function() {\n return this._rejectionHandler0;\n};\n\nPromise.prototype._setFollowee = function(promise) {\n this._rejectionHandler0 = promise;\n};\n\nPromise.prototype._settlePromise = function(promise, handler, receiver, value) {\n var isPromise = promise instanceof Promise;\n var bitField = this._bitField;\n var asyncGuaranteed = ((bitField & 134217728) !== 0);\n if (((bitField & 65536) !== 0)) {\n if (isPromise) promise._invokeInternalOnCancel();\n\n if (receiver instanceof PassThroughHandlerContext &&\n receiver.isFinallyHandler()) {\n receiver.cancelPromise = promise;\n if (tryCatch(handler).call(receiver, value) === errorObj) {\n promise._reject(errorObj.e);\n }\n } else if (handler === reflectHandler) {\n promise._fulfill(reflectHandler.call(receiver));\n } else if (receiver instanceof Proxyable) {\n receiver._promiseCancelled(promise);\n } else if (isPromise || promise instanceof PromiseArray) {\n promise._cancel();\n } else {\n receiver.cancel();\n }\n } else if (typeof handler === \"function\") {\n if (!isPromise) {\n handler.call(receiver, value, promise);\n } else {\n if (asyncGuaranteed) promise._setAsyncGuaranteed();\n this._settlePromiseFromHandler(handler, receiver, value, promise);\n }\n } else if (receiver instanceof Proxyable) {\n if (!receiver._isResolved()) {\n if (((bitField & 33554432) !== 0)) {\n receiver._promiseFulfilled(value, promise);\n } else {\n receiver._promiseRejected(value, promise);\n }\n }\n } else if (isPromise) {\n if (asyncGuaranteed) promise._setAsyncGuaranteed();\n if (((bitField & 33554432) !== 0)) {\n promise._fulfill(value);\n } else {\n promise._reject(value);\n }\n }\n};\n\nPromise.prototype._settlePromiseLateCancellationObserver = function(ctx) {\n var handler = ctx.handler;\n var promise = ctx.promise;\n var receiver = ctx.receiver;\n var value = ctx.value;\n if (typeof handler === \"function\") {\n if (!(promise instanceof Promise)) {\n handler.call(receiver, value, promise);\n } else {\n this._settlePromiseFromHandler(handler, receiver, value, promise);\n }\n } else if (promise instanceof Promise) {\n promise._reject(value);\n }\n};\n\nPromise.prototype._settlePromiseCtx = function(ctx) {\n this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value);\n};\n\nPromise.prototype._settlePromise0 = function(handler, value, bitField) {\n var promise = this._promise0;\n var receiver = this._receiverAt(0);\n this._promise0 = undefined;\n this._receiver0 = undefined;\n this._settlePromise(promise, handler, receiver, value);\n};\n\nPromise.prototype._clearCallbackDataAtIndex = function(index) {\n var base = index * 4 - 4;\n this[base + 2] =\n this[base + 3] =\n this[base + 0] =\n this[base + 1] = undefined;\n};\n\nPromise.prototype._fulfill = function (value) {\n var bitField = this._bitField;\n if (((bitField & 117506048) >>> 16)) return;\n if (value === this) {\n var err = makeSelfResolutionError();\n this._attachExtraTrace(err);\n return this._reject(err);\n }\n this._setFulfilled();\n this._rejectionHandler0 = value;\n\n if ((bitField & 65535) > 0) {\n if (((bitField & 134217728) !== 0)) {\n this._settlePromises();\n } else {\n async.settlePromises(this);\n }\n this._dereferenceTrace();\n }\n};\n\nPromise.prototype._reject = function (reason) {\n var bitField = this._bitField;\n if (((bitField & 117506048) >>> 16)) return;\n this._setRejected();\n this._fulfillmentHandler0 = reason;\n\n if (this._isFinal()) {\n return async.fatalError(reason, util.isNode);\n }\n\n if ((bitField & 65535) > 0) {\n async.settlePromises(this);\n } else {\n this._ensurePossibleRejectionHandled();\n }\n};\n\nPromise.prototype._fulfillPromises = function (len, value) {\n for (var i = 1; i < len; i++) {\n var handler = this._fulfillmentHandlerAt(i);\n var promise = this._promiseAt(i);\n var receiver = this._receiverAt(i);\n this._clearCallbackDataAtIndex(i);\n this._settlePromise(promise, handler, receiver, value);\n }\n};\n\nPromise.prototype._rejectPromises = function (len, reason) {\n for (var i = 1; i < len; i++) {\n var handler = this._rejectionHandlerAt(i);\n var promise = this._promiseAt(i);\n var receiver = this._receiverAt(i);\n this._clearCallbackDataAtIndex(i);\n this._settlePromise(promise, handler, receiver, reason);\n }\n};\n\nPromise.prototype._settlePromises = function () {\n var bitField = this._bitField;\n var len = (bitField & 65535);\n\n if (len > 0) {\n if (((bitField & 16842752) !== 0)) {\n var reason = this._fulfillmentHandler0;\n this._settlePromise0(this._rejectionHandler0, reason, bitField);\n this._rejectPromises(len, reason);\n } else {\n var value = this._rejectionHandler0;\n this._settlePromise0(this._fulfillmentHandler0, value, bitField);\n this._fulfillPromises(len, value);\n }\n this._setLength(0);\n }\n this._clearCancellationData();\n};\n\nPromise.prototype._settledValue = function() {\n var bitField = this._bitField;\n if (((bitField & 33554432) !== 0)) {\n return this._rejectionHandler0;\n } else if (((bitField & 16777216) !== 0)) {\n return this._fulfillmentHandler0;\n }\n};\n\nif (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n es5.defineProperty(Promise.prototype, Symbol.toStringTag, {\n get: function () {\n return \"Object\";\n }\n });\n}\n\nfunction deferResolve(v) {this.promise._resolveCallback(v);}\nfunction deferReject(v) {this.promise._rejectCallback(v, false);}\n\nPromise.defer = Promise.pending = function() {\n debug.deprecated(\"Promise.defer\", \"new Promise\");\n var promise = new Promise(INTERNAL);\n return {\n promise: promise,\n resolve: deferResolve,\n reject: deferReject\n };\n};\n\nutil.notEnumerableProp(Promise,\n \"_makeSelfResolutionError\",\n makeSelfResolutionError);\n\n_dereq_(\"./method\")(Promise, INTERNAL, tryConvertToPromise, apiRejection,\n debug);\n_dereq_(\"./bind\")(Promise, INTERNAL, tryConvertToPromise, debug);\n_dereq_(\"./cancel\")(Promise, PromiseArray, apiRejection, debug);\n_dereq_(\"./direct_resolve\")(Promise);\n_dereq_(\"./synchronous_inspection\")(Promise);\n_dereq_(\"./join\")(\n Promise, PromiseArray, tryConvertToPromise, INTERNAL, async);\nPromise.Promise = Promise;\nPromise.version = \"3.7.2\";\n_dereq_('./call_get.js')(Promise);\n_dereq_('./generators.js')(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug);\n_dereq_('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug);\n_dereq_('./nodeify.js')(Promise);\n_dereq_('./promisify.js')(Promise, INTERNAL);\n_dereq_('./props.js')(Promise, PromiseArray, tryConvertToPromise, apiRejection);\n_dereq_('./race.js')(Promise, INTERNAL, tryConvertToPromise, apiRejection);\n_dereq_('./reduce.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug);\n_dereq_('./settle.js')(Promise, PromiseArray, debug);\n_dereq_('./some.js')(Promise, PromiseArray, apiRejection);\n_dereq_('./timers.js')(Promise, INTERNAL, debug);\n_dereq_('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug);\n_dereq_('./any.js')(Promise);\n_dereq_('./each.js')(Promise, INTERNAL);\n_dereq_('./filter.js')(Promise, INTERNAL);\n \n util.toFastProperties(Promise); \n util.toFastProperties(Promise.prototype); \n function fillTypes(value) { \n var p = new Promise(INTERNAL); \n p._fulfillmentHandler0 = value; \n p._rejectionHandler0 = value; \n p._promise0 = value; \n p._receiver0 = value; \n } \n // Complete slack tracking, opt out of field-type tracking and \n // stabilize map \n fillTypes({a: 1}); \n fillTypes({b: 2}); \n fillTypes({c: 3}); \n fillTypes(1); \n fillTypes(function(){}); \n fillTypes(undefined); \n fillTypes(false); \n fillTypes(new Promise(INTERNAL)); \n debug.setBounds(Async.firstLineError, util.lastLineError); \n return Promise; \n\n};\n\n},{\"./any.js\":1,\"./async\":2,\"./bind\":3,\"./call_get.js\":5,\"./cancel\":6,\"./catch_filter\":7,\"./context\":8,\"./debuggability\":9,\"./direct_resolve\":10,\"./each.js\":11,\"./errors\":12,\"./es5\":13,\"./filter.js\":14,\"./finally\":15,\"./generators.js\":16,\"./join\":17,\"./map.js\":18,\"./method\":19,\"./nodeback\":20,\"./nodeify.js\":21,\"./promise_array\":23,\"./promisify.js\":24,\"./props.js\":25,\"./race.js\":27,\"./reduce.js\":28,\"./settle.js\":30,\"./some.js\":31,\"./synchronous_inspection\":32,\"./thenables\":33,\"./timers.js\":34,\"./using.js\":35,\"./util\":36,\"async_hooks\":undefined}],23:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL, tryConvertToPromise,\n apiRejection, Proxyable) {\nvar util = _dereq_(\"./util\");\nvar isArray = util.isArray;\n\nfunction toResolutionValue(val) {\n switch(val) {\n case -2: return [];\n case -3: return {};\n case -6: return new Map();\n }\n}\n\nfunction PromiseArray(values) {\n var promise = this._promise = new Promise(INTERNAL);\n if (values instanceof Promise) {\n promise._propagateFrom(values, 3);\n values.suppressUnhandledRejections();\n }\n promise._setOnCancel(this);\n this._values = values;\n this._length = 0;\n this._totalResolved = 0;\n this._init(undefined, -2);\n}\nutil.inherits(PromiseArray, Proxyable);\n\nPromiseArray.prototype.length = function () {\n return this._length;\n};\n\nPromiseArray.prototype.promise = function () {\n return this._promise;\n};\n\nPromiseArray.prototype._init = function init(_, resolveValueIfEmpty) {\n var values = tryConvertToPromise(this._values, this._promise);\n if (values instanceof Promise) {\n values = values._target();\n var bitField = values._bitField;\n ;\n this._values = values;\n\n if (((bitField & 50397184) === 0)) {\n this._promise._setAsyncGuaranteed();\n return values._then(\n init,\n this._reject,\n undefined,\n this,\n resolveValueIfEmpty\n );\n } else if (((bitField & 33554432) !== 0)) {\n values = values._value();\n } else if (((bitField & 16777216) !== 0)) {\n return this._reject(values._reason());\n } else {\n return this._cancel();\n }\n }\n values = util.asArray(values);\n if (values === null) {\n var err = apiRejection(\n \"expecting an array or an iterable object but got \" + util.classString(values)).reason();\n this._promise._rejectCallback(err, false);\n return;\n }\n\n if (values.length === 0) {\n if (resolveValueIfEmpty === -5) {\n this._resolveEmptyArray();\n }\n else {\n this._resolve(toResolutionValue(resolveValueIfEmpty));\n }\n return;\n }\n this._iterate(values);\n};\n\nPromiseArray.prototype._iterate = function(values) {\n var len = this.getActualLength(values.length);\n this._length = len;\n this._values = this.shouldCopyValues() ? new Array(len) : this._values;\n var result = this._promise;\n var isResolved = false;\n var bitField = null;\n for (var i = 0; i < len; ++i) {\n var maybePromise = tryConvertToPromise(values[i], result);\n\n if (maybePromise instanceof Promise) {\n maybePromise = maybePromise._target();\n bitField = maybePromise._bitField;\n } else {\n bitField = null;\n }\n\n if (isResolved) {\n if (bitField !== null) {\n maybePromise.suppressUnhandledRejections();\n }\n } else if (bitField !== null) {\n if (((bitField & 50397184) === 0)) {\n maybePromise._proxy(this, i);\n this._values[i] = maybePromise;\n } else if (((bitField & 33554432) !== 0)) {\n isResolved = this._promiseFulfilled(maybePromise._value(), i);\n } else if (((bitField & 16777216) !== 0)) {\n isResolved = this._promiseRejected(maybePromise._reason(), i);\n } else {\n isResolved = this._promiseCancelled(i);\n }\n } else {\n isResolved = this._promiseFulfilled(maybePromise, i);\n }\n }\n if (!isResolved) result._setAsyncGuaranteed();\n};\n\nPromiseArray.prototype._isResolved = function () {\n return this._values === null;\n};\n\nPromiseArray.prototype._resolve = function (value) {\n this._values = null;\n this._promise._fulfill(value);\n};\n\nPromiseArray.prototype._cancel = function() {\n if (this._isResolved() || !this._promise._isCancellable()) return;\n this._values = null;\n this._promise._cancel();\n};\n\nPromiseArray.prototype._reject = function (reason) {\n this._values = null;\n this._promise._rejectCallback(reason, false);\n};\n\nPromiseArray.prototype._promiseFulfilled = function (value, index) {\n this._values[index] = value;\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= this._length) {\n this._resolve(this._values);\n return true;\n }\n return false;\n};\n\nPromiseArray.prototype._promiseCancelled = function() {\n this._cancel();\n return true;\n};\n\nPromiseArray.prototype._promiseRejected = function (reason) {\n this._totalResolved++;\n this._reject(reason);\n return true;\n};\n\nPromiseArray.prototype._resultCancelled = function() {\n if (this._isResolved()) return;\n var values = this._values;\n this._cancel();\n if (values instanceof Promise) {\n values.cancel();\n } else {\n for (var i = 0; i < values.length; ++i) {\n if (values[i] instanceof Promise) {\n values[i].cancel();\n }\n }\n }\n};\n\nPromiseArray.prototype.shouldCopyValues = function () {\n return true;\n};\n\nPromiseArray.prototype.getActualLength = function (len) {\n return len;\n};\n\nreturn PromiseArray;\n};\n\n},{\"./util\":36}],24:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar THIS = {};\nvar util = _dereq_(\"./util\");\nvar nodebackForPromise = _dereq_(\"./nodeback\");\nvar withAppended = util.withAppended;\nvar maybeWrapAsError = util.maybeWrapAsError;\nvar canEvaluate = util.canEvaluate;\nvar TypeError = _dereq_(\"./errors\").TypeError;\nvar defaultSuffix = \"Async\";\nvar defaultPromisified = {__isPromisified__: true};\nvar noCopyProps = [\n \"arity\", \"length\",\n \"name\",\n \"arguments\",\n \"caller\",\n \"callee\",\n \"prototype\",\n \"__isPromisified__\"\n];\nvar noCopyPropsPattern = new RegExp(\"^(?:\" + noCopyProps.join(\"|\") + \")$\");\n\nvar defaultFilter = function(name) {\n return util.isIdentifier(name) &&\n name.charAt(0) !== \"_\" &&\n name !== \"constructor\";\n};\n\nfunction propsFilter(key) {\n return !noCopyPropsPattern.test(key);\n}\n\nfunction isPromisified(fn) {\n try {\n return fn.__isPromisified__ === true;\n }\n catch (e) {\n return false;\n }\n}\n\nfunction hasPromisified(obj, key, suffix) {\n var val = util.getDataPropertyOrDefault(obj, key + suffix,\n defaultPromisified);\n return val ? isPromisified(val) : false;\n}\nfunction checkValid(ret, suffix, suffixRegexp) {\n for (var i = 0; i < ret.length; i += 2) {\n var key = ret[i];\n if (suffixRegexp.test(key)) {\n var keyWithoutAsyncSuffix = key.replace(suffixRegexp, \"\");\n for (var j = 0; j < ret.length; j += 2) {\n if (ret[j] === keyWithoutAsyncSuffix) {\n throw new TypeError(\"Cannot promisify an API that has normal methods with '%s'-suffix\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\"\n .replace(\"%s\", suffix));\n }\n }\n }\n }\n}\n\nfunction promisifiableMethods(obj, suffix, suffixRegexp, filter) {\n var keys = util.inheritedDataKeys(obj);\n var ret = [];\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var value = obj[key];\n var passesDefaultFilter = filter === defaultFilter\n ? true : defaultFilter(key, value, obj);\n if (typeof value === \"function\" &&\n !isPromisified(value) &&\n !hasPromisified(obj, key, suffix) &&\n filter(key, value, obj, passesDefaultFilter)) {\n ret.push(key, value);\n }\n }\n checkValid(ret, suffix, suffixRegexp);\n return ret;\n}\n\nvar escapeIdentRegex = function(str) {\n return str.replace(/([$])/, \"\\\\$\");\n};\n\nvar makeNodePromisifiedEval;\nif (!true) {\nvar switchCaseArgumentOrder = function(likelyArgumentCount) {\n var ret = [likelyArgumentCount];\n var min = Math.max(0, likelyArgumentCount - 1 - 3);\n for(var i = likelyArgumentCount - 1; i >= min; --i) {\n ret.push(i);\n }\n for(var i = likelyArgumentCount + 1; i <= 3; ++i) {\n ret.push(i);\n }\n return ret;\n};\n\nvar argumentSequence = function(argumentCount) {\n return util.filledRange(argumentCount, \"_arg\", \"\");\n};\n\nvar parameterDeclaration = function(parameterCount) {\n return util.filledRange(\n Math.max(parameterCount, 3), \"_arg\", \"\");\n};\n\nvar parameterCount = function(fn) {\n if (typeof fn.length === \"number\") {\n return Math.max(Math.min(fn.length, 1023 + 1), 0);\n }\n return 0;\n};\n\nmakeNodePromisifiedEval =\nfunction(callback, receiver, originalName, fn, _, multiArgs) {\n var newParameterCount = Math.max(0, parameterCount(fn) - 1);\n var argumentOrder = switchCaseArgumentOrder(newParameterCount);\n var shouldProxyThis = typeof callback === \"string\" || receiver === THIS;\n\n function generateCallForArgumentCount(count) {\n var args = argumentSequence(count).join(\", \");\n var comma = count > 0 ? \", \" : \"\";\n var ret;\n if (shouldProxyThis) {\n ret = \"ret = callback.call(this, {{args}}, nodeback); break;\\n\";\n } else {\n ret = receiver === undefined\n ? \"ret = callback({{args}}, nodeback); break;\\n\"\n : \"ret = callback.call(receiver, {{args}}, nodeback); break;\\n\";\n }\n return ret.replace(\"{{args}}\", args).replace(\", \", comma);\n }\n\n function generateArgumentSwitchCase() {\n var ret = \"\";\n for (var i = 0; i < argumentOrder.length; ++i) {\n ret += \"case \" + argumentOrder[i] +\":\" +\n generateCallForArgumentCount(argumentOrder[i]);\n }\n\n ret += \" \\n\\\n default: \\n\\\n var args = new Array(len + 1); \\n\\\n var i = 0; \\n\\\n for (var i = 0; i < len; ++i) { \\n\\\n args[i] = arguments[i]; \\n\\\n } \\n\\\n args[i] = nodeback; \\n\\\n [CodeForCall] \\n\\\n break; \\n\\\n \".replace(\"[CodeForCall]\", (shouldProxyThis\n ? \"ret = callback.apply(this, args);\\n\"\n : \"ret = callback.apply(receiver, args);\\n\"));\n return ret;\n }\n\n var getFunctionCode = typeof callback === \"string\"\n ? (\"this != null ? this['\"+callback+\"'] : fn\")\n : \"fn\";\n var body = \"'use strict'; \\n\\\n var ret = function (Parameters) { \\n\\\n 'use strict'; \\n\\\n var len = arguments.length; \\n\\\n var promise = new Promise(INTERNAL); \\n\\\n promise._captureStackTrace(); \\n\\\n var nodeback = nodebackForPromise(promise, \" + multiArgs + \"); \\n\\\n var ret; \\n\\\n var callback = tryCatch([GetFunctionCode]); \\n\\\n switch(len) { \\n\\\n [CodeForSwitchCase] \\n\\\n } \\n\\\n if (ret === errorObj) { \\n\\\n promise._rejectCallback(maybeWrapAsError(ret.e), true, true);\\n\\\n } \\n\\\n if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); \\n\\\n return promise; \\n\\\n }; \\n\\\n notEnumerableProp(ret, '__isPromisified__', true); \\n\\\n return ret; \\n\\\n \".replace(\"[CodeForSwitchCase]\", generateArgumentSwitchCase())\n .replace(\"[GetFunctionCode]\", getFunctionCode);\n body = body.replace(\"Parameters\", parameterDeclaration(newParameterCount));\n return new Function(\"Promise\",\n \"fn\",\n \"receiver\",\n \"withAppended\",\n \"maybeWrapAsError\",\n \"nodebackForPromise\",\n \"tryCatch\",\n \"errorObj\",\n \"notEnumerableProp\",\n \"INTERNAL\",\n body)(\n Promise,\n fn,\n receiver,\n withAppended,\n maybeWrapAsError,\n nodebackForPromise,\n util.tryCatch,\n util.errorObj,\n util.notEnumerableProp,\n INTERNAL);\n};\n}\n\nfunction makeNodePromisifiedClosure(callback, receiver, _, fn, __, multiArgs) {\n var defaultThis = (function() {return this;})();\n var method = callback;\n if (typeof method === \"string\") {\n callback = fn;\n }\n function promisified() {\n var _receiver = receiver;\n if (receiver === THIS) _receiver = this;\n var promise = new Promise(INTERNAL);\n promise._captureStackTrace();\n var cb = typeof method === \"string\" && this !== defaultThis\n ? this[method] : callback;\n var fn = nodebackForPromise(promise, multiArgs);\n try {\n cb.apply(_receiver, withAppended(arguments, fn));\n } catch(e) {\n promise._rejectCallback(maybeWrapAsError(e), true, true);\n }\n if (!promise._isFateSealed()) promise._setAsyncGuaranteed();\n return promise;\n }\n util.notEnumerableProp(promisified, \"__isPromisified__\", true);\n return promisified;\n}\n\nvar makeNodePromisified = canEvaluate\n ? makeNodePromisifiedEval\n : makeNodePromisifiedClosure;\n\nfunction promisifyAll(obj, suffix, filter, promisifier, multiArgs) {\n var suffixRegexp = new RegExp(escapeIdentRegex(suffix) + \"$\");\n var methods =\n promisifiableMethods(obj, suffix, suffixRegexp, filter);\n\n for (var i = 0, len = methods.length; i < len; i+= 2) {\n var key = methods[i];\n var fn = methods[i+1];\n var promisifiedKey = key + suffix;\n if (promisifier === makeNodePromisified) {\n obj[promisifiedKey] =\n makeNodePromisified(key, THIS, key, fn, suffix, multiArgs);\n } else {\n var promisified = promisifier(fn, function() {\n return makeNodePromisified(key, THIS, key,\n fn, suffix, multiArgs);\n });\n util.notEnumerableProp(promisified, \"__isPromisified__\", true);\n obj[promisifiedKey] = promisified;\n }\n }\n util.toFastProperties(obj);\n return obj;\n}\n\nfunction promisify(callback, receiver, multiArgs) {\n return makeNodePromisified(callback, receiver, undefined,\n callback, null, multiArgs);\n}\n\nPromise.promisify = function (fn, options) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n if (isPromisified(fn)) {\n return fn;\n }\n options = Object(options);\n var receiver = options.context === undefined ? THIS : options.context;\n var multiArgs = !!options.multiArgs;\n var ret = promisify(fn, receiver, multiArgs);\n util.copyDescriptors(fn, ret, propsFilter);\n return ret;\n};\n\nPromise.promisifyAll = function (target, options) {\n if (typeof target !== \"function\" && typeof target !== \"object\") {\n throw new TypeError(\"the target of promisifyAll must be an object or a function\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n options = Object(options);\n var multiArgs = !!options.multiArgs;\n var suffix = options.suffix;\n if (typeof suffix !== \"string\") suffix = defaultSuffix;\n var filter = options.filter;\n if (typeof filter !== \"function\") filter = defaultFilter;\n var promisifier = options.promisifier;\n if (typeof promisifier !== \"function\") promisifier = makeNodePromisified;\n\n if (!util.isIdentifier(suffix)) {\n throw new RangeError(\"suffix must be a valid identifier\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n\n var keys = util.inheritedDataKeys(target);\n for (var i = 0; i < keys.length; ++i) {\n var value = target[keys[i]];\n if (keys[i] !== \"constructor\" &&\n util.isClass(value)) {\n promisifyAll(value.prototype, suffix, filter, promisifier,\n multiArgs);\n promisifyAll(value, suffix, filter, promisifier, multiArgs);\n }\n }\n\n return promisifyAll(target, suffix, filter, promisifier, multiArgs);\n};\n};\n\n\n},{\"./errors\":12,\"./nodeback\":20,\"./util\":36}],25:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(\n Promise, PromiseArray, tryConvertToPromise, apiRejection) {\nvar util = _dereq_(\"./util\");\nvar isObject = util.isObject;\nvar es5 = _dereq_(\"./es5\");\nvar Es6Map;\nif (typeof Map === \"function\") Es6Map = Map;\n\nvar mapToEntries = (function() {\n var index = 0;\n var size = 0;\n\n function extractEntry(value, key) {\n this[index] = value;\n this[index + size] = key;\n index++;\n }\n\n return function mapToEntries(map) {\n size = map.size;\n index = 0;\n var ret = new Array(map.size * 2);\n map.forEach(extractEntry, ret);\n return ret;\n };\n})();\n\nvar entriesToMap = function(entries) {\n var ret = new Es6Map();\n var length = entries.length / 2 | 0;\n for (var i = 0; i < length; ++i) {\n var key = entries[length + i];\n var value = entries[i];\n ret.set(key, value);\n }\n return ret;\n};\n\nfunction PropertiesPromiseArray(obj) {\n var isMap = false;\n var entries;\n if (Es6Map !== undefined && obj instanceof Es6Map) {\n entries = mapToEntries(obj);\n isMap = true;\n } else {\n var keys = es5.keys(obj);\n var len = keys.length;\n entries = new Array(len * 2);\n for (var i = 0; i < len; ++i) {\n var key = keys[i];\n entries[i] = obj[key];\n entries[i + len] = key;\n }\n }\n this.constructor$(entries);\n this._isMap = isMap;\n this._init$(undefined, isMap ? -6 : -3);\n}\nutil.inherits(PropertiesPromiseArray, PromiseArray);\n\nPropertiesPromiseArray.prototype._init = function () {};\n\nPropertiesPromiseArray.prototype._promiseFulfilled = function (value, index) {\n this._values[index] = value;\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= this._length) {\n var val;\n if (this._isMap) {\n val = entriesToMap(this._values);\n } else {\n val = {};\n var keyOffset = this.length();\n for (var i = 0, len = this.length(); i < len; ++i) {\n val[this._values[i + keyOffset]] = this._values[i];\n }\n }\n this._resolve(val);\n return true;\n }\n return false;\n};\n\nPropertiesPromiseArray.prototype.shouldCopyValues = function () {\n return false;\n};\n\nPropertiesPromiseArray.prototype.getActualLength = function (len) {\n return len >> 1;\n};\n\nfunction props(promises) {\n var ret;\n var castValue = tryConvertToPromise(promises);\n\n if (!isObject(castValue)) {\n return apiRejection(\"cannot await properties of a non-object\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n } else if (castValue instanceof Promise) {\n ret = castValue._then(\n Promise.props, undefined, undefined, undefined, undefined);\n } else {\n ret = new PropertiesPromiseArray(castValue).promise();\n }\n\n if (castValue instanceof Promise) {\n ret._propagateFrom(castValue, 2);\n }\n return ret;\n}\n\nPromise.prototype.props = function () {\n return props(this);\n};\n\nPromise.props = function (promises) {\n return props(promises);\n};\n};\n\n},{\"./es5\":13,\"./util\":36}],26:[function(_dereq_,module,exports){\n\"use strict\";\nfunction arrayMove(src, srcIndex, dst, dstIndex, len) {\n for (var j = 0; j < len; ++j) {\n dst[j + dstIndex] = src[j + srcIndex];\n src[j + srcIndex] = void 0;\n }\n}\n\nfunction Queue(capacity) {\n this._capacity = capacity;\n this._length = 0;\n this._front = 0;\n}\n\nQueue.prototype._willBeOverCapacity = function (size) {\n return this._capacity < size;\n};\n\nQueue.prototype._pushOne = function (arg) {\n var length = this.length();\n this._checkCapacity(length + 1);\n var i = (this._front + length) & (this._capacity - 1);\n this[i] = arg;\n this._length = length + 1;\n};\n\nQueue.prototype.push = function (fn, receiver, arg) {\n var length = this.length() + 3;\n if (this._willBeOverCapacity(length)) {\n this._pushOne(fn);\n this._pushOne(receiver);\n this._pushOne(arg);\n return;\n }\n var j = this._front + length - 3;\n this._checkCapacity(length);\n var wrapMask = this._capacity - 1;\n this[(j + 0) & wrapMask] = fn;\n this[(j + 1) & wrapMask] = receiver;\n this[(j + 2) & wrapMask] = arg;\n this._length = length;\n};\n\nQueue.prototype.shift = function () {\n var front = this._front,\n ret = this[front];\n\n this[front] = undefined;\n this._front = (front + 1) & (this._capacity - 1);\n this._length--;\n return ret;\n};\n\nQueue.prototype.length = function () {\n return this._length;\n};\n\nQueue.prototype._checkCapacity = function (size) {\n if (this._capacity < size) {\n this._resizeTo(this._capacity << 1);\n }\n};\n\nQueue.prototype._resizeTo = function (capacity) {\n var oldCapacity = this._capacity;\n this._capacity = capacity;\n var front = this._front;\n var length = this._length;\n var moveItemsCount = (front + length) & (oldCapacity - 1);\n arrayMove(this, 0, this, oldCapacity, moveItemsCount);\n};\n\nmodule.exports = Queue;\n\n},{}],27:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(\n Promise, INTERNAL, tryConvertToPromise, apiRejection) {\nvar util = _dereq_(\"./util\");\n\nvar raceLater = function (promise) {\n return promise.then(function(array) {\n return race(array, promise);\n });\n};\n\nfunction race(promises, parent) {\n var maybePromise = tryConvertToPromise(promises);\n\n if (maybePromise instanceof Promise) {\n return raceLater(maybePromise);\n } else {\n promises = util.asArray(promises);\n if (promises === null)\n return apiRejection(\"expecting an array or an iterable object but got \" + util.classString(promises));\n }\n\n var ret = new Promise(INTERNAL);\n if (parent !== undefined) {\n ret._propagateFrom(parent, 3);\n }\n var fulfill = ret._fulfill;\n var reject = ret._reject;\n for (var i = 0, len = promises.length; i < len; ++i) {\n var val = promises[i];\n\n if (val === undefined && !(i in promises)) {\n continue;\n }\n\n Promise.cast(val)._then(fulfill, reject, undefined, ret, null);\n }\n return ret;\n}\n\nPromise.race = function (promises) {\n return race(promises, undefined);\n};\n\nPromise.prototype.race = function () {\n return race(this, undefined);\n};\n\n};\n\n},{\"./util\":36}],28:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise,\n PromiseArray,\n apiRejection,\n tryConvertToPromise,\n INTERNAL,\n debug) {\nvar util = _dereq_(\"./util\");\nvar tryCatch = util.tryCatch;\n\nfunction ReductionPromiseArray(promises, fn, initialValue, _each) {\n this.constructor$(promises);\n var context = Promise._getContext();\n this._fn = util.contextBind(context, fn);\n if (initialValue !== undefined) {\n initialValue = Promise.resolve(initialValue);\n initialValue._attachCancellationCallback(this);\n }\n this._initialValue = initialValue;\n this._currentCancellable = null;\n if(_each === INTERNAL) {\n this._eachValues = Array(this._length);\n } else if (_each === 0) {\n this._eachValues = null;\n } else {\n this._eachValues = undefined;\n }\n this._promise._captureStackTrace();\n this._init$(undefined, -5);\n}\nutil.inherits(ReductionPromiseArray, PromiseArray);\n\nReductionPromiseArray.prototype._gotAccum = function(accum) {\n if (this._eachValues !== undefined &&\n this._eachValues !== null &&\n accum !== INTERNAL) {\n this._eachValues.push(accum);\n }\n};\n\nReductionPromiseArray.prototype._eachComplete = function(value) {\n if (this._eachValues !== null) {\n this._eachValues.push(value);\n }\n return this._eachValues;\n};\n\nReductionPromiseArray.prototype._init = function() {};\n\nReductionPromiseArray.prototype._resolveEmptyArray = function() {\n this._resolve(this._eachValues !== undefined ? this._eachValues\n : this._initialValue);\n};\n\nReductionPromiseArray.prototype.shouldCopyValues = function () {\n return false;\n};\n\nReductionPromiseArray.prototype._resolve = function(value) {\n this._promise._resolveCallback(value);\n this._values = null;\n};\n\nReductionPromiseArray.prototype._resultCancelled = function(sender) {\n if (sender === this._initialValue) return this._cancel();\n if (this._isResolved()) return;\n this._resultCancelled$();\n if (this._currentCancellable instanceof Promise) {\n this._currentCancellable.cancel();\n }\n if (this._initialValue instanceof Promise) {\n this._initialValue.cancel();\n }\n};\n\nReductionPromiseArray.prototype._iterate = function (values) {\n this._values = values;\n var value;\n var i;\n var length = values.length;\n if (this._initialValue !== undefined) {\n value = this._initialValue;\n i = 0;\n } else {\n value = Promise.resolve(values[0]);\n i = 1;\n }\n\n this._currentCancellable = value;\n\n for (var j = i; j < length; ++j) {\n var maybePromise = values[j];\n if (maybePromise instanceof Promise) {\n maybePromise.suppressUnhandledRejections();\n }\n }\n\n if (!value.isRejected()) {\n for (; i < length; ++i) {\n var ctx = {\n accum: null,\n value: values[i],\n index: i,\n length: length,\n array: this\n };\n\n value = value._then(gotAccum, undefined, undefined, ctx, undefined);\n\n if ((i & 127) === 0) {\n value._setNoAsyncGuarantee();\n }\n }\n }\n\n if (this._eachValues !== undefined) {\n value = value\n ._then(this._eachComplete, undefined, undefined, this, undefined);\n }\n value._then(completed, completed, undefined, value, this);\n};\n\nPromise.prototype.reduce = function (fn, initialValue) {\n return reduce(this, fn, initialValue, null);\n};\n\nPromise.reduce = function (promises, fn, initialValue, _each) {\n return reduce(promises, fn, initialValue, _each);\n};\n\nfunction completed(valueOrReason, array) {\n if (this.isFulfilled()) {\n array._resolve(valueOrReason);\n } else {\n array._reject(valueOrReason);\n }\n}\n\nfunction reduce(promises, fn, initialValue, _each) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n var array = new ReductionPromiseArray(promises, fn, initialValue, _each);\n return array.promise();\n}\n\nfunction gotAccum(accum) {\n this.accum = accum;\n this.array._gotAccum(accum);\n var value = tryConvertToPromise(this.value, this.array._promise);\n if (value instanceof Promise) {\n this.array._currentCancellable = value;\n return value._then(gotValue, undefined, undefined, this, undefined);\n } else {\n return gotValue.call(this, value);\n }\n}\n\nfunction gotValue(value) {\n var array = this.array;\n var promise = array._promise;\n var fn = tryCatch(array._fn);\n promise._pushContext();\n var ret;\n if (array._eachValues !== undefined) {\n ret = fn.call(promise._boundValue(), value, this.index, this.length);\n } else {\n ret = fn.call(promise._boundValue(),\n this.accum, value, this.index, this.length);\n }\n if (ret instanceof Promise) {\n array._currentCancellable = ret;\n }\n var promiseCreated = promise._popContext();\n debug.checkForgottenReturns(\n ret,\n promiseCreated,\n array._eachValues !== undefined ? \"Promise.each\" : \"Promise.reduce\",\n promise\n );\n return ret;\n}\n};\n\n},{\"./util\":36}],29:[function(_dereq_,module,exports){\n\"use strict\";\nvar util = _dereq_(\"./util\");\nvar schedule;\nvar noAsyncScheduler = function() {\n throw new Error(\"No async scheduler available\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n};\nvar NativePromise = util.getNativePromise();\nif (util.isNode && typeof MutationObserver === \"undefined\") {\n var GlobalSetImmediate = global.setImmediate;\n var ProcessNextTick = process.nextTick;\n schedule = util.isRecentNode\n ? function(fn) { GlobalSetImmediate.call(global, fn); }\n : function(fn) { ProcessNextTick.call(process, fn); };\n} else if (typeof NativePromise === \"function\" &&\n typeof NativePromise.resolve === \"function\") {\n var nativePromise = NativePromise.resolve();\n schedule = function(fn) {\n nativePromise.then(fn);\n };\n} else if ((typeof MutationObserver !== \"undefined\") &&\n !(typeof window !== \"undefined\" &&\n window.navigator &&\n (window.navigator.standalone || window.cordova)) &&\n (\"classList\" in document.documentElement)) {\n schedule = (function() {\n var div = document.createElement(\"div\");\n var opts = {attributes: true};\n var toggleScheduled = false;\n var div2 = document.createElement(\"div\");\n var o2 = new MutationObserver(function() {\n div.classList.toggle(\"foo\");\n toggleScheduled = false;\n });\n o2.observe(div2, opts);\n\n var scheduleToggle = function() {\n if (toggleScheduled) return;\n toggleScheduled = true;\n div2.classList.toggle(\"foo\");\n };\n\n return function schedule(fn) {\n var o = new MutationObserver(function() {\n o.disconnect();\n fn();\n });\n o.observe(div, opts);\n scheduleToggle();\n };\n })();\n} else if (typeof setImmediate !== \"undefined\") {\n schedule = function (fn) {\n setImmediate(fn);\n };\n} else if (typeof setTimeout !== \"undefined\") {\n schedule = function (fn) {\n setTimeout(fn, 0);\n };\n} else {\n schedule = noAsyncScheduler;\n}\nmodule.exports = schedule;\n\n},{\"./util\":36}],30:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports =\n function(Promise, PromiseArray, debug) {\nvar PromiseInspection = Promise.PromiseInspection;\nvar util = _dereq_(\"./util\");\n\nfunction SettledPromiseArray(values) {\n this.constructor$(values);\n}\nutil.inherits(SettledPromiseArray, PromiseArray);\n\nSettledPromiseArray.prototype._promiseResolved = function (index, inspection) {\n this._values[index] = inspection;\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= this._length) {\n this._resolve(this._values);\n return true;\n }\n return false;\n};\n\nSettledPromiseArray.prototype._promiseFulfilled = function (value, index) {\n var ret = new PromiseInspection();\n ret._bitField = 33554432;\n ret._settledValueField = value;\n return this._promiseResolved(index, ret);\n};\nSettledPromiseArray.prototype._promiseRejected = function (reason, index) {\n var ret = new PromiseInspection();\n ret._bitField = 16777216;\n ret._settledValueField = reason;\n return this._promiseResolved(index, ret);\n};\n\nPromise.settle = function (promises) {\n debug.deprecated(\".settle()\", \".reflect()\");\n return new SettledPromiseArray(promises).promise();\n};\n\nPromise.allSettled = function (promises) {\n return new SettledPromiseArray(promises).promise();\n};\n\nPromise.prototype.settle = function () {\n return Promise.settle(this);\n};\n};\n\n},{\"./util\":36}],31:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports =\nfunction(Promise, PromiseArray, apiRejection) {\nvar util = _dereq_(\"./util\");\nvar RangeError = _dereq_(\"./errors\").RangeError;\nvar AggregateError = _dereq_(\"./errors\").AggregateError;\nvar isArray = util.isArray;\nvar CANCELLATION = {};\n\n\nfunction SomePromiseArray(values) {\n this.constructor$(values);\n this._howMany = 0;\n this._unwrap = false;\n this._initialized = false;\n}\nutil.inherits(SomePromiseArray, PromiseArray);\n\nSomePromiseArray.prototype._init = function () {\n if (!this._initialized) {\n return;\n }\n if (this._howMany === 0) {\n this._resolve([]);\n return;\n }\n this._init$(undefined, -5);\n var isArrayResolved = isArray(this._values);\n if (!this._isResolved() &&\n isArrayResolved &&\n this._howMany > this._canPossiblyFulfill()) {\n this._reject(this._getRangeError(this.length()));\n }\n};\n\nSomePromiseArray.prototype.init = function () {\n this._initialized = true;\n this._init();\n};\n\nSomePromiseArray.prototype.setUnwrap = function () {\n this._unwrap = true;\n};\n\nSomePromiseArray.prototype.howMany = function () {\n return this._howMany;\n};\n\nSomePromiseArray.prototype.setHowMany = function (count) {\n this._howMany = count;\n};\n\nSomePromiseArray.prototype._promiseFulfilled = function (value) {\n this._addFulfilled(value);\n if (this._fulfilled() === this.howMany()) {\n this._values.length = this.howMany();\n if (this.howMany() === 1 && this._unwrap) {\n this._resolve(this._values[0]);\n } else {\n this._resolve(this._values);\n }\n return true;\n }\n return false;\n\n};\nSomePromiseArray.prototype._promiseRejected = function (reason) {\n this._addRejected(reason);\n return this._checkOutcome();\n};\n\nSomePromiseArray.prototype._promiseCancelled = function () {\n if (this._values instanceof Promise || this._values == null) {\n return this._cancel();\n }\n this._addRejected(CANCELLATION);\n return this._checkOutcome();\n};\n\nSomePromiseArray.prototype._checkOutcome = function() {\n if (this.howMany() > this._canPossiblyFulfill()) {\n var e = new AggregateError();\n for (var i = this.length(); i < this._values.length; ++i) {\n if (this._values[i] !== CANCELLATION) {\n e.push(this._values[i]);\n }\n }\n if (e.length > 0) {\n this._reject(e);\n } else {\n this._cancel();\n }\n return true;\n }\n return false;\n};\n\nSomePromiseArray.prototype._fulfilled = function () {\n return this._totalResolved;\n};\n\nSomePromiseArray.prototype._rejected = function () {\n return this._values.length - this.length();\n};\n\nSomePromiseArray.prototype._addRejected = function (reason) {\n this._values.push(reason);\n};\n\nSomePromiseArray.prototype._addFulfilled = function (value) {\n this._values[this._totalResolved++] = value;\n};\n\nSomePromiseArray.prototype._canPossiblyFulfill = function () {\n return this.length() - this._rejected();\n};\n\nSomePromiseArray.prototype._getRangeError = function (count) {\n var message = \"Input array must contain at least \" +\n this._howMany + \" items but contains only \" + count + \" items\";\n return new RangeError(message);\n};\n\nSomePromiseArray.prototype._resolveEmptyArray = function () {\n this._reject(this._getRangeError(0));\n};\n\nfunction some(promises, howMany) {\n if ((howMany | 0) !== howMany || howMany < 0) {\n return apiRejection(\"expecting a positive integer\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n var ret = new SomePromiseArray(promises);\n var promise = ret.promise();\n ret.setHowMany(howMany);\n ret.init();\n return promise;\n}\n\nPromise.some = function (promises, howMany) {\n return some(promises, howMany);\n};\n\nPromise.prototype.some = function (howMany) {\n return some(this, howMany);\n};\n\nPromise._SomePromiseArray = SomePromiseArray;\n};\n\n},{\"./errors\":12,\"./util\":36}],32:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise) {\nfunction PromiseInspection(promise) {\n if (promise !== undefined) {\n promise = promise._target();\n this._bitField = promise._bitField;\n this._settledValueField = promise._isFateSealed()\n ? promise._settledValue() : undefined;\n }\n else {\n this._bitField = 0;\n this._settledValueField = undefined;\n }\n}\n\nPromiseInspection.prototype._settledValue = function() {\n return this._settledValueField;\n};\n\nvar value = PromiseInspection.prototype.value = function () {\n if (!this.isFulfilled()) {\n throw new TypeError(\"cannot get fulfillment value of a non-fulfilled promise\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n return this._settledValue();\n};\n\nvar reason = PromiseInspection.prototype.error =\nPromiseInspection.prototype.reason = function () {\n if (!this.isRejected()) {\n throw new TypeError(\"cannot get rejection reason of a non-rejected promise\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n return this._settledValue();\n};\n\nvar isFulfilled = PromiseInspection.prototype.isFulfilled = function() {\n return (this._bitField & 33554432) !== 0;\n};\n\nvar isRejected = PromiseInspection.prototype.isRejected = function () {\n return (this._bitField & 16777216) !== 0;\n};\n\nvar isPending = PromiseInspection.prototype.isPending = function () {\n return (this._bitField & 50397184) === 0;\n};\n\nvar isResolved = PromiseInspection.prototype.isResolved = function () {\n return (this._bitField & 50331648) !== 0;\n};\n\nPromiseInspection.prototype.isCancelled = function() {\n return (this._bitField & 8454144) !== 0;\n};\n\nPromise.prototype.__isCancelled = function() {\n return (this._bitField & 65536) === 65536;\n};\n\nPromise.prototype._isCancelled = function() {\n return this._target().__isCancelled();\n};\n\nPromise.prototype.isCancelled = function() {\n return (this._target()._bitField & 8454144) !== 0;\n};\n\nPromise.prototype.isPending = function() {\n return isPending.call(this._target());\n};\n\nPromise.prototype.isRejected = function() {\n return isRejected.call(this._target());\n};\n\nPromise.prototype.isFulfilled = function() {\n return isFulfilled.call(this._target());\n};\n\nPromise.prototype.isResolved = function() {\n return isResolved.call(this._target());\n};\n\nPromise.prototype.value = function() {\n return value.call(this._target());\n};\n\nPromise.prototype.reason = function() {\n var target = this._target();\n target._unsetRejectionIsUnhandled();\n return reason.call(target);\n};\n\nPromise.prototype._value = function() {\n return this._settledValue();\n};\n\nPromise.prototype._reason = function() {\n this._unsetRejectionIsUnhandled();\n return this._settledValue();\n};\n\nPromise.PromiseInspection = PromiseInspection;\n};\n\n},{}],33:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar util = _dereq_(\"./util\");\nvar errorObj = util.errorObj;\nvar isObject = util.isObject;\n\nfunction tryConvertToPromise(obj, context) {\n if (isObject(obj)) {\n if (obj instanceof Promise) return obj;\n var then = getThen(obj);\n if (then === errorObj) {\n if (context) context._pushContext();\n var ret = Promise.reject(then.e);\n if (context) context._popContext();\n return ret;\n } else if (typeof then === \"function\") {\n if (isAnyBluebirdPromise(obj)) {\n var ret = new Promise(INTERNAL);\n obj._then(\n ret._fulfill,\n ret._reject,\n undefined,\n ret,\n null\n );\n return ret;\n }\n return doThenable(obj, then, context);\n }\n }\n return obj;\n}\n\nfunction doGetThen(obj) {\n return obj.then;\n}\n\nfunction getThen(obj) {\n try {\n return doGetThen(obj);\n } catch (e) {\n errorObj.e = e;\n return errorObj;\n }\n}\n\nvar hasProp = {}.hasOwnProperty;\nfunction isAnyBluebirdPromise(obj) {\n try {\n return hasProp.call(obj, \"_promise0\");\n } catch (e) {\n return false;\n }\n}\n\nfunction doThenable(x, then, context) {\n var promise = new Promise(INTERNAL);\n var ret = promise;\n if (context) context._pushContext();\n promise._captureStackTrace();\n if (context) context._popContext();\n var synchronous = true;\n var result = util.tryCatch(then).call(x, resolve, reject);\n synchronous = false;\n\n if (promise && result === errorObj) {\n promise._rejectCallback(result.e, true, true);\n promise = null;\n }\n\n function resolve(value) {\n if (!promise) return;\n promise._resolveCallback(value);\n promise = null;\n }\n\n function reject(reason) {\n if (!promise) return;\n promise._rejectCallback(reason, synchronous, true);\n promise = null;\n }\n return ret;\n}\n\nreturn tryConvertToPromise;\n};\n\n},{\"./util\":36}],34:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL, debug) {\nvar util = _dereq_(\"./util\");\nvar TimeoutError = Promise.TimeoutError;\n\nfunction HandleWrapper(handle) {\n this.handle = handle;\n}\n\nHandleWrapper.prototype._resultCancelled = function() {\n clearTimeout(this.handle);\n};\n\nvar afterValue = function(value) { return delay(+this).thenReturn(value); };\nvar delay = Promise.delay = function (ms, value) {\n var ret;\n var handle;\n if (value !== undefined) {\n ret = Promise.resolve(value)\n ._then(afterValue, null, null, ms, undefined);\n if (debug.cancellation() && value instanceof Promise) {\n ret._setOnCancel(value);\n }\n } else {\n ret = new Promise(INTERNAL);\n handle = setTimeout(function() { ret._fulfill(); }, +ms);\n if (debug.cancellation()) {\n ret._setOnCancel(new HandleWrapper(handle));\n }\n ret._captureStackTrace();\n }\n ret._setAsyncGuaranteed();\n return ret;\n};\n\nPromise.prototype.delay = function (ms) {\n return delay(ms, this);\n};\n\nvar afterTimeout = function (promise, message, parent) {\n var err;\n if (typeof message !== \"string\") {\n if (message instanceof Error) {\n err = message;\n } else {\n err = new TimeoutError(\"operation timed out\");\n }\n } else {\n err = new TimeoutError(message);\n }\n util.markAsOriginatingFromRejection(err);\n promise._attachExtraTrace(err);\n promise._reject(err);\n\n if (parent != null) {\n parent.cancel();\n }\n};\n\nfunction successClear(value) {\n clearTimeout(this.handle);\n return value;\n}\n\nfunction failureClear(reason) {\n clearTimeout(this.handle);\n throw reason;\n}\n\nPromise.prototype.timeout = function (ms, message) {\n ms = +ms;\n var ret, parent;\n\n var handleWrapper = new HandleWrapper(setTimeout(function timeoutTimeout() {\n if (ret.isPending()) {\n afterTimeout(ret, message, parent);\n }\n }, ms));\n\n if (debug.cancellation()) {\n parent = this.then();\n ret = parent._then(successClear, failureClear,\n undefined, handleWrapper, undefined);\n ret._setOnCancel(handleWrapper);\n } else {\n ret = this._then(successClear, failureClear,\n undefined, handleWrapper, undefined);\n }\n\n return ret;\n};\n\n};\n\n},{\"./util\":36}],35:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function (Promise, apiRejection, tryConvertToPromise,\n createContext, INTERNAL, debug) {\n var util = _dereq_(\"./util\");\n var TypeError = _dereq_(\"./errors\").TypeError;\n var inherits = _dereq_(\"./util\").inherits;\n var errorObj = util.errorObj;\n var tryCatch = util.tryCatch;\n var NULL = {};\n\n function thrower(e) {\n setTimeout(function(){throw e;}, 0);\n }\n\n function castPreservingDisposable(thenable) {\n var maybePromise = tryConvertToPromise(thenable);\n if (maybePromise !== thenable &&\n typeof thenable._isDisposable === \"function\" &&\n typeof thenable._getDisposer === \"function\" &&\n thenable._isDisposable()) {\n maybePromise._setDisposable(thenable._getDisposer());\n }\n return maybePromise;\n }\n function dispose(resources, inspection) {\n var i = 0;\n var len = resources.length;\n var ret = new Promise(INTERNAL);\n function iterator() {\n if (i >= len) return ret._fulfill();\n var maybePromise = castPreservingDisposable(resources[i++]);\n if (maybePromise instanceof Promise &&\n maybePromise._isDisposable()) {\n try {\n maybePromise = tryConvertToPromise(\n maybePromise._getDisposer().tryDispose(inspection),\n resources.promise);\n } catch (e) {\n return thrower(e);\n }\n if (maybePromise instanceof Promise) {\n return maybePromise._then(iterator, thrower,\n null, null, null);\n }\n }\n iterator();\n }\n iterator();\n return ret;\n }\n\n function Disposer(data, promise, context) {\n this._data = data;\n this._promise = promise;\n this._context = context;\n }\n\n Disposer.prototype.data = function () {\n return this._data;\n };\n\n Disposer.prototype.promise = function () {\n return this._promise;\n };\n\n Disposer.prototype.resource = function () {\n if (this.promise().isFulfilled()) {\n return this.promise().value();\n }\n return NULL;\n };\n\n Disposer.prototype.tryDispose = function(inspection) {\n var resource = this.resource();\n var context = this._context;\n if (context !== undefined) context._pushContext();\n var ret = resource !== NULL\n ? this.doDispose(resource, inspection) : null;\n if (context !== undefined) context._popContext();\n this._promise._unsetDisposable();\n this._data = null;\n return ret;\n };\n\n Disposer.isDisposer = function (d) {\n return (d != null &&\n typeof d.resource === \"function\" &&\n typeof d.tryDispose === \"function\");\n };\n\n function FunctionDisposer(fn, promise, context) {\n this.constructor$(fn, promise, context);\n }\n inherits(FunctionDisposer, Disposer);\n\n FunctionDisposer.prototype.doDispose = function (resource, inspection) {\n var fn = this.data();\n return fn.call(resource, resource, inspection);\n };\n\n function maybeUnwrapDisposer(value) {\n if (Disposer.isDisposer(value)) {\n this.resources[this.index]._setDisposable(value);\n return value.promise();\n }\n return value;\n }\n\n function ResourceList(length) {\n this.length = length;\n this.promise = null;\n this[length-1] = null;\n }\n\n ResourceList.prototype._resultCancelled = function() {\n var len = this.length;\n for (var i = 0; i < len; ++i) {\n var item = this[i];\n if (item instanceof Promise) {\n item.cancel();\n }\n }\n };\n\n Promise.using = function () {\n var len = arguments.length;\n if (len < 2) return apiRejection(\n \"you must pass at least 2 arguments to Promise.using\");\n var fn = arguments[len - 1];\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n var input;\n var spreadArgs = true;\n if (len === 2 && Array.isArray(arguments[0])) {\n input = arguments[0];\n len = input.length;\n spreadArgs = false;\n } else {\n input = arguments;\n len--;\n }\n var resources = new ResourceList(len);\n for (var i = 0; i < len; ++i) {\n var resource = input[i];\n if (Disposer.isDisposer(resource)) {\n var disposer = resource;\n resource = resource.promise();\n resource._setDisposable(disposer);\n } else {\n var maybePromise = tryConvertToPromise(resource);\n if (maybePromise instanceof Promise) {\n resource =\n maybePromise._then(maybeUnwrapDisposer, null, null, {\n resources: resources,\n index: i\n }, undefined);\n }\n }\n resources[i] = resource;\n }\n\n var reflectedResources = new Array(resources.length);\n for (var i = 0; i < reflectedResources.length; ++i) {\n reflectedResources[i] = Promise.resolve(resources[i]).reflect();\n }\n\n var resultPromise = Promise.all(reflectedResources)\n .then(function(inspections) {\n for (var i = 0; i < inspections.length; ++i) {\n var inspection = inspections[i];\n if (inspection.isRejected()) {\n errorObj.e = inspection.error();\n return errorObj;\n } else if (!inspection.isFulfilled()) {\n resultPromise.cancel();\n return;\n }\n inspections[i] = inspection.value();\n }\n promise._pushContext();\n\n fn = tryCatch(fn);\n var ret = spreadArgs\n ? fn.apply(undefined, inspections) : fn(inspections);\n var promiseCreated = promise._popContext();\n debug.checkForgottenReturns(\n ret, promiseCreated, \"Promise.using\", promise);\n return ret;\n });\n\n var promise = resultPromise.lastly(function() {\n var inspection = new Promise.PromiseInspection(resultPromise);\n return dispose(resources, inspection);\n });\n resources.promise = promise;\n promise._setOnCancel(resources);\n return promise;\n };\n\n Promise.prototype._setDisposable = function (disposer) {\n this._bitField = this._bitField | 131072;\n this._disposer = disposer;\n };\n\n Promise.prototype._isDisposable = function () {\n return (this._bitField & 131072) > 0;\n };\n\n Promise.prototype._getDisposer = function () {\n return this._disposer;\n };\n\n Promise.prototype._unsetDisposable = function () {\n this._bitField = this._bitField & (~131072);\n this._disposer = undefined;\n };\n\n Promise.prototype.disposer = function (fn) {\n if (typeof fn === \"function\") {\n return new FunctionDisposer(fn, this, createContext());\n }\n throw new TypeError();\n };\n\n};\n\n},{\"./errors\":12,\"./util\":36}],36:[function(_dereq_,module,exports){\n\"use strict\";\nvar es5 = _dereq_(\"./es5\");\nvar canEvaluate = typeof navigator == \"undefined\";\n\nvar errorObj = {e: {}};\nvar tryCatchTarget;\nvar globalObject = typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window :\n typeof global !== \"undefined\" ? global :\n this !== undefined ? this : null;\n\nfunction tryCatcher() {\n try {\n var target = tryCatchTarget;\n tryCatchTarget = null;\n return target.apply(this, arguments);\n } catch (e) {\n errorObj.e = e;\n return errorObj;\n }\n}\nfunction tryCatch(fn) {\n tryCatchTarget = fn;\n return tryCatcher;\n}\n\nvar inherits = function(Child, Parent) {\n var hasProp = {}.hasOwnProperty;\n\n function T() {\n this.constructor = Child;\n this.constructor$ = Parent;\n for (var propertyName in Parent.prototype) {\n if (hasProp.call(Parent.prototype, propertyName) &&\n propertyName.charAt(propertyName.length-1) !== \"$\"\n ) {\n this[propertyName + \"$\"] = Parent.prototype[propertyName];\n }\n }\n }\n T.prototype = Parent.prototype;\n Child.prototype = new T();\n return Child.prototype;\n};\n\n\nfunction isPrimitive(val) {\n return val == null || val === true || val === false ||\n typeof val === \"string\" || typeof val === \"number\";\n\n}\n\nfunction isObject(value) {\n return typeof value === \"function\" ||\n typeof value === \"object\" && value !== null;\n}\n\nfunction maybeWrapAsError(maybeError) {\n if (!isPrimitive(maybeError)) return maybeError;\n\n return new Error(safeToString(maybeError));\n}\n\nfunction withAppended(target, appendee) {\n var len = target.length;\n var ret = new Array(len + 1);\n var i;\n for (i = 0; i < len; ++i) {\n ret[i] = target[i];\n }\n ret[i] = appendee;\n return ret;\n}\n\nfunction getDataPropertyOrDefault(obj, key, defaultValue) {\n if (es5.isES5) {\n var desc = Object.getOwnPropertyDescriptor(obj, key);\n\n if (desc != null) {\n return desc.get == null && desc.set == null\n ? desc.value\n : defaultValue;\n }\n } else {\n return {}.hasOwnProperty.call(obj, key) ? obj[key] : undefined;\n }\n}\n\nfunction notEnumerableProp(obj, name, value) {\n if (isPrimitive(obj)) return obj;\n var descriptor = {\n value: value,\n configurable: true,\n enumerable: false,\n writable: true\n };\n es5.defineProperty(obj, name, descriptor);\n return obj;\n}\n\nfunction thrower(r) {\n throw r;\n}\n\nvar inheritedDataKeys = (function() {\n var excludedPrototypes = [\n Array.prototype,\n Object.prototype,\n Function.prototype\n ];\n\n var isExcludedProto = function(val) {\n for (var i = 0; i < excludedPrototypes.length; ++i) {\n if (excludedPrototypes[i] === val) {\n return true;\n }\n }\n return false;\n };\n\n if (es5.isES5) {\n var getKeys = Object.getOwnPropertyNames;\n return function(obj) {\n var ret = [];\n var visitedKeys = Object.create(null);\n while (obj != null && !isExcludedProto(obj)) {\n var keys;\n try {\n keys = getKeys(obj);\n } catch (e) {\n return ret;\n }\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (visitedKeys[key]) continue;\n visitedKeys[key] = true;\n var desc = Object.getOwnPropertyDescriptor(obj, key);\n if (desc != null && desc.get == null && desc.set == null) {\n ret.push(key);\n }\n }\n obj = es5.getPrototypeOf(obj);\n }\n return ret;\n };\n } else {\n var hasProp = {}.hasOwnProperty;\n return function(obj) {\n if (isExcludedProto(obj)) return [];\n var ret = [];\n\n /*jshint forin:false */\n enumeration: for (var key in obj) {\n if (hasProp.call(obj, key)) {\n ret.push(key);\n } else {\n for (var i = 0; i < excludedPrototypes.length; ++i) {\n if (hasProp.call(excludedPrototypes[i], key)) {\n continue enumeration;\n }\n }\n ret.push(key);\n }\n }\n return ret;\n };\n }\n\n})();\n\nvar thisAssignmentPattern = /this\\s*\\.\\s*\\S+\\s*=/;\nfunction isClass(fn) {\n try {\n if (typeof fn === \"function\") {\n var keys = es5.names(fn.prototype);\n\n var hasMethods = es5.isES5 && keys.length > 1;\n var hasMethodsOtherThanConstructor = keys.length > 0 &&\n !(keys.length === 1 && keys[0] === \"constructor\");\n var hasThisAssignmentAndStaticMethods =\n thisAssignmentPattern.test(fn + \"\") && es5.names(fn).length > 0;\n\n if (hasMethods || hasMethodsOtherThanConstructor ||\n hasThisAssignmentAndStaticMethods) {\n return true;\n }\n }\n return false;\n } catch (e) {\n return false;\n }\n}\n\nfunction toFastProperties(obj) {\n /*jshint -W027,-W055,-W031*/\n function FakeConstructor() {}\n FakeConstructor.prototype = obj;\n var receiver = new FakeConstructor();\n function ic() {\n return typeof receiver.foo;\n }\n ic();\n ic();\n return obj;\n eval(obj);\n}\n\nvar rident = /^[a-z$_][a-z$_0-9]*$/i;\nfunction isIdentifier(str) {\n return rident.test(str);\n}\n\nfunction filledRange(count, prefix, suffix) {\n var ret = new Array(count);\n for(var i = 0; i < count; ++i) {\n ret[i] = prefix + i + suffix;\n }\n return ret;\n}\n\nfunction safeToString(obj) {\n try {\n return obj + \"\";\n } catch (e) {\n return \"[no string representation]\";\n }\n}\n\nfunction isError(obj) {\n return obj instanceof Error ||\n (obj !== null &&\n typeof obj === \"object\" &&\n typeof obj.message === \"string\" &&\n typeof obj.name === \"string\");\n}\n\nfunction markAsOriginatingFromRejection(e) {\n try {\n notEnumerableProp(e, \"isOperational\", true);\n }\n catch(ignore) {}\n}\n\nfunction originatesFromRejection(e) {\n if (e == null) return false;\n return ((e instanceof Error[\"__BluebirdErrorTypes__\"].OperationalError) ||\n e[\"isOperational\"] === true);\n}\n\nfunction canAttachTrace(obj) {\n return isError(obj) && es5.propertyIsWritable(obj, \"stack\");\n}\n\nvar ensureErrorObject = (function() {\n if (!(\"stack\" in new Error())) {\n return function(value) {\n if (canAttachTrace(value)) return value;\n try {throw new Error(safeToString(value));}\n catch(err) {return err;}\n };\n } else {\n return function(value) {\n if (canAttachTrace(value)) return value;\n return new Error(safeToString(value));\n };\n }\n})();\n\nfunction classString(obj) {\n return {}.toString.call(obj);\n}\n\nfunction copyDescriptors(from, to, filter) {\n var keys = es5.names(from);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (filter(key)) {\n try {\n es5.defineProperty(to, key, es5.getDescriptor(from, key));\n } catch (ignore) {}\n }\n }\n}\n\nvar asArray = function(v) {\n if (es5.isArray(v)) {\n return v;\n }\n return null;\n};\n\nif (typeof Symbol !== \"undefined\" && Symbol.iterator) {\n var ArrayFrom = typeof Array.from === \"function\" ? function(v) {\n return Array.from(v);\n } : function(v) {\n var ret = [];\n var it = v[Symbol.iterator]();\n var itResult;\n while (!((itResult = it.next()).done)) {\n ret.push(itResult.value);\n }\n return ret;\n };\n\n asArray = function(v) {\n if (es5.isArray(v)) {\n return v;\n } else if (v != null && typeof v[Symbol.iterator] === \"function\") {\n return ArrayFrom(v);\n }\n return null;\n };\n}\n\nvar isNode = typeof process !== \"undefined\" &&\n classString(process).toLowerCase() === \"[object process]\";\n\nvar hasEnvVariables = typeof process !== \"undefined\" &&\n typeof process.env !== \"undefined\";\n\nfunction env(key) {\n return hasEnvVariables ? process.env[key] : undefined;\n}\n\nfunction getNativePromise() {\n if (typeof Promise === \"function\") {\n try {\n var promise = new Promise(function(){});\n if (classString(promise) === \"[object Promise]\") {\n return Promise;\n }\n } catch (e) {}\n }\n}\n\nvar reflectHandler;\nfunction contextBind(ctx, cb) {\n if (ctx === null ||\n typeof cb !== \"function\" ||\n cb === reflectHandler) {\n return cb;\n }\n\n if (ctx.domain !== null) {\n cb = ctx.domain.bind(cb);\n }\n\n var async = ctx.async;\n if (async !== null) {\n var old = cb;\n cb = function() {\n var args = (new Array(2)).concat([].slice.call(arguments));;\n args[0] = old;\n args[1] = this;\n return async.runInAsyncScope.apply(async, args);\n };\n }\n return cb;\n}\n\nvar ret = {\n setReflectHandler: function(fn) {\n reflectHandler = fn;\n },\n isClass: isClass,\n isIdentifier: isIdentifier,\n inheritedDataKeys: inheritedDataKeys,\n getDataPropertyOrDefault: getDataPropertyOrDefault,\n thrower: thrower,\n isArray: es5.isArray,\n asArray: asArray,\n notEnumerableProp: notEnumerableProp,\n isPrimitive: isPrimitive,\n isObject: isObject,\n isError: isError,\n canEvaluate: canEvaluate,\n errorObj: errorObj,\n tryCatch: tryCatch,\n inherits: inherits,\n withAppended: withAppended,\n maybeWrapAsError: maybeWrapAsError,\n toFastProperties: toFastProperties,\n filledRange: filledRange,\n toString: safeToString,\n canAttachTrace: canAttachTrace,\n ensureErrorObject: ensureErrorObject,\n originatesFromRejection: originatesFromRejection,\n markAsOriginatingFromRejection: markAsOriginatingFromRejection,\n classString: classString,\n copyDescriptors: copyDescriptors,\n isNode: isNode,\n hasEnvVariables: hasEnvVariables,\n env: env,\n global: globalObject,\n getNativePromise: getNativePromise,\n contextBind: contextBind\n};\nret.isRecentNode = ret.isNode && (function() {\n var version;\n if (process.versions && process.versions.node) {\n version = process.versions.node.split(\".\").map(Number);\n } else if (process.version) {\n version = process.version.split(\".\").map(Number);\n }\n return (version[0] === 0 && version[1] > 10) || (version[0] > 0);\n})();\nret.nodeSupportsAsyncResource = ret.isNode && (function() {\n var supportsAsync = false;\n try {\n var res = _dereq_(\"async_hooks\").AsyncResource;\n supportsAsync = typeof res.prototype.runInAsyncScope === \"function\";\n } catch (e) {\n supportsAsync = false;\n }\n return supportsAsync;\n})();\n\nif (ret.isNode) ret.toFastProperties(process);\n\ntry {throw new Error(); } catch (e) {ret.lastLineError = e;}\nmodule.exports = ret;\n\n},{\"./es5\":13,\"async_hooks\":undefined}]},{},[4])(4)\n}); ;if (typeof window !== 'undefined' && window !== null) { window.P = window.Promise; } else if (typeof self !== 'undefined' && self !== null) { self.P = self.Promise; }","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n"],"sourceRoot":""}