{"version":3,"sources":["../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/AwaitValue.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/bn.js/lib/bn.js","../node_modules/asn1.js/lib/asn1/base/node.js","../node_modules/asn1.js/lib/asn1/base/reporter.js","../node_modules/asn1.js/lib/asn1/constants/der.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js","../node_modules/babel-runtime/core-js/object/assign.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/asn1.js/lib/asn1.js","../node_modules/asn1.js/node_modules/bn.js/lib/bn.js","../node_modules/asn1.js/lib/asn1/encoders/index.js","../node_modules/asn1.js/lib/asn1/encoders/der.js","../node_modules/asn1.js/lib/asn1/decoders/index.js","../node_modules/asn1.js/lib/asn1/decoders/der.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopd.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-to-array.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/babel-runtime/core-js/array/from.js","../node_modules/attr-accept/dist/es/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js","../node_modules/base64-js/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/asn1.js/lib/asn1/api.js","../node_modules/asn1.js/lib/asn1/encoders/pem.js","../node_modules/asn1.js/lib/asn1/decoders/pem.js","../node_modules/asn1.js/lib/asn1/base/index.js","../node_modules/asn1.js/lib/asn1/constants/index.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/assign.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.assign.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-assign.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js","../node_modules/babel-runtime/core-js/symbol/iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js","../node_modules/babel-runtime/core-js/symbol.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/index.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_meta.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-keys.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn-ext.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.async-iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.observable.js","../node_modules/babel-runtime/core-js/object/set-prototype-of.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/set-prototype-of.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.set-prototype-of.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_set-proto.js","../node_modules/babel-runtime/core-js/object/create.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/create.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.create.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/entries.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.entries.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/values.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es7.object.values.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/array/from.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.from.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-call.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array-iter.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_create-property.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator-method.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_classof.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-detect.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/babel-runtime/core-js/object/values.js","../node_modules/base16/lib/index.js","../node_modules/base16/lib/threezerotwofour.js","../node_modules/base16/lib/apathy.js","../node_modules/base16/lib/ashes.js","../node_modules/base16/lib/atelier-dune.js","../node_modules/base16/lib/atelier-forest.js","../node_modules/base16/lib/atelier-heath.js","../node_modules/base16/lib/atelier-lakeside.js","../node_modules/base16/lib/atelier-seaside.js","../node_modules/base16/lib/bespin.js","../node_modules/base16/lib/brewer.js","../node_modules/base16/lib/bright.js","../node_modules/base16/lib/chalk.js","../node_modules/base16/lib/codeschool.js","../node_modules/base16/lib/colors.js","../node_modules/base16/lib/default.js","../node_modules/base16/lib/eighties.js","../node_modules/base16/lib/embers.js","../node_modules/base16/lib/flat.js","../node_modules/base16/lib/google.js","../node_modules/base16/lib/grayscale.js","../node_modules/base16/lib/greenscreen.js","../node_modules/base16/lib/harmonic.js","../node_modules/base16/lib/hopscotch.js","../node_modules/base16/lib/isotope.js","../node_modules/base16/lib/marrakesh.js","../node_modules/base16/lib/mocha.js","../node_modules/base16/lib/monokai.js","../node_modules/base16/lib/ocean.js","../node_modules/base16/lib/paraiso.js","../node_modules/base16/lib/pop.js","../node_modules/base16/lib/railscasts.js","../node_modules/base16/lib/shapeshifter.js","../node_modules/base16/lib/solarized.js","../node_modules/base16/lib/summerfruit.js","../node_modules/base16/lib/tomorrow.js","../node_modules/base16/lib/tube.js","../node_modules/base16/lib/twilight.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js","../node_modules/babel-runtime/helpers/extends.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js","../node_modules/babel-runtime/helpers/classCallCheck.js","../node_modules/babel-runtime/helpers/possibleConstructorReturn.js","../node_modules/babel-runtime/helpers/inherits.js","../node_modules/babel-runtime/helpers/objectWithoutProperties.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/asn1.js/lib/asn1/base/buffer.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/babel-runtime/core-js/object/entries.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-runtime/helpers/typeof.js"],"names":["_isNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","prototype","toString","call","e","_iterableToArray","iter","Symbol","iterator","Object","Array","from","_AwaitValue","value","this","wrapped","_arrayWithHoles","arr","isArray","_nonIterableRest","TypeError","_createForOfIteratorHelper","o","i","F","s","n","length","done","_e","f","it","err","normalCompletion","didErr","step","next","_e2","module","exports","assert","val","msg","Error","inherits","ctor","superCtor","super_","TempCtor","constructor","BN","number","base","endian","isBN","negative","words","red","_init","Buffer","wordSize","window","require","parseHex4Bits","string","index","c","charCodeAt","parseHexByte","lowerBound","r","parseBase","str","start","end","mul","b","len","Math","min","move","dest","src","num","max","left","right","cmp","_initNumber","_initArray","replace","_parseHex","_parseBase","toArray","ceil","j","w","off","_strip","limbLen","limbPow","total","mod","word","imuln","_iaddn","pow","copy","_move","clone","_expand","size","_normSign","for","inspect","zeros","groupSizes","groupBases","padding","out","carry","groupSize","groupBase","isZero","modrn","idivn","toNumber","ret","toJSON","toBuffer","toArrayLike","smallMulTo","self","a","lo","k","ncarry","rword","maxJ","ArrayType","byteLength","reqLength","res","allocUnsafe","allocate","_toArrayLikeLE","position","shift","_toArrayLikeBE","clz32","_countBits","t","_zeroBits","bitLength","hi","zeroBits","toTwos","width","abs","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","neg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","bit","wbit","iadd","isub","add","sub","comb10MulTo","mid","a0","al0","ah0","a1","al1","ah1","a2","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","b0","bl0","bh0","b1","bl1","bh1","b2","bl2","bh2","b3","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","b6","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","b9","bl9","bh9","w0","imul","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","bigMulTo","hncarry","jumboMulTo","FFTM","x","y","mulTo","makeRBT","N","l","revBin","rb","permute","rbt","rws","iws","rtws","itws","transform","rtwdf","cos","PI","itwdf","sin","p","rtwdf_","itwdf_","re","ie","ro","io","rx","guessLen13b","m","odd","conjugate","normalize13b","ws","round","convert13b","stub","ph","mulp","_","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","isNegNum","muln","sqr","isqr","toBitArray","q","iushln","bits","carryMask","newCarry","ishln","iushrn","hint","extended","h","mask","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","mode","bhi","diff","qj","div","divmod","positive","divn","umod","divRound","dm","half","r2","andln","acc","modn","egcd","A","B","C","D","g","isEven","yp","xp","im","isOdd","jm","gcd","_invmp","x1","x2","delta","cmpn","invm","bincn","ucmp","gtn","gt","gten","gte","ltn","lt","lten","lte","eqn","eq","Red","toRed","ctx","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","sqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","name","tmp","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","split","imulK","undefined","strip","input","output","outLen","prev","mod3","one","nOne","lpow","z","inv","wnd","current","currentLen","mont","u","Reporter","EncoderBuffer","DecoderBuffer","tags","methods","concat","Node","enc","parent","state","_baseState","children","tag","args","reverseArgs","choice","optional","any","obj","use","useDecoder","key","explicit","implicit","contains","_wrap","stateProps","cstate","forEach","prop","method","push","apply","arguments","body","filter","child","equal","_useArgs","arg","map","keys","slice","item","def","newKey","_decode","options","wrapResult","prevObj","result","present","prevKey","enterKey","_peekTag","isError","save","_decodeGeneric","_decodeChoice","restore","enterObject","_decodeTag","offset","raw","track","path","data","_getUse","_reporterState","leaveObject","exitKey","leaveKey","_decodeList","test","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeBool","_decodeInt","error","entity","_use","match","some","node","type","_createEncoderBuffer","reporter","_encode","_encodeValue","_skipDefault","content","primitive","_encodeChoice","_encodePrimitive","cls","_encodeComposite","JSON","stringify","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool","_isNumstr","_isPrintstr","errors","ReporterError","rethrow","pathLen","join","now","inherited","elem","message","stack","partial","captureStackTrace","reverse","tagClass","0","1","2","3","tagClassByName","tagByName","aFunction","fn","that","isObject","S","valueOf","floor","isNaN","shared","uid","core","global","store","version","copyright","getOwnPropertySymbols","anObject","dPs","enumBugKeys","IE_PROTO","Empty","createDict","iframeDocument","iframe","style","display","appendChild","contentWindow","document","open","write","close","create","O","Properties","has","TAG","stat","configurable","LIBRARY","wksExt","defineProperty","$Symbol","charAt","__esModule","_defineProperty","enumerable","writable","asn1","bignum","define","constants","decoders","encoders","littleEndian","der","pem","DEREncoder","tree","DERNode","two","encode","encodedTag","hasOwnProperty","encodeTag","header","alloc","lenOctets","unused","buf","writeUInt16BE","id","values","relative","splice","ident","objid","time","date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","isBuffer","numArray","sign","unshift","_getEncoder","dataBuffer","defaultBuffer","DERDecoder","derDecodeTag","fail","readUInt8","oct","tagStr","derDecodeLen","decode","isDecoderBuffer","buffer","isEmpty","decodedTag","skip","_skipUntilEnd","decoder","possibleEnd","String","fromCharCode","readUInt16BE","numstr","printstr","identifiers","subident","first","second","year","mon","day","hour","sec","UTC","_getDecoder","get","is","createElement","toIObject","arrayIndexOf","object","names","cof","propertyIsEnumerable","toInteger","$at","iterated","_t","_i","point","$export","redefine","hide","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","returnThis","Base","NAME","Constructor","DEFAULT","IS_SET","FORCED","IteratorPrototype","getMethod","kind","proto","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","P","$keys","hiddenKeys","getOwnPropertyNames","pIE","createDesc","toPrimitive","IE8_DOM_DEFINE","gOPD","getOwnPropertyDescriptor","DESCRIPTORS","getKeys","isEnum","isEntries","asyncGeneratorStep","gen","resolve","reject","_next","_throw","info","Promise","then","_asyncToGenerator","_assertThisInitialized","ReferenceError","_taggedTemplateLiteral","strings","freeze","defineProperties","_classCallCheck","instance","_toArray","default","file","acceptedFiles","acceptedFilesArray","fileName","mimeType","toLowerCase","baseMimeType","validType","trim","endsWith","Parent","Class","isNativeReflectConstruct","Function","bind","setPrototypeOf","_cache","Map","indexOf","set","Wrapper","AsyncGenerator","front","back","resume","wrappedAwait","AwaitValue","settle","_invoke","request","_wrapAsyncGenerator","asyncIterator","_defineProperties","target","props","descriptor","_createClass","protoProps","staticProps","_inherits","subClass","superClass","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","Arr","_byteLength","curByte","revLookup","fromByteArray","uint8","extraBytes","parts","len2","encodeChunk","lookup","Uint8Array","code","_createSuper","Derived","Super","NewTarget","Entity","_createNamed","Generated","_initNamed","PEMEncoder","label","PEMDecoder","lines","toUpperCase","base64","_reverse","assign","gOPS","toObject","IObject","$assign","K","source","T","aLen","getSymbols","toLength","toAbsoluteIndex","IS_INCLUDES","$this","el","fromIndex","defined","TO_STRING","pos","dP","documentElement","ObjectProto","TO_STRING_TAG","DOMIterables","Collection","addToUnscopables","_k","Arguments","META","KEY","$fails","wks","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$GOPS","$DP","gOPN","$JSON","_stringify","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","protoDesc","wrap","sym","isSymbol","$defineProperty","$defineProperties","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","G","W","es6Symbols","wellKnownSymbols","keyFor","useSetter","useSimple","FAILS_ON_PRIMITIVES","replacer","$replacer","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","meta","NEED","fastKey","getWeak","onFreeze","symbols","windowNames","getWindowNames","check","buggy","__proto__","$Object","$values","isArrayIter","createProperty","getIterFn","arrayLike","mapfn","mapping","iterFn","ArrayProto","classof","getIteratorMethod","ARG","tryGet","callee","SAFE_CLOSING","riter","exec","skipClosing","safe","_toConsumableArray","arrayLikeToArray","iterableToArray","unsupportedIterableToArray","ownKeys","enumerableOnly","_objectSpread2","getOwnPropertyDescriptors","_interopRequire","_threezerotwofour","threezerotwofour","_apathy","apathy","_ashes","ashes","_atelierDune","atelierDune","_atelierForest","atelierForest","_atelierHeath","atelierHeath","_atelierLakeside","atelierLakeside","_atelierSeaside","atelierSeaside","_bespin","bespin","_brewer","brewer","_bright","bright","_chalk","chalk","_codeschool","codeschool","_colors","colors","_default","_eighties","eighties","_embers","embers","_flat","flat","_google","google","_grayscale","grayscale","_greenscreen","greenscreen","_harmonic","harmonic","_hopscotch","hopscotch","_isotope","isotope","_marrakesh","marrakesh","_mocha","mocha","_monokai","monokai","_ocean","ocean","_paraiso","paraiso","_pop","pop","_railscasts","railscasts","_shapeshifter","shapeshifter","_solarized","solarized","_summerfruit","summerfruit","_tomorrow","tomorrow","_tube","tube","_twilight","twilight","scheme","author","base00","base01","base02","base03","base04","base05","base06","base07","base08","base09","base0A","base0B","base0C","base0D","base0E","base0F","__e","USE_SYMBOL","_assign","_assign2","own","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","IS_WRAP","expProto","virtual","R","U","__g","_unsupportedIterableToArray","minLen","Attributes","_typeof2","_typeof3","_setPrototypeOf2","_interopRequireDefault","_create2","_setPrototypeOf","_typeof","_possibleConstructorReturn","assertThisInitialized","_objectWithoutProperties","excluded","sourceKeys","sourceSymbolKeys","isEncoderBuffer","bytes","bitmap","_getPrototypeOf","_arrayLikeToArray","arr2","px","random","_slicedToArray","arrayWithHoles","_arr","_n","_d","_s","nonIterableRest","_iterator2","_symbol2"],"mappings":"4GAAe,SAASA,IACtB,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EACjE,GAAID,QAAQC,UAAUC,KAAM,OAAO,EACnC,GAAqB,oBAAVC,MAAsB,OAAO,EAExC,IAEE,OADAC,KAAKC,UAAUC,SAASC,KAAKP,QAAQC,UAAUG,KAAM,IAAI,iBAClD,EACP,MAAOI,GACP,OAAO,GATX,mC,kCCAe,SAASC,EAAiBC,GACvC,GAAsB,qBAAXC,QAA0BA,OAAOC,YAAYC,OAAOH,GAAO,OAAOI,MAAMC,KAAKL,GAD1F,mC,kCCAe,SAASM,EAAYC,GAClCC,KAAKC,QAAUF,EADjB,mC,kCCAe,SAASG,EAAgBC,GACtC,GAAIP,MAAMQ,QAAQD,GAAM,OAAOA,EADjC,mC,kCCAe,SAASE,IACtB,MAAM,IAAIC,UAAU,6IADtB,mC,iCCAA,+CACe,SAASC,EAA2BC,GACjD,GAAsB,qBAAXf,QAAgD,MAAtBe,EAAEf,OAAOC,UAAmB,CAC/D,GAAIE,MAAMQ,QAAQI,KAAOA,EAAI,YAA2BA,IAAK,CAC3D,IAAIC,EAAI,EAEJC,EAAI,aAER,MAAO,CACLC,EAAGD,EACHE,EAAG,WACD,OAAIH,GAAKD,EAAEK,OAAe,CACxBC,MAAM,GAED,CACLA,MAAM,EACNf,MAAOS,EAAEC,OAGbnB,EAAG,SAAWyB,GACZ,MAAMA,GAERC,EAAGN,GAIP,MAAM,IAAIJ,UAAU,yIAGtB,IAAIW,EAGAC,EAFAC,GAAmB,EACnBC,GAAS,EAEb,MAAO,CACLT,EAAG,WACDM,EAAKT,EAAEf,OAAOC,aAEhBkB,EAAG,WACD,IAAIS,EAAOJ,EAAGK,OAEd,OADAH,EAAmBE,EAAKP,KACjBO,GAET/B,EAAG,SAAWiC,GACZH,GAAS,EACTF,EAAMK,GAERP,EAAG,WACD,IACOG,GAAoC,MAAhBF,EAAW,QAAWA,EAAW,SAC1D,QACA,GAAIG,EAAQ,MAAMF,O,sBClD1B,sBAAWM,EAAQC,GACjB,aAGA,SAASC,EAAQC,EAAKC,GACpB,IAAKD,EAAK,MAAM,IAAIE,MAAMD,GAAO,oBAKnC,SAASE,EAAUC,EAAMC,GACvBD,EAAKE,OAASD,EACd,IAAIE,EAAW,aACfA,EAAS/C,UAAY6C,EAAU7C,UAC/B4C,EAAK5C,UAAY,IAAI+C,EACrBH,EAAK5C,UAAUgD,YAAcJ,EAK/B,SAASK,EAAIC,EAAQC,EAAMC,GACzB,GAAIH,EAAGI,KAAKH,GACV,OAAOA,EAGTrC,KAAKyC,SAAW,EAChBzC,KAAK0C,MAAQ,KACb1C,KAAKa,OAAS,EAGdb,KAAK2C,IAAM,KAEI,OAAXN,IACW,OAATC,GAA0B,OAATA,IACnBC,EAASD,EACTA,EAAO,IAGTtC,KAAK4C,MAAMP,GAAU,EAAGC,GAAQ,GAAIC,GAAU,OAYlD,IAAIM,EATkB,kBAAXrB,EACTA,EAAOC,QAAUW,EAEjBX,EAAQW,GAAKA,EAGfA,EAAGA,GAAKA,EACRA,EAAGU,SAAW,GAGd,IAEID,EADoB,qBAAXE,QAAmD,qBAAlBA,OAAOF,OACxCE,OAAOF,OAEPG,EAAQ,MAAUH,OAE7B,MAAOvD,IAgIT,SAAS2D,EAAeC,EAAQC,GAC9B,IAAIC,EAAIF,EAAOG,WAAWF,GAE1B,OAAIC,GAAK,IAAMA,GAAK,GACXA,EAAI,GAEFA,GAAK,IAAMA,GAAK,GAClBA,EAAI,GAEFA,GAAK,IAAMA,GAAK,IAClBA,EAAI,QAEX1B,GAAO,EAAO,wBAA0BwB,GAI5C,SAASI,EAAcJ,EAAQK,EAAYJ,GACzC,IAAIK,EAAIP,EAAcC,EAAQC,GAI9B,OAHIA,EAAQ,GAAKI,IACfC,GAAKP,EAAcC,EAAQC,EAAQ,IAAM,GAEpCK,EA8CT,SAASC,EAAWC,EAAKC,EAAOC,EAAKC,GAInC,IAHA,IAAIL,EAAI,EACJM,EAAI,EACJC,EAAMC,KAAKC,IAAIP,EAAI7C,OAAQ+C,GACtBnD,EAAIkD,EAAOlD,EAAIsD,EAAKtD,IAAK,CAChC,IAAI2C,EAAIM,EAAIL,WAAW5C,GAAK,GAE5B+C,GAAKK,EAIHC,EADEV,GAAK,GACHA,EAAI,GAAK,GAGJA,GAAK,GACVA,EAAI,GAAK,GAITA,EAEN1B,EAAO0B,GAAK,GAAKU,EAAID,EAAK,qBAC1BL,GAAKM,EAEP,OAAON,EA4DT,SAASU,EAAMC,EAAMC,GACnBD,EAAKzB,MAAQ0B,EAAI1B,MACjByB,EAAKtD,OAASuD,EAAIvD,OAClBsD,EAAK1B,SAAW2B,EAAI3B,SACpB0B,EAAKxB,IAAMyB,EAAIzB,IAsCjB,GA9TAP,EAAGI,KAAO,SAAe6B,GACvB,OAAIA,aAAejC,GAIJ,OAARiC,GAA+B,kBAARA,GAC5BA,EAAIlC,YAAYW,WAAaV,EAAGU,UAAYlD,MAAMQ,QAAQiE,EAAI3B,QAGlEN,EAAGkC,IAAM,SAAcC,EAAMC,GAC3B,OAAID,EAAKE,IAAID,GAAS,EAAUD,EACzBC,GAGTpC,EAAG6B,IAAM,SAAcM,EAAMC,GAC3B,OAAID,EAAKE,IAAID,GAAS,EAAUD,EACzBC,GAGTpC,EAAGjD,UAAUyD,MAAQ,SAAeP,EAAQC,EAAMC,GAChD,GAAsB,kBAAXF,EACT,OAAOrC,KAAK0E,YAAYrC,EAAQC,EAAMC,GAGxC,GAAsB,kBAAXF,EACT,OAAOrC,KAAK2E,WAAWtC,EAAQC,EAAMC,GAG1B,QAATD,IACFA,EAAO,IAETZ,EAAOY,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,IAGnD,IAAIqB,EAAQ,EACM,OAFlBtB,EAASA,EAAOjD,WAAWwF,QAAQ,OAAQ,KAEhC,KACTjB,IACA3D,KAAKyC,SAAW,GAGdkB,EAAQtB,EAAOxB,SACJ,KAATyB,EACFtC,KAAK6E,UAAUxC,EAAQsB,EAAOpB,IAE9BvC,KAAK8E,WAAWzC,EAAQC,EAAMqB,GACf,OAAXpB,GACFvC,KAAK2E,WAAW3E,KAAK+E,UAAWzC,EAAMC,MAM9CH,EAAGjD,UAAUuF,YAAc,SAAsBrC,EAAQC,EAAMC,GACzDF,EAAS,IACXrC,KAAKyC,SAAW,EAChBJ,GAAUA,GAERA,EAAS,UACXrC,KAAK0C,MAAQ,CAAU,SAATL,GACdrC,KAAKa,OAAS,GACLwB,EAAS,kBAClBrC,KAAK0C,MAAQ,CACF,SAATL,EACCA,EAAS,SAAa,UAEzBrC,KAAKa,OAAS,IAEda,EAAOW,EAAS,kBAChBrC,KAAK0C,MAAQ,CACF,SAATL,EACCA,EAAS,SAAa,SACvB,GAEFrC,KAAKa,OAAS,GAGD,OAAX0B,GAGJvC,KAAK2E,WAAW3E,KAAK+E,UAAWzC,EAAMC,IAGxCH,EAAGjD,UAAUwF,WAAa,SAAqBtC,EAAQC,EAAMC,GAG3D,GADAb,EAAgC,kBAAlBW,EAAOxB,QACjBwB,EAAOxB,QAAU,EAGnB,OAFAb,KAAK0C,MAAQ,CAAC,GACd1C,KAAKa,OAAS,EACPb,KAGTA,KAAKa,OAASmD,KAAKgB,KAAK3C,EAAOxB,OAAS,GACxCb,KAAK0C,MAAQ,IAAI9C,MAAMI,KAAKa,QAC5B,IAAK,IAAIJ,EAAI,EAAGA,EAAIT,KAAKa,OAAQJ,IAC/BT,KAAK0C,MAAMjC,GAAK,EAGlB,IAAIwE,EAAGC,EACHC,EAAM,EACV,GAAe,OAAX5C,EACF,IAAK9B,EAAI4B,EAAOxB,OAAS,EAAGoE,EAAI,EAAGxE,GAAK,EAAGA,GAAK,EAC9CyE,EAAI7C,EAAO5B,GAAM4B,EAAO5B,EAAI,IAAM,EAAM4B,EAAO5B,EAAI,IAAM,GACzDT,KAAK0C,MAAMuC,IAAOC,GAAKC,EAAO,SAC9BnF,KAAK0C,MAAMuC,EAAI,GAAMC,IAAO,GAAKC,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACPF,UAGC,GAAe,OAAX1C,EACT,IAAK9B,EAAI,EAAGwE,EAAI,EAAGxE,EAAI4B,EAAOxB,OAAQJ,GAAK,EACzCyE,EAAI7C,EAAO5B,GAAM4B,EAAO5B,EAAI,IAAM,EAAM4B,EAAO5B,EAAI,IAAM,GACzDT,KAAK0C,MAAMuC,IAAOC,GAAKC,EAAO,SAC9BnF,KAAK0C,MAAMuC,EAAI,GAAMC,IAAO,GAAKC,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACPF,KAIN,OAAOjF,KAAKoF,UA2BdhD,EAAGjD,UAAU0F,UAAY,SAAoBxC,EAAQsB,EAAOpB,GAE1DvC,KAAKa,OAASmD,KAAKgB,MAAM3C,EAAOxB,OAAS8C,GAAS,GAClD3D,KAAK0C,MAAQ,IAAI9C,MAAMI,KAAKa,QAC5B,IAAK,IAAIJ,EAAI,EAAGA,EAAIT,KAAKa,OAAQJ,IAC/BT,KAAK0C,MAAMjC,GAAK,EAIlB,IAGIyE,EAHAC,EAAM,EACNF,EAAI,EAGR,GAAe,OAAX1C,EACF,IAAK9B,EAAI4B,EAAOxB,OAAS,EAAGJ,GAAKkD,EAAOlD,GAAK,EAC3CyE,EAAI5B,EAAajB,EAAQsB,EAAOlD,IAAM0E,EACtCnF,KAAK0C,MAAMuC,IAAU,SAAJC,EACbC,GAAO,IACTA,GAAO,GACPF,GAAK,EACLjF,KAAK0C,MAAMuC,IAAMC,IAAM,IAEvBC,GAAO,OAKX,IAAK1E,GADa4B,EAAOxB,OAAS8C,GACX,IAAM,EAAIA,EAAQ,EAAIA,EAAOlD,EAAI4B,EAAOxB,OAAQJ,GAAK,EAC1EyE,EAAI5B,EAAajB,EAAQsB,EAAOlD,IAAM0E,EACtCnF,KAAK0C,MAAMuC,IAAU,SAAJC,EACbC,GAAO,IACTA,GAAO,GACPF,GAAK,EACLjF,KAAK0C,MAAMuC,IAAMC,IAAM,IAEvBC,GAAO,EAKbnF,KAAKoF,UA8BPhD,EAAGjD,UAAU2F,WAAa,SAAqBzC,EAAQC,EAAMqB,GAE3D3D,KAAK0C,MAAQ,CAAC,GACd1C,KAAKa,OAAS,EAGd,IAAK,IAAIwE,EAAU,EAAGC,EAAU,EAAGA,GAAW,SAAWA,GAAWhD,EAClE+C,IAEFA,IACAC,EAAWA,EAAUhD,EAAQ,EAO7B,IALA,IAAIiD,EAAQlD,EAAOxB,OAAS8C,EACxB6B,EAAMD,EAAQF,EACdzB,EAAMI,KAAKC,IAAIsB,EAAOA,EAAQC,GAAO7B,EAErC8B,EAAO,EACFhF,EAAIkD,EAAOlD,EAAImD,EAAKnD,GAAK4E,EAChCI,EAAOhC,EAAUpB,EAAQ5B,EAAGA,EAAI4E,EAAS/C,GAEzCtC,KAAK0F,MAAMJ,GACPtF,KAAK0C,MAAM,GAAK+C,EAAO,SACzBzF,KAAK0C,MAAM,IAAM+C,EAEjBzF,KAAK2F,OAAOF,GAIhB,GAAY,IAARD,EAAW,CACb,IAAII,EAAM,EAGV,IAFAH,EAAOhC,EAAUpB,EAAQ5B,EAAG4B,EAAOxB,OAAQyB,GAEtC7B,EAAI,EAAGA,EAAI+E,EAAK/E,IACnBmF,GAAOtD,EAGTtC,KAAK0F,MAAME,GACP5F,KAAK0C,MAAM,GAAK+C,EAAO,SACzBzF,KAAK0C,MAAM,IAAM+C,EAEjBzF,KAAK2F,OAAOF,GAIhBzF,KAAKoF,UAGPhD,EAAGjD,UAAU0G,KAAO,SAAe1B,GACjCA,EAAKzB,MAAQ,IAAI9C,MAAMI,KAAKa,QAC5B,IAAK,IAAIJ,EAAI,EAAGA,EAAIT,KAAKa,OAAQJ,IAC/B0D,EAAKzB,MAAMjC,GAAKT,KAAK0C,MAAMjC,GAE7B0D,EAAKtD,OAASb,KAAKa,OACnBsD,EAAK1B,SAAWzC,KAAKyC,SACrB0B,EAAKxB,IAAM3C,KAAK2C,KAUlBP,EAAGjD,UAAU2G,MAAQ,SAAgB3B,GACnCD,EAAKC,EAAMnE,OAGboC,EAAGjD,UAAU4G,MAAQ,WACnB,IAAIvC,EAAI,IAAIpB,EAAG,MAEf,OADApC,KAAK6F,KAAKrC,GACHA,GAGTpB,EAAGjD,UAAU6G,QAAU,SAAkBC,GACvC,KAAOjG,KAAKa,OAASoF,GACnBjG,KAAK0C,MAAM1C,KAAKa,UAAY,EAE9B,OAAOb,MAIToC,EAAGjD,UAAUiG,OAAS,WACpB,KAAOpF,KAAKa,OAAS,GAAqC,IAAhCb,KAAK0C,MAAM1C,KAAKa,OAAS,IACjDb,KAAKa,SAEP,OAAOb,KAAKkG,aAGd9D,EAAGjD,UAAU+G,UAAY,WAKvB,OAHoB,IAAhBlG,KAAKa,QAAkC,IAAlBb,KAAK0C,MAAM,KAClC1C,KAAKyC,SAAW,GAEXzC,MAKa,qBAAXP,QAAgD,oBAAfA,OAAO0G,IACjD,IACE/D,EAAGjD,UAAUM,OAAO0G,IAAI,+BAAiCC,EACzD,MAAO9G,GACP8C,EAAGjD,UAAUiH,QAAUA,OAGzBhE,EAAGjD,UAAUiH,QAAUA,EAGzB,SAASA,IACP,OAAQpG,KAAK2C,IAAM,UAAY,SAAW3C,KAAKZ,SAAS,IAAM,IAiChE,IAAIiH,EAAQ,CACV,GACA,IACA,KACA,MACA,OACA,QACA,SACA,UACA,WACA,YACA,aACA,cACA,eACA,gBACA,iBACA,kBACA,mBACA,oBACA,qBACA,sBACA,uBACA,wBACA,yBACA,0BACA,2BACA,6BAGEC,EAAa,CACf,EAAG,EACH,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EACvB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGhBC,EAAa,CACf,EAAG,EACH,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAC5D,SAAU,IAAU,SAAU,SAAU,SAAU,QAAS,SAC3D,SAAU,SAAU,SAAU,SAAU,KAAU,QAAS,QAC3D,QAAS,QAAS,QAAS,SAAU,SAAU,SAAU,SACzD,MAAU,SAAU,SAAU,SAAU,SAAU,SAAU,UAG9DnE,EAAGjD,UAAUC,SAAW,SAAmBkD,EAAMkE,GAI/C,IAAIC,EACJ,GAHAD,EAAoB,EAAVA,GAAe,EAGZ,MAJblE,EAAOA,GAAQ,KAIa,QAATA,EAAgB,CACjCmE,EAAM,GAGN,IAFA,IAAItB,EAAM,EACNuB,EAAQ,EACHjG,EAAI,EAAGA,EAAIT,KAAKa,OAAQJ,IAAK,CACpC,IAAIyE,EAAIlF,KAAK0C,MAAMjC,GACfgF,GAA+B,UAArBP,GAAKC,EAAOuB,IAAmBtH,SAAS,IACtDsH,EAASxB,IAAO,GAAKC,EAAQ,UAC7BA,GAAO,IACI,KACTA,GAAO,GACP1E,KAGAgG,EADY,IAAVC,GAAejG,IAAMT,KAAKa,OAAS,EAC/BwF,EAAM,EAAIZ,EAAK5E,QAAU4E,EAAOgB,EAEhChB,EAAOgB,EAMjB,IAHc,IAAVC,IACFD,EAAMC,EAAMtH,SAAS,IAAMqH,GAEtBA,EAAI5F,OAAS2F,IAAY,GAC9BC,EAAM,IAAMA,EAKd,OAHsB,IAAlBzG,KAAKyC,WACPgE,EAAM,IAAMA,GAEPA,EAGT,GAAInE,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,GAAI,CAElD,IAAIqE,EAAYL,EAAWhE,GAEvBsE,EAAYL,EAAWjE,GAC3BmE,EAAM,GACN,IAAIrD,EAAIpD,KAAK+F,QAEb,IADA3C,EAAEX,SAAW,GACLW,EAAEyD,UAAU,CAClB,IAAIrD,EAAIJ,EAAE0D,MAAMF,GAAWxH,SAASkD,GAMlCmE,GALFrD,EAAIA,EAAE2D,MAAMH,IAELC,SAGCrD,EAAIiD,EAFJJ,EAAMM,EAAYnD,EAAE3C,QAAU2C,EAAIiD,EAQ5C,IAHIzG,KAAK6G,WACPJ,EAAM,IAAMA,GAEPA,EAAI5F,OAAS2F,IAAY,GAC9BC,EAAM,IAAMA,EAKd,OAHsB,IAAlBzG,KAAKyC,WACPgE,EAAM,IAAMA,GAEPA,EAGT/E,GAAO,EAAO,oCAGhBU,EAAGjD,UAAU6H,SAAW,WACtB,IAAIC,EAAMjH,KAAK0C,MAAM,GASrB,OARoB,IAAhB1C,KAAKa,OACPoG,GAAuB,SAAhBjH,KAAK0C,MAAM,GACO,IAAhB1C,KAAKa,QAAkC,IAAlBb,KAAK0C,MAAM,GAEzCuE,GAAO,iBAAoC,SAAhBjH,KAAK0C,MAAM,GAC7B1C,KAAKa,OAAS,GACvBa,GAAO,EAAO,8CAEU,IAAlB1B,KAAKyC,UAAmBwE,EAAMA,GAGxC7E,EAAGjD,UAAU+H,OAAS,WACpB,OAAOlH,KAAKZ,SAAS,GAAI,IAGvByD,IACFT,EAAGjD,UAAUgI,SAAW,SAAmB5E,EAAQ1B,GACjD,OAAOb,KAAKoH,YAAYvE,EAAQN,EAAQ1B,KAI5CuB,EAAGjD,UAAU4F,QAAU,SAAkBxC,EAAQ1B,GAC/C,OAAOb,KAAKoH,YAAYxH,MAAO2C,EAAQ1B,IA4gBzC,SAASwG,EAAYC,EAAMjD,EAAKoC,GAC9BA,EAAIhE,SAAW4B,EAAI5B,SAAW6E,EAAK7E,SACnC,IAAIsB,EAAOuD,EAAKzG,OAASwD,EAAIxD,OAAU,EACvC4F,EAAI5F,OAASkD,EACbA,EAAOA,EAAM,EAAK,EAGlB,IAAIwD,EAAoB,EAAhBD,EAAK5E,MAAM,GACfoB,EAAmB,EAAfO,EAAI3B,MAAM,GACdc,EAAI+D,EAAIzD,EAER0D,EAAS,SAAJhE,EACLkD,EAASlD,EAAI,SAAa,EAC9BiD,EAAI/D,MAAM,GAAK8E,EAEf,IAAK,IAAIC,EAAI,EAAGA,EAAI1D,EAAK0D,IAAK,CAM5B,IAHA,IAAIC,EAAShB,IAAU,GACnBiB,EAAgB,SAARjB,EACRkB,EAAO5D,KAAKC,IAAIwD,EAAGpD,EAAIxD,OAAS,GAC3BoE,EAAIjB,KAAKM,IAAI,EAAGmD,EAAIH,EAAKzG,OAAS,GAAIoE,GAAK2C,EAAM3C,IAAK,CAC7D,IAAIxE,EAAKgH,EAAIxC,EAAK,EAIlByC,IADAlE,GAFA+D,EAAoB,EAAhBD,EAAK5E,MAAMjC,KACfqD,EAAmB,EAAfO,EAAI3B,MAAMuC,IACF0C,GACG,SAAa,EAC5BA,EAAY,SAAJnE,EAEViD,EAAI/D,MAAM+E,GAAa,EAARE,EACfjB,EAAiB,EAATgB,EAQV,OANc,IAAVhB,EACFD,EAAI/D,MAAM+E,GAAa,EAARf,EAEfD,EAAI5F,SAGC4F,EAAIrB,SAxiBbhD,EAAGjD,UAAUiI,YAAc,SAAsBS,EAAWtF,EAAQ1B,GAClEb,KAAKoF,SAEL,IAAI0C,EAAa9H,KAAK8H,aAClBC,EAAYlH,GAAUmD,KAAKM,IAAI,EAAGwD,GACtCpG,EAAOoG,GAAcC,EAAW,yCAChCrG,EAAOqG,EAAY,EAAG,+BAEtB,IAAIC,EAfS,SAAmBH,EAAW5B,GAC3C,OAAI4B,EAAUI,YACLJ,EAAUI,YAAYhC,GAExB,IAAI4B,EAAU5B,GAWXiC,CAASL,EAAWE,GAG9B,OADA/H,KAAK,gBADoB,OAAXuC,EAAkB,KAAO,OACRyF,EAAKF,GAC7BE,GAGT5F,EAAGjD,UAAUgJ,eAAiB,SAAyBH,EAAKF,GAI1D,IAHA,IAAIM,EAAW,EACX1B,EAAQ,EAEHjG,EAAI,EAAG4H,EAAQ,EAAG5H,EAAIT,KAAKa,OAAQJ,IAAK,CAC/C,IAAIgF,EAAQzF,KAAK0C,MAAMjC,IAAM4H,EAAS3B,EAEtCsB,EAAII,KAAqB,IAAP3C,EACd2C,EAAWJ,EAAInH,SACjBmH,EAAII,KAAe3C,GAAQ,EAAK,KAE9B2C,EAAWJ,EAAInH,SACjBmH,EAAII,KAAe3C,GAAQ,GAAM,KAGrB,IAAV4C,GACED,EAAWJ,EAAInH,SACjBmH,EAAII,KAAe3C,GAAQ,GAAM,KAEnCiB,EAAQ,EACR2B,EAAQ,IAER3B,EAAQjB,IAAS,GACjB4C,GAAS,GAIb,GAAID,EAAWJ,EAAInH,OAGjB,IAFAmH,EAAII,KAAc1B,EAEX0B,EAAWJ,EAAInH,QACpBmH,EAAII,KAAc,GAKxBhG,EAAGjD,UAAUmJ,eAAiB,SAAyBN,EAAKF,GAI1D,IAHA,IAAIM,EAAWJ,EAAInH,OAAS,EACxB6F,EAAQ,EAEHjG,EAAI,EAAG4H,EAAQ,EAAG5H,EAAIT,KAAKa,OAAQJ,IAAK,CAC/C,IAAIgF,EAAQzF,KAAK0C,MAAMjC,IAAM4H,EAAS3B,EAEtCsB,EAAII,KAAqB,IAAP3C,EACd2C,GAAY,IACdJ,EAAII,KAAe3C,GAAQ,EAAK,KAE9B2C,GAAY,IACdJ,EAAII,KAAe3C,GAAQ,GAAM,KAGrB,IAAV4C,GACED,GAAY,IACdJ,EAAII,KAAe3C,GAAQ,GAAM,KAEnCiB,EAAQ,EACR2B,EAAQ,IAER3B,EAAQjB,IAAS,GACjB4C,GAAS,GAIb,GAAID,GAAY,EAGd,IAFAJ,EAAII,KAAc1B,EAEX0B,GAAY,GACjBJ,EAAII,KAAc,GAKpBpE,KAAKuE,MACPnG,EAAGjD,UAAUqJ,WAAa,SAAqBtD,GAC7C,OAAO,GAAKlB,KAAKuE,MAAMrD,IAGzB9C,EAAGjD,UAAUqJ,WAAa,SAAqBtD,GAC7C,IAAIuD,EAAIvD,EACJ1B,EAAI,EAiBR,OAhBIiF,GAAK,OACPjF,GAAK,GACLiF,KAAO,IAELA,GAAK,KACPjF,GAAK,EACLiF,KAAO,GAELA,GAAK,IACPjF,GAAK,EACLiF,KAAO,GAELA,GAAK,IACPjF,GAAK,EACLiF,KAAO,GAEFjF,EAAIiF,GAIfrG,EAAGjD,UAAUuJ,UAAY,SAAoBxD,GAE3C,GAAU,IAANA,EAAS,OAAO,GAEpB,IAAIuD,EAAIvD,EACJ1B,EAAI,EAoBR,OAnBqB,KAAZ,KAAJiF,KACHjF,GAAK,GACLiF,KAAO,IAEU,KAAV,IAAJA,KACHjF,GAAK,EACLiF,KAAO,GAES,KAAT,GAAJA,KACHjF,GAAK,EACLiF,KAAO,GAES,KAAT,EAAJA,KACHjF,GAAK,EACLiF,KAAO,GAES,KAAT,EAAJA,IACHjF,IAEKA,GAITpB,EAAGjD,UAAUwJ,UAAY,WACvB,IAAIzD,EAAIlF,KAAK0C,MAAM1C,KAAKa,OAAS,GAC7B+H,EAAK5I,KAAKwI,WAAWtD,GACzB,OAA2B,IAAnBlF,KAAKa,OAAS,GAAU+H,GAiBlCxG,EAAGjD,UAAU0J,SAAW,WACtB,GAAI7I,KAAK6G,SAAU,OAAO,EAG1B,IADA,IAAIrD,EAAI,EACC/C,EAAI,EAAGA,EAAIT,KAAKa,OAAQJ,IAAK,CACpC,IAAIqD,EAAI9D,KAAK0I,UAAU1I,KAAK0C,MAAMjC,IAElC,GADA+C,GAAKM,EACK,KAANA,EAAU,MAEhB,OAAON,GAGTpB,EAAGjD,UAAU2I,WAAa,WACxB,OAAO9D,KAAKgB,KAAKhF,KAAK2I,YAAc,IAGtCvG,EAAGjD,UAAU2J,OAAS,SAAiBC,GACrC,OAAsB,IAAlB/I,KAAKyC,SACAzC,KAAKgJ,MAAMC,MAAMF,GAAOG,MAAM,GAEhClJ,KAAK+F,SAGd3D,EAAGjD,UAAUgK,SAAW,SAAmBJ,GACzC,OAAI/I,KAAKoJ,MAAML,EAAQ,GACd/I,KAAKqJ,KAAKN,GAAOG,MAAM,GAAGI,OAE5BtJ,KAAK+F,SAGd3D,EAAGjD,UAAUoK,MAAQ,WACnB,OAAyB,IAAlBvJ,KAAKyC,UAIdL,EAAGjD,UAAUqK,IAAM,WACjB,OAAOxJ,KAAK+F,QAAQuD,QAGtBlH,EAAGjD,UAAUmK,KAAO,WAKlB,OAJKtJ,KAAK6G,WACR7G,KAAKyC,UAAY,GAGZzC,MAIToC,EAAGjD,UAAUsK,KAAO,SAAepF,GACjC,KAAOrE,KAAKa,OAASwD,EAAIxD,QACvBb,KAAK0C,MAAM1C,KAAKa,UAAY,EAG9B,IAAK,IAAIJ,EAAI,EAAGA,EAAI4D,EAAIxD,OAAQJ,IAC9BT,KAAK0C,MAAMjC,GAAKT,KAAK0C,MAAMjC,GAAK4D,EAAI3B,MAAMjC,GAG5C,OAAOT,KAAKoF,UAGdhD,EAAGjD,UAAUuK,IAAM,SAAcrF,GAE/B,OADA3C,EAA0C,KAAlC1B,KAAKyC,SAAW4B,EAAI5B,WACrBzC,KAAKyJ,KAAKpF,IAInBjC,EAAGjD,UAAUwK,GAAK,SAAatF,GAC7B,OAAIrE,KAAKa,OAASwD,EAAIxD,OAAeb,KAAK+F,QAAQ2D,IAAIrF,GAC/CA,EAAI0B,QAAQ2D,IAAI1J,OAGzBoC,EAAGjD,UAAUyK,IAAM,SAAcvF,GAC/B,OAAIrE,KAAKa,OAASwD,EAAIxD,OAAeb,KAAK+F,QAAQ0D,KAAKpF,GAChDA,EAAI0B,QAAQ0D,KAAKzJ,OAI1BoC,EAAGjD,UAAU0K,MAAQ,SAAgBxF,GAEnC,IAAIP,EAEFA,EADE9D,KAAKa,OAASwD,EAAIxD,OAChBwD,EAEArE,KAGN,IAAK,IAAIS,EAAI,EAAGA,EAAIqD,EAAEjD,OAAQJ,IAC5BT,KAAK0C,MAAMjC,GAAKT,KAAK0C,MAAMjC,GAAK4D,EAAI3B,MAAMjC,GAK5C,OAFAT,KAAKa,OAASiD,EAAEjD,OAETb,KAAKoF,UAGdhD,EAAGjD,UAAU2K,KAAO,SAAezF,GAEjC,OADA3C,EAA0C,KAAlC1B,KAAKyC,SAAW4B,EAAI5B,WACrBzC,KAAK6J,MAAMxF,IAIpBjC,EAAGjD,UAAU4K,IAAM,SAAc1F,GAC/B,OAAIrE,KAAKa,OAASwD,EAAIxD,OAAeb,KAAK+F,QAAQ+D,KAAKzF,GAChDA,EAAI0B,QAAQ+D,KAAK9J,OAG1BoC,EAAGjD,UAAU6K,KAAO,SAAe3F,GACjC,OAAIrE,KAAKa,OAASwD,EAAIxD,OAAeb,KAAK+F,QAAQ8D,MAAMxF,GACjDA,EAAI0B,QAAQ8D,MAAM7J,OAI3BoC,EAAGjD,UAAU8K,MAAQ,SAAgB5F,GAEnC,IAAIkD,EACAzD,EACA9D,KAAKa,OAASwD,EAAIxD,QACpB0G,EAAIvH,KACJ8D,EAAIO,IAEJkD,EAAIlD,EACJP,EAAI9D,MAGN,IAAK,IAAIS,EAAI,EAAGA,EAAIqD,EAAEjD,OAAQJ,IAC5BT,KAAK0C,MAAMjC,GAAK8G,EAAE7E,MAAMjC,GAAKqD,EAAEpB,MAAMjC,GAGvC,GAAIT,OAASuH,EACX,KAAO9G,EAAI8G,EAAE1G,OAAQJ,IACnBT,KAAK0C,MAAMjC,GAAK8G,EAAE7E,MAAMjC,GAM5B,OAFAT,KAAKa,OAAS0G,EAAE1G,OAETb,KAAKoF,UAGdhD,EAAGjD,UAAU+K,KAAO,SAAe7F,GAEjC,OADA3C,EAA0C,KAAlC1B,KAAKyC,SAAW4B,EAAI5B,WACrBzC,KAAKiK,MAAM5F,IAIpBjC,EAAGjD,UAAUgL,IAAM,SAAc9F,GAC/B,OAAIrE,KAAKa,OAASwD,EAAIxD,OAAeb,KAAK+F,QAAQmE,KAAK7F,GAChDA,EAAI0B,QAAQmE,KAAKlK,OAG1BoC,EAAGjD,UAAUiL,KAAO,SAAe/F,GACjC,OAAIrE,KAAKa,OAASwD,EAAIxD,OAAeb,KAAK+F,QAAQkE,MAAM5F,GACjDA,EAAI0B,QAAQkE,MAAMjK,OAI3BoC,EAAGjD,UAAU8J,MAAQ,SAAgBF,GACnCrH,EAAwB,kBAAVqH,GAAsBA,GAAS,GAE7C,IAAIsB,EAAsC,EAAxBrG,KAAKgB,KAAK+D,EAAQ,IAChCuB,EAAWvB,EAAQ,GAGvB/I,KAAKgG,QAAQqE,GAETC,EAAW,GACbD,IAIF,IAAK,IAAI5J,EAAI,EAAGA,EAAI4J,EAAa5J,IAC/BT,KAAK0C,MAAMjC,GAAsB,UAAhBT,KAAK0C,MAAMjC,GAS9B,OALI6J,EAAW,IACbtK,KAAK0C,MAAMjC,IAAMT,KAAK0C,MAAMjC,GAAM,UAAc,GAAK6J,GAIhDtK,KAAKoF,UAGdhD,EAAGjD,UAAUkK,KAAO,SAAeN,GACjC,OAAO/I,KAAK+F,QAAQkD,MAAMF,IAI5B3G,EAAGjD,UAAUoL,KAAO,SAAeC,EAAK7I,GACtCD,EAAsB,kBAAR8I,GAAoBA,GAAO,GAEzC,IAAIrF,EAAOqF,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAUjB,OARAxK,KAAKgG,QAAQb,EAAM,GAGjBnF,KAAK0C,MAAMyC,GADTxD,EACgB3B,KAAK0C,MAAMyC,GAAQ,GAAKsF,EAExBzK,KAAK0C,MAAMyC,KAAS,GAAKsF,GAGtCzK,KAAKoF,UAIdhD,EAAGjD,UAAUuL,KAAO,SAAerG,GACjC,IAAIb,EAkBA+D,EAAGzD,EAfP,GAAsB,IAAlB9D,KAAKyC,UAAmC,IAAjB4B,EAAI5B,SAI7B,OAHAzC,KAAKyC,SAAW,EAChBe,EAAIxD,KAAK2K,KAAKtG,GACdrE,KAAKyC,UAAY,EACVzC,KAAKkG,YAGP,GAAsB,IAAlBlG,KAAKyC,UAAmC,IAAjB4B,EAAI5B,SAIpC,OAHA4B,EAAI5B,SAAW,EACfe,EAAIxD,KAAK2K,KAAKtG,GACdA,EAAI5B,SAAW,EACRe,EAAE0C,YAKPlG,KAAKa,OAASwD,EAAIxD,QACpB0G,EAAIvH,KACJ8D,EAAIO,IAEJkD,EAAIlD,EACJP,EAAI9D,MAIN,IADA,IAAI0G,EAAQ,EACHjG,EAAI,EAAGA,EAAIqD,EAAEjD,OAAQJ,IAC5B+C,GAAkB,EAAb+D,EAAE7E,MAAMjC,KAAwB,EAAbqD,EAAEpB,MAAMjC,IAAUiG,EAC1C1G,KAAK0C,MAAMjC,GAAS,SAAJ+C,EAChBkD,EAAQlD,IAAM,GAEhB,KAAiB,IAAVkD,GAAejG,EAAI8G,EAAE1G,OAAQJ,IAClC+C,GAAkB,EAAb+D,EAAE7E,MAAMjC,IAAUiG,EACvB1G,KAAK0C,MAAMjC,GAAS,SAAJ+C,EAChBkD,EAAQlD,IAAM,GAIhB,GADAxD,KAAKa,OAAS0G,EAAE1G,OACF,IAAV6F,EACF1G,KAAK0C,MAAM1C,KAAKa,QAAU6F,EAC1B1G,KAAKa,cAEA,GAAI0G,IAAMvH,KACf,KAAOS,EAAI8G,EAAE1G,OAAQJ,IACnBT,KAAK0C,MAAMjC,GAAK8G,EAAE7E,MAAMjC,GAI5B,OAAOT,MAIToC,EAAGjD,UAAUyL,IAAM,SAAcvG,GAC/B,IAAI2D,EACJ,OAAqB,IAAjB3D,EAAI5B,UAAoC,IAAlBzC,KAAKyC,UAC7B4B,EAAI5B,SAAW,EACfuF,EAAMhI,KAAK6K,IAAIxG,GACfA,EAAI5B,UAAY,EACTuF,GACmB,IAAjB3D,EAAI5B,UAAoC,IAAlBzC,KAAKyC,UACpCzC,KAAKyC,SAAW,EAChBuF,EAAM3D,EAAIwG,IAAI7K,MACdA,KAAKyC,SAAW,EACTuF,GAGLhI,KAAKa,OAASwD,EAAIxD,OAAeb,KAAK+F,QAAQ2E,KAAKrG,GAEhDA,EAAI0B,QAAQ2E,KAAK1K,OAI1BoC,EAAGjD,UAAUwL,KAAO,SAAetG,GAEjC,GAAqB,IAAjBA,EAAI5B,SAAgB,CACtB4B,EAAI5B,SAAW,EACf,IAAIe,EAAIxD,KAAK0K,KAAKrG,GAElB,OADAA,EAAI5B,SAAW,EACRe,EAAE0C,YAGJ,GAAsB,IAAlBlG,KAAKyC,SAId,OAHAzC,KAAKyC,SAAW,EAChBzC,KAAK0K,KAAKrG,GACVrE,KAAKyC,SAAW,EACTzC,KAAKkG,YAId,IAWIqB,EAAGzD,EAXHW,EAAMzE,KAAKyE,IAAIJ,GAGnB,GAAY,IAARI,EAIF,OAHAzE,KAAKyC,SAAW,EAChBzC,KAAKa,OAAS,EACdb,KAAK0C,MAAM,GAAK,EACT1C,KAKLyE,EAAM,GACR8C,EAAIvH,KACJ8D,EAAIO,IAEJkD,EAAIlD,EACJP,EAAI9D,MAIN,IADA,IAAI0G,EAAQ,EACHjG,EAAI,EAAGA,EAAIqD,EAAEjD,OAAQJ,IAE5BiG,GADAlD,GAAkB,EAAb+D,EAAE7E,MAAMjC,KAAwB,EAAbqD,EAAEpB,MAAMjC,IAAUiG,IAC7B,GACb1G,KAAK0C,MAAMjC,GAAS,SAAJ+C,EAElB,KAAiB,IAAVkD,GAAejG,EAAI8G,EAAE1G,OAAQJ,IAElCiG,GADAlD,GAAkB,EAAb+D,EAAE7E,MAAMjC,IAAUiG,IACV,GACb1G,KAAK0C,MAAMjC,GAAS,SAAJ+C,EAIlB,GAAc,IAAVkD,GAAejG,EAAI8G,EAAE1G,QAAU0G,IAAMvH,KACvC,KAAOS,EAAI8G,EAAE1G,OAAQJ,IACnBT,KAAK0C,MAAMjC,GAAK8G,EAAE7E,MAAMjC,GAU5B,OANAT,KAAKa,OAASmD,KAAKM,IAAItE,KAAKa,OAAQJ,GAEhC8G,IAAMvH,OACRA,KAAKyC,SAAW,GAGXzC,KAAKoF,UAIdhD,EAAGjD,UAAU0L,IAAM,SAAcxG,GAC/B,OAAOrE,KAAK+F,QAAQ4E,KAAKtG,IA+C3B,IAAIyG,EAAc,SAAsBxD,EAAMjD,EAAKoC,GACjD,IAIIe,EACAuD,EACAnC,EANArB,EAAID,EAAK5E,MACToB,EAAIO,EAAI3B,MACRlC,EAAIiG,EAAI/D,MACRU,EAAI,EAIJ4H,EAAY,EAAPzD,EAAE,GACP0D,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP5D,EAAE,GACP6D,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP/D,EAAE,GACPgE,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPlE,EAAE,GACPmE,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPrE,EAAE,GACPsE,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPxE,EAAE,GACPyE,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP3E,EAAE,GACP4E,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP9E,EAAE,GACP+E,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPjF,EAAE,GACPkF,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPpF,EAAE,GACPqF,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPhJ,EAAE,GACPiJ,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPnJ,EAAE,GACPoJ,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPtJ,EAAE,GACPuJ,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPzJ,EAAE,GACP0J,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP5J,EAAE,GACP6J,EAAW,KAALD,EACNE,GAAMF,IAAO,GACbG,GAAY,EAAP/J,EAAE,GACPgK,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPlK,EAAE,GACPmK,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPrK,EAAE,GACPsK,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPxK,EAAE,GACPyK,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP3K,EAAE,GACP4K,GAAW,KAALD,GACNE,GAAMF,KAAO,GAEjBhI,EAAIhE,SAAW6E,EAAK7E,SAAW4B,EAAI5B,SACnCgE,EAAI5F,OAAS,GAMb,IAAI+N,IAAQxL,GAJZoE,EAAKxD,KAAK6K,KAAK5D,EAAK8B,IAIE,KAAa,MAFnChC,GADAA,EAAM/G,KAAK6K,KAAK5D,EAAK+B,IACRhJ,KAAK6K,KAAK3D,EAAK6B,GAAQ,KAEU,IAAO,EACrD3J,IAFAwF,EAAK5E,KAAK6K,KAAK3D,EAAK8B,KAEPjC,IAAQ,IAAO,IAAM6D,KAAO,IAAO,EAChDA,IAAM,SAENpH,EAAKxD,KAAK6K,KAAKzD,EAAK2B,GAEpBhC,GADAA,EAAM/G,KAAK6K,KAAKzD,EAAK4B,IACRhJ,KAAK6K,KAAKxD,EAAK0B,GAAQ,EACpCnE,EAAK5E,KAAK6K,KAAKxD,EAAK2B,GAKpB,IAAI8B,IAAQ1L,GAJZoE,EAAMA,EAAKxD,KAAK6K,KAAK5D,EAAKiC,GAAQ,GAIZ,KAAa,MAFnCnC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK5D,EAAKkC,GAAQ,GACvBnJ,KAAK6K,KAAK3D,EAAKgC,GAAQ,KAEU,IAAO,EACrD9J,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAK3D,EAAKiC,GAAQ,IAErBpC,IAAQ,IAAO,IAAM+D,KAAO,IAAO,EAChDA,IAAM,SAENtH,EAAKxD,KAAK6K,KAAKtD,EAAKwB,GAEpBhC,GADAA,EAAM/G,KAAK6K,KAAKtD,EAAKyB,IACRhJ,KAAK6K,KAAKrD,EAAKuB,GAAQ,EACpCnE,EAAK5E,KAAK6K,KAAKrD,EAAKwB,GACpBxF,EAAMA,EAAKxD,KAAK6K,KAAKzD,EAAK8B,GAAQ,EAElCnC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKzD,EAAK+B,GAAQ,GACvBnJ,KAAK6K,KAAKxD,EAAK6B,GAAQ,EACpCtE,EAAMA,EAAK5E,KAAK6K,KAAKxD,EAAK8B,GAAQ,EAKlC,IAAI4B,IAAQ3L,GAJZoE,EAAMA,EAAKxD,KAAK6K,KAAK5D,EAAKoC,GAAQ,GAIZ,KAAa,MAFnCtC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK5D,EAAKqC,GAAQ,GACvBtJ,KAAK6K,KAAK3D,EAAKmC,GAAQ,KAEU,IAAO,EACrDjK,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAK3D,EAAKoC,GAAQ,IAErBvC,IAAQ,IAAO,IAAMgE,KAAO,IAAO,EAChDA,IAAM,SAENvH,EAAKxD,KAAK6K,KAAKnD,EAAKqB,GAEpBhC,GADAA,EAAM/G,KAAK6K,KAAKnD,EAAKsB,IACRhJ,KAAK6K,KAAKlD,EAAKoB,GAAQ,EACpCnE,EAAK5E,KAAK6K,KAAKlD,EAAKqB,GACpBxF,EAAMA,EAAKxD,KAAK6K,KAAKtD,EAAK2B,GAAQ,EAElCnC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKtD,EAAK4B,GAAQ,GACvBnJ,KAAK6K,KAAKrD,EAAK0B,GAAQ,EACpCtE,EAAMA,EAAK5E,KAAK6K,KAAKrD,EAAK2B,GAAQ,EAClC3F,EAAMA,EAAKxD,KAAK6K,KAAKzD,EAAKiC,GAAQ,EAElCtC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKzD,EAAKkC,GAAQ,GACvBtJ,KAAK6K,KAAKxD,EAAKgC,GAAQ,EACpCzE,EAAMA,EAAK5E,KAAK6K,KAAKxD,EAAKiC,GAAQ,EAKlC,IAAI0B,IAAQ5L,GAJZoE,EAAMA,EAAKxD,KAAK6K,KAAK5D,EAAKuC,GAAQ,GAIZ,KAAa,MAFnCzC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK5D,EAAKwC,GAAQ,GACvBzJ,KAAK6K,KAAK3D,EAAKsC,GAAQ,KAEU,IAAO,EACrDpK,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAK3D,EAAKuC,GAAQ,IAErB1C,IAAQ,IAAO,IAAMiE,KAAO,IAAO,EAChDA,IAAM,SAENxH,EAAKxD,KAAK6K,KAAKhD,EAAKkB,GAEpBhC,GADAA,EAAM/G,KAAK6K,KAAKhD,EAAKmB,IACRhJ,KAAK6K,KAAK/C,EAAKiB,GAAQ,EACpCnE,EAAK5E,KAAK6K,KAAK/C,EAAKkB,GACpBxF,EAAMA,EAAKxD,KAAK6K,KAAKnD,EAAKwB,GAAQ,EAElCnC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKnD,EAAKyB,GAAQ,GACvBnJ,KAAK6K,KAAKlD,EAAKuB,GAAQ,EACpCtE,EAAMA,EAAK5E,KAAK6K,KAAKlD,EAAKwB,GAAQ,EAClC3F,EAAMA,EAAKxD,KAAK6K,KAAKtD,EAAK8B,GAAQ,EAElCtC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKtD,EAAK+B,GAAQ,GACvBtJ,KAAK6K,KAAKrD,EAAK6B,GAAQ,EACpCzE,EAAMA,EAAK5E,KAAK6K,KAAKrD,EAAK8B,GAAQ,EAClC9F,EAAMA,EAAKxD,KAAK6K,KAAKzD,EAAKoC,GAAQ,EAElCzC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKzD,EAAKqC,GAAQ,GACvBzJ,KAAK6K,KAAKxD,EAAKmC,GAAQ,EACpC5E,EAAMA,EAAK5E,KAAK6K,KAAKxD,EAAKoC,GAAQ,EAKlC,IAAIwB,IAAQ7L,GAJZoE,EAAMA,EAAKxD,KAAK6K,KAAK5D,EAAK0C,GAAQ,GAIZ,KAAa,MAFnC5C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK5D,EAAK2C,IAAQ,GACvB5J,KAAK6K,KAAK3D,EAAKyC,GAAQ,KAEU,IAAO,EACrDvK,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAK3D,EAAK0C,IAAQ,IAErB7C,IAAQ,IAAO,IAAMkE,KAAO,IAAO,EAChDA,IAAM,SAENzH,EAAKxD,KAAK6K,KAAK7C,EAAKe,GAEpBhC,GADAA,EAAM/G,KAAK6K,KAAK7C,EAAKgB,IACRhJ,KAAK6K,KAAK5C,EAAKc,GAAQ,EACpCnE,EAAK5E,KAAK6K,KAAK5C,EAAKe,GACpBxF,EAAMA,EAAKxD,KAAK6K,KAAKhD,EAAKqB,GAAQ,EAElCnC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKhD,EAAKsB,GAAQ,GACvBnJ,KAAK6K,KAAK/C,EAAKoB,GAAQ,EACpCtE,EAAMA,EAAK5E,KAAK6K,KAAK/C,EAAKqB,GAAQ,EAClC3F,EAAMA,EAAKxD,KAAK6K,KAAKnD,EAAK2B,GAAQ,EAElCtC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKnD,EAAK4B,GAAQ,GACvBtJ,KAAK6K,KAAKlD,EAAK0B,GAAQ,EACpCzE,EAAMA,EAAK5E,KAAK6K,KAAKlD,EAAK2B,GAAQ,EAClC9F,EAAMA,EAAKxD,KAAK6K,KAAKtD,EAAKiC,GAAQ,EAElCzC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKtD,EAAKkC,GAAQ,GACvBzJ,KAAK6K,KAAKrD,EAAKgC,GAAQ,EACpC5E,EAAMA,EAAK5E,KAAK6K,KAAKrD,EAAKiC,GAAQ,EAClCjG,EAAMA,EAAKxD,KAAK6K,KAAKzD,EAAKuC,GAAQ,EAElC5C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKzD,EAAKwC,IAAQ,GACvB5J,KAAK6K,KAAKxD,EAAKsC,GAAQ,EACpC/E,EAAMA,EAAK5E,KAAK6K,KAAKxD,EAAKuC,IAAQ,EAKlC,IAAIsB,IAAQ9L,GAJZoE,EAAMA,EAAKxD,KAAK6K,KAAK5D,EAAK6C,IAAQ,GAIZ,KAAa,MAFnC/C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK5D,EAAK8C,IAAQ,GACvB/J,KAAK6K,KAAK3D,EAAK4C,IAAQ,KAEU,IAAO,EACrD1K,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAK3D,EAAK6C,IAAQ,IAErBhD,IAAQ,IAAO,IAAMmE,KAAO,IAAO,EAChDA,IAAM,SAEN1H,EAAKxD,KAAK6K,KAAK1C,EAAKY,GAEpBhC,GADAA,EAAM/G,KAAK6K,KAAK1C,EAAKa,IACRhJ,KAAK6K,KAAKzC,EAAKW,GAAQ,EACpCnE,EAAK5E,KAAK6K,KAAKzC,EAAKY,GACpBxF,EAAMA,EAAKxD,KAAK6K,KAAK7C,EAAKkB,GAAQ,EAElCnC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK7C,EAAKmB,GAAQ,GACvBnJ,KAAK6K,KAAK5C,EAAKiB,GAAQ,EACpCtE,EAAMA,EAAK5E,KAAK6K,KAAK5C,EAAKkB,GAAQ,EAClC3F,EAAMA,EAAKxD,KAAK6K,KAAKhD,EAAKwB,GAAQ,EAElCtC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKhD,EAAKyB,GAAQ,GACvBtJ,KAAK6K,KAAK/C,EAAKuB,GAAQ,EACpCzE,EAAMA,EAAK5E,KAAK6K,KAAK/C,EAAKwB,GAAQ,EAClC9F,EAAMA,EAAKxD,KAAK6K,KAAKnD,EAAK8B,GAAQ,EAElCzC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKnD,EAAK+B,GAAQ,GACvBzJ,KAAK6K,KAAKlD,EAAK6B,GAAQ,EACpC5E,EAAMA,EAAK5E,KAAK6K,KAAKlD,EAAK8B,GAAQ,EAClCjG,EAAMA,EAAKxD,KAAK6K,KAAKtD,EAAKoC,GAAQ,EAElC5C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKtD,EAAKqC,IAAQ,GACvB5J,KAAK6K,KAAKrD,EAAKmC,GAAQ,EACpC/E,EAAMA,EAAK5E,KAAK6K,KAAKrD,EAAKoC,IAAQ,EAClCpG,EAAMA,EAAKxD,KAAK6K,KAAKzD,EAAK0C,IAAQ,EAElC/C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKzD,EAAK2C,IAAQ,GACvB/J,KAAK6K,KAAKxD,EAAKyC,IAAQ,EACpClF,EAAMA,EAAK5E,KAAK6K,KAAKxD,EAAK0C,IAAQ,EAKlC,IAAIoB,IAAQ/L,GAJZoE,EAAMA,EAAKxD,KAAK6K,KAAK5D,EAAKgD,IAAQ,GAIZ,KAAa,MAFnClD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK5D,EAAKiD,IAAQ,GACvBlK,KAAK6K,KAAK3D,EAAK+C,IAAQ,KAEU,IAAO,EACrD7K,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAK3D,EAAKgD,IAAQ,IAErBnD,IAAQ,IAAO,IAAMoE,KAAO,IAAO,EAChDA,IAAM,SAEN3H,EAAKxD,KAAK6K,KAAKvC,EAAKS,GAEpBhC,GADAA,EAAM/G,KAAK6K,KAAKvC,EAAKU,IACRhJ,KAAK6K,KAAKtC,EAAKQ,GAAQ,EACpCnE,EAAK5E,KAAK6K,KAAKtC,EAAKS,GACpBxF,EAAMA,EAAKxD,KAAK6K,KAAK1C,EAAKe,GAAQ,EAElCnC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK1C,EAAKgB,GAAQ,GACvBnJ,KAAK6K,KAAKzC,EAAKc,GAAQ,EACpCtE,EAAMA,EAAK5E,KAAK6K,KAAKzC,EAAKe,GAAQ,EAClC3F,EAAMA,EAAKxD,KAAK6K,KAAK7C,EAAKqB,GAAQ,EAElCtC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK7C,EAAKsB,GAAQ,GACvBtJ,KAAK6K,KAAK5C,EAAKoB,GAAQ,EACpCzE,EAAMA,EAAK5E,KAAK6K,KAAK5C,EAAKqB,GAAQ,EAClC9F,EAAMA,EAAKxD,KAAK6K,KAAKhD,EAAK2B,GAAQ,EAElCzC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKhD,EAAK4B,GAAQ,GACvBzJ,KAAK6K,KAAK/C,EAAK0B,GAAQ,EACpC5E,EAAMA,EAAK5E,KAAK6K,KAAK/C,EAAK2B,GAAQ,EAClCjG,EAAMA,EAAKxD,KAAK6K,KAAKnD,EAAKiC,GAAQ,EAElC5C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKnD,EAAKkC,IAAQ,GACvB5J,KAAK6K,KAAKlD,EAAKgC,GAAQ,EACpC/E,EAAMA,EAAK5E,KAAK6K,KAAKlD,EAAKiC,IAAQ,EAClCpG,EAAMA,EAAKxD,KAAK6K,KAAKtD,EAAKuC,IAAQ,EAElC/C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKtD,EAAKwC,IAAQ,GACvB/J,KAAK6K,KAAKrD,EAAKsC,IAAQ,EACpClF,EAAMA,EAAK5E,KAAK6K,KAAKrD,EAAKuC,IAAQ,EAClCvG,EAAMA,EAAKxD,KAAK6K,KAAKzD,EAAK6C,IAAQ,EAElClD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKzD,EAAK8C,IAAQ,GACvBlK,KAAK6K,KAAKxD,EAAK4C,IAAQ,EACpCrF,EAAMA,EAAK5E,KAAK6K,KAAKxD,EAAK6C,IAAQ,EAKlC,IAAIkB,IAAQhM,GAJZoE,EAAMA,EAAKxD,KAAK6K,KAAK5D,EAAKmD,IAAQ,GAIZ,KAAa,MAFnCrD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK5D,EAAKoD,IAAQ,GACvBrK,KAAK6K,KAAK3D,EAAKkD,IAAQ,KAEU,IAAO,EACrDhL,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAK3D,EAAKmD,IAAQ,IAErBtD,IAAQ,IAAO,IAAMqE,KAAO,IAAO,EAChDA,IAAM,SAEN5H,EAAKxD,KAAK6K,KAAKpC,EAAKM,GAEpBhC,GADAA,EAAM/G,KAAK6K,KAAKpC,EAAKO,IACRhJ,KAAK6K,KAAKnC,EAAKK,GAAQ,EACpCnE,EAAK5E,KAAK6K,KAAKnC,EAAKM,GACpBxF,EAAMA,EAAKxD,KAAK6K,KAAKvC,EAAKY,GAAQ,EAElCnC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKvC,EAAKa,GAAQ,GACvBnJ,KAAK6K,KAAKtC,EAAKW,GAAQ,EACpCtE,EAAMA,EAAK5E,KAAK6K,KAAKtC,EAAKY,GAAQ,EAClC3F,EAAMA,EAAKxD,KAAK6K,KAAK1C,EAAKkB,GAAQ,EAElCtC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK1C,EAAKmB,GAAQ,GACvBtJ,KAAK6K,KAAKzC,EAAKiB,GAAQ,EACpCzE,EAAMA,EAAK5E,KAAK6K,KAAKzC,EAAKkB,GAAQ,EAClC9F,EAAMA,EAAKxD,KAAK6K,KAAK7C,EAAKwB,GAAQ,EAElCzC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK7C,EAAKyB,GAAQ,GACvBzJ,KAAK6K,KAAK5C,EAAKuB,GAAQ,EACpC5E,EAAMA,EAAK5E,KAAK6K,KAAK5C,EAAKwB,GAAQ,EAClCjG,EAAMA,EAAKxD,KAAK6K,KAAKhD,EAAK8B,GAAQ,EAElC5C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKhD,EAAK+B,IAAQ,GACvB5J,KAAK6K,KAAK/C,EAAK6B,GAAQ,EACpC/E,EAAMA,EAAK5E,KAAK6K,KAAK/C,EAAK8B,IAAQ,EAClCpG,EAAMA,EAAKxD,KAAK6K,KAAKnD,EAAKoC,IAAQ,EAElC/C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKnD,EAAKqC,IAAQ,GACvB/J,KAAK6K,KAAKlD,EAAKmC,IAAQ,EACpClF,EAAMA,EAAK5E,KAAK6K,KAAKlD,EAAKoC,IAAQ,EAClCvG,EAAMA,EAAKxD,KAAK6K,KAAKtD,EAAK0C,IAAQ,EAElClD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKtD,EAAK2C,IAAQ,GACvBlK,KAAK6K,KAAKrD,EAAKyC,IAAQ,EACpCrF,EAAMA,EAAK5E,KAAK6K,KAAKrD,EAAK0C,IAAQ,EAClC1G,EAAMA,EAAKxD,KAAK6K,KAAKzD,EAAKgD,IAAQ,EAElCrD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKzD,EAAKiD,IAAQ,GACvBrK,KAAK6K,KAAKxD,EAAK+C,IAAQ,EACpCxF,EAAMA,EAAK5E,KAAK6K,KAAKxD,EAAKgD,IAAQ,EAKlC,IAAIgB,IAAQjM,GAJZoE,EAAMA,EAAKxD,KAAK6K,KAAK5D,EAAKsD,IAAQ,GAIZ,KAAa,MAFnCxD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK5D,EAAKuD,IAAQ,GACvBxK,KAAK6K,KAAK3D,EAAKqD,IAAQ,KAEU,IAAO,EACrDnL,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAK3D,EAAKsD,IAAQ,IAErBzD,IAAQ,IAAO,IAAMsE,KAAO,IAAO,EAChDA,IAAM,SAEN7H,EAAKxD,KAAK6K,KAAKjC,EAAKG,GAEpBhC,GADAA,EAAM/G,KAAK6K,KAAKjC,EAAKI,IACRhJ,KAAK6K,KAAKhC,EAAKE,GAAQ,EACpCnE,EAAK5E,KAAK6K,KAAKhC,EAAKG,GACpBxF,EAAMA,EAAKxD,KAAK6K,KAAKpC,EAAKS,GAAQ,EAElCnC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKpC,EAAKU,GAAQ,GACvBnJ,KAAK6K,KAAKnC,EAAKQ,GAAQ,EACpCtE,EAAMA,EAAK5E,KAAK6K,KAAKnC,EAAKS,GAAQ,EAClC3F,EAAMA,EAAKxD,KAAK6K,KAAKvC,EAAKe,GAAQ,EAElCtC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKvC,EAAKgB,GAAQ,GACvBtJ,KAAK6K,KAAKtC,EAAKc,GAAQ,EACpCzE,EAAMA,EAAK5E,KAAK6K,KAAKtC,EAAKe,GAAQ,EAClC9F,EAAMA,EAAKxD,KAAK6K,KAAK1C,EAAKqB,GAAQ,EAElCzC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK1C,EAAKsB,GAAQ,GACvBzJ,KAAK6K,KAAKzC,EAAKoB,GAAQ,EACpC5E,EAAMA,EAAK5E,KAAK6K,KAAKzC,EAAKqB,GAAQ,EAClCjG,EAAMA,EAAKxD,KAAK6K,KAAK7C,EAAK2B,GAAQ,EAElC5C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK7C,EAAK4B,IAAQ,GACvB5J,KAAK6K,KAAK5C,EAAK0B,GAAQ,EACpC/E,EAAMA,EAAK5E,KAAK6K,KAAK5C,EAAK2B,IAAQ,EAClCpG,EAAMA,EAAKxD,KAAK6K,KAAKhD,EAAKiC,IAAQ,EAElC/C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKhD,EAAKkC,IAAQ,GACvB/J,KAAK6K,KAAK/C,EAAKgC,IAAQ,EACpClF,EAAMA,EAAK5E,KAAK6K,KAAK/C,EAAKiC,IAAQ,EAClCvG,EAAMA,EAAKxD,KAAK6K,KAAKnD,EAAKuC,IAAQ,EAElClD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKnD,EAAKwC,IAAQ,GACvBlK,KAAK6K,KAAKlD,EAAKsC,IAAQ,EACpCrF,EAAMA,EAAK5E,KAAK6K,KAAKlD,EAAKuC,IAAQ,EAClC1G,EAAMA,EAAKxD,KAAK6K,KAAKtD,EAAK6C,IAAQ,EAElCrD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKtD,EAAK8C,IAAQ,GACvBrK,KAAK6K,KAAKrD,EAAK4C,IAAQ,EACpCxF,EAAMA,EAAK5E,KAAK6K,KAAKrD,EAAK6C,IAAQ,EAClC7G,EAAMA,EAAKxD,KAAK6K,KAAKzD,EAAKmD,IAAQ,EAElCxD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKzD,EAAKoD,IAAQ,GACvBxK,KAAK6K,KAAKxD,EAAKkD,IAAQ,EACpC3F,EAAMA,EAAK5E,KAAK6K,KAAKxD,EAAKmD,IAAQ,EAKlC,IAAIc,IAAQlM,GAJZoE,EAAMA,EAAKxD,KAAK6K,KAAK5D,EAAKyD,IAAQ,GAIZ,KAAa,MAFnC3D,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK5D,EAAK0D,IAAQ,GACvB3K,KAAK6K,KAAK3D,EAAKwD,IAAQ,KAEU,IAAO,EACrDtL,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAK3D,EAAKyD,IAAQ,IAErB5D,IAAQ,IAAO,IAAMuE,KAAO,IAAO,EAChDA,IAAM,SAEN9H,EAAKxD,KAAK6K,KAAKjC,EAAKM,GAEpBnC,GADAA,EAAM/G,KAAK6K,KAAKjC,EAAKO,IACRnJ,KAAK6K,KAAKhC,EAAKK,GAAQ,EACpCtE,EAAK5E,KAAK6K,KAAKhC,EAAKM,GACpB3F,EAAMA,EAAKxD,KAAK6K,KAAKpC,EAAKY,GAAQ,EAElCtC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKpC,EAAKa,GAAQ,GACvBtJ,KAAK6K,KAAKnC,EAAKW,GAAQ,EACpCzE,EAAMA,EAAK5E,KAAK6K,KAAKnC,EAAKY,GAAQ,EAClC9F,EAAMA,EAAKxD,KAAK6K,KAAKvC,EAAKkB,GAAQ,EAElCzC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKvC,EAAKmB,GAAQ,GACvBzJ,KAAK6K,KAAKtC,EAAKiB,GAAQ,EACpC5E,EAAMA,EAAK5E,KAAK6K,KAAKtC,EAAKkB,GAAQ,EAClCjG,EAAMA,EAAKxD,KAAK6K,KAAK1C,EAAKwB,GAAQ,EAElC5C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK1C,EAAKyB,IAAQ,GACvB5J,KAAK6K,KAAKzC,EAAKuB,GAAQ,EACpC/E,EAAMA,EAAK5E,KAAK6K,KAAKzC,EAAKwB,IAAQ,EAClCpG,EAAMA,EAAKxD,KAAK6K,KAAK7C,EAAK8B,IAAQ,EAElC/C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK7C,EAAK+B,IAAQ,GACvB/J,KAAK6K,KAAK5C,EAAK6B,IAAQ,EACpClF,EAAMA,EAAK5E,KAAK6K,KAAK5C,EAAK8B,IAAQ,EAClCvG,EAAMA,EAAKxD,KAAK6K,KAAKhD,EAAKoC,IAAQ,EAElClD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKhD,EAAKqC,IAAQ,GACvBlK,KAAK6K,KAAK/C,EAAKmC,IAAQ,EACpCrF,EAAMA,EAAK5E,KAAK6K,KAAK/C,EAAKoC,IAAQ,EAClC1G,EAAMA,EAAKxD,KAAK6K,KAAKnD,EAAK0C,IAAQ,EAElCrD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKnD,EAAK2C,IAAQ,GACvBrK,KAAK6K,KAAKlD,EAAKyC,IAAQ,EACpCxF,EAAMA,EAAK5E,KAAK6K,KAAKlD,EAAK0C,IAAQ,EAClC7G,EAAMA,EAAKxD,KAAK6K,KAAKtD,EAAKgD,IAAQ,EAElCxD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKtD,EAAKiD,IAAQ,GACvBxK,KAAK6K,KAAKrD,EAAK+C,IAAQ,EACpC3F,EAAMA,EAAK5E,KAAK6K,KAAKrD,EAAKgD,IAAQ,EAKlC,IAAIe,IAASnM,GAJboE,EAAMA,EAAKxD,KAAK6K,KAAKzD,EAAKsD,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKzD,EAAKuD,IAAQ,GACvB3K,KAAK6K,KAAKxD,EAAKqD,IAAQ,KAEW,IAAO,EACtDtL,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAKxD,EAAKsD,IAAQ,IAErB5D,IAAQ,IAAO,IAAMwE,KAAQ,IAAO,EACjDA,IAAO,SAEP/H,EAAKxD,KAAK6K,KAAKjC,EAAKS,GAEpBtC,GADAA,EAAM/G,KAAK6K,KAAKjC,EAAKU,IACRtJ,KAAK6K,KAAKhC,EAAKQ,GAAQ,EACpCzE,EAAK5E,KAAK6K,KAAKhC,EAAKS,GACpB9F,EAAMA,EAAKxD,KAAK6K,KAAKpC,EAAKe,GAAQ,EAElCzC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKpC,EAAKgB,GAAQ,GACvBzJ,KAAK6K,KAAKnC,EAAKc,GAAQ,EACpC5E,EAAMA,EAAK5E,KAAK6K,KAAKnC,EAAKe,GAAQ,EAClCjG,EAAMA,EAAKxD,KAAK6K,KAAKvC,EAAKqB,GAAQ,EAElC5C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKvC,EAAKsB,IAAQ,GACvB5J,KAAK6K,KAAKtC,EAAKoB,GAAQ,EACpC/E,EAAMA,EAAK5E,KAAK6K,KAAKtC,EAAKqB,IAAQ,EAClCpG,EAAMA,EAAKxD,KAAK6K,KAAK1C,EAAK2B,IAAQ,EAElC/C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK1C,EAAK4B,IAAQ,GACvB/J,KAAK6K,KAAKzC,EAAK0B,IAAQ,EACpClF,EAAMA,EAAK5E,KAAK6K,KAAKzC,EAAK2B,IAAQ,EAClCvG,EAAMA,EAAKxD,KAAK6K,KAAK7C,EAAKiC,IAAQ,EAElClD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK7C,EAAKkC,IAAQ,GACvBlK,KAAK6K,KAAK5C,EAAKgC,IAAQ,EACpCrF,EAAMA,EAAK5E,KAAK6K,KAAK5C,EAAKiC,IAAQ,EAClC1G,EAAMA,EAAKxD,KAAK6K,KAAKhD,EAAKuC,IAAQ,EAElCrD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKhD,EAAKwC,IAAQ,GACvBrK,KAAK6K,KAAK/C,EAAKsC,IAAQ,EACpCxF,EAAMA,EAAK5E,KAAK6K,KAAK/C,EAAKuC,IAAQ,EAClC7G,EAAMA,EAAKxD,KAAK6K,KAAKnD,EAAK6C,IAAQ,EAElCxD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKnD,EAAK8C,IAAQ,GACvBxK,KAAK6K,KAAKlD,EAAK4C,IAAQ,EACpC3F,EAAMA,EAAK5E,KAAK6K,KAAKlD,EAAK6C,IAAQ,EAKlC,IAAIgB,IAASpM,GAJboE,EAAMA,EAAKxD,KAAK6K,KAAKtD,EAAKmD,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKtD,EAAKoD,IAAQ,GACvB3K,KAAK6K,KAAKrD,EAAKkD,IAAQ,KAEW,IAAO,EACtDtL,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAKrD,EAAKmD,IAAQ,IAErB5D,IAAQ,IAAO,IAAMyE,KAAQ,IAAO,EACjDA,IAAO,SAEPhI,EAAKxD,KAAK6K,KAAKjC,EAAKY,GAEpBzC,GADAA,EAAM/G,KAAK6K,KAAKjC,EAAKa,IACRzJ,KAAK6K,KAAKhC,EAAKW,GAAQ,EACpC5E,EAAK5E,KAAK6K,KAAKhC,EAAKY,GACpBjG,EAAMA,EAAKxD,KAAK6K,KAAKpC,EAAKkB,GAAQ,EAElC5C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKpC,EAAKmB,IAAQ,GACvB5J,KAAK6K,KAAKnC,EAAKiB,GAAQ,EACpC/E,EAAMA,EAAK5E,KAAK6K,KAAKnC,EAAKkB,IAAQ,EAClCpG,EAAMA,EAAKxD,KAAK6K,KAAKvC,EAAKwB,IAAQ,EAElC/C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKvC,EAAKyB,IAAQ,GACvB/J,KAAK6K,KAAKtC,EAAKuB,IAAQ,EACpClF,EAAMA,EAAK5E,KAAK6K,KAAKtC,EAAKwB,IAAQ,EAClCvG,EAAMA,EAAKxD,KAAK6K,KAAK1C,EAAK8B,IAAQ,EAElClD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK1C,EAAK+B,IAAQ,GACvBlK,KAAK6K,KAAKzC,EAAK6B,IAAQ,EACpCrF,EAAMA,EAAK5E,KAAK6K,KAAKzC,EAAK8B,IAAQ,EAClC1G,EAAMA,EAAKxD,KAAK6K,KAAK7C,EAAKoC,IAAQ,EAElCrD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK7C,EAAKqC,IAAQ,GACvBrK,KAAK6K,KAAK5C,EAAKmC,IAAQ,EACpCxF,EAAMA,EAAK5E,KAAK6K,KAAK5C,EAAKoC,IAAQ,EAClC7G,EAAMA,EAAKxD,KAAK6K,KAAKhD,EAAK0C,IAAQ,EAElCxD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKhD,EAAK2C,IAAQ,GACvBxK,KAAK6K,KAAK/C,EAAKyC,IAAQ,EACpC3F,EAAMA,EAAK5E,KAAK6K,KAAK/C,EAAK0C,IAAQ,EAKlC,IAAIiB,IAASrM,GAJboE,EAAMA,EAAKxD,KAAK6K,KAAKnD,EAAKgD,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKnD,EAAKiD,IAAQ,GACvB3K,KAAK6K,KAAKlD,EAAK+C,IAAQ,KAEW,IAAO,EACtDtL,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAKlD,EAAKgD,IAAQ,IAErB5D,IAAQ,IAAO,IAAM0E,KAAQ,IAAO,EACjDA,IAAO,SAEPjI,EAAKxD,KAAK6K,KAAKjC,EAAKe,GAEpB5C,GADAA,EAAM/G,KAAK6K,KAAKjC,EAAKgB,KACR5J,KAAK6K,KAAKhC,EAAKc,GAAQ,EACpC/E,EAAK5E,KAAK6K,KAAKhC,EAAKe,IACpBpG,EAAMA,EAAKxD,KAAK6K,KAAKpC,EAAKqB,IAAQ,EAElC/C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKpC,EAAKsB,IAAQ,GACvB/J,KAAK6K,KAAKnC,EAAKoB,IAAQ,EACpClF,EAAMA,EAAK5E,KAAK6K,KAAKnC,EAAKqB,IAAQ,EAClCvG,EAAMA,EAAKxD,KAAK6K,KAAKvC,EAAK2B,IAAQ,EAElClD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKvC,EAAK4B,IAAQ,GACvBlK,KAAK6K,KAAKtC,EAAK0B,IAAQ,EACpCrF,EAAMA,EAAK5E,KAAK6K,KAAKtC,EAAK2B,IAAQ,EAClC1G,EAAMA,EAAKxD,KAAK6K,KAAK1C,EAAKiC,IAAQ,EAElCrD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK1C,EAAKkC,IAAQ,GACvBrK,KAAK6K,KAAKzC,EAAKgC,IAAQ,EACpCxF,EAAMA,EAAK5E,KAAK6K,KAAKzC,EAAKiC,IAAQ,EAClC7G,EAAMA,EAAKxD,KAAK6K,KAAK7C,EAAKuC,IAAQ,EAElCxD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK7C,EAAKwC,IAAQ,GACvBxK,KAAK6K,KAAK5C,EAAKsC,IAAQ,EACpC3F,EAAMA,EAAK5E,KAAK6K,KAAK5C,EAAKuC,IAAQ,EAKlC,IAAIkB,IAAStM,GAJboE,EAAMA,EAAKxD,KAAK6K,KAAKhD,EAAK6C,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKhD,EAAK8C,IAAQ,GACvB3K,KAAK6K,KAAK/C,EAAK4C,IAAQ,KAEW,IAAO,EACtDtL,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAK/C,EAAK6C,IAAQ,IAErB5D,IAAQ,IAAO,IAAM2E,KAAQ,IAAO,EACjDA,IAAO,SAEPlI,EAAKxD,KAAK6K,KAAKjC,EAAKkB,IAEpB/C,GADAA,EAAM/G,KAAK6K,KAAKjC,EAAKmB,KACR/J,KAAK6K,KAAKhC,EAAKiB,IAAQ,EACpClF,EAAK5E,KAAK6K,KAAKhC,EAAKkB,IACpBvG,EAAMA,EAAKxD,KAAK6K,KAAKpC,EAAKwB,IAAQ,EAElClD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKpC,EAAKyB,IAAQ,GACvBlK,KAAK6K,KAAKnC,EAAKuB,IAAQ,EACpCrF,EAAMA,EAAK5E,KAAK6K,KAAKnC,EAAKwB,IAAQ,EAClC1G,EAAMA,EAAKxD,KAAK6K,KAAKvC,EAAK8B,IAAQ,EAElCrD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKvC,EAAK+B,IAAQ,GACvBrK,KAAK6K,KAAKtC,EAAK6B,IAAQ,EACpCxF,EAAMA,EAAK5E,KAAK6K,KAAKtC,EAAK8B,IAAQ,EAClC7G,EAAMA,EAAKxD,KAAK6K,KAAK1C,EAAKoC,IAAQ,EAElCxD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK1C,EAAKqC,IAAQ,GACvBxK,KAAK6K,KAAKzC,EAAKmC,IAAQ,EACpC3F,EAAMA,EAAK5E,KAAK6K,KAAKzC,EAAKoC,IAAQ,EAKlC,IAAImB,IAASvM,GAJboE,EAAMA,EAAKxD,KAAK6K,KAAK7C,EAAK0C,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK7C,EAAK2C,IAAQ,GACvB3K,KAAK6K,KAAK5C,EAAKyC,IAAQ,KAEW,IAAO,EACtDtL,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAK5C,EAAK0C,IAAQ,IAErB5D,IAAQ,IAAO,IAAM4E,KAAQ,IAAO,EACjDA,IAAO,SAEPnI,EAAKxD,KAAK6K,KAAKjC,EAAKqB,IAEpBlD,GADAA,EAAM/G,KAAK6K,KAAKjC,EAAKsB,KACRlK,KAAK6K,KAAKhC,EAAKoB,IAAQ,EACpCrF,EAAK5E,KAAK6K,KAAKhC,EAAKqB,IACpB1G,EAAMA,EAAKxD,KAAK6K,KAAKpC,EAAK2B,IAAQ,EAElCrD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKpC,EAAK4B,IAAQ,GACvBrK,KAAK6K,KAAKnC,EAAK0B,IAAQ,EACpCxF,EAAMA,EAAK5E,KAAK6K,KAAKnC,EAAK2B,IAAQ,EAClC7G,EAAMA,EAAKxD,KAAK6K,KAAKvC,EAAKiC,IAAQ,EAElCxD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKvC,EAAKkC,IAAQ,GACvBxK,KAAK6K,KAAKtC,EAAKgC,IAAQ,EACpC3F,EAAMA,EAAK5E,KAAK6K,KAAKtC,EAAKiC,IAAQ,EAKlC,IAAIoB,IAASxM,GAJboE,EAAMA,EAAKxD,KAAK6K,KAAK1C,EAAKuC,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK1C,EAAKwC,IAAQ,GACvB3K,KAAK6K,KAAKzC,EAAKsC,IAAQ,KAEW,IAAO,EACtDtL,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAKzC,EAAKuC,IAAQ,IAErB5D,IAAQ,IAAO,IAAM6E,KAAQ,IAAO,EACjDA,IAAO,SAEPpI,EAAKxD,KAAK6K,KAAKjC,EAAKwB,IAEpBrD,GADAA,EAAM/G,KAAK6K,KAAKjC,EAAKyB,KACRrK,KAAK6K,KAAKhC,EAAKuB,IAAQ,EACpCxF,EAAK5E,KAAK6K,KAAKhC,EAAKwB,IACpB7G,EAAMA,EAAKxD,KAAK6K,KAAKpC,EAAK8B,IAAQ,EAElCxD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKpC,EAAK+B,IAAQ,GACvBxK,KAAK6K,KAAKnC,EAAK6B,IAAQ,EACpC3F,EAAMA,EAAK5E,KAAK6K,KAAKnC,EAAK8B,IAAQ,EAKlC,IAAIqB,IAASzM,GAJboE,EAAMA,EAAKxD,KAAK6K,KAAKvC,EAAKoC,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKvC,EAAKqC,IAAQ,GACvB3K,KAAK6K,KAAKtC,EAAKmC,IAAQ,KAEW,IAAO,EACtDtL,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAKtC,EAAKoC,IAAQ,IAErB5D,IAAQ,IAAO,IAAM8E,KAAQ,IAAO,EACjDA,IAAO,SAEPrI,EAAKxD,KAAK6K,KAAKjC,EAAK2B,IAEpBxD,GADAA,EAAM/G,KAAK6K,KAAKjC,EAAK4B,KACRxK,KAAK6K,KAAKhC,EAAK0B,IAAQ,EACpC3F,EAAK5E,KAAK6K,KAAKhC,EAAK2B,IAKpB,IAAIsB,IAAS1M,GAJboE,EAAMA,EAAKxD,KAAK6K,KAAKpC,EAAKiC,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKpC,EAAKkC,IAAQ,GACvB3K,KAAK6K,KAAKnC,EAAKgC,IAAQ,KAEW,IAAO,EACtDtL,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAKnC,EAAKiC,IAAQ,IAErB5D,IAAQ,IAAO,IAAM+E,KAAQ,IAAO,EACjDA,IAAO,SAMP,IAAIC,IAAS3M,GAJboE,EAAKxD,KAAK6K,KAAKjC,EAAK8B,KAIG,KAAa,MAFpC3D,GADAA,EAAM/G,KAAK6K,KAAKjC,EAAK+B,KACR3K,KAAK6K,KAAKhC,EAAK6B,IAAQ,KAEW,IAAO,EA0BtD,OAzBAtL,IAFAwF,EAAK5E,KAAK6K,KAAKhC,EAAK8B,MAEP5D,IAAQ,IAAO,IAAMgF,KAAQ,IAAO,EACjDA,IAAO,SACPvP,EAAE,GAAKoO,GACPpO,EAAE,GAAKsO,GACPtO,EAAE,GAAKuO,GACPvO,EAAE,GAAKwO,GACPxO,EAAE,GAAKyO,GACPzO,EAAE,GAAK0O,GACP1O,EAAE,GAAK2O,GACP3O,EAAE,GAAK4O,GACP5O,EAAE,GAAK6O,GACP7O,EAAE,GAAK8O,GACP9O,EAAE,IAAM+O,GACR/O,EAAE,IAAMgP,GACRhP,EAAE,IAAMiP,GACRjP,EAAE,IAAMkP,GACRlP,EAAE,IAAMmP,GACRnP,EAAE,IAAMoP,GACRpP,EAAE,IAAMqP,GACRrP,EAAE,IAAMsP,GACRtP,EAAE,IAAMuP,GACE,IAAN3M,IACF5C,EAAE,IAAM4C,EACRqD,EAAI5F,UAEC4F,GAQT,SAASuJ,EAAU1I,EAAMjD,EAAKoC,GAC5BA,EAAIhE,SAAW4B,EAAI5B,SAAW6E,EAAK7E,SACnCgE,EAAI5F,OAASyG,EAAKzG,OAASwD,EAAIxD,OAI/B,IAFA,IAAI6F,EAAQ,EACRuJ,EAAU,EACLxI,EAAI,EAAGA,EAAIhB,EAAI5F,OAAS,EAAG4G,IAAK,CAGvC,IAAIC,EAASuI,EACbA,EAAU,EAGV,IAFA,IAAItI,EAAgB,SAARjB,EACRkB,EAAO5D,KAAKC,IAAIwD,EAAGpD,EAAIxD,OAAS,GAC3BoE,EAAIjB,KAAKM,IAAI,EAAGmD,EAAIH,EAAKzG,OAAS,GAAIoE,GAAK2C,EAAM3C,IAAK,CAC7D,IAAIxE,EAAIgH,EAAIxC,EAGRzB,GAFoB,EAAhB8D,EAAK5E,MAAMjC,KACI,EAAf4D,EAAI3B,MAAMuC,IAGduC,EAAS,SAAJhE,EAGTmE,EAAa,UADbH,EAAMA,EAAKG,EAAS,GAIpBsI,IAFAvI,GAHAA,EAAUA,GAAWlE,EAAI,SAAa,GAAM,IAGxBgE,IAAO,IAAO,KAEZ,GACtBE,GAAU,SAEZjB,EAAI/D,MAAM+E,GAAKE,EACfjB,EAAQgB,EACRA,EAASuI,EAQX,OANc,IAAVvJ,EACFD,EAAI/D,MAAM+E,GAAKf,EAEfD,EAAI5F,SAGC4F,EAAIrB,SAGb,SAAS8K,EAAY5I,EAAMjD,EAAKoC,GAI9B,OAAOuJ,EAAS1I,EAAMjD,EAAKoC,GAsB7B,SAAS0J,EAAMC,EAAGC,GAChBrQ,KAAKoQ,EAAIA,EACTpQ,KAAKqQ,EAAIA,EAzENrM,KAAK6K,OACR/D,EAAczD,GAmDhBjF,EAAGjD,UAAUmR,MAAQ,SAAgBjM,EAAKoC,GACxC,IACI1C,EAAM/D,KAAKa,OAASwD,EAAIxD,OAW5B,OAVoB,KAAhBb,KAAKa,QAAgC,KAAfwD,EAAIxD,OACtBiK,EAAY9K,KAAMqE,EAAKoC,GACpB1C,EAAM,GACTsD,EAAWrH,KAAMqE,EAAKoC,GACnB1C,EAAM,KACTiM,EAAShQ,KAAMqE,EAAKoC,GAEpByJ,EAAWlQ,KAAMqE,EAAKoC,IAchC0J,EAAKhR,UAAUoR,QAAU,SAAkBC,GAGzC,IAFA,IAAI/H,EAAI,IAAI7I,MAAM4Q,GACdC,EAAIrO,EAAGjD,UAAUqJ,WAAWgI,GAAK,EAC5B/P,EAAI,EAAGA,EAAI+P,EAAG/P,IACrBgI,EAAEhI,GAAKT,KAAK0Q,OAAOjQ,EAAGgQ,EAAGD,GAG3B,OAAO/H,GAIT0H,EAAKhR,UAAUuR,OAAS,SAAiBN,EAAGK,EAAGD,GAC7C,GAAU,IAANJ,GAAWA,IAAMI,EAAI,EAAG,OAAOJ,EAGnC,IADA,IAAIO,EAAK,EACAlQ,EAAI,EAAGA,EAAIgQ,EAAGhQ,IACrBkQ,IAAW,EAAJP,IAAWK,EAAIhQ,EAAI,EAC1B2P,IAAM,EAGR,OAAOO,GAKTR,EAAKhR,UAAUyR,QAAU,SAAkBC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMT,GACpE,IAAK,IAAI/P,EAAI,EAAGA,EAAI+P,EAAG/P,IACrBuQ,EAAKvQ,GAAKqQ,EAAID,EAAIpQ,IAClBwQ,EAAKxQ,GAAKsQ,EAAIF,EAAIpQ,KAItB0P,EAAKhR,UAAU+R,UAAY,SAAoBJ,EAAKC,EAAKC,EAAMC,EAAMT,EAAGK,GACtE7Q,KAAK4Q,QAAQC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMT,GAExC,IAAK,IAAI7P,EAAI,EAAGA,EAAI6P,EAAG7P,IAAM,EAM3B,IALA,IAAI8P,EAAI9P,GAAK,EAETwQ,EAAQnN,KAAKoN,IAAI,EAAIpN,KAAKqN,GAAKZ,GAC/Ba,EAAQtN,KAAKuN,IAAI,EAAIvN,KAAKqN,GAAKZ,GAE1Be,EAAI,EAAGA,EAAIhB,EAAGgB,GAAKf,EAI1B,IAHA,IAAIgB,EAASN,EACTO,EAASJ,EAEJrM,EAAI,EAAGA,EAAItE,EAAGsE,IAAK,CAC1B,IAAI0M,EAAKX,EAAKQ,EAAIvM,GACd2M,EAAKX,EAAKO,EAAIvM,GAEd4M,EAAKb,EAAKQ,EAAIvM,EAAItE,GAClBmR,EAAKb,EAAKO,EAAIvM,EAAItE,GAElBoR,EAAKN,EAASI,EAAKH,EAASI,EAEhCA,EAAKL,EAASK,EAAKJ,EAASG,EAC5BA,EAAKE,EAELf,EAAKQ,EAAIvM,GAAK0M,EAAKE,EACnBZ,EAAKO,EAAIvM,GAAK2M,EAAKE,EAEnBd,EAAKQ,EAAIvM,EAAItE,GAAKgR,EAAKE,EACvBZ,EAAKO,EAAIvM,EAAItE,GAAKiR,EAAKE,EAGnB7M,IAAMwL,IACRsB,EAAKZ,EAAQM,EAASH,EAAQI,EAE9BA,EAASP,EAAQO,EAASJ,EAAQG,EAClCA,EAASM,KAOnB5B,EAAKhR,UAAU6S,YAAc,SAAsBpR,EAAGqR,GACpD,IAAIzB,EAAqB,EAAjBxM,KAAKM,IAAI2N,EAAGrR,GAChBsR,EAAU,EAAJ1B,EACN/P,EAAI,EACR,IAAK+P,EAAIA,EAAI,EAAI,EAAGA,EAAGA,KAAU,EAC/B/P,IAGF,OAAO,GAAKA,EAAI,EAAIyR,GAGtB/B,EAAKhR,UAAUgT,UAAY,SAAoBrB,EAAKC,EAAKP,GACvD,KAAIA,GAAK,GAET,IAAK,IAAI/P,EAAI,EAAGA,EAAI+P,EAAI,EAAG/P,IAAK,CAC9B,IAAIgI,EAAIqI,EAAIrQ,GAEZqQ,EAAIrQ,GAAKqQ,EAAIN,EAAI/P,EAAI,GACrBqQ,EAAIN,EAAI/P,EAAI,GAAKgI,EAEjBA,EAAIsI,EAAItQ,GAERsQ,EAAItQ,IAAMsQ,EAAIP,EAAI/P,EAAI,GACtBsQ,EAAIP,EAAI/P,EAAI,IAAMgI,IAItB0H,EAAKhR,UAAUiT,aAAe,SAAuBC,EAAI7B,GAEvD,IADA,IAAI9J,EAAQ,EACHjG,EAAI,EAAGA,EAAI+P,EAAI,EAAG/P,IAAK,CAC9B,IAAIyE,EAAoC,KAAhClB,KAAKsO,MAAMD,EAAG,EAAI5R,EAAI,GAAK+P,GACjCxM,KAAKsO,MAAMD,EAAG,EAAI5R,GAAK+P,GACvB9J,EAEF2L,EAAG5R,GAAS,SAAJyE,EAGNwB,EADExB,EAAI,SACE,EAEAA,EAAI,SAAY,EAI5B,OAAOmN,GAGTlC,EAAKhR,UAAUoT,WAAa,SAAqBF,EAAItO,EAAK+M,EAAKN,GAE7D,IADA,IAAI9J,EAAQ,EACHjG,EAAI,EAAGA,EAAIsD,EAAKtD,IACvBiG,GAAyB,EAAR2L,EAAG5R,GAEpBqQ,EAAI,EAAIrQ,GAAa,KAARiG,EAAgBA,KAAkB,GAC/CoK,EAAI,EAAIrQ,EAAI,GAAa,KAARiG,EAAgBA,KAAkB,GAIrD,IAAKjG,EAAI,EAAIsD,EAAKtD,EAAI+P,IAAK/P,EACzBqQ,EAAIrQ,GAAK,EAGXiB,EAAiB,IAAVgF,GACPhF,EAA6B,MAAb,KAARgF,KAGVyJ,EAAKhR,UAAUqT,KAAO,SAAehC,GAEnC,IADA,IAAIiC,EAAK,IAAI7S,MAAM4Q,GACV/P,EAAI,EAAGA,EAAI+P,EAAG/P,IACrBgS,EAAGhS,GAAK,EAGV,OAAOgS,GAGTtC,EAAKhR,UAAUuT,KAAO,SAAetC,EAAGC,EAAG5J,GACzC,IAAI+J,EAAI,EAAIxQ,KAAKgS,YAAY5B,EAAEvP,OAAQwP,EAAExP,QAErCgQ,EAAM7Q,KAAKuQ,QAAQC,GAEnBmC,EAAI3S,KAAKwS,KAAKhC,GAEdM,EAAM,IAAIlR,MAAM4Q,GAChBoC,EAAO,IAAIhT,MAAM4Q,GACjBqC,EAAO,IAAIjT,MAAM4Q,GAEjBsC,EAAO,IAAIlT,MAAM4Q,GACjBuC,EAAQ,IAAInT,MAAM4Q,GAClBwC,EAAQ,IAAIpT,MAAM4Q,GAElByC,EAAOxM,EAAI/D,MACfuQ,EAAKpS,OAAS2P,EAEdxQ,KAAKuS,WAAWnC,EAAE1N,MAAO0N,EAAEvP,OAAQiQ,EAAKN,GACxCxQ,KAAKuS,WAAWlC,EAAE3N,MAAO2N,EAAExP,OAAQiS,EAAMtC,GAEzCxQ,KAAKkR,UAAUJ,EAAK6B,EAAGC,EAAMC,EAAMrC,EAAGK,GACtC7Q,KAAKkR,UAAU4B,EAAMH,EAAGI,EAAOC,EAAOxC,EAAGK,GAEzC,IAAK,IAAIpQ,EAAI,EAAGA,EAAI+P,EAAG/P,IAAK,CAC1B,IAAIsR,EAAKa,EAAKnS,GAAKsS,EAAMtS,GAAKoS,EAAKpS,GAAKuS,EAAMvS,GAC9CoS,EAAKpS,GAAKmS,EAAKnS,GAAKuS,EAAMvS,GAAKoS,EAAKpS,GAAKsS,EAAMtS,GAC/CmS,EAAKnS,GAAKsR,EAUZ,OAPA/R,KAAKmS,UAAUS,EAAMC,EAAMrC,GAC3BxQ,KAAKkR,UAAU0B,EAAMC,EAAMI,EAAMN,EAAGnC,EAAGK,GACvC7Q,KAAKmS,UAAUc,EAAMN,EAAGnC,GACxBxQ,KAAKoS,aAAaa,EAAMzC,GAExB/J,EAAIhE,SAAW2N,EAAE3N,SAAW4N,EAAE5N,SAC9BgE,EAAI5F,OAASuP,EAAEvP,OAASwP,EAAExP,OACnB4F,EAAIrB,UAIbhD,EAAGjD,UAAU0E,IAAM,SAAcQ,GAC/B,IAAIoC,EAAM,IAAIrE,EAAG,MAEjB,OADAqE,EAAI/D,MAAQ,IAAI9C,MAAMI,KAAKa,OAASwD,EAAIxD,QACjCb,KAAKsQ,MAAMjM,EAAKoC,IAIzBrE,EAAGjD,UAAU+T,KAAO,SAAe7O,GACjC,IAAIoC,EAAM,IAAIrE,EAAG,MAEjB,OADAqE,EAAI/D,MAAQ,IAAI9C,MAAMI,KAAKa,OAASwD,EAAIxD,QACjCqP,EAAWlQ,KAAMqE,EAAKoC,IAI/BrE,EAAGjD,UAAU0P,KAAO,SAAexK,GACjC,OAAOrE,KAAK+F,QAAQuK,MAAMjM,EAAKrE,OAGjCoC,EAAGjD,UAAUuG,MAAQ,SAAgBrB,GACnC,IAAI8O,EAAW9O,EAAM,EACjB8O,IAAU9O,GAAOA,GAErB3C,EAAsB,kBAAR2C,GACd3C,EAAO2C,EAAM,UAIb,IADA,IAAIqC,EAAQ,EACHjG,EAAI,EAAGA,EAAIT,KAAKa,OAAQJ,IAAK,CACpC,IAAIyE,GAAqB,EAAhBlF,KAAK0C,MAAMjC,IAAU4D,EAC1BmD,GAAU,SAAJtC,IAA0B,SAARwB,GAC5BA,IAAU,GACVA,GAAUxB,EAAI,SAAa,EAE3BwB,GAASc,IAAO,GAChBxH,KAAK0C,MAAMjC,GAAU,SAAL+G,EAQlB,OALc,IAAVd,IACF1G,KAAK0C,MAAMjC,GAAKiG,EAChB1G,KAAKa,UAGAsS,EAAWnT,KAAKsJ,OAAStJ,MAGlCoC,EAAGjD,UAAUiU,KAAO,SAAe/O,GACjC,OAAOrE,KAAK+F,QAAQL,MAAMrB,IAI5BjC,EAAGjD,UAAUkU,IAAM,WACjB,OAAOrT,KAAK6D,IAAI7D,OAIlBoC,EAAGjD,UAAUmU,KAAO,WAClB,OAAOtT,KAAK6O,KAAK7O,KAAK+F,UAIxB3D,EAAGjD,UAAUyG,IAAM,SAAcvB,GAC/B,IAAIa,EA7xCN,SAAqBb,GAGnB,IAFA,IAAIa,EAAI,IAAItF,MAAMyE,EAAIsE,aAEb6B,EAAM,EAAGA,EAAMtF,EAAErE,OAAQ2J,IAAO,CACvC,IAAIrF,EAAOqF,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAEjBtF,EAAEsF,GAAQnG,EAAI3B,MAAMyC,KAASsF,EAAQ,EAGvC,OAAOvF,EAmxCCqO,CAAWlP,GACnB,GAAiB,IAAba,EAAErE,OAAc,OAAO,IAAIuB,EAAG,GAIlC,IADA,IAAI4F,EAAMhI,KACDS,EAAI,EAAGA,EAAIyE,EAAErE,QACP,IAATqE,EAAEzE,GADsBA,IAAKuH,EAAMA,EAAIqL,OAI7C,KAAM5S,EAAIyE,EAAErE,OACV,IAAK,IAAI2S,EAAIxL,EAAIqL,MAAO5S,EAAIyE,EAAErE,OAAQJ,IAAK+S,EAAIA,EAAEH,MAClC,IAATnO,EAAEzE,KAENuH,EAAMA,EAAInE,IAAI2P,IAIlB,OAAOxL,GAIT5F,EAAGjD,UAAUsU,OAAS,SAAiBC,GACrChS,EAAuB,kBAATgS,GAAqBA,GAAQ,GAC3C,IAGIjT,EAHA+C,EAAIkQ,EAAO,GACX/S,GAAK+S,EAAOlQ,GAAK,GACjBmQ,EAAa,WAAe,GAAKnQ,GAAQ,GAAKA,EAGlD,GAAU,IAANA,EAAS,CACX,IAAIkD,EAAQ,EAEZ,IAAKjG,EAAI,EAAGA,EAAIT,KAAKa,OAAQJ,IAAK,CAChC,IAAImT,EAAW5T,KAAK0C,MAAMjC,GAAKkT,EAC3BvQ,GAAsB,EAAhBpD,KAAK0C,MAAMjC,IAAUmT,GAAapQ,EAC5CxD,KAAK0C,MAAMjC,GAAK2C,EAAIsD,EACpBA,EAAQkN,IAAc,GAAKpQ,EAGzBkD,IACF1G,KAAK0C,MAAMjC,GAAKiG,EAChB1G,KAAKa,UAIT,GAAU,IAANF,EAAS,CACX,IAAKF,EAAIT,KAAKa,OAAS,EAAGJ,GAAK,EAAGA,IAChCT,KAAK0C,MAAMjC,EAAIE,GAAKX,KAAK0C,MAAMjC,GAGjC,IAAKA,EAAI,EAAGA,EAAIE,EAAGF,IACjBT,KAAK0C,MAAMjC,GAAK,EAGlBT,KAAKa,QAAUF,EAGjB,OAAOX,KAAKoF,UAGdhD,EAAGjD,UAAU0U,MAAQ,SAAgBH,GAGnC,OADAhS,EAAyB,IAAlB1B,KAAKyC,UACLzC,KAAKyT,OAAOC,IAMrBtR,EAAGjD,UAAU2U,OAAS,SAAiBJ,EAAMK,EAAMC,GAEjD,IAAIC,EADJvS,EAAuB,kBAATgS,GAAqBA,GAAQ,GAGzCO,EADEF,GACGA,EAAQA,EAAO,IAAO,GAEvB,EAGN,IAAIvQ,EAAIkQ,EAAO,GACX/S,EAAIqD,KAAKC,KAAKyP,EAAOlQ,GAAK,GAAIxD,KAAKa,QACnCqT,EAAO,SAAc,WAAc1Q,GAAMA,EACzC2Q,EAAcH,EAMlB,GAJAC,GAAKtT,EACLsT,EAAIjQ,KAAKM,IAAI,EAAG2P,GAGZE,EAAa,CACf,IAAK,IAAI1T,EAAI,EAAGA,EAAIE,EAAGF,IACrB0T,EAAYzR,MAAMjC,GAAKT,KAAK0C,MAAMjC,GAEpC0T,EAAYtT,OAASF,EAGvB,GAAU,IAANA,QAEG,GAAIX,KAAKa,OAASF,EAEvB,IADAX,KAAKa,QAAUF,EACVF,EAAI,EAAGA,EAAIT,KAAKa,OAAQJ,IAC3BT,KAAK0C,MAAMjC,GAAKT,KAAK0C,MAAMjC,EAAIE,QAGjCX,KAAK0C,MAAM,GAAK,EAChB1C,KAAKa,OAAS,EAGhB,IAAI6F,EAAQ,EACZ,IAAKjG,EAAIT,KAAKa,OAAS,EAAGJ,GAAK,IAAgB,IAAViG,GAAejG,GAAKwT,GAAIxT,IAAK,CAChE,IAAIgF,EAAuB,EAAhBzF,KAAK0C,MAAMjC,GACtBT,KAAK0C,MAAMjC,GAAMiG,GAAU,GAAKlD,EAAOiC,IAASjC,EAChDkD,EAAQjB,EAAOyO,EAajB,OATIC,GAAyB,IAAVzN,IACjByN,EAAYzR,MAAMyR,EAAYtT,UAAY6F,GAGxB,IAAhB1G,KAAKa,SACPb,KAAK0C,MAAM,GAAK,EAChB1C,KAAKa,OAAS,GAGTb,KAAKoF,UAGdhD,EAAGjD,UAAUiV,MAAQ,SAAgBV,EAAMK,EAAMC,GAG/C,OADAtS,EAAyB,IAAlB1B,KAAKyC,UACLzC,KAAK8T,OAAOJ,EAAMK,EAAMC,IAIjC5R,EAAGjD,UAAUkV,KAAO,SAAeX,GACjC,OAAO1T,KAAK+F,QAAQ8N,MAAMH,IAG5BtR,EAAGjD,UAAUmV,MAAQ,SAAgBZ,GACnC,OAAO1T,KAAK+F,QAAQ0N,OAAOC,IAI7BtR,EAAGjD,UAAUoV,KAAO,SAAeb,GACjC,OAAO1T,KAAK+F,QAAQqO,MAAMV,IAG5BtR,EAAGjD,UAAUqV,MAAQ,SAAgBd,GACnC,OAAO1T,KAAK+F,QAAQ+N,OAAOJ,IAI7BtR,EAAGjD,UAAUiK,MAAQ,SAAgBoB,GACnC9I,EAAsB,kBAAR8I,GAAoBA,GAAO,GACzC,IAAIhH,EAAIgH,EAAM,GACV7J,GAAK6J,EAAMhH,GAAK,GAChBgQ,EAAI,GAAKhQ,EAGb,QAAIxD,KAAKa,QAAUF,OAGXX,KAAK0C,MAAM/B,GAEL6S,IAIhBpR,EAAGjD,UAAUsV,OAAS,SAAiBf,GACrChS,EAAuB,kBAATgS,GAAqBA,GAAQ,GAC3C,IAAIlQ,EAAIkQ,EAAO,GACX/S,GAAK+S,EAAOlQ,GAAK,GAIrB,GAFA9B,EAAyB,IAAlB1B,KAAKyC,SAAgB,2CAExBzC,KAAKa,QAAUF,EACjB,OAAOX,KAQT,GALU,IAANwD,GACF7C,IAEFX,KAAKa,OAASmD,KAAKC,IAAItD,EAAGX,KAAKa,QAErB,IAAN2C,EAAS,CACX,IAAI0Q,EAAO,SAAc,WAAc1Q,GAAMA,EAC7CxD,KAAK0C,MAAM1C,KAAKa,OAAS,IAAMqT,EAGjC,OAAOlU,KAAKoF,UAIdhD,EAAGjD,UAAUuV,MAAQ,SAAgBhB,GACnC,OAAO1T,KAAK+F,QAAQ0O,OAAOf,IAI7BtR,EAAGjD,UAAU+J,MAAQ,SAAgB7E,GAGnC,OAFA3C,EAAsB,kBAAR2C,GACd3C,EAAO2C,EAAM,UACTA,EAAM,EAAUrE,KAAK2U,OAAOtQ,GAGV,IAAlBrE,KAAKyC,SACa,IAAhBzC,KAAKa,SAAiC,EAAhBb,KAAK0C,MAAM,KAAW2B,GAC9CrE,KAAK0C,MAAM,GAAK2B,GAAuB,EAAhBrE,KAAK0C,MAAM,IAClC1C,KAAKyC,SAAW,EACTzC,OAGTA,KAAKyC,SAAW,EAChBzC,KAAK2U,MAAMtQ,GACXrE,KAAKyC,SAAW,EACTzC,MAIFA,KAAK2F,OAAOtB,IAGrBjC,EAAGjD,UAAUwG,OAAS,SAAiBtB,GACrCrE,KAAK0C,MAAM,IAAM2B,EAGjB,IAAK,IAAI5D,EAAI,EAAGA,EAAIT,KAAKa,QAAUb,KAAK0C,MAAMjC,IAAM,SAAWA,IAC7DT,KAAK0C,MAAMjC,IAAM,SACbA,IAAMT,KAAKa,OAAS,EACtBb,KAAK0C,MAAMjC,EAAI,GAAK,EAEpBT,KAAK0C,MAAMjC,EAAI,KAKnB,OAFAT,KAAKa,OAASmD,KAAKM,IAAItE,KAAKa,OAAQJ,EAAI,GAEjCT,MAIToC,EAAGjD,UAAUwV,MAAQ,SAAgBtQ,GAGnC,GAFA3C,EAAsB,kBAAR2C,GACd3C,EAAO2C,EAAM,UACTA,EAAM,EAAG,OAAOrE,KAAKkJ,OAAO7E,GAEhC,GAAsB,IAAlBrE,KAAKyC,SAIP,OAHAzC,KAAKyC,SAAW,EAChBzC,KAAKkJ,MAAM7E,GACXrE,KAAKyC,SAAW,EACTzC,KAKT,GAFAA,KAAK0C,MAAM,IAAM2B,EAEG,IAAhBrE,KAAKa,QAAgBb,KAAK0C,MAAM,GAAK,EACvC1C,KAAK0C,MAAM,IAAM1C,KAAK0C,MAAM,GAC5B1C,KAAKyC,SAAW,OAGhB,IAAK,IAAIhC,EAAI,EAAGA,EAAIT,KAAKa,QAAUb,KAAK0C,MAAMjC,GAAK,EAAGA,IACpDT,KAAK0C,MAAMjC,IAAM,SACjBT,KAAK0C,MAAMjC,EAAI,IAAM,EAIzB,OAAOT,KAAKoF,UAGdhD,EAAGjD,UAAUyV,KAAO,SAAevQ,GACjC,OAAOrE,KAAK+F,QAAQmD,MAAM7E,IAG5BjC,EAAGjD,UAAU0V,KAAO,SAAexQ,GACjC,OAAOrE,KAAK+F,QAAQ4O,MAAMtQ,IAG5BjC,EAAGjD,UAAU2V,KAAO,WAGlB,OAFA9U,KAAKyC,SAAW,EAETzC,MAGToC,EAAGjD,UAAU6J,IAAM,WACjB,OAAOhJ,KAAK+F,QAAQ+O,QAGtB1S,EAAGjD,UAAU4V,aAAe,SAAuB1Q,EAAKR,EAAKwE,GAC3D,IACI5H,EAIAyE,EALAnB,EAAMM,EAAIxD,OAASwH,EAGvBrI,KAAKgG,QAAQjC,GAGb,IAAI2C,EAAQ,EACZ,IAAKjG,EAAI,EAAGA,EAAI4D,EAAIxD,OAAQJ,IAAK,CAC/ByE,GAA6B,EAAxBlF,KAAK0C,MAAMjC,EAAI4H,IAAc3B,EAClC,IAAIlC,GAAwB,EAAfH,EAAI3B,MAAMjC,IAAUoD,EAEjC6C,IADAxB,GAAa,SAARV,IACS,KAAQA,EAAQ,SAAa,GAC3CxE,KAAK0C,MAAMjC,EAAI4H,GAAa,SAAJnD,EAE1B,KAAOzE,EAAIT,KAAKa,OAASwH,EAAO5H,IAE9BiG,GADAxB,GAA6B,EAAxBlF,KAAK0C,MAAMjC,EAAI4H,IAAc3B,IACrB,GACb1G,KAAK0C,MAAMjC,EAAI4H,GAAa,SAAJnD,EAG1B,GAAc,IAAVwB,EAAa,OAAO1G,KAAKoF,SAK7B,IAFA1D,GAAkB,IAAXgF,GACPA,EAAQ,EACHjG,EAAI,EAAGA,EAAIT,KAAKa,OAAQJ,IAE3BiG,GADAxB,IAAsB,EAAhBlF,KAAK0C,MAAMjC,IAAUiG,IACd,GACb1G,KAAK0C,MAAMjC,GAAS,SAAJyE,EAIlB,OAFAlF,KAAKyC,SAAW,EAETzC,KAAKoF,UAGdhD,EAAGjD,UAAU6V,SAAW,SAAmB3Q,EAAK4Q,GAC9C,IAAI5M,GAAQrI,KAAKa,OAASwD,EAAIxD,QAE1B0G,EAAIvH,KAAK+F,QACTjC,EAAIO,EAGJ6Q,EAA8B,EAAxBpR,EAAEpB,MAAMoB,EAAEjD,OAAS,GAGf,KADdwH,EAAQ,GADMrI,KAAKwI,WAAW0M,MAG5BpR,EAAIA,EAAEwQ,MAAMjM,GACZd,EAAEkM,OAAOpL,GACT6M,EAA8B,EAAxBpR,EAAEpB,MAAMoB,EAAEjD,OAAS,IAI3B,IACI2S,EADAvB,EAAI1K,EAAE1G,OAASiD,EAAEjD,OAGrB,GAAa,QAAToU,EAAgB,EAClBzB,EAAI,IAAIpR,EAAG,OACTvB,OAASoR,EAAI,EACfuB,EAAE9Q,MAAQ,IAAI9C,MAAM4T,EAAE3S,QACtB,IAAK,IAAIJ,EAAI,EAAGA,EAAI+S,EAAE3S,OAAQJ,IAC5B+S,EAAE9Q,MAAMjC,GAAK,EAIjB,IAAI0U,EAAO5N,EAAExB,QAAQgP,aAAajR,EAAG,EAAGmO,GAClB,IAAlBkD,EAAK1S,WACP8E,EAAI4N,EACA3B,IACFA,EAAE9Q,MAAMuP,GAAK,IAIjB,IAAK,IAAIhN,EAAIgN,EAAI,EAAGhN,GAAK,EAAGA,IAAK,CAC/B,IAAImQ,EAAmC,UAAL,EAAxB7N,EAAE7E,MAAMoB,EAAEjD,OAASoE,KACE,EAA5BsC,EAAE7E,MAAMoB,EAAEjD,OAASoE,EAAI,IAO1B,IAHAmQ,EAAKpR,KAAKC,IAAKmR,EAAKF,EAAO,EAAG,UAE9B3N,EAAEwN,aAAajR,EAAGsR,EAAInQ,GACA,IAAfsC,EAAE9E,UACP2S,IACA7N,EAAE9E,SAAW,EACb8E,EAAEwN,aAAajR,EAAG,EAAGmB,GAChBsC,EAAEV,WACLU,EAAE9E,UAAY,GAGd+Q,IACFA,EAAE9Q,MAAMuC,GAAKmQ,GAajB,OAVI5B,GACFA,EAAEpO,SAEJmC,EAAEnC,SAGW,QAAT6P,GAA4B,IAAV5M,GACpBd,EAAEuM,OAAOzL,GAGJ,CACLgN,IAAK7B,GAAK,KACVhO,IAAK+B,IAQTnF,EAAGjD,UAAUmW,OAAS,SAAiBjR,EAAK4Q,EAAMM,GAGhD,OAFA7T,GAAQ2C,EAAIwC,UAER7G,KAAK6G,SACA,CACLwO,IAAK,IAAIjT,EAAG,GACZoD,IAAK,IAAIpD,EAAG,IAKM,IAAlBpC,KAAKyC,UAAmC,IAAjB4B,EAAI5B,UAC7BuF,EAAMhI,KAAKwJ,MAAM8L,OAAOjR,EAAK4Q,GAEhB,QAATA,IACFI,EAAMrN,EAAIqN,IAAI7L,OAGH,QAATyL,IACFzP,EAAMwC,EAAIxC,IAAIgE,MACV+L,GAA6B,IAAjB/P,EAAI/C,UAClB+C,EAAIkF,KAAKrG,IAIN,CACLgR,IAAKA,EACL7P,IAAKA,IAIa,IAAlBxF,KAAKyC,UAAmC,IAAjB4B,EAAI5B,UAC7BuF,EAAMhI,KAAKsV,OAAOjR,EAAImF,MAAOyL,GAEhB,QAATA,IACFI,EAAMrN,EAAIqN,IAAI7L,OAGT,CACL6L,IAAKA,EACL7P,IAAKwC,EAAIxC,MAI0B,KAAlCxF,KAAKyC,SAAW4B,EAAI5B,WACvBuF,EAAMhI,KAAKwJ,MAAM8L,OAAOjR,EAAImF,MAAOyL,GAEtB,QAATA,IACFzP,EAAMwC,EAAIxC,IAAIgE,MACV+L,GAA6B,IAAjB/P,EAAI/C,UAClB+C,EAAImF,KAAKtG,IAIN,CACLgR,IAAKrN,EAAIqN,IACT7P,IAAKA,IAOLnB,EAAIxD,OAASb,KAAKa,QAAUb,KAAKyE,IAAIJ,GAAO,EACvC,CACLgR,IAAK,IAAIjT,EAAG,GACZoD,IAAKxF,MAKU,IAAfqE,EAAIxD,OACO,QAAToU,EACK,CACLI,IAAKrV,KAAKwV,KAAKnR,EAAI3B,MAAM,IACzB8C,IAAK,MAII,QAATyP,EACK,CACLI,IAAK,KACL7P,IAAK,IAAIpD,EAAGpC,KAAK8G,MAAMzC,EAAI3B,MAAM,MAI9B,CACL2S,IAAKrV,KAAKwV,KAAKnR,EAAI3B,MAAM,IACzB8C,IAAK,IAAIpD,EAAGpC,KAAK8G,MAAMzC,EAAI3B,MAAM,MAI9B1C,KAAKgV,SAAS3Q,EAAK4Q,GAlF1B,IAAII,EAAK7P,EAAKwC,GAsFhB5F,EAAGjD,UAAUkW,IAAM,SAAchR,GAC/B,OAAOrE,KAAKsV,OAAOjR,EAAK,OAAO,GAAOgR,KAIxCjT,EAAGjD,UAAUqG,IAAM,SAAcnB,GAC/B,OAAOrE,KAAKsV,OAAOjR,EAAK,OAAO,GAAOmB,KAGxCpD,EAAGjD,UAAUsW,KAAO,SAAepR,GACjC,OAAOrE,KAAKsV,OAAOjR,EAAK,OAAO,GAAMmB,KAIvCpD,EAAGjD,UAAUuW,SAAW,SAAmBrR,GACzC,IAAIsR,EAAK3V,KAAKsV,OAAOjR,GAGrB,GAAIsR,EAAGnQ,IAAIqB,SAAU,OAAO8O,EAAGN,IAE/B,IAAI7P,EAA0B,IAApBmQ,EAAGN,IAAI5S,SAAiBkT,EAAGnQ,IAAImF,KAAKtG,GAAOsR,EAAGnQ,IAEpDoQ,EAAOvR,EAAImQ,MAAM,GACjBqB,EAAKxR,EAAIyR,MAAM,GACfrR,EAAMe,EAAIf,IAAImR,GAGlB,OAAInR,EAAM,GAAa,IAAPoR,GAAoB,IAARpR,EAAmBkR,EAAGN,IAGvB,IAApBM,EAAGN,IAAI5S,SAAiBkT,EAAGN,IAAIV,MAAM,GAAKgB,EAAGN,IAAInM,MAAM,IAGhE9G,EAAGjD,UAAU2H,MAAQ,SAAgBzC,GACnC,IAAI8O,EAAW9O,EAAM,EACjB8O,IAAU9O,GAAOA,GAErB3C,EAAO2C,GAAO,UAId,IAHA,IAAImN,GAAK,GAAK,IAAMnN,EAEhB0R,EAAM,EACDtV,EAAIT,KAAKa,OAAS,EAAGJ,GAAK,EAAGA,IACpCsV,GAAOvE,EAAIuE,GAAuB,EAAhB/V,KAAK0C,MAAMjC,KAAW4D,EAG1C,OAAO8O,GAAY4C,EAAMA,GAI3B3T,EAAGjD,UAAU6W,KAAO,SAAe3R,GACjC,OAAOrE,KAAK8G,MAAMzC,IAIpBjC,EAAGjD,UAAU4H,MAAQ,SAAgB1C,GACnC,IAAI8O,EAAW9O,EAAM,EACjB8O,IAAU9O,GAAOA,GAErB3C,EAAO2C,GAAO,UAGd,IADA,IAAIqC,EAAQ,EACHjG,EAAIT,KAAKa,OAAS,EAAGJ,GAAK,EAAGA,IAAK,CACzC,IAAIyE,GAAqB,EAAhBlF,KAAK0C,MAAMjC,IAAkB,SAARiG,EAC9B1G,KAAK0C,MAAMjC,GAAMyE,EAAIb,EAAO,EAC5BqC,EAAQxB,EAAIb,EAId,OADArE,KAAKoF,SACE+N,EAAWnT,KAAKsJ,OAAStJ,MAGlCoC,EAAGjD,UAAUqW,KAAO,SAAenR,GACjC,OAAOrE,KAAK+F,QAAQgB,MAAM1C,IAG5BjC,EAAGjD,UAAU8W,KAAO,SAAezE,GACjC9P,EAAsB,IAAf8P,EAAE/O,UACTf,GAAQ8P,EAAE3K,UAEV,IAAIuJ,EAAIpQ,KACJqQ,EAAImB,EAAEzL,QAGRqK,EADiB,IAAfA,EAAE3N,SACA2N,EAAEqF,KAAKjE,GAEPpB,EAAErK,QAaR,IATA,IAAImQ,EAAI,IAAI9T,EAAG,GACX+T,EAAI,IAAI/T,EAAG,GAGXgU,EAAI,IAAIhU,EAAG,GACXiU,EAAI,IAAIjU,EAAG,GAEXkU,EAAI,EAEDlG,EAAEmG,UAAYlG,EAAEkG,UACrBnG,EAAE0D,OAAO,GACTzD,EAAEyD,OAAO,KACPwC,EAMJ,IAHA,IAAIE,EAAKnG,EAAEtK,QACP0Q,EAAKrG,EAAErK,SAEHqK,EAAEvJ,UAAU,CAClB,IAAK,IAAIpG,EAAI,EAAGiW,EAAK,EAAyB,KAArBtG,EAAE1N,MAAM,GAAKgU,IAAajW,EAAI,KAAMA,EAAGiW,IAAO,GACvE,GAAIjW,EAAI,EAEN,IADA2P,EAAE0D,OAAOrT,GACFA,KAAM,IACPyV,EAAES,SAAWR,EAAEQ,WACjBT,EAAExL,KAAK8L,GACPL,EAAExL,KAAK8L,IAGTP,EAAEpC,OAAO,GACTqC,EAAErC,OAAO,GAIb,IAAK,IAAI7O,EAAI,EAAG2R,EAAK,EAAyB,KAArBvG,EAAE3N,MAAM,GAAKkU,IAAa3R,EAAI,KAAMA,EAAG2R,IAAO,GACvE,GAAI3R,EAAI,EAEN,IADAoL,EAAEyD,OAAO7O,GACFA,KAAM,IACPmR,EAAEO,SAAWN,EAAEM,WACjBP,EAAE1L,KAAK8L,GACPH,EAAE1L,KAAK8L,IAGTL,EAAEtC,OAAO,GACTuC,EAAEvC,OAAO,GAIT1D,EAAE3L,IAAI4L,IAAM,GACdD,EAAEzF,KAAK0F,GACP6F,EAAEvL,KAAKyL,GACPD,EAAExL,KAAK0L,KAEPhG,EAAE1F,KAAKyF,GACPgG,EAAEzL,KAAKuL,GACPG,EAAE1L,KAAKwL,IAIX,MAAO,CACL5O,EAAG6O,EACHtS,EAAGuS,EACHQ,IAAKxG,EAAEoD,OAAO6C,KAOlBlU,EAAGjD,UAAU2X,OAAS,SAAiBtF,GACrC9P,EAAsB,IAAf8P,EAAE/O,UACTf,GAAQ8P,EAAE3K,UAEV,IAAIU,EAAIvH,KACJ8D,EAAI0N,EAAEzL,QAGRwB,EADiB,IAAfA,EAAE9E,SACA8E,EAAEkO,KAAKjE,GAEPjK,EAAExB,QAQR,IALA,IAuCIiC,EAvCA+O,EAAK,IAAI3U,EAAG,GACZ4U,EAAK,IAAI5U,EAAG,GAEZ6U,EAAQnT,EAAEiC,QAEPwB,EAAE2P,KAAK,GAAK,GAAKpT,EAAEoT,KAAK,GAAK,GAAG,CACrC,IAAK,IAAIzW,EAAI,EAAGiW,EAAK,EAAyB,KAArBnP,EAAE7E,MAAM,GAAKgU,IAAajW,EAAI,KAAMA,EAAGiW,IAAO,GACvE,GAAIjW,EAAI,EAEN,IADA8G,EAAEuM,OAAOrT,GACFA,KAAM,GACPsW,EAAGJ,SACLI,EAAGrM,KAAKuM,GAGVF,EAAGjD,OAAO,GAId,IAAK,IAAI7O,EAAI,EAAG2R,EAAK,EAAyB,KAArB9S,EAAEpB,MAAM,GAAKkU,IAAa3R,EAAI,KAAMA,EAAG2R,IAAO,GACvE,GAAI3R,EAAI,EAEN,IADAnB,EAAEgQ,OAAO7O,GACFA,KAAM,GACP+R,EAAGL,SACLK,EAAGtM,KAAKuM,GAGVD,EAAGlD,OAAO,GAIVvM,EAAE9C,IAAIX,IAAM,GACdyD,EAAEoD,KAAK7G,GACPiT,EAAGpM,KAAKqM,KAERlT,EAAE6G,KAAKpD,GACPyP,EAAGrM,KAAKoM,IAeZ,OATE/O,EADgB,IAAdT,EAAE2P,KAAK,GACHH,EAEAC,GAGAE,KAAK,GAAK,GAChBlP,EAAI0C,KAAK8G,GAGJxJ,GAGT5F,EAAGjD,UAAU0X,IAAM,SAAcxS,GAC/B,GAAIrE,KAAK6G,SAAU,OAAOxC,EAAI2E,MAC9B,GAAI3E,EAAIwC,SAAU,OAAO7G,KAAKgJ,MAE9B,IAAIzB,EAAIvH,KAAK+F,QACTjC,EAAIO,EAAI0B,QACZwB,EAAE9E,SAAW,EACbqB,EAAErB,SAAW,EAGb,IAAK,IAAI4F,EAAQ,EAAGd,EAAEgP,UAAYzS,EAAEyS,SAAUlO,IAC5Cd,EAAEuM,OAAO,GACThQ,EAAEgQ,OAAO,GAGX,OAAG,CACD,KAAOvM,EAAEgP,UACPhP,EAAEuM,OAAO,GAEX,KAAOhQ,EAAEyS,UACPzS,EAAEgQ,OAAO,GAGX,IAAItQ,EAAI+D,EAAE9C,IAAIX,GACd,GAAIN,EAAI,EAAG,CAET,IAAIiF,EAAIlB,EACRA,EAAIzD,EACJA,EAAI2E,OACC,GAAU,IAANjF,GAAyB,IAAdM,EAAEoT,KAAK,GAC3B,MAGF3P,EAAEoD,KAAK7G,GAGT,OAAOA,EAAE2P,OAAOpL,IAIlBjG,EAAGjD,UAAUgY,KAAO,SAAe9S,GACjC,OAAOrE,KAAKiW,KAAK5R,GAAKkD,EAAEkO,KAAKpR,IAG/BjC,EAAGjD,UAAUoX,OAAS,WACpB,OAA+B,KAAP,EAAhBvW,KAAK0C,MAAM,KAGrBN,EAAGjD,UAAUwX,MAAQ,WACnB,OAA+B,KAAP,EAAhB3W,KAAK0C,MAAM,KAIrBN,EAAGjD,UAAU2W,MAAQ,SAAgBzR,GACnC,OAAOrE,KAAK0C,MAAM,GAAK2B,GAIzBjC,EAAGjD,UAAUiY,MAAQ,SAAgB5M,GACnC9I,EAAsB,kBAAR8I,GACd,IAAIhH,EAAIgH,EAAM,GACV7J,GAAK6J,EAAMhH,GAAK,GAChBgQ,EAAI,GAAKhQ,EAGb,GAAIxD,KAAKa,QAAUF,EAGjB,OAFAX,KAAKgG,QAAQrF,EAAI,GACjBX,KAAK0C,MAAM/B,IAAM6S,EACVxT,KAKT,IADA,IAAI0G,EAAQ8M,EACH/S,EAAIE,EAAa,IAAV+F,GAAejG,EAAIT,KAAKa,OAAQJ,IAAK,CACnD,IAAIyE,EAAoB,EAAhBlF,KAAK0C,MAAMjC,GAEnBiG,GADAxB,GAAKwB,KACS,GACdxB,GAAK,SACLlF,KAAK0C,MAAMjC,GAAKyE,EAMlB,OAJc,IAAVwB,IACF1G,KAAK0C,MAAMjC,GAAKiG,EAChB1G,KAAKa,UAEAb,MAGToC,EAAGjD,UAAU0H,OAAS,WACpB,OAAuB,IAAhB7G,KAAKa,QAAkC,IAAlBb,KAAK0C,MAAM,IAGzCN,EAAGjD,UAAU+X,KAAO,SAAe7S,GACjC,IAOI2D,EAPAvF,EAAW4B,EAAM,EAErB,GAAsB,IAAlBrE,KAAKyC,WAAmBA,EAAU,OAAQ,EAC9C,GAAsB,IAAlBzC,KAAKyC,UAAkBA,EAAU,OAAO,EAK5C,GAHAzC,KAAKoF,SAGDpF,KAAKa,OAAS,EAChBmH,EAAM,MACD,CACDvF,IACF4B,GAAOA,GAGT3C,EAAO2C,GAAO,SAAW,qBAEzB,IAAIa,EAAoB,EAAhBlF,KAAK0C,MAAM,GACnBsF,EAAM9C,IAAMb,EAAM,EAAIa,EAAIb,GAAO,EAAI,EAEvC,OAAsB,IAAlBrE,KAAKyC,SAA8B,GAANuF,EAC1BA,GAOT5F,EAAGjD,UAAUsF,IAAM,SAAcJ,GAC/B,GAAsB,IAAlBrE,KAAKyC,UAAmC,IAAjB4B,EAAI5B,SAAgB,OAAQ,EACvD,GAAsB,IAAlBzC,KAAKyC,UAAmC,IAAjB4B,EAAI5B,SAAgB,OAAO,EAEtD,IAAIuF,EAAMhI,KAAKqX,KAAKhT,GACpB,OAAsB,IAAlBrE,KAAKyC,SAA8B,GAANuF,EAC1BA,GAIT5F,EAAGjD,UAAUkY,KAAO,SAAehT,GAEjC,GAAIrE,KAAKa,OAASwD,EAAIxD,OAAQ,OAAO,EACrC,GAAIb,KAAKa,OAASwD,EAAIxD,OAAQ,OAAQ,EAGtC,IADA,IAAImH,EAAM,EACDvH,EAAIT,KAAKa,OAAS,EAAGJ,GAAK,EAAGA,IAAK,CACzC,IAAI8G,EAAoB,EAAhBvH,KAAK0C,MAAMjC,GACfqD,EAAmB,EAAfO,EAAI3B,MAAMjC,GAElB,GAAI8G,IAAMzD,EAAV,CACIyD,EAAIzD,EACNkE,GAAO,EACET,EAAIzD,IACbkE,EAAM,GAER,OAEF,OAAOA,GAGT5F,EAAGjD,UAAUmY,IAAM,SAAcjT,GAC/B,OAA0B,IAAnBrE,KAAKkX,KAAK7S,IAGnBjC,EAAGjD,UAAUoY,GAAK,SAAalT,GAC7B,OAAyB,IAAlBrE,KAAKyE,IAAIJ,IAGlBjC,EAAGjD,UAAUqY,KAAO,SAAenT,GACjC,OAAOrE,KAAKkX,KAAK7S,IAAQ,GAG3BjC,EAAGjD,UAAUsY,IAAM,SAAcpT,GAC/B,OAAOrE,KAAKyE,IAAIJ,IAAQ,GAG1BjC,EAAGjD,UAAUuY,IAAM,SAAcrT,GAC/B,OAA2B,IAApBrE,KAAKkX,KAAK7S,IAGnBjC,EAAGjD,UAAUwY,GAAK,SAAatT,GAC7B,OAA0B,IAAnBrE,KAAKyE,IAAIJ,IAGlBjC,EAAGjD,UAAUyY,KAAO,SAAevT,GACjC,OAAOrE,KAAKkX,KAAK7S,IAAQ,GAG3BjC,EAAGjD,UAAU0Y,IAAM,SAAcxT,GAC/B,OAAOrE,KAAKyE,IAAIJ,IAAQ,GAG1BjC,EAAGjD,UAAU2Y,IAAM,SAAczT,GAC/B,OAA0B,IAAnBrE,KAAKkX,KAAK7S,IAGnBjC,EAAGjD,UAAU4Y,GAAK,SAAa1T,GAC7B,OAAyB,IAAlBrE,KAAKyE,IAAIJ,IAOlBjC,EAAGO,IAAM,SAAc0B,GACrB,OAAO,IAAI2T,EAAI3T,IAGjBjC,EAAGjD,UAAU8Y,MAAQ,SAAgBC,GAGnC,OAFAxW,GAAQ1B,KAAK2C,IAAK,yCAClBjB,EAAyB,IAAlB1B,KAAKyC,SAAgB,iCACrByV,EAAIC,UAAUnY,MAAMoY,UAAUF,IAGvC9V,EAAGjD,UAAUkZ,QAAU,WAErB,OADA3W,EAAO1B,KAAK2C,IAAK,wDACV3C,KAAK2C,IAAI2V,YAAYtY,OAG9BoC,EAAGjD,UAAUiZ,UAAY,SAAoBF,GAE3C,OADAlY,KAAK2C,IAAMuV,EACJlY,MAGToC,EAAGjD,UAAUoZ,SAAW,SAAmBL,GAEzC,OADAxW,GAAQ1B,KAAK2C,IAAK,yCACX3C,KAAKoY,UAAUF,IAGxB9V,EAAGjD,UAAUqZ,OAAS,SAAiBnU,GAErC,OADA3C,EAAO1B,KAAK2C,IAAK,sCACV3C,KAAK2C,IAAIiI,IAAI5K,KAAMqE,IAG5BjC,EAAGjD,UAAUsZ,QAAU,SAAkBpU,GAEvC,OADA3C,EAAO1B,KAAK2C,IAAK,uCACV3C,KAAK2C,IAAI+H,KAAK1K,KAAMqE,IAG7BjC,EAAGjD,UAAUuZ,OAAS,SAAiBrU,GAErC,OADA3C,EAAO1B,KAAK2C,IAAK,sCACV3C,KAAK2C,IAAIkI,IAAI7K,KAAMqE,IAG5BjC,EAAGjD,UAAUwZ,QAAU,SAAkBtU,GAEvC,OADA3C,EAAO1B,KAAK2C,IAAK,uCACV3C,KAAK2C,IAAIgI,KAAK3K,KAAMqE,IAG7BjC,EAAGjD,UAAUyZ,OAAS,SAAiBvU,GAErC,OADA3C,EAAO1B,KAAK2C,IAAK,sCACV3C,KAAK2C,IAAIkW,IAAI7Y,KAAMqE,IAG5BjC,EAAGjD,UAAU2Z,OAAS,SAAiBzU,GAGrC,OAFA3C,EAAO1B,KAAK2C,IAAK,sCACjB3C,KAAK2C,IAAIoW,SAAS/Y,KAAMqE,GACjBrE,KAAK2C,IAAIkB,IAAI7D,KAAMqE,IAG5BjC,EAAGjD,UAAU6Z,QAAU,SAAkB3U,GAGvC,OAFA3C,EAAO1B,KAAK2C,IAAK,sCACjB3C,KAAK2C,IAAIoW,SAAS/Y,KAAMqE,GACjBrE,KAAK2C,IAAIkM,KAAK7O,KAAMqE,IAG7BjC,EAAGjD,UAAU8Z,OAAS,WAGpB,OAFAvX,EAAO1B,KAAK2C,IAAK,sCACjB3C,KAAK2C,IAAIuW,SAASlZ,MACXA,KAAK2C,IAAI0Q,IAAIrT,OAGtBoC,EAAGjD,UAAUga,QAAU,WAGrB,OAFAzX,EAAO1B,KAAK2C,IAAK,uCACjB3C,KAAK2C,IAAIuW,SAASlZ,MACXA,KAAK2C,IAAI2Q,KAAKtT,OAIvBoC,EAAGjD,UAAUia,QAAU,WAGrB,OAFA1X,EAAO1B,KAAK2C,IAAK,uCACjB3C,KAAK2C,IAAIuW,SAASlZ,MACXA,KAAK2C,IAAI0W,KAAKrZ,OAGvBoC,EAAGjD,UAAUma,QAAU,WAGrB,OAFA5X,EAAO1B,KAAK2C,IAAK,uCACjB3C,KAAK2C,IAAIuW,SAASlZ,MACXA,KAAK2C,IAAIwU,KAAKnX,OAIvBoC,EAAGjD,UAAUoa,OAAS,WAGpB,OAFA7X,EAAO1B,KAAK2C,IAAK,sCACjB3C,KAAK2C,IAAIuW,SAASlZ,MACXA,KAAK2C,IAAI6G,IAAIxJ,OAGtBoC,EAAGjD,UAAUqa,OAAS,SAAiBnV,GAGrC,OAFA3C,EAAO1B,KAAK2C,MAAQ0B,EAAI1B,IAAK,qBAC7B3C,KAAK2C,IAAIuW,SAASlZ,MACXA,KAAK2C,IAAIiD,IAAI5F,KAAMqE,IAI5B,IAAIoV,EAAS,CACXC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,OAAQ,MAIV,SAASC,EAAQC,EAAMvI,GAErBxR,KAAK+Z,KAAOA,EACZ/Z,KAAKwR,EAAI,IAAIpP,EAAGoP,EAAG,IACnBxR,KAAKY,EAAIZ,KAAKwR,EAAE7I,YAChB3I,KAAKyH,EAAI,IAAIrF,EAAG,GAAGqR,OAAOzT,KAAKY,GAAG+J,KAAK3K,KAAKwR,GAE5CxR,KAAKga,IAAMha,KAAKia,OAiDlB,SAASC,IACPJ,EAAOza,KACLW,KACA,OACA,2EA+DJ,SAASma,IACPL,EAAOza,KACLW,KACA,OACA,kEAIJ,SAASoa,IACPN,EAAOza,KACLW,KACA,OACA,yDAIJ,SAASqa,IAEPP,EAAOza,KACLW,KACA,QACA,uEA8CJ,SAASgY,EAAK/F,GACZ,GAAiB,kBAANA,EAAgB,CACzB,IAAIqI,EAAQlY,EAAGmY,OAAOtI,GACtBjS,KAAKiS,EAAIqI,EAAM9I,EACfxR,KAAKsa,MAAQA,OAEb5Y,EAAOuQ,EAAEqF,IAAI,GAAI,kCACjBtX,KAAKiS,EAAIA,EACTjS,KAAKsa,MAAQ,KAoOjB,SAASE,EAAMvI,GACb+F,EAAI3Y,KAAKW,KAAMiS,GAEfjS,KAAKqI,MAAQrI,KAAKiS,EAAEtJ,YAChB3I,KAAKqI,MAAQ,KAAO,IACtBrI,KAAKqI,OAAS,GAAMrI,KAAKqI,MAAQ,IAGnCrI,KAAKwD,EAAI,IAAIpB,EAAG,GAAGqR,OAAOzT,KAAKqI,OAC/BrI,KAAK6V,GAAK7V,KAAKya,KAAKza,KAAKwD,EAAE6P,OAC3BrT,KAAK0a,KAAO1a,KAAKwD,EAAEsT,OAAO9W,KAAKiS,GAE/BjS,KAAK2a,KAAO3a,KAAK0a,KAAK7W,IAAI7D,KAAKwD,GAAGmR,MAAM,GAAGU,IAAIrV,KAAKiS,GACpDjS,KAAK2a,KAAO3a,KAAK2a,KAAKlF,KAAKzV,KAAKwD,GAChCxD,KAAK2a,KAAO3a,KAAKwD,EAAEqH,IAAI7K,KAAK2a,MA9a9Bb,EAAO3a,UAAU8a,KAAO,WACtB,IAAID,EAAM,IAAI5X,EAAG,MAEjB,OADA4X,EAAItX,MAAQ,IAAI9C,MAAMoE,KAAKgB,KAAKhF,KAAKY,EAAI,KAClCoZ,GAGTF,EAAO3a,UAAUyb,QAAU,SAAkBvW,GAG3C,IACIwW,EADArX,EAAIa,EAGR,GACErE,KAAK8a,MAAMtX,EAAGxD,KAAKga,KAGnBa,GADArX,GADAA,EAAIxD,KAAK+a,MAAMvX,IACTkH,KAAK1K,KAAKga,MACPrR,kBACFkS,EAAO7a,KAAKY,GAErB,IAAI6D,EAAMoW,EAAO7a,KAAKY,GAAK,EAAI4C,EAAE6T,KAAKrX,KAAKwR,GAgB3C,OAfY,IAAR/M,GACFjB,EAAEd,MAAM,GAAK,EACbc,EAAE3C,OAAS,GACF4D,EAAM,EACfjB,EAAEmH,KAAK3K,KAAKwR,QAEIwJ,IAAZxX,EAAEyX,MAEJzX,EAAEyX,QAGFzX,EAAE4B,SAIC5B,GAGTsW,EAAO3a,UAAU2b,MAAQ,SAAgBI,EAAOzU,GAC9CyU,EAAMpH,OAAO9T,KAAKY,EAAG,EAAG6F,IAG1BqT,EAAO3a,UAAU4b,MAAQ,SAAgB1W,GACvC,OAAOA,EAAIwK,KAAK7O,KAAKyH,IASvB3F,EAASoY,EAAMJ,GAEfI,EAAK/a,UAAU2b,MAAQ,SAAgBI,EAAOC,GAK5C,IAHA,IAEIC,EAASpX,KAAKC,IAAIiX,EAAMra,OAAQ,GAC3BJ,EAAI,EAAGA,EAAI2a,EAAQ3a,IAC1B0a,EAAOzY,MAAMjC,GAAKya,EAAMxY,MAAMjC,GAIhC,GAFA0a,EAAOta,OAASua,EAEZF,EAAMra,QAAU,EAGlB,OAFAqa,EAAMxY,MAAM,GAAK,OACjBwY,EAAMra,OAAS,GAKjB,IAAIwa,EAAOH,EAAMxY,MAAM,GAGvB,IAFAyY,EAAOzY,MAAMyY,EAAOta,UAhBT,QAgBqBwa,EAE3B5a,EAAI,GAAIA,EAAIya,EAAMra,OAAQJ,IAAK,CAClC,IAAIa,EAAwB,EAAjB4Z,EAAMxY,MAAMjC,GACvBya,EAAMxY,MAAMjC,EAAI,KApBP,QAoBea,IAAgB,EAAM+Z,IAAS,GACvDA,EAAO/Z,EAET+Z,KAAU,GACVH,EAAMxY,MAAMjC,EAAI,IAAM4a,EACT,IAATA,GAAcH,EAAMra,OAAS,GAC/Bqa,EAAMra,QAAU,GAEhBqa,EAAMra,QAAU,GAIpBqZ,EAAK/a,UAAU4b,MAAQ,SAAgB1W,GAErCA,EAAI3B,MAAM2B,EAAIxD,QAAU,EACxBwD,EAAI3B,MAAM2B,EAAIxD,OAAS,GAAK,EAC5BwD,EAAIxD,QAAU,EAId,IADA,IAAI2G,EAAK,EACA/G,EAAI,EAAGA,EAAI4D,EAAIxD,OAAQJ,IAAK,CACnC,IAAIyE,EAAmB,EAAfb,EAAI3B,MAAMjC,GAClB+G,GAAU,IAAJtC,EACNb,EAAI3B,MAAMjC,GAAU,SAAL+G,EACfA,EAAS,GAAJtC,GAAasC,EAAK,SAAa,GAUtC,OANkC,IAA9BnD,EAAI3B,MAAM2B,EAAIxD,OAAS,KACzBwD,EAAIxD,SAC8B,IAA9BwD,EAAI3B,MAAM2B,EAAIxD,OAAS,IACzBwD,EAAIxD,UAGDwD,GASTvC,EAASqY,EAAML,GAQfhY,EAASsY,EAAMN,GASfhY,EAASuY,EAAQP,GAEjBO,EAAOlb,UAAU4b,MAAQ,SAAgB1W,GAGvC,IADA,IAAIqC,EAAQ,EACHjG,EAAI,EAAGA,EAAI4D,EAAIxD,OAAQJ,IAAK,CACnC,IAAImI,EAA0B,IAAL,EAAfvE,EAAI3B,MAAMjC,IAAiBiG,EACjCc,EAAU,SAALoB,EACTA,KAAQ,GAERvE,EAAI3B,MAAMjC,GAAK+G,EACfd,EAAQkC,EAKV,OAHc,IAAVlC,IACFrC,EAAI3B,MAAM2B,EAAIxD,UAAY6F,GAErBrC,GAITjC,EAAGmY,OAAS,SAAgBR,GAE1B,GAAIN,EAAOM,GAAO,OAAON,EAAOM,GAEhC,IAAIO,EACJ,GAAa,SAATP,EACFO,EAAQ,IAAIJ,OACP,GAAa,SAATH,EACTO,EAAQ,IAAIH,OACP,GAAa,SAATJ,EACTO,EAAQ,IAAIF,MACP,IAAa,WAATL,EAGT,MAAM,IAAIlY,MAAM,iBAAmBkY,GAFnCO,EAAQ,IAAID,EAMd,OAFAZ,EAAOM,GAAQO,EAERA,GAkBTtC,EAAI7Y,UAAU+Z,SAAW,SAAmB3R,GAC1C7F,EAAsB,IAAf6F,EAAE9E,SAAgB,iCACzBf,EAAO6F,EAAE5E,IAAK,oCAGhBqV,EAAI7Y,UAAU4Z,SAAW,SAAmBxR,EAAGzD,GAC7CpC,EAAqC,KAA7B6F,EAAE9E,SAAWqB,EAAErB,UAAiB,iCACxCf,EAAO6F,EAAE5E,KAAO4E,EAAE5E,MAAQmB,EAAEnB,IAC1B,oCAGJqV,EAAI7Y,UAAUsb,KAAO,SAAelT,GAClC,OAAIvH,KAAKsa,MAActa,KAAKsa,MAAMM,QAAQrT,GAAG6Q,UAAUpY,OAEvDkE,EAAKqD,EAAGA,EAAEkO,KAAKzV,KAAKiS,GAAGmG,UAAUpY,OAC1BuH,IAGTyQ,EAAI7Y,UAAUqK,IAAM,SAAcjC,GAChC,OAAIA,EAAEV,SACGU,EAAExB,QAGJ/F,KAAKiS,EAAEpH,IAAItD,GAAG6Q,UAAUpY,OAGjCgY,EAAI7Y,UAAUyL,IAAM,SAAcrD,EAAGzD,GACnC9D,KAAK+Y,SAASxR,EAAGzD,GAEjB,IAAIkE,EAAMT,EAAEqD,IAAI9G,GAIhB,OAHIkE,EAAIvD,IAAIzE,KAAKiS,IAAM,GACrBjK,EAAI2C,KAAK3K,KAAKiS,GAETjK,EAAIoQ,UAAUpY,OAGvBgY,EAAI7Y,UAAUuL,KAAO,SAAenD,EAAGzD,GACrC9D,KAAK+Y,SAASxR,EAAGzD,GAEjB,IAAIkE,EAAMT,EAAEmD,KAAK5G,GAIjB,OAHIkE,EAAIvD,IAAIzE,KAAKiS,IAAM,GACrBjK,EAAI2C,KAAK3K,KAAKiS,GAETjK,GAGTgQ,EAAI7Y,UAAU0L,IAAM,SAActD,EAAGzD,GACnC9D,KAAK+Y,SAASxR,EAAGzD,GAEjB,IAAIkE,EAAMT,EAAEsD,IAAI/G,GAIhB,OAHIkE,EAAIkP,KAAK,GAAK,GAChBlP,EAAI0C,KAAK1K,KAAKiS,GAETjK,EAAIoQ,UAAUpY,OAGvBgY,EAAI7Y,UAAUwL,KAAO,SAAepD,EAAGzD,GACrC9D,KAAK+Y,SAASxR,EAAGzD,GAEjB,IAAIkE,EAAMT,EAAEoD,KAAK7G,GAIjB,OAHIkE,EAAIkP,KAAK,GAAK,GAChBlP,EAAI0C,KAAK1K,KAAKiS,GAETjK,GAGTgQ,EAAI7Y,UAAU0Z,IAAM,SAActR,EAAGlD,GAEnC,OADArE,KAAKkZ,SAAS3R,GACPvH,KAAKya,KAAKlT,EAAE+M,MAAMjQ,KAG3B2T,EAAI7Y,UAAU0P,KAAO,SAAetH,EAAGzD,GAErC,OADA9D,KAAK+Y,SAASxR,EAAGzD,GACV9D,KAAKya,KAAKlT,EAAEsH,KAAK/K,KAG1BkU,EAAI7Y,UAAU0E,IAAM,SAAc0D,EAAGzD,GAEnC,OADA9D,KAAK+Y,SAASxR,EAAGzD,GACV9D,KAAKya,KAAKlT,EAAE1D,IAAIC,KAGzBkU,EAAI7Y,UAAUmU,KAAO,SAAe/L,GAClC,OAAOvH,KAAK6O,KAAKtH,EAAGA,EAAExB,UAGxBiS,EAAI7Y,UAAUkU,IAAM,SAAc9L,GAChC,OAAOvH,KAAK6D,IAAI0D,EAAGA,IAGrByQ,EAAI7Y,UAAUka,KAAO,SAAe9R,GAClC,GAAIA,EAAEV,SAAU,OAAOU,EAAExB,QAEzB,IAAIuV,EAAOtb,KAAKiS,EAAE6D,MAAM,GAIxB,GAHApU,EAAO4Z,EAAO,IAAM,GAGP,IAATA,EAAY,CACd,IAAI1V,EAAM5F,KAAKiS,EAAErH,IAAI,IAAIxI,EAAG,IAAI0R,OAAO,GACvC,OAAO9T,KAAK4F,IAAI2B,EAAG3B,GAQrB,IAFA,IAAI4N,EAAIxT,KAAKiS,EAAE4C,KAAK,GAChBlU,EAAI,GACA6S,EAAE3M,UAA2B,IAAf2M,EAAEsC,MAAM,IAC5BnV,IACA6S,EAAEM,OAAO,GAEXpS,GAAQ8R,EAAE3M,UAEV,IAAI0U,EAAM,IAAInZ,EAAG,GAAG6V,MAAMjY,MACtBwb,EAAOD,EAAIhC,SAIXkC,EAAOzb,KAAKiS,EAAE4C,KAAK,GAAGf,OAAO,GAC7B4H,EAAI1b,KAAKiS,EAAEtJ,YAGf,IAFA+S,EAAI,IAAItZ,EAAG,EAAIsZ,EAAIA,GAAGzD,MAAMjY,MAEW,IAAhCA,KAAK4F,IAAI8V,EAAGD,GAAMhX,IAAI+W,IAC3BE,EAAEjD,QAAQ+C,GAOZ,IAJA,IAAIpY,EAAIpD,KAAK4F,IAAI8V,EAAGlI,GAChBhQ,EAAIxD,KAAK4F,IAAI2B,EAAGiM,EAAEoB,KAAK,GAAGd,OAAO,IACjCrL,EAAIzI,KAAK4F,IAAI2B,EAAGiM,GAChBvB,EAAItR,EACc,IAAf8H,EAAEhE,IAAI8W,IAAY,CAEvB,IADA,IAAIvB,EAAMvR,EACDhI,EAAI,EAAoB,IAAjBuZ,EAAIvV,IAAI8W,GAAY9a,IAClCuZ,EAAMA,EAAIf,SAEZvX,EAAOjB,EAAIwR,GACX,IAAInO,EAAI9D,KAAK4F,IAAIxC,EAAG,IAAIhB,EAAG,GAAGqR,OAAOxB,EAAIxR,EAAI,IAE7C+C,EAAIA,EAAEsV,OAAOhV,GACbV,EAAIU,EAAEmV,SACNxQ,EAAIA,EAAEqQ,OAAO1V,GACb6O,EAAIxR,EAGN,OAAO+C,GAGTwU,EAAI7Y,UAAUgY,KAAO,SAAe5P,GAClC,IAAIoU,EAAMpU,EAAEuP,OAAO9W,KAAKiS,GACxB,OAAqB,IAAjB0J,EAAIlZ,UACNkZ,EAAIlZ,SAAW,EACRzC,KAAKya,KAAKkB,GAAKpC,UAEfvZ,KAAKya,KAAKkB,IAIrB3D,EAAI7Y,UAAUyG,IAAM,SAAc2B,EAAGlD,GACnC,GAAIA,EAAIwC,SAAU,OAAO,IAAIzE,EAAG,GAAG6V,MAAMjY,MACzC,GAAoB,IAAhBqE,EAAI6S,KAAK,GAAU,OAAO3P,EAAExB,QAEhC,IACI6V,EAAM,IAAIhc,MAAM,IACpBgc,EAAI,GAAK,IAAIxZ,EAAG,GAAG6V,MAAMjY,MACzB4b,EAAI,GAAKrU,EACT,IAAK,IAAI9G,EAAI,EAAGA,EAAImb,EAAI/a,OAAQJ,IAC9Bmb,EAAInb,GAAKT,KAAK6D,IAAI+X,EAAInb,EAAI,GAAI8G,GAGhC,IAAIS,EAAM4T,EAAI,GACVC,EAAU,EACVC,EAAa,EACbnY,EAAQU,EAAIsE,YAAc,GAK9B,IAJc,IAAVhF,IACFA,EAAQ,IAGLlD,EAAI4D,EAAIxD,OAAS,EAAGJ,GAAK,EAAGA,IAAK,CAEpC,IADA,IAAIgF,EAAOpB,EAAI3B,MAAMjC,GACZwE,EAAItB,EAAQ,EAAGsB,GAAK,EAAGA,IAAK,CACnC,IAAIuF,EAAO/E,GAAQR,EAAK,EACpB+C,IAAQ4T,EAAI,KACd5T,EAAMhI,KAAKqT,IAAIrL,IAGL,IAARwC,GAAyB,IAAZqR,GAKjBA,IAAY,EACZA,GAAWrR,GA9BE,MA+BbsR,GACwC,IAANrb,GAAiB,IAANwE,KAE7C+C,EAAMhI,KAAK6D,IAAImE,EAAK4T,EAAIC,IACxBC,EAAa,EACbD,EAAU,IAXRC,EAAa,EAajBnY,EAAQ,GAGV,OAAOqE,GAGTgQ,EAAI7Y,UAAUgZ,UAAY,SAAoB9T,GAC5C,IAAIb,EAAIa,EAAIoR,KAAKzV,KAAKiS,GAEtB,OAAOzO,IAAMa,EAAMb,EAAEuC,QAAUvC,GAGjCwU,EAAI7Y,UAAUmZ,YAAc,SAAsBjU,GAChD,IAAI2D,EAAM3D,EAAI0B,QAEd,OADAiC,EAAIrF,IAAM,KACHqF,GAOT5F,EAAG2Z,KAAO,SAAe1X,GACvB,OAAO,IAAImW,EAAKnW,IAmBlBvC,EAAS0Y,EAAMxC,GAEfwC,EAAKrb,UAAUgZ,UAAY,SAAoB9T,GAC7C,OAAOrE,KAAKya,KAAKpW,EAAIiQ,MAAMtU,KAAKqI,SAGlCmS,EAAKrb,UAAUmZ,YAAc,SAAsBjU,GACjD,IAAIb,EAAIxD,KAAKya,KAAKpW,EAAIR,IAAI7D,KAAK0a,OAE/B,OADAlX,EAAEb,IAAM,KACDa,GAGTgX,EAAKrb,UAAU0P,KAAO,SAAetH,EAAGzD,GACtC,GAAIyD,EAAEV,UAAY/C,EAAE+C,SAGlB,OAFAU,EAAE7E,MAAM,GAAK,EACb6E,EAAE1G,OAAS,EACJ0G,EAGT,IAAIkB,EAAIlB,EAAEsH,KAAK/K,GACXV,EAAIqF,EAAEiM,MAAM1U,KAAKqI,OAAOxE,IAAI7D,KAAK2a,MAAMlG,OAAOzU,KAAKqI,OAAOxE,IAAI7D,KAAKiS,GACnE+J,EAAIvT,EAAEkC,KAAKvH,GAAG0Q,OAAO9T,KAAKqI,OAC1BL,EAAMgU,EAQV,OANIA,EAAEvX,IAAIzE,KAAKiS,IAAM,EACnBjK,EAAMgU,EAAErR,KAAK3K,KAAKiS,GACT+J,EAAE9E,KAAK,GAAK,IACrBlP,EAAMgU,EAAEtR,KAAK1K,KAAKiS,IAGbjK,EAAIoQ,UAAUpY,OAGvBwa,EAAKrb,UAAU0E,IAAM,SAAc0D,EAAGzD,GACpC,GAAIyD,EAAEV,UAAY/C,EAAE+C,SAAU,OAAO,IAAIzE,EAAG,GAAGgW,UAAUpY,MAEzD,IAAIyI,EAAIlB,EAAE1D,IAAIC,GACVV,EAAIqF,EAAEiM,MAAM1U,KAAKqI,OAAOxE,IAAI7D,KAAK2a,MAAMlG,OAAOzU,KAAKqI,OAAOxE,IAAI7D,KAAKiS,GACnE+J,EAAIvT,EAAEkC,KAAKvH,GAAG0Q,OAAO9T,KAAKqI,OAC1BL,EAAMgU,EAOV,OANIA,EAAEvX,IAAIzE,KAAKiS,IAAM,EACnBjK,EAAMgU,EAAErR,KAAK3K,KAAKiS,GACT+J,EAAE9E,KAAK,GAAK,IACrBlP,EAAMgU,EAAEtR,KAAK1K,KAAKiS,IAGbjK,EAAIoQ,UAAUpY,OAGvBwa,EAAKrb,UAAUgY,KAAO,SAAe5P,GAGnC,OADUvH,KAAKya,KAAKlT,EAAEuP,OAAO9W,KAAKiS,GAAGpO,IAAI7D,KAAK6V,KACnCuC,UAAUpY,OAx9GzB,CA09GoCwB,EAAQxB,Q,wDCx9G5C,IAAMic,EAAWjZ,EAAQ,MAAoBiZ,SACvCC,EAAgBlZ,EAAQ,KAAkBkZ,cAC1CC,EAAgBnZ,EAAQ,KAAkBmZ,cAC1Cza,EAASsB,EAAQ,KAGjBoZ,EAAO,CACX,MAAO,QAAS,MAAO,QAAS,QAAS,OACzC,UAAW,UAAW,QAAS,OAAQ,MAAO,UAC9C,SAAU,SAAU,UAAW,SAAU,WAAY,SAAU,YAC/D,SAAU,SAAU,WAAY,SAAU,SAAU,UAAW,YAI3DC,EAAU,CACd,MAAO,MAAO,MAAO,WAAY,WAAY,WAAY,MAAO,SAChE,MAAO,YACPC,OAAOF,GAYT,SAASG,EAAKC,EAAKC,EAAQ1C,GACzB,IAAM2C,EAAQ,GACd1c,KAAK2c,WAAaD,EAElBA,EAAM3C,KAAOA,EACb2C,EAAMF,IAAMA,EAEZE,EAAMD,OAASA,GAAU,KACzBC,EAAME,SAAW,KAGjBF,EAAMG,IAAM,KACZH,EAAMI,KAAO,KACbJ,EAAMK,YAAc,KACpBL,EAAMM,OAAS,KACfN,EAAMO,UAAW,EACjBP,EAAMQ,KAAM,EACZR,EAAMS,KAAM,EACZT,EAAMU,IAAM,KACZV,EAAMW,WAAa,KACnBX,EAAMY,IAAM,KACZZ,EAAe,QAAI,KACnBA,EAAMa,SAAW,KACjBb,EAAMc,SAAW,KACjBd,EAAMe,SAAW,KAGZf,EAAMD,SACTC,EAAME,SAAW,GACjB5c,KAAK0d,SAGTlc,EAAOC,QAAU8a,EAEjB,IAAMoB,EAAa,CACjB,MAAO,SAAU,WAAY,MAAO,OAAQ,cAAe,SAC3D,WAAY,MAAO,MAAO,MAAO,aAAc,MAAO,UAAW,WACjE,WAAY,YAGdpB,EAAKpd,UAAU4G,MAAQ,WACrB,IAAM2W,EAAQ1c,KAAK2c,WACbiB,EAAS,GACfD,EAAWE,SAAQ,SAASC,GAC1BF,EAAOE,GAAQpB,EAAMoB,MAEvB,IAAM9V,EAAM,IAAIhI,KAAKmC,YAAYyb,EAAOnB,QAExC,OADAzU,EAAI2U,WAAaiB,EACV5V,GAGTuU,EAAKpd,UAAUue,MAAQ,WACrB,IAAMhB,EAAQ1c,KAAK2c,WACnBN,EAAQwB,SAAQ,SAASE,GACvB/d,KAAK+d,GAAU,WACb,IAAMhY,EAAQ,IAAI/F,KAAKmC,YAAYnC,MAEnC,OADA0c,EAAME,SAASoB,KAAKjY,GACbA,EAAMgY,GAAQE,MAAMlY,EAAOmY,cAEnCle,OAGLuc,EAAKpd,UAAUyD,MAAQ,SAAcub,GACnC,IAAMzB,EAAQ1c,KAAK2c,WAEnBjb,EAAwB,OAAjBgb,EAAMD,QACb0B,EAAK9e,KAAKW,MAGV0c,EAAME,SAAWF,EAAME,SAASwB,QAAO,SAASC,GAC9C,OAAOA,EAAM1B,WAAWF,SAAWzc,OAClCA,MACH0B,EAAO4c,MAAM5B,EAAME,SAAS/b,OAAQ,EAAG,sCAGzC0b,EAAKpd,UAAUof,SAAW,SAAiBzB,GACzC,IAAMJ,EAAQ1c,KAAK2c,WAGbC,EAAWE,EAAKsB,QAAO,SAASI,GACpC,OAAOA,aAAexe,KAAKmC,cAC1BnC,MACH8c,EAAOA,EAAKsB,QAAO,SAASI,GAC1B,QAASA,aAAexe,KAAKmC,eAC5BnC,MAEqB,IAApB4c,EAAS/b,SACXa,EAA0B,OAAnBgb,EAAME,UACbF,EAAME,SAAWA,EAGjBA,EAASiB,SAAQ,SAASQ,GACxBA,EAAM1B,WAAWF,OAASzc,OACzBA,OAEe,IAAhB8c,EAAKjc,SACPa,EAAsB,OAAfgb,EAAMI,MACbJ,EAAMI,KAAOA,EACbJ,EAAMK,YAAcD,EAAK2B,KAAI,SAASD,GACpC,GAAmB,kBAARA,GAAoBA,EAAIrc,cAAgBxC,OACjD,OAAO6e,EAET,IAAMxW,EAAM,GAOZ,OANArI,OAAO+e,KAAKF,GAAKX,SAAQ,SAASP,GAC5BA,IAAc,EAANA,KACVA,GAAO,GACT,IAAMvd,EAAQye,EAAIlB,GAClBtV,EAAIjI,GAASud,KAERtV,OAtHK,CAChB,WAAY,aAAc,OAC1B,aAAc,eAAgB,cAC9B,cAAe,aAAc,cAAe,cAE5C,mBAAoB,aAAc,eAAgB,cAClD,cAAe,aAAc,eAyHrB6V,SAAQ,SAASE,GACzBxB,EAAKpd,UAAU4e,GAAU,WACvB,IAAMrB,EAAQ1c,KAAK2c,WACnB,MAAM,IAAI9a,MAAMkc,EAAS,kCAAoCrB,EAAMF,SAQvEJ,EAAKyB,SAAQ,SAAShB,GACpBN,EAAKpd,UAAU0d,GAAO,WACpB,IAAMH,EAAQ1c,KAAK2c,WACbG,EAAOld,MAAMT,UAAUwf,MAAMtf,KAAK6e,WAOxC,OALAxc,EAAqB,OAAdgb,EAAMG,KACbH,EAAMG,IAAMA,EAEZ7c,KAAKue,SAASzB,GAEP9c,SAIXuc,EAAKpd,UAAUie,IAAM,SAAawB,GAChCld,EAAOkd,GACP,IAAMlC,EAAQ1c,KAAK2c,WAKnB,OAHAjb,EAAqB,OAAdgb,EAAMU,KACbV,EAAMU,IAAMwB,EAEL5e,MAGTuc,EAAKpd,UAAU8d,SAAW,WAKxB,OAJcjd,KAAK2c,WAEbM,UAAW,EAEVjd,MAGTuc,EAAKpd,UAAU0f,IAAM,SAAald,GAChC,IAAM+a,EAAQ1c,KAAK2c,WAMnB,OAJAjb,EAA4B,OAArBgb,EAAe,SACtBA,EAAe,QAAI/a,EACnB+a,EAAMO,UAAW,EAEVjd,MAGTuc,EAAKpd,UAAUoe,SAAW,SAAkBlZ,GAC1C,IAAMqY,EAAQ1c,KAAK2c,WAKnB,OAHAjb,EAA0B,OAAnBgb,EAAMa,UAAwC,OAAnBb,EAAMc,UACxCd,EAAMa,SAAWlZ,EAEVrE,MAGTuc,EAAKpd,UAAUqe,SAAW,SAAkBnZ,GAC1C,IAAMqY,EAAQ1c,KAAK2c,WAKnB,OAHAjb,EAA0B,OAAnBgb,EAAMa,UAAwC,OAAnBb,EAAMc,UACxCd,EAAMc,SAAWnZ,EAEVrE,MAGTuc,EAAKpd,UAAUge,IAAM,WACnB,IAAMT,EAAQ1c,KAAK2c,WACbG,EAAOld,MAAMT,UAAUwf,MAAMtf,KAAK6e,WAOxC,OALAxB,EAAMS,KAAM,EAEQ,IAAhBL,EAAKjc,QACPb,KAAKue,SAASzB,GAET9c,MAGTuc,EAAKpd,UAAUme,IAAM,SAAawB,GAChC,IAAMpC,EAAQ1c,KAAK2c,WAKnB,OAHAjb,EAAqB,OAAdgb,EAAMY,KACbZ,EAAMY,IAAMwB,EAEL9e,MAGTuc,EAAKpd,UAAU+d,IAAM,WAKnB,OAJcld,KAAK2c,WAEbO,KAAM,EAELld,MAGTuc,EAAKpd,UAAU6d,OAAS,SAAgBG,GACtC,IAAMT,EAAQ1c,KAAK2c,WAQnB,OANAjb,EAAwB,OAAjBgb,EAAMM,QACbN,EAAMM,OAASG,EACfnd,KAAKue,SAAS5e,OAAO+e,KAAKvB,GAAKsB,KAAI,SAASnB,GAC1C,OAAOH,EAAIG,OAGNtd,MAGTuc,EAAKpd,UAAUse,SAAW,SAAkBmB,GAC1C,IAAMlC,EAAQ1c,KAAK2c,WAKnB,OAHAjb,EAAqB,OAAdgb,EAAMU,KACbV,EAAMe,SAAWmB,EAEV5e,MAOTuc,EAAKpd,UAAU4f,QAAU,SAAgB7D,EAAO8D,GAC9C,IAAMtC,EAAQ1c,KAAK2c,WAGnB,GAAqB,OAAjBD,EAAMD,OACR,OAAOvB,EAAM+D,WAAWvC,EAAME,SAAS,GAAGmC,QAAQ7D,EAAO8D,IAE3D,IAuCIE,EAvCAC,EAASzC,EAAe,QACxB0C,GAAU,EAEVC,EAAU,KAKd,GAJkB,OAAd3C,EAAMY,MACR+B,EAAUnE,EAAMoE,SAAS5C,EAAMY,MAG7BZ,EAAMO,SAAU,CAClB,IAAIJ,EAAM,KAQV,GAPuB,OAAnBH,EAAMa,SACRV,EAAMH,EAAMa,SACc,OAAnBb,EAAMc,SACbX,EAAMH,EAAMc,SACS,OAAdd,EAAMG,MACbA,EAAMH,EAAMG,KAEF,OAARA,GAAiBH,EAAMQ,KAgBzB,GAFAkC,EAAUpf,KAAKuf,SAASrE,EAAO2B,EAAKH,EAAMQ,KAEtChC,EAAMsE,QAAQJ,GAChB,OAAOA,MAjBqB,CAE9B,IAAMK,EAAOvE,EAAMuE,OACnB,IACuB,OAAjB/C,EAAMM,OACRhd,KAAK0f,eAAehD,EAAMG,IAAK3B,EAAO8D,GAEtChf,KAAK2f,cAAczE,EAAO8D,GAC5BI,GAAU,EACV,MAAO9f,GACP8f,GAAU,EAEZlE,EAAM0E,QAAQH,IAclB,GAHI/C,EAAMS,KAAOiC,IACfF,EAAUhE,EAAM2E,eAEdT,EAAS,CAEX,GAAuB,OAAnB1C,EAAMa,SAAmB,CAC3B,IAAMA,EAAWvd,KAAK8f,WAAW5E,EAAOwB,EAAMa,UAC9C,GAAIrC,EAAMsE,QAAQjC,GAChB,OAAOA,EACTrC,EAAQqC,EAGV,IAAM5Z,EAAQuX,EAAM6E,OAGpB,GAAkB,OAAdrD,EAAMU,KAAiC,OAAjBV,EAAMM,OAAiB,CAC/C,IAAIyC,EACA/C,EAAMQ,MACRuC,EAAOvE,EAAMuE,QACf,IAAMtB,EAAOne,KAAK8f,WAChB5E,EACmB,OAAnBwB,EAAMc,SAAoBd,EAAMc,SAAWd,EAAMG,IACjDH,EAAMQ,KAER,GAAIhC,EAAMsE,QAAQrB,GAChB,OAAOA,EAELzB,EAAMQ,IACRiC,EAASjE,EAAM8E,IAAIP,GAEnBvE,EAAQiD,EAkBZ,GAfIa,GAAWA,EAAQiB,OAAuB,OAAdvD,EAAMG,KACpCmC,EAAQiB,MAAM/E,EAAMgF,OAAQvc,EAAOuX,EAAMra,OAAQ,UAE/Cme,GAAWA,EAAQiB,OAAuB,OAAdvD,EAAMG,KACpCmC,EAAQiB,MAAM/E,EAAMgF,OAAQhF,EAAM6E,OAAQ7E,EAAMra,OAAQ,WAGtD6b,EAAMQ,MAGRiC,EAD0B,OAAjBzC,EAAMM,OACNhd,KAAK0f,eAAehD,EAAMG,IAAK3B,EAAO8D,GAEtChf,KAAK2f,cAAczE,EAAO8D,IAGjC9D,EAAMsE,QAAQL,GAChB,OAAOA,EAYT,GATKzC,EAAMQ,KAAwB,OAAjBR,EAAMM,QAAsC,OAAnBN,EAAME,UAC/CF,EAAME,SAASiB,SAAQ,SAAwBQ,GAG7CA,EAAMU,QAAQ7D,EAAO8D,MAKrBtC,EAAMe,WAA2B,WAAdf,EAAMG,KAAkC,WAAdH,EAAMG,KAAmB,CACxE,IAAMsD,EAAO,IAAIhE,EAAcgD,GAC/BA,EAASnf,KAAKogB,QAAQ1D,EAAMe,SAAUvC,EAAMmF,eAAelD,KACxD4B,QAAQoB,EAAMnB,IAcrB,OATItC,EAAMS,KAAOiC,IACfD,EAASjE,EAAMoF,YAAYpB,IAGX,OAAdxC,EAAMY,KAA4B,OAAX6B,IAA+B,IAAZC,EAEzB,OAAZC,GACPnE,EAAMqF,QAAQlB,GAFdnE,EAAMsF,SAASnB,EAAS3C,EAAMY,IAAK6B,GAI9BA,GAGT5C,EAAKpd,UAAUugB,eAAiB,SAAuB7C,EAAK3B,EAAO8D,GACjE,IAAMtC,EAAQ1c,KAAK2c,WAEnB,MAAY,QAARE,GAAyB,QAARA,EACZ,KACG,UAARA,GAA2B,UAARA,EACd7c,KAAKygB,YAAYvF,EAAO2B,EAAKH,EAAMI,KAAK,GAAIkC,GAC5C,OAAO0B,KAAK7D,GACZ7c,KAAK2gB,WAAWzF,EAAO2B,EAAKmC,GACpB,UAARnC,GAAmBH,EAAMI,KACzB9c,KAAK4gB,aAAa1F,EAAOwB,EAAMI,KAAK,GAAIJ,EAAMI,KAAK,GAAIkC,GAC/C,UAARnC,EACA7c,KAAK4gB,aAAa1F,EAAO,KAAM,KAAM8D,GAC7B,YAARnC,GAA6B,YAARA,EACrB7c,KAAK6gB,YAAY3F,EAAO2B,EAAKmC,GACrB,UAARnC,EACA7c,KAAK8gB,YAAY5F,EAAO8D,GAChB,SAARnC,EACA7c,KAAK+gB,YAAY7F,EAAO8D,GAChB,YAARnC,EACA7c,KAAK2gB,WAAWzF,EAAO2B,EAAKmC,GACpB,QAARnC,GAAyB,SAARA,EACjB7c,KAAKghB,WAAW9F,EAAOwB,EAAMI,MAAQJ,EAAMI,KAAK,GAAIkC,GAE3C,OAAdtC,EAAMU,IACDpd,KAAKogB,QAAQ1D,EAAMU,IAAKlC,EAAMmF,eAAelD,KACjD4B,QAAQ7D,EAAO8D,GAEX9D,EAAM+F,MAAM,gBAAkBpE,IAIzCN,EAAKpd,UAAUihB,QAAU,SAAiBc,EAAQ/D,GAEhD,IAAMT,EAAQ1c,KAAK2c,WASnB,OAPAD,EAAMW,WAAard,KAAKmhB,KAAKD,EAAQ/D,GACrCzb,EAA8C,OAAvCgb,EAAMW,WAAWV,WAAWF,QACnCC,EAAMW,WAAaX,EAAMW,WAAWV,WAAWC,SAAS,GACpDF,EAAMc,WAAad,EAAMW,WAAWV,WAAWa,WACjDd,EAAMW,WAAaX,EAAMW,WAAWtX,QACpC2W,EAAMW,WAAWV,WAAWa,SAAWd,EAAMc,UAExCd,EAAMW,YAGfd,EAAKpd,UAAUwgB,cAAgB,SAAsBzE,EAAO8D,GAC1D,IAAMtC,EAAQ1c,KAAK2c,WACfwC,EAAS,KACTiC,GAAQ,EAmBZ,OAjBAzhB,OAAO+e,KAAKhC,EAAMM,QAAQqE,MAAK,SAAS/D,GACtC,IAAMmC,EAAOvE,EAAMuE,OACb6B,EAAO5E,EAAMM,OAAOM,GAC1B,IACE,IAAMvd,EAAQuhB,EAAKvC,QAAQ7D,EAAO8D,GAClC,GAAI9D,EAAMsE,QAAQzf,GAChB,OAAO,EAETof,EAAS,CAAEoC,KAAMjE,EAAKvd,MAAOA,GAC7BqhB,GAAQ,EACR,MAAO9hB,GAEP,OADA4b,EAAM0E,QAAQH,IACP,EAET,OAAO,IACNzf,MAEEohB,EAGEjC,EAFEjE,EAAM+F,MAAM,uBASvB1E,EAAKpd,UAAUqiB,qBAAuB,SAA6BrB,GACjE,OAAO,IAAIjE,EAAciE,EAAMngB,KAAKyhB,WAGtClF,EAAKpd,UAAUuiB,QAAU,SAAgBvB,EAAMsB,EAAUhF,GACvD,IAAMC,EAAQ1c,KAAK2c,WACnB,GAAyB,OAArBD,EAAe,SAAcA,EAAe,UAAMyD,EAAtD,CAGA,IAAMhB,EAASnf,KAAK2hB,aAAaxB,EAAMsB,EAAUhF,GACjD,QAAezB,IAAXmE,IAGAnf,KAAK4hB,aAAazC,EAAQsC,EAAUhF,GAGxC,OAAO0C,IAGT5C,EAAKpd,UAAUwiB,aAAe,SAAgBxB,EAAMsB,EAAUhF,GAC5D,IAAMC,EAAQ1c,KAAK2c,WAGnB,GAAqB,OAAjBD,EAAMD,OACR,OAAOC,EAAME,SAAS,GAAG8E,QAAQvB,EAAMsB,GAAY,IAAIxF,GAEzD,IAAIkD,EAAS,KAMb,GAHAnf,KAAKyhB,SAAWA,EAGZ/E,EAAMO,eAAqBjC,IAATmF,EAAoB,CACxC,GAAyB,OAArBzD,EAAe,QAGjB,OAFAyD,EAAOzD,EAAe,QAM1B,IAAImF,EAAU,KACVC,GAAY,EAChB,GAAIpF,EAAMQ,IAERiC,EAASnf,KAAKwhB,qBAAqBrB,QAC9B,GAAIzD,EAAMM,OACfmC,EAASnf,KAAK+hB,cAAc5B,EAAMsB,QAC7B,GAAI/E,EAAMe,SACfoE,EAAU7hB,KAAKogB,QAAQ1D,EAAMe,SAAUhB,GAAQiF,QAAQvB,EAAMsB,GAC7DK,GAAY,OACP,GAAIpF,EAAME,SACfiF,EAAUnF,EAAME,SAAS6B,KAAI,SAASJ,GACpC,GAA6B,UAAzBA,EAAM1B,WAAWE,IACnB,OAAOwB,EAAMqD,QAAQ,KAAMD,EAAUtB,GAEvC,GAA6B,OAAzB9B,EAAM1B,WAAWW,IACnB,OAAOmE,EAASR,MAAM,2BACxB,IAAM5B,EAAUoC,EAASnC,SAASjB,EAAM1B,WAAWW,KAEnD,GAAoB,kBAAT6C,EACT,OAAOsB,EAASR,MAAM,2CAExB,IAAMjZ,EAAMqW,EAAMqD,QAAQvB,EAAK9B,EAAM1B,WAAWW,KAAMmE,EAAUtB,GAGhE,OAFAsB,EAASjB,SAASnB,GAEXrX,IACNhI,MAAMoe,QAAO,SAASC,GACvB,OAAOA,KAETwD,EAAU7hB,KAAKwhB,qBAAqBK,QAEpC,GAAkB,UAAdnF,EAAMG,KAAiC,UAAdH,EAAMG,IAAiB,CAElD,IAAMH,EAAMI,MAA8B,IAAtBJ,EAAMI,KAAKjc,OAC7B,OAAO4gB,EAASR,MAAM,uBAAyBvE,EAAMG,KAEvD,IAAKjd,MAAMQ,QAAQ+f,GACjB,OAAOsB,EAASR,MAAM,sCAExB,IAAM5C,EAAQre,KAAK+F,QACnBsY,EAAM1B,WAAWa,SAAW,KAC5BqE,EAAU7hB,KAAKwhB,qBAAqBrB,EAAK1B,KAAI,SAASG,GACpD,IAAMlC,EAAQ1c,KAAK2c,WAEnB,OAAO3c,KAAKogB,QAAQ1D,EAAMI,KAAK,GAAIqD,GAAMuB,QAAQ9C,EAAM6C,KACtDpD,SACoB,OAAd3B,EAAMU,IACf+B,EAASnf,KAAKogB,QAAQ1D,EAAMU,IAAKX,GAAQiF,QAAQvB,EAAMsB,IAEvDI,EAAU7hB,KAAKgiB,iBAAiBtF,EAAMG,IAAKsD,GAC3C2B,GAAY,GAKhB,IAAKpF,EAAMQ,KAAwB,OAAjBR,EAAMM,OAAiB,CACvC,IAAMH,EAAyB,OAAnBH,EAAMc,SAAoBd,EAAMc,SAAWd,EAAMG,IACvDoF,EAAyB,OAAnBvF,EAAMc,SAAoB,YAAc,UAExC,OAARX,EACgB,OAAdH,EAAMU,KACRqE,EAASR,MAAM,wCAEC,OAAdvE,EAAMU,MACR+B,EAASnf,KAAKkiB,iBAAiBrF,EAAKiF,EAAWG,EAAKJ,IAQ1D,OAHuB,OAAnBnF,EAAMa,WACR4B,EAASnf,KAAKkiB,iBAAiBxF,EAAMa,UAAU,EAAO,UAAW4B,IAE5DA,GAGT5C,EAAKpd,UAAU4iB,cAAgB,SAAsB5B,EAAMsB,GACzD,IAAM/E,EAAQ1c,KAAK2c,WAEb2E,EAAO5E,EAAMM,OAAOmD,EAAKoB,MAO/B,OANKD,GACH5f,GACE,EACAye,EAAKoB,KAAO,iBACNY,KAAKC,UAAUziB,OAAO+e,KAAKhC,EAAMM,UAEpCsE,EAAKI,QAAQvB,EAAKpgB,MAAO0hB,IAGlClF,EAAKpd,UAAU6iB,iBAAmB,SAAyBnF,EAAKsD,GAC9D,IAAMzD,EAAQ1c,KAAK2c,WAEnB,GAAI,OAAO+D,KAAK7D,GACd,OAAO7c,KAAKqiB,WAAWlC,EAAMtD,GAC1B,GAAY,UAARA,GAAmBH,EAAMI,KAChC,OAAO9c,KAAKsiB,aAAanC,EAAMzD,EAAMK,YAAY,GAAIL,EAAMI,KAAK,IAC7D,GAAY,UAARD,EACP,OAAO7c,KAAKsiB,aAAanC,EAAM,KAAM,MAClC,GAAY,YAARtD,GAA6B,YAARA,EAC5B,OAAO7c,KAAKuiB,YAAYpC,EAAMtD,GAC3B,GAAY,UAARA,EACP,OAAO7c,KAAKwiB,cACT,GAAY,QAAR3F,GAAyB,SAARA,EACxB,OAAO7c,KAAKyiB,WAAWtC,EAAMzD,EAAMI,MAAQJ,EAAMK,YAAY,IAC1D,GAAY,SAARF,EACP,OAAO7c,KAAK0iB,YAAYvC,GACrB,GAAY,YAARtD,EACP,OAAO7c,KAAKqiB,WAAWlC,EAAMtD,GAE7B,MAAM,IAAIhb,MAAM,oBAAsBgb,IAG1CN,EAAKpd,UAAUwjB,UAAY,SAAkBjf,GAC3C,MAAO,YAAYgd,KAAKhd,IAG1B6Y,EAAKpd,UAAUyjB,YAAc,SAAoBlf,GAC/C,MAAO,6BAA6Bgd,KAAKhd,K,kCC1nB3C,IAAM5B,EAAWkB,EAAQ,KAEzB,SAASiZ,EAAS+C,GAChBhf,KAAKqgB,eAAiB,CACpBlD,IAAK,KACL+C,KAAM,GACNlB,QAASA,GAAW,GACpB6D,OAAQ,IA6FZ,SAASC,EAAc5C,EAAMte,GAC3B5B,KAAKkgB,KAAOA,EACZlgB,KAAK+iB,QAAQnhB,GA5FfH,EAAQwa,SAAWA,EAEnBA,EAAS9c,UAAUqgB,QAAU,SAAiBrC,GAC5C,OAAOA,aAAe2F,GAGxB7G,EAAS9c,UAAUsgB,KAAO,WACxB,IAAM/C,EAAQ1c,KAAKqgB,eAEnB,MAAO,CAAElD,IAAKT,EAAMS,IAAK6F,QAAStG,EAAMwD,KAAKrf,SAG/Cob,EAAS9c,UAAUygB,QAAU,SAAiBO,GAC5C,IAAMzD,EAAQ1c,KAAKqgB,eAEnB3D,EAAMS,IAAMgD,EAAKhD,IACjBT,EAAMwD,KAAOxD,EAAMwD,KAAKvB,MAAM,EAAGwB,EAAK6C,UAGxC/G,EAAS9c,UAAUmgB,SAAW,SAAkBhC,GAC9C,OAAOtd,KAAKqgB,eAAeH,KAAKlC,KAAKV,IAGvCrB,EAAS9c,UAAUohB,QAAU,SAAiBpd,GAC5C,IAAMuZ,EAAQ1c,KAAKqgB,eAEnB3D,EAAMwD,KAAOxD,EAAMwD,KAAKvB,MAAM,EAAGxb,EAAQ,IAG3C8Y,EAAS9c,UAAUqhB,SAAW,SAAkBrd,EAAOma,EAAKvd,GAC1D,IAAM2c,EAAQ1c,KAAKqgB,eAEnBrgB,KAAKugB,QAAQpd,GACK,OAAduZ,EAAMS,MACRT,EAAMS,IAAIG,GAAOvd,IAGrBkc,EAAS9c,UAAU+gB,KAAO,WACxB,OAAOlgB,KAAKqgB,eAAeH,KAAK+C,KAAK,MAGvChH,EAAS9c,UAAU0gB,YAAc,WAC/B,IAAMnD,EAAQ1c,KAAKqgB,eAEbhF,EAAOqB,EAAMS,IAEnB,OADAT,EAAMS,IAAM,GACL9B,GAGTY,EAAS9c,UAAUmhB,YAAc,SAAqBjF,GACpD,IAAMqB,EAAQ1c,KAAKqgB,eAEb6C,EAAMxG,EAAMS,IAElB,OADAT,EAAMS,IAAM9B,EACL6H,GAGTjH,EAAS9c,UAAU8hB,MAAQ,SAAerf,GACxC,IAAIV,EACEwb,EAAQ1c,KAAKqgB,eAEb8C,EAAYvhB,aAAekhB,EASjC,GAPE5hB,EADEiiB,EACIvhB,EAEA,IAAIkhB,EAAcpG,EAAMwD,KAAKzB,KAAI,SAAS2E,GAC9C,MAAO,IAAMjB,KAAKC,UAAUgB,GAAQ,OACnCH,KAAK,IAAKrhB,EAAIyhB,SAAWzhB,EAAKA,EAAI0hB,QAGlC5G,EAAMsC,QAAQuE,QACjB,MAAMriB,EAKR,OAHKiiB,GACHzG,EAAMmG,OAAO7E,KAAK9c,GAEbA,GAGT+a,EAAS9c,UAAU8f,WAAa,SAAoBE,GAClD,IAAMzC,EAAQ1c,KAAKqgB,eACnB,OAAK3D,EAAMsC,QAAQuE,QAGZ,CACLpE,OAAQnf,KAAKwf,QAAQL,GAAU,KAAOA,EACtC0D,OAAQnG,EAAMmG,QAJP1D,GAYXrd,EAASghB,EAAejhB,OAExBihB,EAAc3jB,UAAU4jB,QAAU,SAAiBnhB,GAKjD,GAJA5B,KAAKqjB,QAAUzhB,EAAM,SAAW5B,KAAKkgB,MAAQ,aACzCre,MAAM2hB,mBACR3hB,MAAM2hB,kBAAkBxjB,KAAM8iB,IAE3B9iB,KAAKsjB,MACR,IAEE,MAAM,IAAIzhB,MAAM7B,KAAKqjB,SACrB,MAAO/jB,GACPU,KAAKsjB,MAAQhkB,EAAEgkB,MAGnB,OAAOtjB,O,kCCtHT,SAASyjB,EAAQhF,GACf,IAAMzW,EAAM,GAWZ,OATArI,OAAO+e,KAAKD,GAAKZ,SAAQ,SAASP,IAErB,EAANA,IAAYA,IACfA,GAAY,GAEd,IAAMvd,EAAQ0e,EAAInB,GAClBtV,EAAIjI,GAASud,KAGRtV,EAGTvG,EAAQiiB,SAAW,CACjBC,EAAG,YACHC,EAAG,cACHC,EAAG,UACHC,EAAG,WAELriB,EAAQsiB,eAAiBN,EAAQhiB,EAAQiiB,UAEzCjiB,EAAQob,IAAM,CACZ8G,EAAM,MACN,EAAM,OACN,EAAM,MACN,EAAM,SACN,EAAM,SACN,EAAM,QACN,EAAM,QACN,EAAM,UACN,EAAM,WACN,EAAM,OACN,GAAM,OACN,GAAM,QACN,GAAM,UACN,GAAM,cACN,GAAM,MACN,GAAM,MACN,GAAM,SACN,GAAM,WACN,GAAM,SACN,GAAM,WACN,GAAM,SACN,GAAM,UACN,GAAM,UACN,GAAM,WACN,GAAM,YACN,GAAM,SACN,GAAM,SACN,GAAM,UACN,GAAM,UAERliB,EAAQuiB,UAAYP,EAAQhiB,EAAQob,M,qBCxDpC,IAAIoH,EAAYjhB,EAAQ,MACxBxB,EAAOC,QAAU,SAAUyiB,EAAIC,EAAMtjB,GAEnC,GADAojB,EAAUC,QACGlJ,IAATmJ,EAAoB,OAAOD,EAC/B,OAAQrjB,GACN,KAAK,EAAG,OAAO,SAAU0G,GACvB,OAAO2c,EAAG7kB,KAAK8kB,EAAM5c,IAEvB,KAAK,EAAG,OAAO,SAAUA,EAAGzD,GAC1B,OAAOogB,EAAG7kB,KAAK8kB,EAAM5c,EAAGzD,IAE1B,KAAK,EAAG,OAAO,SAAUyD,EAAGzD,EAAGV,GAC7B,OAAO8gB,EAAG7kB,KAAK8kB,EAAM5c,EAAGzD,EAAGV,IAG/B,OAAO,WACL,OAAO8gB,EAAGjG,MAAMkG,EAAMjG,c,qBChB1B,IAAIkG,EAAWphB,EAAQ,KAGvBxB,EAAOC,QAAU,SAAUR,EAAIojB,GAC7B,IAAKD,EAASnjB,GAAK,OAAOA,EAC1B,IAAIijB,EAAIviB,EACR,GAAI0iB,GAAkC,mBAArBH,EAAKjjB,EAAG7B,YAA4BglB,EAASziB,EAAMuiB,EAAG7kB,KAAK4B,IAAM,OAAOU,EACzF,GAAgC,mBAApBuiB,EAAKjjB,EAAGqjB,WAA2BF,EAASziB,EAAMuiB,EAAG7kB,KAAK4B,IAAM,OAAOU,EACnF,IAAK0iB,GAAkC,mBAArBH,EAAKjjB,EAAG7B,YAA4BglB,EAASziB,EAAMuiB,EAAG7kB,KAAK4B,IAAM,OAAOU,EAC1F,MAAMrB,UAAU,6C,mBCVlB,IAAIlB,EAAW,GAAGA,SAElBoC,EAAOC,QAAU,SAAUR,GACzB,OAAO7B,EAASC,KAAK4B,GAAI0d,MAAM,GAAI,K,mBCFrCnd,EAAOC,QAAU,SAAUR,GACzB,QAAU+Z,GAAN/Z,EAAiB,MAAMX,UAAU,yBAA2BW,GAChE,OAAOA,I,mBCFT,IAAI+D,EAAOhB,KAAKgB,KACZuf,EAAQvgB,KAAKugB,MACjB/iB,EAAOC,QAAU,SAAUR,GACzB,OAAOujB,MAAMvjB,GAAMA,GAAM,GAAKA,EAAK,EAAIsjB,EAAQvf,GAAM/D,K,qBCJvD,IAAIwjB,EAASzhB,EAAQ,KAARA,CAAqB,QAC9B0hB,EAAM1hB,EAAQ,KAClBxB,EAAOC,QAAU,SAAU6b,GACzB,OAAOmH,EAAOnH,KAASmH,EAAOnH,GAAOoH,EAAIpH,M,qBCH3C,IAAIqH,EAAO3hB,EAAQ,KACf4hB,EAAS5hB,EAAQ,KAEjB6hB,EAAQD,EADC,wBACkBA,EADlB,sBACmC,KAE/CpjB,EAAOC,QAAU,SAAU6b,EAAKvd,GAC/B,OAAO8kB,EAAMvH,KAASuH,EAAMvH,QAAiBtC,IAAVjb,EAAsBA,EAAQ,MAChE,WAAY,IAAIie,KAAK,CACtB8G,QAASH,EAAKG,QACd7P,KAAMjS,EAAQ,KAAgB,OAAS,SACvC+hB,UAAW,6C,mBCTbvjB,EAAOC,QACL,gGACAqZ,MAAM,M,mBCHRrZ,EAAQT,EAAIrB,OAAOqlB,uB,qBCCnB,IAAIC,EAAWjiB,EAAQ,KACnBkiB,EAAMliB,EAAQ,MACdmiB,EAAcniB,EAAQ,MACtBoiB,EAAWpiB,EAAQ,KAARA,CAAyB,YACpCqiB,EAAQ,aAIRC,EAAa,WAEf,IAIIC,EAJAC,EAASxiB,EAAQ,KAARA,CAAyB,UAClCvC,EAAI0kB,EAAYtkB,OAcpB,IAVA2kB,EAAOC,MAAMC,QAAU,OACvB1iB,EAAQ,MAAW2iB,YAAYH,GAC/BA,EAAOphB,IAAM,eAGbmhB,EAAiBC,EAAOI,cAAcC,UACvBC,OACfP,EAAeQ,MAAMpO,uCACrB4N,EAAeS,QACfV,EAAaC,EAAe7kB,EACrBD,YAAY6kB,EAAoB,UAAEH,EAAY1kB,IACrD,OAAO6kB,KAGT9jB,EAAOC,QAAU9B,OAAOsmB,QAAU,SAAgBC,EAAGC,GACnD,IAAIhH,EAQJ,OAPU,OAAN+G,GACFb,EAAe,UAAIJ,EAASiB,GAC5B/G,EAAS,IAAIkG,EACbA,EAAe,UAAI,KAEnBlG,EAAOiG,GAAYc,GACd/G,EAASmG,SACMtK,IAAfmL,EAA2BhH,EAAS+F,EAAI/F,EAAQgH,K,qBCvCzD,IAAItH,EAAM7b,EAAQ,KAAgBhC,EAC9BolB,EAAMpjB,EAAQ,KACdqjB,EAAMrjB,EAAQ,IAARA,CAAkB,eAE5BxB,EAAOC,QAAU,SAAUR,EAAI4b,EAAKyJ,GAC9BrlB,IAAOmlB,EAAInlB,EAAKqlB,EAAOrlB,EAAKA,EAAG9B,UAAWknB,IAAMxH,EAAI5d,EAAIolB,EAAK,CAAEE,cAAc,EAAMxmB,MAAO8c,M,qBCLhGpb,EAAQT,EAAIgC,EAAQ,M,qBCApB,IAAI4hB,EAAS5hB,EAAQ,KACjB2hB,EAAO3hB,EAAQ,KACfwjB,EAAUxjB,EAAQ,KAClByjB,EAASzjB,EAAQ,MACjB0jB,EAAiB1jB,EAAQ,KAAgBhC,EAC7CQ,EAAOC,QAAU,SAAUsY,GACzB,IAAI4M,EAAUhC,EAAKllB,SAAWklB,EAAKllB,OAAS+mB,EAAU,GAAK5B,EAAOnlB,QAAU,IACtD,KAAlBsa,EAAK6M,OAAO,IAAe7M,KAAQ4M,GAAUD,EAAeC,EAAS5M,EAAM,CAAEha,MAAO0mB,EAAOzlB,EAAE+Y,O,qBCPnGvY,EAAOC,QAAU,CAAE,QAAWuB,EAAQ,MAAqC6jB,YAAY,I,gCCAxE,SAASC,EAAgB3J,EAAKG,EAAKvd,GAYhD,OAXIud,KAAOH,EACTxd,OAAO+mB,eAAevJ,EAAKG,EAAK,CAC9Bvd,MAAOA,EACPgnB,YAAY,EACZR,cAAc,EACdS,UAAU,IAGZ7J,EAAIG,GAAOvd,EAGNod,EAZT,mC,kCCEA,IAAM8J,EAAOxlB,EAEbwlB,EAAKC,OAASlkB,EAAQ,MAEtBikB,EAAKE,OAASnkB,EAAQ,MAAcmkB,OACpCF,EAAK3kB,KAAOU,EAAQ,MACpBikB,EAAKG,UAAYpkB,EAAQ,MACzBikB,EAAKI,SAAWrkB,EAAQ,MACxBikB,EAAKK,SAAWtkB,EAAQ,O,sBCVxB,sBAAWxB,EAAQC,GACjB,aAGA,SAASC,EAAQC,EAAKC,GACpB,IAAKD,EAAK,MAAM,IAAIE,MAAMD,GAAO,oBAKnC,SAASE,EAAUC,EAAMC,GACvBD,EAAKE,OAASD,EACd,IAAIE,EAAW,aACfA,EAAS/C,UAAY6C,EAAU7C,UAC/B4C,EAAK5C,UAAY,IAAI+C,EACrBH,EAAK5C,UAAUgD,YAAcJ,EAK/B,SAASK,EAAIC,EAAQC,EAAMC,GACzB,GAAIH,EAAGI,KAAKH,GACV,OAAOA,EAGTrC,KAAKyC,SAAW,EAChBzC,KAAK0C,MAAQ,KACb1C,KAAKa,OAAS,EAGdb,KAAK2C,IAAM,KAEI,OAAXN,IACW,OAATC,GAA0B,OAATA,IACnBC,EAASD,EACTA,EAAO,IAGTtC,KAAK4C,MAAMP,GAAU,EAAGC,GAAQ,GAAIC,GAAU,OAYlD,IAAIM,EATkB,kBAAXrB,EACTA,EAAOC,QAAUW,EAEjBX,EAAQW,GAAKA,EAGfA,EAAGA,GAAKA,EACRA,EAAGU,SAAW,GAGd,IAEID,EADoB,qBAAXE,QAAmD,qBAAlBA,OAAOF,OACxCE,OAAOF,OAEPG,EAAQ,MAAUH,OAE7B,MAAOvD,IAgIT,SAAS2D,EAAeC,EAAQC,GAC9B,IAAIC,EAAIF,EAAOG,WAAWF,GAE1B,OAAIC,GAAK,IAAMA,GAAK,GACXA,EAAI,GAEFA,GAAK,IAAMA,GAAK,IAClBA,EAAI,GAGHA,EAAI,GAAM,GAItB,SAASE,EAAcJ,EAAQK,EAAYJ,GACzC,IAAIK,EAAIP,EAAcC,EAAQC,GAI9B,OAHIA,EAAQ,GAAKI,IACfC,GAAKP,EAAcC,EAAQC,EAAQ,IAAM,GAEpCK,EA8CT,SAASC,EAAWC,EAAKC,EAAOC,EAAKC,GAGnC,IAFA,IAAIL,EAAI,EACJO,EAAMC,KAAKC,IAAIP,EAAI7C,OAAQ+C,GACtBnD,EAAIkD,EAAOlD,EAAIsD,EAAKtD,IAAK,CAChC,IAAI2C,EAAIM,EAAIL,WAAW5C,GAAK,GAE5B+C,GAAKK,EAIHL,GADEJ,GAAK,GACFA,EAAI,GAAK,GAGLA,GAAK,GACTA,EAAI,GAAK,GAITA,EAGT,OAAOI,EAnNTpB,EAAGI,KAAO,SAAe6B,GACvB,OAAIA,aAAejC,GAIJ,OAARiC,GAA+B,kBAARA,GAC5BA,EAAIlC,YAAYW,WAAaV,EAAGU,UAAYlD,MAAMQ,QAAQiE,EAAI3B,QAGlEN,EAAGkC,IAAM,SAAcC,EAAMC,GAC3B,OAAID,EAAKE,IAAID,GAAS,EAAUD,EACzBC,GAGTpC,EAAG6B,IAAM,SAAcM,EAAMC,GAC3B,OAAID,EAAKE,IAAID,GAAS,EAAUD,EACzBC,GAGTpC,EAAGjD,UAAUyD,MAAQ,SAAeP,EAAQC,EAAMC,GAChD,GAAsB,kBAAXF,EACT,OAAOrC,KAAK0E,YAAYrC,EAAQC,EAAMC,GAGxC,GAAsB,kBAAXF,EACT,OAAOrC,KAAK2E,WAAWtC,EAAQC,EAAMC,GAG1B,QAATD,IACFA,EAAO,IAETZ,EAAOY,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,IAGnD,IAAIqB,EAAQ,EACM,OAFlBtB,EAASA,EAAOjD,WAAWwF,QAAQ,OAAQ,KAEhC,KACTjB,IACA3D,KAAKyC,SAAW,GAGdkB,EAAQtB,EAAOxB,SACJ,KAATyB,EACFtC,KAAK6E,UAAUxC,EAAQsB,EAAOpB,IAE9BvC,KAAK8E,WAAWzC,EAAQC,EAAMqB,GACf,OAAXpB,GACFvC,KAAK2E,WAAW3E,KAAK+E,UAAWzC,EAAMC,MAM9CH,EAAGjD,UAAUuF,YAAc,SAAsBrC,EAAQC,EAAMC,GACzDF,EAAS,IACXrC,KAAKyC,SAAW,EAChBJ,GAAUA,GAERA,EAAS,UACXrC,KAAK0C,MAAQ,CAAW,SAATL,GACfrC,KAAKa,OAAS,GACLwB,EAAS,kBAClBrC,KAAK0C,MAAQ,CACF,SAATL,EACCA,EAAS,SAAa,UAEzBrC,KAAKa,OAAS,IAEda,EAAOW,EAAS,kBAChBrC,KAAK0C,MAAQ,CACF,SAATL,EACCA,EAAS,SAAa,SACvB,GAEFrC,KAAKa,OAAS,GAGD,OAAX0B,GAGJvC,KAAK2E,WAAW3E,KAAK+E,UAAWzC,EAAMC,IAGxCH,EAAGjD,UAAUwF,WAAa,SAAqBtC,EAAQC,EAAMC,GAG3D,GADAb,EAAgC,kBAAlBW,EAAOxB,QACjBwB,EAAOxB,QAAU,EAGnB,OAFAb,KAAK0C,MAAQ,CAAE,GACf1C,KAAKa,OAAS,EACPb,KAGTA,KAAKa,OAASmD,KAAKgB,KAAK3C,EAAOxB,OAAS,GACxCb,KAAK0C,MAAQ,IAAI9C,MAAMI,KAAKa,QAC5B,IAAK,IAAIJ,EAAI,EAAGA,EAAIT,KAAKa,OAAQJ,IAC/BT,KAAK0C,MAAMjC,GAAK,EAGlB,IAAIwE,EAAGC,EACHC,EAAM,EACV,GAAe,OAAX5C,EACF,IAAK9B,EAAI4B,EAAOxB,OAAS,EAAGoE,EAAI,EAAGxE,GAAK,EAAGA,GAAK,EAC9CyE,EAAI7C,EAAO5B,GAAM4B,EAAO5B,EAAI,IAAM,EAAM4B,EAAO5B,EAAI,IAAM,GACzDT,KAAK0C,MAAMuC,IAAOC,GAAKC,EAAO,SAC9BnF,KAAK0C,MAAMuC,EAAI,GAAMC,IAAO,GAAKC,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACPF,UAGC,GAAe,OAAX1C,EACT,IAAK9B,EAAI,EAAGwE,EAAI,EAAGxE,EAAI4B,EAAOxB,OAAQJ,GAAK,EACzCyE,EAAI7C,EAAO5B,GAAM4B,EAAO5B,EAAI,IAAM,EAAM4B,EAAO5B,EAAI,IAAM,GACzDT,KAAK0C,MAAMuC,IAAOC,GAAKC,EAAO,SAC9BnF,KAAK0C,MAAMuC,EAAI,GAAMC,IAAO,GAAKC,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACPF,KAIN,OAAOjF,KAAKib,SAyBd7Y,EAAGjD,UAAU0F,UAAY,SAAoBxC,EAAQsB,EAAOpB,GAE1DvC,KAAKa,OAASmD,KAAKgB,MAAM3C,EAAOxB,OAAS8C,GAAS,GAClD3D,KAAK0C,MAAQ,IAAI9C,MAAMI,KAAKa,QAC5B,IAAK,IAAIJ,EAAI,EAAGA,EAAIT,KAAKa,OAAQJ,IAC/BT,KAAK0C,MAAMjC,GAAK,EAIlB,IAGIyE,EAHAC,EAAM,EACNF,EAAI,EAGR,GAAe,OAAX1C,EACF,IAAK9B,EAAI4B,EAAOxB,OAAS,EAAGJ,GAAKkD,EAAOlD,GAAK,EAC3CyE,EAAI5B,EAAajB,EAAQsB,EAAOlD,IAAM0E,EACtCnF,KAAK0C,MAAMuC,IAAU,SAAJC,EACbC,GAAO,IACTA,GAAO,GACPF,GAAK,EACLjF,KAAK0C,MAAMuC,IAAMC,IAAM,IAEvBC,GAAO,OAKX,IAAK1E,GADa4B,EAAOxB,OAAS8C,GACX,IAAM,EAAIA,EAAQ,EAAIA,EAAOlD,EAAI4B,EAAOxB,OAAQJ,GAAK,EAC1EyE,EAAI5B,EAAajB,EAAQsB,EAAOlD,IAAM0E,EACtCnF,KAAK0C,MAAMuC,IAAU,SAAJC,EACbC,GAAO,IACTA,GAAO,GACPF,GAAK,EACLjF,KAAK0C,MAAMuC,IAAMC,IAAM,IAEvBC,GAAO,EAKbnF,KAAKib,SA2BP7Y,EAAGjD,UAAU2F,WAAa,SAAqBzC,EAAQC,EAAMqB,GAE3D3D,KAAK0C,MAAQ,CAAE,GACf1C,KAAKa,OAAS,EAGd,IAAK,IAAIwE,EAAU,EAAGC,EAAU,EAAGA,GAAW,SAAWA,GAAWhD,EAClE+C,IAEFA,IACAC,EAAWA,EAAUhD,EAAQ,EAO7B,IALA,IAAIiD,EAAQlD,EAAOxB,OAAS8C,EACxB6B,EAAMD,EAAQF,EACdzB,EAAMI,KAAKC,IAAIsB,EAAOA,EAAQC,GAAO7B,EAErC8B,EAAO,EACFhF,EAAIkD,EAAOlD,EAAImD,EAAKnD,GAAK4E,EAChCI,EAAOhC,EAAUpB,EAAQ5B,EAAGA,EAAI4E,EAAS/C,GAEzCtC,KAAK0F,MAAMJ,GACPtF,KAAK0C,MAAM,GAAK+C,EAAO,SACzBzF,KAAK0C,MAAM,IAAM+C,EAEjBzF,KAAK2F,OAAOF,GAIhB,GAAY,IAARD,EAAW,CACb,IAAII,EAAM,EAGV,IAFAH,EAAOhC,EAAUpB,EAAQ5B,EAAG4B,EAAOxB,OAAQyB,GAEtC7B,EAAI,EAAGA,EAAI+E,EAAK/E,IACnBmF,GAAOtD,EAGTtC,KAAK0F,MAAME,GACP5F,KAAK0C,MAAM,GAAK+C,EAAO,SACzBzF,KAAK0C,MAAM,IAAM+C,EAEjBzF,KAAK2F,OAAOF,GAIhBzF,KAAKib,SAGP7Y,EAAGjD,UAAU0G,KAAO,SAAe1B,GACjCA,EAAKzB,MAAQ,IAAI9C,MAAMI,KAAKa,QAC5B,IAAK,IAAIJ,EAAI,EAAGA,EAAIT,KAAKa,OAAQJ,IAC/B0D,EAAKzB,MAAMjC,GAAKT,KAAK0C,MAAMjC,GAE7B0D,EAAKtD,OAASb,KAAKa,OACnBsD,EAAK1B,SAAWzC,KAAKyC,SACrB0B,EAAKxB,IAAM3C,KAAK2C,KAGlBP,EAAGjD,UAAU4G,MAAQ,WACnB,IAAIvC,EAAI,IAAIpB,EAAG,MAEf,OADApC,KAAK6F,KAAKrC,GACHA,GAGTpB,EAAGjD,UAAU6G,QAAU,SAAkBC,GACvC,KAAOjG,KAAKa,OAASoF,GACnBjG,KAAK0C,MAAM1C,KAAKa,UAAY,EAE9B,OAAOb,MAIToC,EAAGjD,UAAU8b,MAAQ,WACnB,KAAOjb,KAAKa,OAAS,GAAqC,IAAhCb,KAAK0C,MAAM1C,KAAKa,OAAS,IACjDb,KAAKa,SAEP,OAAOb,KAAKkG,aAGd9D,EAAGjD,UAAU+G,UAAY,WAKvB,OAHoB,IAAhBlG,KAAKa,QAAkC,IAAlBb,KAAK0C,MAAM,KAClC1C,KAAKyC,SAAW,GAEXzC,MAGToC,EAAGjD,UAAUiH,QAAU,WACrB,OAAQpG,KAAK2C,IAAM,UAAY,SAAW3C,KAAKZ,SAAS,IAAM,KAiChE,IAAIiH,EAAQ,CACV,GACA,IACA,KACA,MACA,OACA,QACA,SACA,UACA,WACA,YACA,aACA,cACA,eACA,gBACA,iBACA,kBACA,mBACA,oBACA,qBACA,sBACA,uBACA,wBACA,yBACA,0BACA,2BACA,6BAGEC,EAAa,CACf,EAAG,EACH,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EACvB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGhBC,EAAa,CACf,EAAG,EACH,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAC5D,SAAU,IAAU,SAAU,SAAU,SAAU,QAAS,SAC3D,SAAU,SAAU,SAAU,SAAU,KAAU,QAAS,QAC3D,QAAS,QAAS,QAAS,SAAU,SAAU,SAAU,SACzD,MAAU,SAAU,SAAU,SAAU,SAAU,SAAU,UAsjB9D,SAASc,EAAYC,EAAMjD,EAAKoC,GAC9BA,EAAIhE,SAAW4B,EAAI5B,SAAW6E,EAAK7E,SACnC,IAAIsB,EAAOuD,EAAKzG,OAASwD,EAAIxD,OAAU,EACvC4F,EAAI5F,OAASkD,EACbA,EAAOA,EAAM,EAAK,EAGlB,IAAIwD,EAAoB,EAAhBD,EAAK5E,MAAM,GACfoB,EAAmB,EAAfO,EAAI3B,MAAM,GACdc,EAAI+D,EAAIzD,EAER0D,EAAS,SAAJhE,EACLkD,EAASlD,EAAI,SAAa,EAC9BiD,EAAI/D,MAAM,GAAK8E,EAEf,IAAK,IAAIC,EAAI,EAAGA,EAAI1D,EAAK0D,IAAK,CAM5B,IAHA,IAAIC,EAAShB,IAAU,GACnBiB,EAAgB,SAARjB,EACRkB,EAAO5D,KAAKC,IAAIwD,EAAGpD,EAAIxD,OAAS,GAC3BoE,EAAIjB,KAAKM,IAAI,EAAGmD,EAAIH,EAAKzG,OAAS,GAAIoE,GAAK2C,EAAM3C,IAAK,CAC7D,IAAIxE,EAAKgH,EAAIxC,EAAK,EAIlByC,IADAlE,GAFA+D,EAAoB,EAAhBD,EAAK5E,MAAMjC,KACfqD,EAAmB,EAAfO,EAAI3B,MAAMuC,IACF0C,GACG,SAAa,EAC5BA,EAAY,SAAJnE,EAEViD,EAAI/D,MAAM+E,GAAa,EAARE,EACfjB,EAAiB,EAATgB,EAQV,OANc,IAAVhB,EACFD,EAAI/D,MAAM+E,GAAa,EAARf,EAEfD,EAAI5F,SAGC4F,EAAIwU,QAzlBb7Y,EAAGjD,UAAUC,SAAW,SAAmBkD,EAAMkE,GAI/C,IAAIC,EACJ,GAHAD,EAAoB,EAAVA,GAAe,EAGZ,MAJblE,EAAOA,GAAQ,KAIa,QAATA,EAAgB,CACjCmE,EAAM,GAGN,IAFA,IAAItB,EAAM,EACNuB,EAAQ,EACHjG,EAAI,EAAGA,EAAIT,KAAKa,OAAQJ,IAAK,CACpC,IAAIyE,EAAIlF,KAAK0C,MAAMjC,GACfgF,GAA+B,UAArBP,GAAKC,EAAOuB,IAAmBtH,SAAS,IAGpDqH,EADY,KADdC,EAASxB,IAAO,GAAKC,EAAQ,WACV1E,IAAMT,KAAKa,OAAS,EAC/BwF,EAAM,EAAIZ,EAAK5E,QAAU4E,EAAOgB,EAEhChB,EAAOgB,GAEftB,GAAO,IACI,KACTA,GAAO,GACP1E,KAMJ,IAHc,IAAViG,IACFD,EAAMC,EAAMtH,SAAS,IAAMqH,GAEtBA,EAAI5F,OAAS2F,IAAY,GAC9BC,EAAM,IAAMA,EAKd,OAHsB,IAAlBzG,KAAKyC,WACPgE,EAAM,IAAMA,GAEPA,EAGT,GAAInE,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,GAAI,CAElD,IAAIqE,EAAYL,EAAWhE,GAEvBsE,EAAYL,EAAWjE,GAC3BmE,EAAM,GACN,IAAIrD,EAAIpD,KAAK+F,QAEb,IADA3C,EAAEX,SAAW,GACLW,EAAEyD,UAAU,CAClB,IAAIrD,EAAIJ,EAAE4S,KAAKpP,GAAWxH,SAASkD,GAMjCmE,GALFrD,EAAIA,EAAE2D,MAAMH,IAELC,SAGCrD,EAAIiD,EAFJJ,EAAMM,EAAYnD,EAAE3C,QAAU2C,EAAIiD,EAQ5C,IAHIzG,KAAK6G,WACPJ,EAAM,IAAMA,GAEPA,EAAI5F,OAAS2F,IAAY,GAC9BC,EAAM,IAAMA,EAKd,OAHsB,IAAlBzG,KAAKyC,WACPgE,EAAM,IAAMA,GAEPA,EAGT/E,GAAO,EAAO,oCAGhBU,EAAGjD,UAAU6H,SAAW,WACtB,IAAIC,EAAMjH,KAAK0C,MAAM,GASrB,OARoB,IAAhB1C,KAAKa,OACPoG,GAAuB,SAAhBjH,KAAK0C,MAAM,GACO,IAAhB1C,KAAKa,QAAkC,IAAlBb,KAAK0C,MAAM,GAEzCuE,GAAO,iBAAoC,SAAhBjH,KAAK0C,MAAM,GAC7B1C,KAAKa,OAAS,GACvBa,GAAO,EAAO,8CAEU,IAAlB1B,KAAKyC,UAAmBwE,EAAMA,GAGxC7E,EAAGjD,UAAU+H,OAAS,WACpB,OAAOlH,KAAKZ,SAAS,KAGvBgD,EAAGjD,UAAUgI,SAAW,SAAmB5E,EAAQ1B,GAEjD,OADAa,EAAyB,qBAAXmB,GACP7C,KAAKoH,YAAYvE,EAAQN,EAAQ1B,IAG1CuB,EAAGjD,UAAU4F,QAAU,SAAkBxC,EAAQ1B,GAC/C,OAAOb,KAAKoH,YAAYxH,MAAO2C,EAAQ1B,IAGzCuB,EAAGjD,UAAUiI,YAAc,SAAsBS,EAAWtF,EAAQ1B,GAClE,IAAIiH,EAAa9H,KAAK8H,aAClBC,EAAYlH,GAAUmD,KAAKM,IAAI,EAAGwD,GACtCpG,EAAOoG,GAAcC,EAAW,yCAChCrG,EAAOqG,EAAY,EAAG,+BAEtB/H,KAAKib,QACL,IAGInX,EAAGrD,EAHH8mB,EAA0B,OAAXhlB,EACfyF,EAAM,IAAIH,EAAUE,GAGpByL,EAAIxT,KAAK+F,QACb,GAAKwhB,EAYE,CACL,IAAK9mB,EAAI,GAAI+S,EAAE3M,SAAUpG,IACvBqD,EAAI0P,EAAEsC,MAAM,KACZtC,EAAEM,OAAO,GAET9L,EAAIvH,GAAKqD,EAGX,KAAOrD,EAAIsH,EAAWtH,IACpBuH,EAAIvH,GAAK,MArBM,CAEjB,IAAKA,EAAI,EAAGA,EAAIsH,EAAYD,EAAYrH,IACtCuH,EAAIvH,GAAK,EAGX,IAAKA,EAAI,GAAI+S,EAAE3M,SAAUpG,IACvBqD,EAAI0P,EAAEsC,MAAM,KACZtC,EAAEM,OAAO,GAET9L,EAAID,EAAYtH,EAAI,GAAKqD,EAe7B,OAAOkE,GAGLhE,KAAKuE,MACPnG,EAAGjD,UAAUqJ,WAAa,SAAqBtD,GAC7C,OAAO,GAAKlB,KAAKuE,MAAMrD,IAGzB9C,EAAGjD,UAAUqJ,WAAa,SAAqBtD,GAC7C,IAAIuD,EAAIvD,EACJ1B,EAAI,EAiBR,OAhBIiF,GAAK,OACPjF,GAAK,GACLiF,KAAO,IAELA,GAAK,KACPjF,GAAK,EACLiF,KAAO,GAELA,GAAK,IACPjF,GAAK,EACLiF,KAAO,GAELA,GAAK,IACPjF,GAAK,EACLiF,KAAO,GAEFjF,EAAIiF,GAIfrG,EAAGjD,UAAUuJ,UAAY,SAAoBxD,GAE3C,GAAU,IAANA,EAAS,OAAO,GAEpB,IAAIuD,EAAIvD,EACJ1B,EAAI,EAoBR,OAnBqB,KAAZ,KAAJiF,KACHjF,GAAK,GACLiF,KAAO,IAEU,KAAV,IAAJA,KACHjF,GAAK,EACLiF,KAAO,GAES,KAAT,GAAJA,KACHjF,GAAK,EACLiF,KAAO,GAES,KAAT,EAAJA,KACHjF,GAAK,EACLiF,KAAO,GAES,KAAT,EAAJA,IACHjF,IAEKA,GAITpB,EAAGjD,UAAUwJ,UAAY,WACvB,IAAIzD,EAAIlF,KAAK0C,MAAM1C,KAAKa,OAAS,GAC7B+H,EAAK5I,KAAKwI,WAAWtD,GACzB,OAA2B,IAAnBlF,KAAKa,OAAS,GAAU+H,GAiBlCxG,EAAGjD,UAAU0J,SAAW,WACtB,GAAI7I,KAAK6G,SAAU,OAAO,EAG1B,IADA,IAAIrD,EAAI,EACC/C,EAAI,EAAGA,EAAIT,KAAKa,OAAQJ,IAAK,CACpC,IAAIqD,EAAI9D,KAAK0I,UAAU1I,KAAK0C,MAAMjC,IAElC,GADA+C,GAAKM,EACK,KAANA,EAAU,MAEhB,OAAON,GAGTpB,EAAGjD,UAAU2I,WAAa,WACxB,OAAO9D,KAAKgB,KAAKhF,KAAK2I,YAAc,IAGtCvG,EAAGjD,UAAU2J,OAAS,SAAiBC,GACrC,OAAsB,IAAlB/I,KAAKyC,SACAzC,KAAKgJ,MAAMC,MAAMF,GAAOG,MAAM,GAEhClJ,KAAK+F,SAGd3D,EAAGjD,UAAUgK,SAAW,SAAmBJ,GACzC,OAAI/I,KAAKoJ,MAAML,EAAQ,GACd/I,KAAKqJ,KAAKN,GAAOG,MAAM,GAAGI,OAE5BtJ,KAAK+F,SAGd3D,EAAGjD,UAAUoK,MAAQ,WACnB,OAAyB,IAAlBvJ,KAAKyC,UAIdL,EAAGjD,UAAUqK,IAAM,WACjB,OAAOxJ,KAAK+F,QAAQuD,QAGtBlH,EAAGjD,UAAUmK,KAAO,WAKlB,OAJKtJ,KAAK6G,WACR7G,KAAKyC,UAAY,GAGZzC,MAIToC,EAAGjD,UAAUsK,KAAO,SAAepF,GACjC,KAAOrE,KAAKa,OAASwD,EAAIxD,QACvBb,KAAK0C,MAAM1C,KAAKa,UAAY,EAG9B,IAAK,IAAIJ,EAAI,EAAGA,EAAI4D,EAAIxD,OAAQJ,IAC9BT,KAAK0C,MAAMjC,GAAKT,KAAK0C,MAAMjC,GAAK4D,EAAI3B,MAAMjC,GAG5C,OAAOT,KAAKib,SAGd7Y,EAAGjD,UAAUuK,IAAM,SAAcrF,GAE/B,OADA3C,EAA0C,KAAlC1B,KAAKyC,SAAW4B,EAAI5B,WACrBzC,KAAKyJ,KAAKpF,IAInBjC,EAAGjD,UAAUwK,GAAK,SAAatF,GAC7B,OAAIrE,KAAKa,OAASwD,EAAIxD,OAAeb,KAAK+F,QAAQ2D,IAAIrF,GAC/CA,EAAI0B,QAAQ2D,IAAI1J,OAGzBoC,EAAGjD,UAAUyK,IAAM,SAAcvF,GAC/B,OAAIrE,KAAKa,OAASwD,EAAIxD,OAAeb,KAAK+F,QAAQ0D,KAAKpF,GAChDA,EAAI0B,QAAQ0D,KAAKzJ,OAI1BoC,EAAGjD,UAAU0K,MAAQ,SAAgBxF,GAEnC,IAAIP,EAEFA,EADE9D,KAAKa,OAASwD,EAAIxD,OAChBwD,EAEArE,KAGN,IAAK,IAAIS,EAAI,EAAGA,EAAIqD,EAAEjD,OAAQJ,IAC5BT,KAAK0C,MAAMjC,GAAKT,KAAK0C,MAAMjC,GAAK4D,EAAI3B,MAAMjC,GAK5C,OAFAT,KAAKa,OAASiD,EAAEjD,OAETb,KAAKib,SAGd7Y,EAAGjD,UAAU2K,KAAO,SAAezF,GAEjC,OADA3C,EAA0C,KAAlC1B,KAAKyC,SAAW4B,EAAI5B,WACrBzC,KAAK6J,MAAMxF,IAIpBjC,EAAGjD,UAAU4K,IAAM,SAAc1F,GAC/B,OAAIrE,KAAKa,OAASwD,EAAIxD,OAAeb,KAAK+F,QAAQ+D,KAAKzF,GAChDA,EAAI0B,QAAQ+D,KAAK9J,OAG1BoC,EAAGjD,UAAU6K,KAAO,SAAe3F,GACjC,OAAIrE,KAAKa,OAASwD,EAAIxD,OAAeb,KAAK+F,QAAQ8D,MAAMxF,GACjDA,EAAI0B,QAAQ8D,MAAM7J,OAI3BoC,EAAGjD,UAAU8K,MAAQ,SAAgB5F,GAEnC,IAAIkD,EACAzD,EACA9D,KAAKa,OAASwD,EAAIxD,QACpB0G,EAAIvH,KACJ8D,EAAIO,IAEJkD,EAAIlD,EACJP,EAAI9D,MAGN,IAAK,IAAIS,EAAI,EAAGA,EAAIqD,EAAEjD,OAAQJ,IAC5BT,KAAK0C,MAAMjC,GAAK8G,EAAE7E,MAAMjC,GAAKqD,EAAEpB,MAAMjC,GAGvC,GAAIT,OAASuH,EACX,KAAO9G,EAAI8G,EAAE1G,OAAQJ,IACnBT,KAAK0C,MAAMjC,GAAK8G,EAAE7E,MAAMjC,GAM5B,OAFAT,KAAKa,OAAS0G,EAAE1G,OAETb,KAAKib,SAGd7Y,EAAGjD,UAAU+K,KAAO,SAAe7F,GAEjC,OADA3C,EAA0C,KAAlC1B,KAAKyC,SAAW4B,EAAI5B,WACrBzC,KAAKiK,MAAM5F,IAIpBjC,EAAGjD,UAAUgL,IAAM,SAAc9F,GAC/B,OAAIrE,KAAKa,OAASwD,EAAIxD,OAAeb,KAAK+F,QAAQmE,KAAK7F,GAChDA,EAAI0B,QAAQmE,KAAKlK,OAG1BoC,EAAGjD,UAAUiL,KAAO,SAAe/F,GACjC,OAAIrE,KAAKa,OAASwD,EAAIxD,OAAeb,KAAK+F,QAAQkE,MAAM5F,GACjDA,EAAI0B,QAAQkE,MAAMjK,OAI3BoC,EAAGjD,UAAU8J,MAAQ,SAAgBF,GACnCrH,EAAwB,kBAAVqH,GAAsBA,GAAS,GAE7C,IAAIsB,EAAsC,EAAxBrG,KAAKgB,KAAK+D,EAAQ,IAChCuB,EAAWvB,EAAQ,GAGvB/I,KAAKgG,QAAQqE,GAETC,EAAW,GACbD,IAIF,IAAK,IAAI5J,EAAI,EAAGA,EAAI4J,EAAa5J,IAC/BT,KAAK0C,MAAMjC,GAAsB,UAAhBT,KAAK0C,MAAMjC,GAS9B,OALI6J,EAAW,IACbtK,KAAK0C,MAAMjC,IAAMT,KAAK0C,MAAMjC,GAAM,UAAc,GAAK6J,GAIhDtK,KAAKib,SAGd7Y,EAAGjD,UAAUkK,KAAO,SAAeN,GACjC,OAAO/I,KAAK+F,QAAQkD,MAAMF,IAI5B3G,EAAGjD,UAAUoL,KAAO,SAAeC,EAAK7I,GACtCD,EAAsB,kBAAR8I,GAAoBA,GAAO,GAEzC,IAAIrF,EAAOqF,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAUjB,OARAxK,KAAKgG,QAAQb,EAAM,GAGjBnF,KAAK0C,MAAMyC,GADTxD,EACgB3B,KAAK0C,MAAMyC,GAAQ,GAAKsF,EAExBzK,KAAK0C,MAAMyC,KAAS,GAAKsF,GAGtCzK,KAAKib,SAId7Y,EAAGjD,UAAUuL,KAAO,SAAerG,GACjC,IAAIb,EAkBA+D,EAAGzD,EAfP,GAAsB,IAAlB9D,KAAKyC,UAAmC,IAAjB4B,EAAI5B,SAI7B,OAHAzC,KAAKyC,SAAW,EAChBe,EAAIxD,KAAK2K,KAAKtG,GACdrE,KAAKyC,UAAY,EACVzC,KAAKkG,YAGP,GAAsB,IAAlBlG,KAAKyC,UAAmC,IAAjB4B,EAAI5B,SAIpC,OAHA4B,EAAI5B,SAAW,EACfe,EAAIxD,KAAK2K,KAAKtG,GACdA,EAAI5B,SAAW,EACRe,EAAE0C,YAKPlG,KAAKa,OAASwD,EAAIxD,QACpB0G,EAAIvH,KACJ8D,EAAIO,IAEJkD,EAAIlD,EACJP,EAAI9D,MAIN,IADA,IAAI0G,EAAQ,EACHjG,EAAI,EAAGA,EAAIqD,EAAEjD,OAAQJ,IAC5B+C,GAAkB,EAAb+D,EAAE7E,MAAMjC,KAAwB,EAAbqD,EAAEpB,MAAMjC,IAAUiG,EAC1C1G,KAAK0C,MAAMjC,GAAS,SAAJ+C,EAChBkD,EAAQlD,IAAM,GAEhB,KAAiB,IAAVkD,GAAejG,EAAI8G,EAAE1G,OAAQJ,IAClC+C,GAAkB,EAAb+D,EAAE7E,MAAMjC,IAAUiG,EACvB1G,KAAK0C,MAAMjC,GAAS,SAAJ+C,EAChBkD,EAAQlD,IAAM,GAIhB,GADAxD,KAAKa,OAAS0G,EAAE1G,OACF,IAAV6F,EACF1G,KAAK0C,MAAM1C,KAAKa,QAAU6F,EAC1B1G,KAAKa,cAEA,GAAI0G,IAAMvH,KACf,KAAOS,EAAI8G,EAAE1G,OAAQJ,IACnBT,KAAK0C,MAAMjC,GAAK8G,EAAE7E,MAAMjC,GAI5B,OAAOT,MAIToC,EAAGjD,UAAUyL,IAAM,SAAcvG,GAC/B,IAAI2D,EACJ,OAAqB,IAAjB3D,EAAI5B,UAAoC,IAAlBzC,KAAKyC,UAC7B4B,EAAI5B,SAAW,EACfuF,EAAMhI,KAAK6K,IAAIxG,GACfA,EAAI5B,UAAY,EACTuF,GACmB,IAAjB3D,EAAI5B,UAAoC,IAAlBzC,KAAKyC,UACpCzC,KAAKyC,SAAW,EAChBuF,EAAM3D,EAAIwG,IAAI7K,MACdA,KAAKyC,SAAW,EACTuF,GAGLhI,KAAKa,OAASwD,EAAIxD,OAAeb,KAAK+F,QAAQ2E,KAAKrG,GAEhDA,EAAI0B,QAAQ2E,KAAK1K,OAI1BoC,EAAGjD,UAAUwL,KAAO,SAAetG,GAEjC,GAAqB,IAAjBA,EAAI5B,SAAgB,CACtB4B,EAAI5B,SAAW,EACf,IAAIe,EAAIxD,KAAK0K,KAAKrG,GAElB,OADAA,EAAI5B,SAAW,EACRe,EAAE0C,YAGJ,GAAsB,IAAlBlG,KAAKyC,SAId,OAHAzC,KAAKyC,SAAW,EAChBzC,KAAK0K,KAAKrG,GACVrE,KAAKyC,SAAW,EACTzC,KAAKkG,YAId,IAWIqB,EAAGzD,EAXHW,EAAMzE,KAAKyE,IAAIJ,GAGnB,GAAY,IAARI,EAIF,OAHAzE,KAAKyC,SAAW,EAChBzC,KAAKa,OAAS,EACdb,KAAK0C,MAAM,GAAK,EACT1C,KAKLyE,EAAM,GACR8C,EAAIvH,KACJ8D,EAAIO,IAEJkD,EAAIlD,EACJP,EAAI9D,MAIN,IADA,IAAI0G,EAAQ,EACHjG,EAAI,EAAGA,EAAIqD,EAAEjD,OAAQJ,IAE5BiG,GADAlD,GAAkB,EAAb+D,EAAE7E,MAAMjC,KAAwB,EAAbqD,EAAEpB,MAAMjC,IAAUiG,IAC7B,GACb1G,KAAK0C,MAAMjC,GAAS,SAAJ+C,EAElB,KAAiB,IAAVkD,GAAejG,EAAI8G,EAAE1G,OAAQJ,IAElCiG,GADAlD,GAAkB,EAAb+D,EAAE7E,MAAMjC,IAAUiG,IACV,GACb1G,KAAK0C,MAAMjC,GAAS,SAAJ+C,EAIlB,GAAc,IAAVkD,GAAejG,EAAI8G,EAAE1G,QAAU0G,IAAMvH,KACvC,KAAOS,EAAI8G,EAAE1G,OAAQJ,IACnBT,KAAK0C,MAAMjC,GAAK8G,EAAE7E,MAAMjC,GAU5B,OANAT,KAAKa,OAASmD,KAAKM,IAAItE,KAAKa,OAAQJ,GAEhC8G,IAAMvH,OACRA,KAAKyC,SAAW,GAGXzC,KAAKib,SAId7Y,EAAGjD,UAAU0L,IAAM,SAAcxG,GAC/B,OAAOrE,KAAK+F,QAAQ4E,KAAKtG,IA+C3B,IAAIyG,EAAc,SAAsBxD,EAAMjD,EAAKoC,GACjD,IAIIe,EACAuD,EACAnC,EANArB,EAAID,EAAK5E,MACToB,EAAIO,EAAI3B,MACRlC,EAAIiG,EAAI/D,MACRU,EAAI,EAIJ4H,EAAY,EAAPzD,EAAE,GACP0D,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP5D,EAAE,GACP6D,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP/D,EAAE,GACPgE,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPlE,EAAE,GACPmE,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPrE,EAAE,GACPsE,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPxE,EAAE,GACPyE,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP3E,EAAE,GACP4E,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP9E,EAAE,GACP+E,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPjF,EAAE,GACPkF,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPpF,EAAE,GACPqF,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPhJ,EAAE,GACPiJ,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPnJ,EAAE,GACPoJ,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPtJ,EAAE,GACPuJ,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPzJ,EAAE,GACP0J,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP5J,EAAE,GACP6J,EAAW,KAALD,EACNE,GAAMF,IAAO,GACbG,GAAY,EAAP/J,EAAE,GACPgK,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPlK,EAAE,GACPmK,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPrK,EAAE,GACPsK,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPxK,EAAE,GACPyK,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP3K,EAAE,GACP4K,GAAW,KAALD,GACNE,GAAMF,KAAO,GAEjBhI,EAAIhE,SAAW6E,EAAK7E,SAAW4B,EAAI5B,SACnCgE,EAAI5F,OAAS,GAMb,IAAI+N,IAAQxL,GAJZoE,EAAKxD,KAAK6K,KAAK5D,EAAK8B,IAIE,KAAa,MAFnChC,GADAA,EAAM/G,KAAK6K,KAAK5D,EAAK+B,IACRhJ,KAAK6K,KAAK3D,EAAK6B,GAAQ,KAEU,IAAO,EACrD3J,IAFAwF,EAAK5E,KAAK6K,KAAK3D,EAAK8B,KAEPjC,IAAQ,IAAO,IAAM6D,KAAO,IAAO,EAChDA,IAAM,SAENpH,EAAKxD,KAAK6K,KAAKzD,EAAK2B,GAEpBhC,GADAA,EAAM/G,KAAK6K,KAAKzD,EAAK4B,IACRhJ,KAAK6K,KAAKxD,EAAK0B,GAAQ,EACpCnE,EAAK5E,KAAK6K,KAAKxD,EAAK2B,GAKpB,IAAI8B,IAAQ1L,GAJZoE,EAAMA,EAAKxD,KAAK6K,KAAK5D,EAAKiC,GAAQ,GAIZ,KAAa,MAFnCnC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK5D,EAAKkC,GAAQ,GACvBnJ,KAAK6K,KAAK3D,EAAKgC,GAAQ,KAEU,IAAO,EACrD9J,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAK3D,EAAKiC,GAAQ,IAErBpC,IAAQ,IAAO,IAAM+D,KAAO,IAAO,EAChDA,IAAM,SAENtH,EAAKxD,KAAK6K,KAAKtD,EAAKwB,GAEpBhC,GADAA,EAAM/G,KAAK6K,KAAKtD,EAAKyB,IACRhJ,KAAK6K,KAAKrD,EAAKuB,GAAQ,EACpCnE,EAAK5E,KAAK6K,KAAKrD,EAAKwB,GACpBxF,EAAMA,EAAKxD,KAAK6K,KAAKzD,EAAK8B,GAAQ,EAElCnC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKzD,EAAK+B,GAAQ,GACvBnJ,KAAK6K,KAAKxD,EAAK6B,GAAQ,EACpCtE,EAAMA,EAAK5E,KAAK6K,KAAKxD,EAAK8B,GAAQ,EAKlC,IAAI4B,IAAQ3L,GAJZoE,EAAMA,EAAKxD,KAAK6K,KAAK5D,EAAKoC,GAAQ,GAIZ,KAAa,MAFnCtC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK5D,EAAKqC,GAAQ,GACvBtJ,KAAK6K,KAAK3D,EAAKmC,GAAQ,KAEU,IAAO,EACrDjK,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAK3D,EAAKoC,GAAQ,IAErBvC,IAAQ,IAAO,IAAMgE,KAAO,IAAO,EAChDA,IAAM,SAENvH,EAAKxD,KAAK6K,KAAKnD,EAAKqB,GAEpBhC,GADAA,EAAM/G,KAAK6K,KAAKnD,EAAKsB,IACRhJ,KAAK6K,KAAKlD,EAAKoB,GAAQ,EACpCnE,EAAK5E,KAAK6K,KAAKlD,EAAKqB,GACpBxF,EAAMA,EAAKxD,KAAK6K,KAAKtD,EAAK2B,GAAQ,EAElCnC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKtD,EAAK4B,GAAQ,GACvBnJ,KAAK6K,KAAKrD,EAAK0B,GAAQ,EACpCtE,EAAMA,EAAK5E,KAAK6K,KAAKrD,EAAK2B,GAAQ,EAClC3F,EAAMA,EAAKxD,KAAK6K,KAAKzD,EAAKiC,GAAQ,EAElCtC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKzD,EAAKkC,GAAQ,GACvBtJ,KAAK6K,KAAKxD,EAAKgC,GAAQ,EACpCzE,EAAMA,EAAK5E,KAAK6K,KAAKxD,EAAKiC,GAAQ,EAKlC,IAAI0B,IAAQ5L,GAJZoE,EAAMA,EAAKxD,KAAK6K,KAAK5D,EAAKuC,GAAQ,GAIZ,KAAa,MAFnCzC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK5D,EAAKwC,GAAQ,GACvBzJ,KAAK6K,KAAK3D,EAAKsC,GAAQ,KAEU,IAAO,EACrDpK,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAK3D,EAAKuC,GAAQ,IAErB1C,IAAQ,IAAO,IAAMiE,KAAO,IAAO,EAChDA,IAAM,SAENxH,EAAKxD,KAAK6K,KAAKhD,EAAKkB,GAEpBhC,GADAA,EAAM/G,KAAK6K,KAAKhD,EAAKmB,IACRhJ,KAAK6K,KAAK/C,EAAKiB,GAAQ,EACpCnE,EAAK5E,KAAK6K,KAAK/C,EAAKkB,GACpBxF,EAAMA,EAAKxD,KAAK6K,KAAKnD,EAAKwB,GAAQ,EAElCnC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKnD,EAAKyB,GAAQ,GACvBnJ,KAAK6K,KAAKlD,EAAKuB,GAAQ,EACpCtE,EAAMA,EAAK5E,KAAK6K,KAAKlD,EAAKwB,GAAQ,EAClC3F,EAAMA,EAAKxD,KAAK6K,KAAKtD,EAAK8B,GAAQ,EAElCtC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKtD,EAAK+B,GAAQ,GACvBtJ,KAAK6K,KAAKrD,EAAK6B,GAAQ,EACpCzE,EAAMA,EAAK5E,KAAK6K,KAAKrD,EAAK8B,GAAQ,EAClC9F,EAAMA,EAAKxD,KAAK6K,KAAKzD,EAAKoC,GAAQ,EAElCzC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKzD,EAAKqC,GAAQ,GACvBzJ,KAAK6K,KAAKxD,EAAKmC,GAAQ,EACpC5E,EAAMA,EAAK5E,KAAK6K,KAAKxD,EAAKoC,GAAQ,EAKlC,IAAIwB,IAAQ7L,GAJZoE,EAAMA,EAAKxD,KAAK6K,KAAK5D,EAAK0C,GAAQ,GAIZ,KAAa,MAFnC5C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK5D,EAAK2C,IAAQ,GACvB5J,KAAK6K,KAAK3D,EAAKyC,GAAQ,KAEU,IAAO,EACrDvK,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAK3D,EAAK0C,IAAQ,IAErB7C,IAAQ,IAAO,IAAMkE,KAAO,IAAO,EAChDA,IAAM,SAENzH,EAAKxD,KAAK6K,KAAK7C,EAAKe,GAEpBhC,GADAA,EAAM/G,KAAK6K,KAAK7C,EAAKgB,IACRhJ,KAAK6K,KAAK5C,EAAKc,GAAQ,EACpCnE,EAAK5E,KAAK6K,KAAK5C,EAAKe,GACpBxF,EAAMA,EAAKxD,KAAK6K,KAAKhD,EAAKqB,GAAQ,EAElCnC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKhD,EAAKsB,GAAQ,GACvBnJ,KAAK6K,KAAK/C,EAAKoB,GAAQ,EACpCtE,EAAMA,EAAK5E,KAAK6K,KAAK/C,EAAKqB,GAAQ,EAClC3F,EAAMA,EAAKxD,KAAK6K,KAAKnD,EAAK2B,GAAQ,EAElCtC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKnD,EAAK4B,GAAQ,GACvBtJ,KAAK6K,KAAKlD,EAAK0B,GAAQ,EACpCzE,EAAMA,EAAK5E,KAAK6K,KAAKlD,EAAK2B,GAAQ,EAClC9F,EAAMA,EAAKxD,KAAK6K,KAAKtD,EAAKiC,GAAQ,EAElCzC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKtD,EAAKkC,GAAQ,GACvBzJ,KAAK6K,KAAKrD,EAAKgC,GAAQ,EACpC5E,EAAMA,EAAK5E,KAAK6K,KAAKrD,EAAKiC,GAAQ,EAClCjG,EAAMA,EAAKxD,KAAK6K,KAAKzD,EAAKuC,GAAQ,EAElC5C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKzD,EAAKwC,IAAQ,GACvB5J,KAAK6K,KAAKxD,EAAKsC,GAAQ,EACpC/E,EAAMA,EAAK5E,KAAK6K,KAAKxD,EAAKuC,IAAQ,EAKlC,IAAIsB,IAAQ9L,GAJZoE,EAAMA,EAAKxD,KAAK6K,KAAK5D,EAAK6C,IAAQ,GAIZ,KAAa,MAFnC/C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK5D,EAAK8C,IAAQ,GACvB/J,KAAK6K,KAAK3D,EAAK4C,IAAQ,KAEU,IAAO,EACrD1K,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAK3D,EAAK6C,IAAQ,IAErBhD,IAAQ,IAAO,IAAMmE,KAAO,IAAO,EAChDA,IAAM,SAEN1H,EAAKxD,KAAK6K,KAAK1C,EAAKY,GAEpBhC,GADAA,EAAM/G,KAAK6K,KAAK1C,EAAKa,IACRhJ,KAAK6K,KAAKzC,EAAKW,GAAQ,EACpCnE,EAAK5E,KAAK6K,KAAKzC,EAAKY,GACpBxF,EAAMA,EAAKxD,KAAK6K,KAAK7C,EAAKkB,GAAQ,EAElCnC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK7C,EAAKmB,GAAQ,GACvBnJ,KAAK6K,KAAK5C,EAAKiB,GAAQ,EACpCtE,EAAMA,EAAK5E,KAAK6K,KAAK5C,EAAKkB,GAAQ,EAClC3F,EAAMA,EAAKxD,KAAK6K,KAAKhD,EAAKwB,GAAQ,EAElCtC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKhD,EAAKyB,GAAQ,GACvBtJ,KAAK6K,KAAK/C,EAAKuB,GAAQ,EACpCzE,EAAMA,EAAK5E,KAAK6K,KAAK/C,EAAKwB,GAAQ,EAClC9F,EAAMA,EAAKxD,KAAK6K,KAAKnD,EAAK8B,GAAQ,EAElCzC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKnD,EAAK+B,GAAQ,GACvBzJ,KAAK6K,KAAKlD,EAAK6B,GAAQ,EACpC5E,EAAMA,EAAK5E,KAAK6K,KAAKlD,EAAK8B,GAAQ,EAClCjG,EAAMA,EAAKxD,KAAK6K,KAAKtD,EAAKoC,GAAQ,EAElC5C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKtD,EAAKqC,IAAQ,GACvB5J,KAAK6K,KAAKrD,EAAKmC,GAAQ,EACpC/E,EAAMA,EAAK5E,KAAK6K,KAAKrD,EAAKoC,IAAQ,EAClCpG,EAAMA,EAAKxD,KAAK6K,KAAKzD,EAAK0C,IAAQ,EAElC/C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKzD,EAAK2C,IAAQ,GACvB/J,KAAK6K,KAAKxD,EAAKyC,IAAQ,EACpClF,EAAMA,EAAK5E,KAAK6K,KAAKxD,EAAK0C,IAAQ,EAKlC,IAAIoB,IAAQ/L,GAJZoE,EAAMA,EAAKxD,KAAK6K,KAAK5D,EAAKgD,IAAQ,GAIZ,KAAa,MAFnClD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK5D,EAAKiD,IAAQ,GACvBlK,KAAK6K,KAAK3D,EAAK+C,IAAQ,KAEU,IAAO,EACrD7K,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAK3D,EAAKgD,IAAQ,IAErBnD,IAAQ,IAAO,IAAMoE,KAAO,IAAO,EAChDA,IAAM,SAEN3H,EAAKxD,KAAK6K,KAAKvC,EAAKS,GAEpBhC,GADAA,EAAM/G,KAAK6K,KAAKvC,EAAKU,IACRhJ,KAAK6K,KAAKtC,EAAKQ,GAAQ,EACpCnE,EAAK5E,KAAK6K,KAAKtC,EAAKS,GACpBxF,EAAMA,EAAKxD,KAAK6K,KAAK1C,EAAKe,GAAQ,EAElCnC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK1C,EAAKgB,GAAQ,GACvBnJ,KAAK6K,KAAKzC,EAAKc,GAAQ,EACpCtE,EAAMA,EAAK5E,KAAK6K,KAAKzC,EAAKe,GAAQ,EAClC3F,EAAMA,EAAKxD,KAAK6K,KAAK7C,EAAKqB,GAAQ,EAElCtC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK7C,EAAKsB,GAAQ,GACvBtJ,KAAK6K,KAAK5C,EAAKoB,GAAQ,EACpCzE,EAAMA,EAAK5E,KAAK6K,KAAK5C,EAAKqB,GAAQ,EAClC9F,EAAMA,EAAKxD,KAAK6K,KAAKhD,EAAK2B,GAAQ,EAElCzC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKhD,EAAK4B,GAAQ,GACvBzJ,KAAK6K,KAAK/C,EAAK0B,GAAQ,EACpC5E,EAAMA,EAAK5E,KAAK6K,KAAK/C,EAAK2B,GAAQ,EAClCjG,EAAMA,EAAKxD,KAAK6K,KAAKnD,EAAKiC,GAAQ,EAElC5C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKnD,EAAKkC,IAAQ,GACvB5J,KAAK6K,KAAKlD,EAAKgC,GAAQ,EACpC/E,EAAMA,EAAK5E,KAAK6K,KAAKlD,EAAKiC,IAAQ,EAClCpG,EAAMA,EAAKxD,KAAK6K,KAAKtD,EAAKuC,IAAQ,EAElC/C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKtD,EAAKwC,IAAQ,GACvB/J,KAAK6K,KAAKrD,EAAKsC,IAAQ,EACpClF,EAAMA,EAAK5E,KAAK6K,KAAKrD,EAAKuC,IAAQ,EAClCvG,EAAMA,EAAKxD,KAAK6K,KAAKzD,EAAK6C,IAAQ,EAElClD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKzD,EAAK8C,IAAQ,GACvBlK,KAAK6K,KAAKxD,EAAK4C,IAAQ,EACpCrF,EAAMA,EAAK5E,KAAK6K,KAAKxD,EAAK6C,IAAQ,EAKlC,IAAIkB,IAAQhM,GAJZoE,EAAMA,EAAKxD,KAAK6K,KAAK5D,EAAKmD,IAAQ,GAIZ,KAAa,MAFnCrD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK5D,EAAKoD,IAAQ,GACvBrK,KAAK6K,KAAK3D,EAAKkD,IAAQ,KAEU,IAAO,EACrDhL,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAK3D,EAAKmD,IAAQ,IAErBtD,IAAQ,IAAO,IAAMqE,KAAO,IAAO,EAChDA,IAAM,SAEN5H,EAAKxD,KAAK6K,KAAKpC,EAAKM,GAEpBhC,GADAA,EAAM/G,KAAK6K,KAAKpC,EAAKO,IACRhJ,KAAK6K,KAAKnC,EAAKK,GAAQ,EACpCnE,EAAK5E,KAAK6K,KAAKnC,EAAKM,GACpBxF,EAAMA,EAAKxD,KAAK6K,KAAKvC,EAAKY,GAAQ,EAElCnC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKvC,EAAKa,GAAQ,GACvBnJ,KAAK6K,KAAKtC,EAAKW,GAAQ,EACpCtE,EAAMA,EAAK5E,KAAK6K,KAAKtC,EAAKY,GAAQ,EAClC3F,EAAMA,EAAKxD,KAAK6K,KAAK1C,EAAKkB,GAAQ,EAElCtC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK1C,EAAKmB,GAAQ,GACvBtJ,KAAK6K,KAAKzC,EAAKiB,GAAQ,EACpCzE,EAAMA,EAAK5E,KAAK6K,KAAKzC,EAAKkB,GAAQ,EAClC9F,EAAMA,EAAKxD,KAAK6K,KAAK7C,EAAKwB,GAAQ,EAElCzC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK7C,EAAKyB,GAAQ,GACvBzJ,KAAK6K,KAAK5C,EAAKuB,GAAQ,EACpC5E,EAAMA,EAAK5E,KAAK6K,KAAK5C,EAAKwB,GAAQ,EAClCjG,EAAMA,EAAKxD,KAAK6K,KAAKhD,EAAK8B,GAAQ,EAElC5C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKhD,EAAK+B,IAAQ,GACvB5J,KAAK6K,KAAK/C,EAAK6B,GAAQ,EACpC/E,EAAMA,EAAK5E,KAAK6K,KAAK/C,EAAK8B,IAAQ,EAClCpG,EAAMA,EAAKxD,KAAK6K,KAAKnD,EAAKoC,IAAQ,EAElC/C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKnD,EAAKqC,IAAQ,GACvB/J,KAAK6K,KAAKlD,EAAKmC,IAAQ,EACpClF,EAAMA,EAAK5E,KAAK6K,KAAKlD,EAAKoC,IAAQ,EAClCvG,EAAMA,EAAKxD,KAAK6K,KAAKtD,EAAK0C,IAAQ,EAElClD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKtD,EAAK2C,IAAQ,GACvBlK,KAAK6K,KAAKrD,EAAKyC,IAAQ,EACpCrF,EAAMA,EAAK5E,KAAK6K,KAAKrD,EAAK0C,IAAQ,EAClC1G,EAAMA,EAAKxD,KAAK6K,KAAKzD,EAAKgD,IAAQ,EAElCrD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKzD,EAAKiD,IAAQ,GACvBrK,KAAK6K,KAAKxD,EAAK+C,IAAQ,EACpCxF,EAAMA,EAAK5E,KAAK6K,KAAKxD,EAAKgD,IAAQ,EAKlC,IAAIgB,IAAQjM,GAJZoE,EAAMA,EAAKxD,KAAK6K,KAAK5D,EAAKsD,IAAQ,GAIZ,KAAa,MAFnCxD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK5D,EAAKuD,IAAQ,GACvBxK,KAAK6K,KAAK3D,EAAKqD,IAAQ,KAEU,IAAO,EACrDnL,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAK3D,EAAKsD,IAAQ,IAErBzD,IAAQ,IAAO,IAAMsE,KAAO,IAAO,EAChDA,IAAM,SAEN7H,EAAKxD,KAAK6K,KAAKjC,EAAKG,GAEpBhC,GADAA,EAAM/G,KAAK6K,KAAKjC,EAAKI,IACRhJ,KAAK6K,KAAKhC,EAAKE,GAAQ,EACpCnE,EAAK5E,KAAK6K,KAAKhC,EAAKG,GACpBxF,EAAMA,EAAKxD,KAAK6K,KAAKpC,EAAKS,GAAQ,EAElCnC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKpC,EAAKU,GAAQ,GACvBnJ,KAAK6K,KAAKnC,EAAKQ,GAAQ,EACpCtE,EAAMA,EAAK5E,KAAK6K,KAAKnC,EAAKS,GAAQ,EAClC3F,EAAMA,EAAKxD,KAAK6K,KAAKvC,EAAKe,GAAQ,EAElCtC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKvC,EAAKgB,GAAQ,GACvBtJ,KAAK6K,KAAKtC,EAAKc,GAAQ,EACpCzE,EAAMA,EAAK5E,KAAK6K,KAAKtC,EAAKe,GAAQ,EAClC9F,EAAMA,EAAKxD,KAAK6K,KAAK1C,EAAKqB,GAAQ,EAElCzC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK1C,EAAKsB,GAAQ,GACvBzJ,KAAK6K,KAAKzC,EAAKoB,GAAQ,EACpC5E,EAAMA,EAAK5E,KAAK6K,KAAKzC,EAAKqB,GAAQ,EAClCjG,EAAMA,EAAKxD,KAAK6K,KAAK7C,EAAK2B,GAAQ,EAElC5C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK7C,EAAK4B,IAAQ,GACvB5J,KAAK6K,KAAK5C,EAAK0B,GAAQ,EACpC/E,EAAMA,EAAK5E,KAAK6K,KAAK5C,EAAK2B,IAAQ,EAClCpG,EAAMA,EAAKxD,KAAK6K,KAAKhD,EAAKiC,IAAQ,EAElC/C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKhD,EAAKkC,IAAQ,GACvB/J,KAAK6K,KAAK/C,EAAKgC,IAAQ,EACpClF,EAAMA,EAAK5E,KAAK6K,KAAK/C,EAAKiC,IAAQ,EAClCvG,EAAMA,EAAKxD,KAAK6K,KAAKnD,EAAKuC,IAAQ,EAElClD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKnD,EAAKwC,IAAQ,GACvBlK,KAAK6K,KAAKlD,EAAKsC,IAAQ,EACpCrF,EAAMA,EAAK5E,KAAK6K,KAAKlD,EAAKuC,IAAQ,EAClC1G,EAAMA,EAAKxD,KAAK6K,KAAKtD,EAAK6C,IAAQ,EAElCrD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKtD,EAAK8C,IAAQ,GACvBrK,KAAK6K,KAAKrD,EAAK4C,IAAQ,EACpCxF,EAAMA,EAAK5E,KAAK6K,KAAKrD,EAAK6C,IAAQ,EAClC7G,EAAMA,EAAKxD,KAAK6K,KAAKzD,EAAKmD,IAAQ,EAElCxD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKzD,EAAKoD,IAAQ,GACvBxK,KAAK6K,KAAKxD,EAAKkD,IAAQ,EACpC3F,EAAMA,EAAK5E,KAAK6K,KAAKxD,EAAKmD,IAAQ,EAKlC,IAAIc,IAAQlM,GAJZoE,EAAMA,EAAKxD,KAAK6K,KAAK5D,EAAKyD,IAAQ,GAIZ,KAAa,MAFnC3D,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK5D,EAAK0D,IAAQ,GACvB3K,KAAK6K,KAAK3D,EAAKwD,IAAQ,KAEU,IAAO,EACrDtL,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAK3D,EAAKyD,IAAQ,IAErB5D,IAAQ,IAAO,IAAMuE,KAAO,IAAO,EAChDA,IAAM,SAEN9H,EAAKxD,KAAK6K,KAAKjC,EAAKM,GAEpBnC,GADAA,EAAM/G,KAAK6K,KAAKjC,EAAKO,IACRnJ,KAAK6K,KAAKhC,EAAKK,GAAQ,EACpCtE,EAAK5E,KAAK6K,KAAKhC,EAAKM,GACpB3F,EAAMA,EAAKxD,KAAK6K,KAAKpC,EAAKY,GAAQ,EAElCtC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKpC,EAAKa,GAAQ,GACvBtJ,KAAK6K,KAAKnC,EAAKW,GAAQ,EACpCzE,EAAMA,EAAK5E,KAAK6K,KAAKnC,EAAKY,GAAQ,EAClC9F,EAAMA,EAAKxD,KAAK6K,KAAKvC,EAAKkB,GAAQ,EAElCzC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKvC,EAAKmB,GAAQ,GACvBzJ,KAAK6K,KAAKtC,EAAKiB,GAAQ,EACpC5E,EAAMA,EAAK5E,KAAK6K,KAAKtC,EAAKkB,GAAQ,EAClCjG,EAAMA,EAAKxD,KAAK6K,KAAK1C,EAAKwB,GAAQ,EAElC5C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK1C,EAAKyB,IAAQ,GACvB5J,KAAK6K,KAAKzC,EAAKuB,GAAQ,EACpC/E,EAAMA,EAAK5E,KAAK6K,KAAKzC,EAAKwB,IAAQ,EAClCpG,EAAMA,EAAKxD,KAAK6K,KAAK7C,EAAK8B,IAAQ,EAElC/C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK7C,EAAK+B,IAAQ,GACvB/J,KAAK6K,KAAK5C,EAAK6B,IAAQ,EACpClF,EAAMA,EAAK5E,KAAK6K,KAAK5C,EAAK8B,IAAQ,EAClCvG,EAAMA,EAAKxD,KAAK6K,KAAKhD,EAAKoC,IAAQ,EAElClD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKhD,EAAKqC,IAAQ,GACvBlK,KAAK6K,KAAK/C,EAAKmC,IAAQ,EACpCrF,EAAMA,EAAK5E,KAAK6K,KAAK/C,EAAKoC,IAAQ,EAClC1G,EAAMA,EAAKxD,KAAK6K,KAAKnD,EAAK0C,IAAQ,EAElCrD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKnD,EAAK2C,IAAQ,GACvBrK,KAAK6K,KAAKlD,EAAKyC,IAAQ,EACpCxF,EAAMA,EAAK5E,KAAK6K,KAAKlD,EAAK0C,IAAQ,EAClC7G,EAAMA,EAAKxD,KAAK6K,KAAKtD,EAAKgD,IAAQ,EAElCxD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKtD,EAAKiD,IAAQ,GACvBxK,KAAK6K,KAAKrD,EAAK+C,IAAQ,EACpC3F,EAAMA,EAAK5E,KAAK6K,KAAKrD,EAAKgD,IAAQ,EAKlC,IAAIe,IAASnM,GAJboE,EAAMA,EAAKxD,KAAK6K,KAAKzD,EAAKsD,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKzD,EAAKuD,IAAQ,GACvB3K,KAAK6K,KAAKxD,EAAKqD,IAAQ,KAEW,IAAO,EACtDtL,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAKxD,EAAKsD,IAAQ,IAErB5D,IAAQ,IAAO,IAAMwE,KAAQ,IAAO,EACjDA,IAAO,SAEP/H,EAAKxD,KAAK6K,KAAKjC,EAAKS,GAEpBtC,GADAA,EAAM/G,KAAK6K,KAAKjC,EAAKU,IACRtJ,KAAK6K,KAAKhC,EAAKQ,GAAQ,EACpCzE,EAAK5E,KAAK6K,KAAKhC,EAAKS,GACpB9F,EAAMA,EAAKxD,KAAK6K,KAAKpC,EAAKe,GAAQ,EAElCzC,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKpC,EAAKgB,GAAQ,GACvBzJ,KAAK6K,KAAKnC,EAAKc,GAAQ,EACpC5E,EAAMA,EAAK5E,KAAK6K,KAAKnC,EAAKe,GAAQ,EAClCjG,EAAMA,EAAKxD,KAAK6K,KAAKvC,EAAKqB,GAAQ,EAElC5C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKvC,EAAKsB,IAAQ,GACvB5J,KAAK6K,KAAKtC,EAAKoB,GAAQ,EACpC/E,EAAMA,EAAK5E,KAAK6K,KAAKtC,EAAKqB,IAAQ,EAClCpG,EAAMA,EAAKxD,KAAK6K,KAAK1C,EAAK2B,IAAQ,EAElC/C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK1C,EAAK4B,IAAQ,GACvB/J,KAAK6K,KAAKzC,EAAK0B,IAAQ,EACpClF,EAAMA,EAAK5E,KAAK6K,KAAKzC,EAAK2B,IAAQ,EAClCvG,EAAMA,EAAKxD,KAAK6K,KAAK7C,EAAKiC,IAAQ,EAElClD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK7C,EAAKkC,IAAQ,GACvBlK,KAAK6K,KAAK5C,EAAKgC,IAAQ,EACpCrF,EAAMA,EAAK5E,KAAK6K,KAAK5C,EAAKiC,IAAQ,EAClC1G,EAAMA,EAAKxD,KAAK6K,KAAKhD,EAAKuC,IAAQ,EAElCrD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKhD,EAAKwC,IAAQ,GACvBrK,KAAK6K,KAAK/C,EAAKsC,IAAQ,EACpCxF,EAAMA,EAAK5E,KAAK6K,KAAK/C,EAAKuC,IAAQ,EAClC7G,EAAMA,EAAKxD,KAAK6K,KAAKnD,EAAK6C,IAAQ,EAElCxD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKnD,EAAK8C,IAAQ,GACvBxK,KAAK6K,KAAKlD,EAAK4C,IAAQ,EACpC3F,EAAMA,EAAK5E,KAAK6K,KAAKlD,EAAK6C,IAAQ,EAKlC,IAAIgB,IAASpM,GAJboE,EAAMA,EAAKxD,KAAK6K,KAAKtD,EAAKmD,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKtD,EAAKoD,IAAQ,GACvB3K,KAAK6K,KAAKrD,EAAKkD,IAAQ,KAEW,IAAO,EACtDtL,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAKrD,EAAKmD,IAAQ,IAErB5D,IAAQ,IAAO,IAAMyE,KAAQ,IAAO,EACjDA,IAAO,SAEPhI,EAAKxD,KAAK6K,KAAKjC,EAAKY,GAEpBzC,GADAA,EAAM/G,KAAK6K,KAAKjC,EAAKa,IACRzJ,KAAK6K,KAAKhC,EAAKW,GAAQ,EACpC5E,EAAK5E,KAAK6K,KAAKhC,EAAKY,GACpBjG,EAAMA,EAAKxD,KAAK6K,KAAKpC,EAAKkB,GAAQ,EAElC5C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKpC,EAAKmB,IAAQ,GACvB5J,KAAK6K,KAAKnC,EAAKiB,GAAQ,EACpC/E,EAAMA,EAAK5E,KAAK6K,KAAKnC,EAAKkB,IAAQ,EAClCpG,EAAMA,EAAKxD,KAAK6K,KAAKvC,EAAKwB,IAAQ,EAElC/C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKvC,EAAKyB,IAAQ,GACvB/J,KAAK6K,KAAKtC,EAAKuB,IAAQ,EACpClF,EAAMA,EAAK5E,KAAK6K,KAAKtC,EAAKwB,IAAQ,EAClCvG,EAAMA,EAAKxD,KAAK6K,KAAK1C,EAAK8B,IAAQ,EAElClD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK1C,EAAK+B,IAAQ,GACvBlK,KAAK6K,KAAKzC,EAAK6B,IAAQ,EACpCrF,EAAMA,EAAK5E,KAAK6K,KAAKzC,EAAK8B,IAAQ,EAClC1G,EAAMA,EAAKxD,KAAK6K,KAAK7C,EAAKoC,IAAQ,EAElCrD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK7C,EAAKqC,IAAQ,GACvBrK,KAAK6K,KAAK5C,EAAKmC,IAAQ,EACpCxF,EAAMA,EAAK5E,KAAK6K,KAAK5C,EAAKoC,IAAQ,EAClC7G,EAAMA,EAAKxD,KAAK6K,KAAKhD,EAAK0C,IAAQ,EAElCxD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKhD,EAAK2C,IAAQ,GACvBxK,KAAK6K,KAAK/C,EAAKyC,IAAQ,EACpC3F,EAAMA,EAAK5E,KAAK6K,KAAK/C,EAAK0C,IAAQ,EAKlC,IAAIiB,IAASrM,GAJboE,EAAMA,EAAKxD,KAAK6K,KAAKnD,EAAKgD,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKnD,EAAKiD,IAAQ,GACvB3K,KAAK6K,KAAKlD,EAAK+C,IAAQ,KAEW,IAAO,EACtDtL,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAKlD,EAAKgD,IAAQ,IAErB5D,IAAQ,IAAO,IAAM0E,KAAQ,IAAO,EACjDA,IAAO,SAEPjI,EAAKxD,KAAK6K,KAAKjC,EAAKe,GAEpB5C,GADAA,EAAM/G,KAAK6K,KAAKjC,EAAKgB,KACR5J,KAAK6K,KAAKhC,EAAKc,GAAQ,EACpC/E,EAAK5E,KAAK6K,KAAKhC,EAAKe,IACpBpG,EAAMA,EAAKxD,KAAK6K,KAAKpC,EAAKqB,IAAQ,EAElC/C,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKpC,EAAKsB,IAAQ,GACvB/J,KAAK6K,KAAKnC,EAAKoB,IAAQ,EACpClF,EAAMA,EAAK5E,KAAK6K,KAAKnC,EAAKqB,IAAQ,EAClCvG,EAAMA,EAAKxD,KAAK6K,KAAKvC,EAAK2B,IAAQ,EAElClD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKvC,EAAK4B,IAAQ,GACvBlK,KAAK6K,KAAKtC,EAAK0B,IAAQ,EACpCrF,EAAMA,EAAK5E,KAAK6K,KAAKtC,EAAK2B,IAAQ,EAClC1G,EAAMA,EAAKxD,KAAK6K,KAAK1C,EAAKiC,IAAQ,EAElCrD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK1C,EAAKkC,IAAQ,GACvBrK,KAAK6K,KAAKzC,EAAKgC,IAAQ,EACpCxF,EAAMA,EAAK5E,KAAK6K,KAAKzC,EAAKiC,IAAQ,EAClC7G,EAAMA,EAAKxD,KAAK6K,KAAK7C,EAAKuC,IAAQ,EAElCxD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK7C,EAAKwC,IAAQ,GACvBxK,KAAK6K,KAAK5C,EAAKsC,IAAQ,EACpC3F,EAAMA,EAAK5E,KAAK6K,KAAK5C,EAAKuC,IAAQ,EAKlC,IAAIkB,IAAStM,GAJboE,EAAMA,EAAKxD,KAAK6K,KAAKhD,EAAK6C,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKhD,EAAK8C,IAAQ,GACvB3K,KAAK6K,KAAK/C,EAAK4C,IAAQ,KAEW,IAAO,EACtDtL,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAK/C,EAAK6C,IAAQ,IAErB5D,IAAQ,IAAO,IAAM2E,KAAQ,IAAO,EACjDA,IAAO,SAEPlI,EAAKxD,KAAK6K,KAAKjC,EAAKkB,IAEpB/C,GADAA,EAAM/G,KAAK6K,KAAKjC,EAAKmB,KACR/J,KAAK6K,KAAKhC,EAAKiB,IAAQ,EACpClF,EAAK5E,KAAK6K,KAAKhC,EAAKkB,IACpBvG,EAAMA,EAAKxD,KAAK6K,KAAKpC,EAAKwB,IAAQ,EAElClD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKpC,EAAKyB,IAAQ,GACvBlK,KAAK6K,KAAKnC,EAAKuB,IAAQ,EACpCrF,EAAMA,EAAK5E,KAAK6K,KAAKnC,EAAKwB,IAAQ,EAClC1G,EAAMA,EAAKxD,KAAK6K,KAAKvC,EAAK8B,IAAQ,EAElCrD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKvC,EAAK+B,IAAQ,GACvBrK,KAAK6K,KAAKtC,EAAK6B,IAAQ,EACpCxF,EAAMA,EAAK5E,KAAK6K,KAAKtC,EAAK8B,IAAQ,EAClC7G,EAAMA,EAAKxD,KAAK6K,KAAK1C,EAAKoC,IAAQ,EAElCxD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK1C,EAAKqC,IAAQ,GACvBxK,KAAK6K,KAAKzC,EAAKmC,IAAQ,EACpC3F,EAAMA,EAAK5E,KAAK6K,KAAKzC,EAAKoC,IAAQ,EAKlC,IAAImB,IAASvM,GAJboE,EAAMA,EAAKxD,KAAK6K,KAAK7C,EAAK0C,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK7C,EAAK2C,IAAQ,GACvB3K,KAAK6K,KAAK5C,EAAKyC,IAAQ,KAEW,IAAO,EACtDtL,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAK5C,EAAK0C,IAAQ,IAErB5D,IAAQ,IAAO,IAAM4E,KAAQ,IAAO,EACjDA,IAAO,SAEPnI,EAAKxD,KAAK6K,KAAKjC,EAAKqB,IAEpBlD,GADAA,EAAM/G,KAAK6K,KAAKjC,EAAKsB,KACRlK,KAAK6K,KAAKhC,EAAKoB,IAAQ,EACpCrF,EAAK5E,KAAK6K,KAAKhC,EAAKqB,IACpB1G,EAAMA,EAAKxD,KAAK6K,KAAKpC,EAAK2B,IAAQ,EAElCrD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKpC,EAAK4B,IAAQ,GACvBrK,KAAK6K,KAAKnC,EAAK0B,IAAQ,EACpCxF,EAAMA,EAAK5E,KAAK6K,KAAKnC,EAAK2B,IAAQ,EAClC7G,EAAMA,EAAKxD,KAAK6K,KAAKvC,EAAKiC,IAAQ,EAElCxD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKvC,EAAKkC,IAAQ,GACvBxK,KAAK6K,KAAKtC,EAAKgC,IAAQ,EACpC3F,EAAMA,EAAK5E,KAAK6K,KAAKtC,EAAKiC,IAAQ,EAKlC,IAAIoB,IAASxM,GAJboE,EAAMA,EAAKxD,KAAK6K,KAAK1C,EAAKuC,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAM/G,KAAK6K,KAAK1C,EAAKwC,IAAQ,GACvB3K,KAAK6K,KAAKzC,EAAKsC,IAAQ,KAEW,IAAO,EACtDtL,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAKzC,EAAKuC,IAAQ,IAErB5D,IAAQ,IAAO,IAAM6E,KAAQ,IAAO,EACjDA,IAAO,SAEPpI,EAAKxD,KAAK6K,KAAKjC,EAAKwB,IAEpBrD,GADAA,EAAM/G,KAAK6K,KAAKjC,EAAKyB,KACRrK,KAAK6K,KAAKhC,EAAKuB,IAAQ,EACpCxF,EAAK5E,KAAK6K,KAAKhC,EAAKwB,IACpB7G,EAAMA,EAAKxD,KAAK6K,KAAKpC,EAAK8B,IAAQ,EAElCxD,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKpC,EAAK+B,IAAQ,GACvBxK,KAAK6K,KAAKnC,EAAK6B,IAAQ,EACpC3F,EAAMA,EAAK5E,KAAK6K,KAAKnC,EAAK8B,IAAQ,EAKlC,IAAIqB,IAASzM,GAJboE,EAAMA,EAAKxD,KAAK6K,KAAKvC,EAAKoC,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKvC,EAAKqC,IAAQ,GACvB3K,KAAK6K,KAAKtC,EAAKmC,IAAQ,KAEW,IAAO,EACtDtL,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAKtC,EAAKoC,IAAQ,IAErB5D,IAAQ,IAAO,IAAM8E,KAAQ,IAAO,EACjDA,IAAO,SAEPrI,EAAKxD,KAAK6K,KAAKjC,EAAK2B,IAEpBxD,GADAA,EAAM/G,KAAK6K,KAAKjC,EAAK4B,KACRxK,KAAK6K,KAAKhC,EAAK0B,IAAQ,EACpC3F,EAAK5E,KAAK6K,KAAKhC,EAAK2B,IAKpB,IAAIsB,IAAS1M,GAJboE,EAAMA,EAAKxD,KAAK6K,KAAKpC,EAAKiC,IAAQ,GAIX,KAAa,MAFpC3D,GADAA,EAAOA,EAAM/G,KAAK6K,KAAKpC,EAAKkC,IAAQ,GACvB3K,KAAK6K,KAAKnC,EAAKgC,IAAQ,KAEW,IAAO,EACtDtL,IAFAwF,EAAMA,EAAK5E,KAAK6K,KAAKnC,EAAKiC,IAAQ,IAErB5D,IAAQ,IAAO,IAAM+E,KAAQ,IAAO,EACjDA,IAAO,SAMP,IAAIC,IAAS3M,GAJboE,EAAKxD,KAAK6K,KAAKjC,EAAK8B,KAIG,KAAa,MAFpC3D,GADAA,EAAM/G,KAAK6K,KAAKjC,EAAK+B,KACR3K,KAAK6K,KAAKhC,EAAK6B,IAAQ,KAEW,IAAO,EA0BtD,OAzBAtL,IAFAwF,EAAK5E,KAAK6K,KAAKhC,EAAK8B,MAEP5D,IAAQ,IAAO,IAAMgF,KAAQ,IAAO,EACjDA,IAAO,SACPvP,EAAE,GAAKoO,GACPpO,EAAE,GAAKsO,GACPtO,EAAE,GAAKuO,GACPvO,EAAE,GAAKwO,GACPxO,EAAE,GAAKyO,GACPzO,EAAE,GAAK0O,GACP1O,EAAE,GAAK2O,GACP3O,EAAE,GAAK4O,GACP5O,EAAE,GAAK6O,GACP7O,EAAE,GAAK8O,GACP9O,EAAE,IAAM+O,GACR/O,EAAE,IAAMgP,GACRhP,EAAE,IAAMiP,GACRjP,EAAE,IAAMkP,GACRlP,EAAE,IAAMmP,GACRnP,EAAE,IAAMoP,GACRpP,EAAE,IAAMqP,GACRrP,EAAE,IAAMsP,GACRtP,EAAE,IAAMuP,GACE,IAAN3M,IACF5C,EAAE,IAAM4C,EACRqD,EAAI5F,UAEC4F,GAiDT,SAASyJ,EAAY5I,EAAMjD,EAAKoC,GAE9B,OADW,IAAI0J,GACHuC,KAAKpL,EAAMjD,EAAKoC,GAsB9B,SAAS0J,EAAMC,EAAGC,GAChBrQ,KAAKoQ,EAAIA,EACTpQ,KAAKqQ,EAAIA,EAvENrM,KAAK6K,OACR/D,EAAczD,GAiDhBjF,EAAGjD,UAAUmR,MAAQ,SAAgBjM,EAAKoC,GACxC,IACI1C,EAAM/D,KAAKa,OAASwD,EAAIxD,OAW5B,OAVoB,KAAhBb,KAAKa,QAAgC,KAAfwD,EAAIxD,OACtBiK,EAAY9K,KAAMqE,EAAKoC,GACpB1C,EAAM,GACTsD,EAAWrH,KAAMqE,EAAKoC,GACnB1C,EAAM,KArDnB,SAAmBuD,EAAMjD,EAAKoC,GAC5BA,EAAIhE,SAAW4B,EAAI5B,SAAW6E,EAAK7E,SACnCgE,EAAI5F,OAASyG,EAAKzG,OAASwD,EAAIxD,OAI/B,IAFA,IAAI6F,EAAQ,EACRuJ,EAAU,EACLxI,EAAI,EAAGA,EAAIhB,EAAI5F,OAAS,EAAG4G,IAAK,CAGvC,IAAIC,EAASuI,EACbA,EAAU,EAGV,IAFA,IAAItI,EAAgB,SAARjB,EACRkB,EAAO5D,KAAKC,IAAIwD,EAAGpD,EAAIxD,OAAS,GAC3BoE,EAAIjB,KAAKM,IAAI,EAAGmD,EAAIH,EAAKzG,OAAS,GAAIoE,GAAK2C,EAAM3C,IAAK,CAC7D,IAAIxE,EAAIgH,EAAIxC,EAGRzB,GAFoB,EAAhB8D,EAAK5E,MAAMjC,KACI,EAAf4D,EAAI3B,MAAMuC,IAGduC,EAAS,SAAJhE,EAGTmE,EAAa,UADbH,EAAMA,EAAKG,EAAS,GAIpBsI,IAFAvI,GAHAA,EAAUA,GAAWlE,EAAI,SAAa,GAAM,IAGxBgE,IAAO,IAAO,KAEZ,GACtBE,GAAU,SAEZjB,EAAI/D,MAAM+E,GAAKE,EACfjB,EAAQgB,EACRA,EAASuI,EAQX,OANc,IAAVvJ,EACFD,EAAI/D,MAAM+E,GAAKf,EAEfD,EAAI5F,SAGC4F,EAAIwU,QAgBHjL,CAAShQ,KAAMqE,EAAKoC,GAEpByJ,EAAWlQ,KAAMqE,EAAKoC,IAchC0J,EAAKhR,UAAUoR,QAAU,SAAkBC,GAGzC,IAFA,IAAI/H,EAAI,IAAI7I,MAAM4Q,GACdC,EAAIrO,EAAGjD,UAAUqJ,WAAWgI,GAAK,EAC5B/P,EAAI,EAAGA,EAAI+P,EAAG/P,IACrBgI,EAAEhI,GAAKT,KAAK0Q,OAAOjQ,EAAGgQ,EAAGD,GAG3B,OAAO/H,GAIT0H,EAAKhR,UAAUuR,OAAS,SAAiBN,EAAGK,EAAGD,GAC7C,GAAU,IAANJ,GAAWA,IAAMI,EAAI,EAAG,OAAOJ,EAGnC,IADA,IAAIO,EAAK,EACAlQ,EAAI,EAAGA,EAAIgQ,EAAGhQ,IACrBkQ,IAAW,EAAJP,IAAWK,EAAIhQ,EAAI,EAC1B2P,IAAM,EAGR,OAAOO,GAKTR,EAAKhR,UAAUyR,QAAU,SAAkBC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMT,GACpE,IAAK,IAAI/P,EAAI,EAAGA,EAAI+P,EAAG/P,IACrBuQ,EAAKvQ,GAAKqQ,EAAID,EAAIpQ,IAClBwQ,EAAKxQ,GAAKsQ,EAAIF,EAAIpQ,KAItB0P,EAAKhR,UAAU+R,UAAY,SAAoBJ,EAAKC,EAAKC,EAAMC,EAAMT,EAAGK,GACtE7Q,KAAK4Q,QAAQC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMT,GAExC,IAAK,IAAI7P,EAAI,EAAGA,EAAI6P,EAAG7P,IAAM,EAM3B,IALA,IAAI8P,EAAI9P,GAAK,EAETwQ,EAAQnN,KAAKoN,IAAI,EAAIpN,KAAKqN,GAAKZ,GAC/Ba,EAAQtN,KAAKuN,IAAI,EAAIvN,KAAKqN,GAAKZ,GAE1Be,EAAI,EAAGA,EAAIhB,EAAGgB,GAAKf,EAI1B,IAHA,IAAIgB,EAASN,EACTO,EAASJ,EAEJrM,EAAI,EAAGA,EAAItE,EAAGsE,IAAK,CAC1B,IAAI0M,EAAKX,EAAKQ,EAAIvM,GACd2M,EAAKX,EAAKO,EAAIvM,GAEd4M,EAAKb,EAAKQ,EAAIvM,EAAItE,GAClBmR,EAAKb,EAAKO,EAAIvM,EAAItE,GAElBoR,EAAKN,EAASI,EAAKH,EAASI,EAEhCA,EAAKL,EAASK,EAAKJ,EAASG,EAC5BA,EAAKE,EAELf,EAAKQ,EAAIvM,GAAK0M,EAAKE,EACnBZ,EAAKO,EAAIvM,GAAK2M,EAAKE,EAEnBd,EAAKQ,EAAIvM,EAAItE,GAAKgR,EAAKE,EACvBZ,EAAKO,EAAIvM,EAAItE,GAAKiR,EAAKE,EAGnB7M,IAAMwL,IACRsB,EAAKZ,EAAQM,EAASH,EAAQI,EAE9BA,EAASP,EAAQO,EAASJ,EAAQG,EAClCA,EAASM,KAOnB5B,EAAKhR,UAAU6S,YAAc,SAAsBpR,EAAGqR,GACpD,IAAIzB,EAAqB,EAAjBxM,KAAKM,IAAI2N,EAAGrR,GAChBsR,EAAU,EAAJ1B,EACN/P,EAAI,EACR,IAAK+P,EAAIA,EAAI,EAAI,EAAGA,EAAGA,KAAU,EAC/B/P,IAGF,OAAO,GAAKA,EAAI,EAAIyR,GAGtB/B,EAAKhR,UAAUgT,UAAY,SAAoBrB,EAAKC,EAAKP,GACvD,KAAIA,GAAK,GAET,IAAK,IAAI/P,EAAI,EAAGA,EAAI+P,EAAI,EAAG/P,IAAK,CAC9B,IAAIgI,EAAIqI,EAAIrQ,GAEZqQ,EAAIrQ,GAAKqQ,EAAIN,EAAI/P,EAAI,GACrBqQ,EAAIN,EAAI/P,EAAI,GAAKgI,EAEjBA,EAAIsI,EAAItQ,GAERsQ,EAAItQ,IAAMsQ,EAAIP,EAAI/P,EAAI,GACtBsQ,EAAIP,EAAI/P,EAAI,IAAMgI,IAItB0H,EAAKhR,UAAUiT,aAAe,SAAuBC,EAAI7B,GAEvD,IADA,IAAI9J,EAAQ,EACHjG,EAAI,EAAGA,EAAI+P,EAAI,EAAG/P,IAAK,CAC9B,IAAIyE,EAAoC,KAAhClB,KAAKsO,MAAMD,EAAG,EAAI5R,EAAI,GAAK+P,GACjCxM,KAAKsO,MAAMD,EAAG,EAAI5R,GAAK+P,GACvB9J,EAEF2L,EAAG5R,GAAS,SAAJyE,EAGNwB,EADExB,EAAI,SACE,EAEAA,EAAI,SAAY,EAI5B,OAAOmN,GAGTlC,EAAKhR,UAAUoT,WAAa,SAAqBF,EAAItO,EAAK+M,EAAKN,GAE7D,IADA,IAAI9J,EAAQ,EACHjG,EAAI,EAAGA,EAAIsD,EAAKtD,IACvBiG,GAAyB,EAAR2L,EAAG5R,GAEpBqQ,EAAI,EAAIrQ,GAAa,KAARiG,EAAgBA,KAAkB,GAC/CoK,EAAI,EAAIrQ,EAAI,GAAa,KAARiG,EAAgBA,KAAkB,GAIrD,IAAKjG,EAAI,EAAIsD,EAAKtD,EAAI+P,IAAK/P,EACzBqQ,EAAIrQ,GAAK,EAGXiB,EAAiB,IAAVgF,GACPhF,EAA6B,MAAb,KAARgF,KAGVyJ,EAAKhR,UAAUqT,KAAO,SAAehC,GAEnC,IADA,IAAIiC,EAAK,IAAI7S,MAAM4Q,GACV/P,EAAI,EAAGA,EAAI+P,EAAG/P,IACrBgS,EAAGhS,GAAK,EAGV,OAAOgS,GAGTtC,EAAKhR,UAAUuT,KAAO,SAAetC,EAAGC,EAAG5J,GACzC,IAAI+J,EAAI,EAAIxQ,KAAKgS,YAAY5B,EAAEvP,OAAQwP,EAAExP,QAErCgQ,EAAM7Q,KAAKuQ,QAAQC,GAEnBmC,EAAI3S,KAAKwS,KAAKhC,GAEdM,EAAM,IAAIlR,MAAM4Q,GAChBoC,EAAO,IAAIhT,MAAM4Q,GACjBqC,EAAO,IAAIjT,MAAM4Q,GAEjBsC,EAAO,IAAIlT,MAAM4Q,GACjBuC,EAAQ,IAAInT,MAAM4Q,GAClBwC,EAAQ,IAAIpT,MAAM4Q,GAElByC,EAAOxM,EAAI/D,MACfuQ,EAAKpS,OAAS2P,EAEdxQ,KAAKuS,WAAWnC,EAAE1N,MAAO0N,EAAEvP,OAAQiQ,EAAKN,GACxCxQ,KAAKuS,WAAWlC,EAAE3N,MAAO2N,EAAExP,OAAQiS,EAAMtC,GAEzCxQ,KAAKkR,UAAUJ,EAAK6B,EAAGC,EAAMC,EAAMrC,EAAGK,GACtC7Q,KAAKkR,UAAU4B,EAAMH,EAAGI,EAAOC,EAAOxC,EAAGK,GAEzC,IAAK,IAAIpQ,EAAI,EAAGA,EAAI+P,EAAG/P,IAAK,CAC1B,IAAIsR,EAAKa,EAAKnS,GAAKsS,EAAMtS,GAAKoS,EAAKpS,GAAKuS,EAAMvS,GAC9CoS,EAAKpS,GAAKmS,EAAKnS,GAAKuS,EAAMvS,GAAKoS,EAAKpS,GAAKsS,EAAMtS,GAC/CmS,EAAKnS,GAAKsR,EAUZ,OAPA/R,KAAKmS,UAAUS,EAAMC,EAAMrC,GAC3BxQ,KAAKkR,UAAU0B,EAAMC,EAAMI,EAAMN,EAAGnC,EAAGK,GACvC7Q,KAAKmS,UAAUc,EAAMN,EAAGnC,GACxBxQ,KAAKoS,aAAaa,EAAMzC,GAExB/J,EAAIhE,SAAW2N,EAAE3N,SAAW4N,EAAE5N,SAC9BgE,EAAI5F,OAASuP,EAAEvP,OAASwP,EAAExP,OACnB4F,EAAIwU,SAIb7Y,EAAGjD,UAAU0E,IAAM,SAAcQ,GAC/B,IAAIoC,EAAM,IAAIrE,EAAG,MAEjB,OADAqE,EAAI/D,MAAQ,IAAI9C,MAAMI,KAAKa,OAASwD,EAAIxD,QACjCb,KAAKsQ,MAAMjM,EAAKoC,IAIzBrE,EAAGjD,UAAU+T,KAAO,SAAe7O,GACjC,IAAIoC,EAAM,IAAIrE,EAAG,MAEjB,OADAqE,EAAI/D,MAAQ,IAAI9C,MAAMI,KAAKa,OAASwD,EAAIxD,QACjCqP,EAAWlQ,KAAMqE,EAAKoC,IAI/BrE,EAAGjD,UAAU0P,KAAO,SAAexK,GACjC,OAAOrE,KAAK+F,QAAQuK,MAAMjM,EAAKrE,OAGjCoC,EAAGjD,UAAUuG,MAAQ,SAAgBrB,GACnC3C,EAAsB,kBAAR2C,GACd3C,EAAO2C,EAAM,UAIb,IADA,IAAIqC,EAAQ,EACHjG,EAAI,EAAGA,EAAIT,KAAKa,OAAQJ,IAAK,CACpC,IAAIyE,GAAqB,EAAhBlF,KAAK0C,MAAMjC,IAAU4D,EAC1BmD,GAAU,SAAJtC,IAA0B,SAARwB,GAC5BA,IAAU,GACVA,GAAUxB,EAAI,SAAa,EAE3BwB,GAASc,IAAO,GAChBxH,KAAK0C,MAAMjC,GAAU,SAAL+G,EAQlB,OALc,IAAVd,IACF1G,KAAK0C,MAAMjC,GAAKiG,EAChB1G,KAAKa,UAGAb,MAGToC,EAAGjD,UAAUiU,KAAO,SAAe/O,GACjC,OAAOrE,KAAK+F,QAAQL,MAAMrB,IAI5BjC,EAAGjD,UAAUkU,IAAM,WACjB,OAAOrT,KAAK6D,IAAI7D,OAIlBoC,EAAGjD,UAAUmU,KAAO,WAClB,OAAOtT,KAAK6O,KAAK7O,KAAK+F,UAIxB3D,EAAGjD,UAAUyG,IAAM,SAAcvB,GAC/B,IAAIa,EAxxCN,SAAqBb,GAGnB,IAFA,IAAIa,EAAI,IAAItF,MAAMyE,EAAIsE,aAEb6B,EAAM,EAAGA,EAAMtF,EAAErE,OAAQ2J,IAAO,CACvC,IAAIrF,EAAOqF,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAEjBtF,EAAEsF,IAAQnG,EAAI3B,MAAMyC,GAAQ,GAAKsF,KAAWA,EAG9C,OAAOvF,EA8wCCqO,CAAWlP,GACnB,GAAiB,IAAba,EAAErE,OAAc,OAAO,IAAIuB,EAAG,GAIlC,IADA,IAAI4F,EAAMhI,KACDS,EAAI,EAAGA,EAAIyE,EAAErE,QACP,IAATqE,EAAEzE,GADsBA,IAAKuH,EAAMA,EAAIqL,OAI7C,KAAM5S,EAAIyE,EAAErE,OACV,IAAK,IAAI2S,EAAIxL,EAAIqL,MAAO5S,EAAIyE,EAAErE,OAAQJ,IAAK+S,EAAIA,EAAEH,MAClC,IAATnO,EAAEzE,KAENuH,EAAMA,EAAInE,IAAI2P,IAIlB,OAAOxL,GAIT5F,EAAGjD,UAAUsU,OAAS,SAAiBC,GACrChS,EAAuB,kBAATgS,GAAqBA,GAAQ,GAC3C,IAGIjT,EAHA+C,EAAIkQ,EAAO,GACX/S,GAAK+S,EAAOlQ,GAAK,GACjBmQ,EAAa,WAAe,GAAKnQ,GAAQ,GAAKA,EAGlD,GAAU,IAANA,EAAS,CACX,IAAIkD,EAAQ,EAEZ,IAAKjG,EAAI,EAAGA,EAAIT,KAAKa,OAAQJ,IAAK,CAChC,IAAImT,EAAW5T,KAAK0C,MAAMjC,GAAKkT,EAC3BvQ,GAAsB,EAAhBpD,KAAK0C,MAAMjC,IAAUmT,GAAapQ,EAC5CxD,KAAK0C,MAAMjC,GAAK2C,EAAIsD,EACpBA,EAAQkN,IAAc,GAAKpQ,EAGzBkD,IACF1G,KAAK0C,MAAMjC,GAAKiG,EAChB1G,KAAKa,UAIT,GAAU,IAANF,EAAS,CACX,IAAKF,EAAIT,KAAKa,OAAS,EAAGJ,GAAK,EAAGA,IAChCT,KAAK0C,MAAMjC,EAAIE,GAAKX,KAAK0C,MAAMjC,GAGjC,IAAKA,EAAI,EAAGA,EAAIE,EAAGF,IACjBT,KAAK0C,MAAMjC,GAAK,EAGlBT,KAAKa,QAAUF,EAGjB,OAAOX,KAAKib,SAGd7Y,EAAGjD,UAAU0U,MAAQ,SAAgBH,GAGnC,OADAhS,EAAyB,IAAlB1B,KAAKyC,UACLzC,KAAKyT,OAAOC,IAMrBtR,EAAGjD,UAAU2U,OAAS,SAAiBJ,EAAMK,EAAMC,GAEjD,IAAIC,EADJvS,EAAuB,kBAATgS,GAAqBA,GAAQ,GAGzCO,EADEF,GACGA,EAAQA,EAAO,IAAO,GAEvB,EAGN,IAAIvQ,EAAIkQ,EAAO,GACX/S,EAAIqD,KAAKC,KAAKyP,EAAOlQ,GAAK,GAAIxD,KAAKa,QACnCqT,EAAO,SAAc,WAAc1Q,GAAMA,EACzC2Q,EAAcH,EAMlB,GAJAC,GAAKtT,EACLsT,EAAIjQ,KAAKM,IAAI,EAAG2P,GAGZE,EAAa,CACf,IAAK,IAAI1T,EAAI,EAAGA,EAAIE,EAAGF,IACrB0T,EAAYzR,MAAMjC,GAAKT,KAAK0C,MAAMjC,GAEpC0T,EAAYtT,OAASF,EAGvB,GAAU,IAANA,QAEG,GAAIX,KAAKa,OAASF,EAEvB,IADAX,KAAKa,QAAUF,EACVF,EAAI,EAAGA,EAAIT,KAAKa,OAAQJ,IAC3BT,KAAK0C,MAAMjC,GAAKT,KAAK0C,MAAMjC,EAAIE,QAGjCX,KAAK0C,MAAM,GAAK,EAChB1C,KAAKa,OAAS,EAGhB,IAAI6F,EAAQ,EACZ,IAAKjG,EAAIT,KAAKa,OAAS,EAAGJ,GAAK,IAAgB,IAAViG,GAAejG,GAAKwT,GAAIxT,IAAK,CAChE,IAAIgF,EAAuB,EAAhBzF,KAAK0C,MAAMjC,GACtBT,KAAK0C,MAAMjC,GAAMiG,GAAU,GAAKlD,EAAOiC,IAASjC,EAChDkD,EAAQjB,EAAOyO,EAajB,OATIC,GAAyB,IAAVzN,IACjByN,EAAYzR,MAAMyR,EAAYtT,UAAY6F,GAGxB,IAAhB1G,KAAKa,SACPb,KAAK0C,MAAM,GAAK,EAChB1C,KAAKa,OAAS,GAGTb,KAAKib,SAGd7Y,EAAGjD,UAAUiV,MAAQ,SAAgBV,EAAMK,EAAMC,GAG/C,OADAtS,EAAyB,IAAlB1B,KAAKyC,UACLzC,KAAK8T,OAAOJ,EAAMK,EAAMC,IAIjC5R,EAAGjD,UAAUkV,KAAO,SAAeX,GACjC,OAAO1T,KAAK+F,QAAQ8N,MAAMH,IAG5BtR,EAAGjD,UAAUmV,MAAQ,SAAgBZ,GACnC,OAAO1T,KAAK+F,QAAQ0N,OAAOC,IAI7BtR,EAAGjD,UAAUoV,KAAO,SAAeb,GACjC,OAAO1T,KAAK+F,QAAQqO,MAAMV,IAG5BtR,EAAGjD,UAAUqV,MAAQ,SAAgBd,GACnC,OAAO1T,KAAK+F,QAAQ+N,OAAOJ,IAI7BtR,EAAGjD,UAAUiK,MAAQ,SAAgBoB,GACnC9I,EAAsB,kBAAR8I,GAAoBA,GAAO,GACzC,IAAIhH,EAAIgH,EAAM,GACV7J,GAAK6J,EAAMhH,GAAK,GAChBgQ,EAAI,GAAKhQ,EAGb,QAAIxD,KAAKa,QAAUF,OAGXX,KAAK0C,MAAM/B,GAEL6S,IAIhBpR,EAAGjD,UAAUsV,OAAS,SAAiBf,GACrChS,EAAuB,kBAATgS,GAAqBA,GAAQ,GAC3C,IAAIlQ,EAAIkQ,EAAO,GACX/S,GAAK+S,EAAOlQ,GAAK,GAIrB,GAFA9B,EAAyB,IAAlB1B,KAAKyC,SAAgB,2CAExBzC,KAAKa,QAAUF,EACjB,OAAOX,KAQT,GALU,IAANwD,GACF7C,IAEFX,KAAKa,OAASmD,KAAKC,IAAItD,EAAGX,KAAKa,QAErB,IAAN2C,EAAS,CACX,IAAI0Q,EAAO,SAAc,WAAc1Q,GAAMA,EAC7CxD,KAAK0C,MAAM1C,KAAKa,OAAS,IAAMqT,EAGjC,OAAOlU,KAAKib,SAId7Y,EAAGjD,UAAUuV,MAAQ,SAAgBhB,GACnC,OAAO1T,KAAK+F,QAAQ0O,OAAOf,IAI7BtR,EAAGjD,UAAU+J,MAAQ,SAAgB7E,GAGnC,OAFA3C,EAAsB,kBAAR2C,GACd3C,EAAO2C,EAAM,UACTA,EAAM,EAAUrE,KAAK2U,OAAOtQ,GAGV,IAAlBrE,KAAKyC,SACa,IAAhBzC,KAAKa,SAAiC,EAAhBb,KAAK0C,MAAM,IAAU2B,GAC7CrE,KAAK0C,MAAM,GAAK2B,GAAuB,EAAhBrE,KAAK0C,MAAM,IAClC1C,KAAKyC,SAAW,EACTzC,OAGTA,KAAKyC,SAAW,EAChBzC,KAAK2U,MAAMtQ,GACXrE,KAAKyC,SAAW,EACTzC,MAIFA,KAAK2F,OAAOtB,IAGrBjC,EAAGjD,UAAUwG,OAAS,SAAiBtB,GACrCrE,KAAK0C,MAAM,IAAM2B,EAGjB,IAAK,IAAI5D,EAAI,EAAGA,EAAIT,KAAKa,QAAUb,KAAK0C,MAAMjC,IAAM,SAAWA,IAC7DT,KAAK0C,MAAMjC,IAAM,SACbA,IAAMT,KAAKa,OAAS,EACtBb,KAAK0C,MAAMjC,EAAI,GAAK,EAEpBT,KAAK0C,MAAMjC,EAAI,KAKnB,OAFAT,KAAKa,OAASmD,KAAKM,IAAItE,KAAKa,OAAQJ,EAAI,GAEjCT,MAIToC,EAAGjD,UAAUwV,MAAQ,SAAgBtQ,GAGnC,GAFA3C,EAAsB,kBAAR2C,GACd3C,EAAO2C,EAAM,UACTA,EAAM,EAAG,OAAOrE,KAAKkJ,OAAO7E,GAEhC,GAAsB,IAAlBrE,KAAKyC,SAIP,OAHAzC,KAAKyC,SAAW,EAChBzC,KAAKkJ,MAAM7E,GACXrE,KAAKyC,SAAW,EACTzC,KAKT,GAFAA,KAAK0C,MAAM,IAAM2B,EAEG,IAAhBrE,KAAKa,QAAgBb,KAAK0C,MAAM,GAAK,EACvC1C,KAAK0C,MAAM,IAAM1C,KAAK0C,MAAM,GAC5B1C,KAAKyC,SAAW,OAGhB,IAAK,IAAIhC,EAAI,EAAGA,EAAIT,KAAKa,QAAUb,KAAK0C,MAAMjC,GAAK,EAAGA,IACpDT,KAAK0C,MAAMjC,IAAM,SACjBT,KAAK0C,MAAMjC,EAAI,IAAM,EAIzB,OAAOT,KAAKib,SAGd7Y,EAAGjD,UAAUyV,KAAO,SAAevQ,GACjC,OAAOrE,KAAK+F,QAAQmD,MAAM7E,IAG5BjC,EAAGjD,UAAU0V,KAAO,SAAexQ,GACjC,OAAOrE,KAAK+F,QAAQ4O,MAAMtQ,IAG5BjC,EAAGjD,UAAU2V,KAAO,WAGlB,OAFA9U,KAAKyC,SAAW,EAETzC,MAGToC,EAAGjD,UAAU6J,IAAM,WACjB,OAAOhJ,KAAK+F,QAAQ+O,QAGtB1S,EAAGjD,UAAU4V,aAAe,SAAuB1Q,EAAKR,EAAKwE,GAC3D,IACI5H,EAIAyE,EALAnB,EAAMM,EAAIxD,OAASwH,EAGvBrI,KAAKgG,QAAQjC,GAGb,IAAI2C,EAAQ,EACZ,IAAKjG,EAAI,EAAGA,EAAI4D,EAAIxD,OAAQJ,IAAK,CAC/ByE,GAA6B,EAAxBlF,KAAK0C,MAAMjC,EAAI4H,IAAc3B,EAClC,IAAIlC,GAAwB,EAAfH,EAAI3B,MAAMjC,IAAUoD,EAEjC6C,IADAxB,GAAa,SAARV,IACS,KAAQA,EAAQ,SAAa,GAC3CxE,KAAK0C,MAAMjC,EAAI4H,GAAa,SAAJnD,EAE1B,KAAOzE,EAAIT,KAAKa,OAASwH,EAAO5H,IAE9BiG,GADAxB,GAA6B,EAAxBlF,KAAK0C,MAAMjC,EAAI4H,IAAc3B,IACrB,GACb1G,KAAK0C,MAAMjC,EAAI4H,GAAa,SAAJnD,EAG1B,GAAc,IAAVwB,EAAa,OAAO1G,KAAKib,QAK7B,IAFAvZ,GAAkB,IAAXgF,GACPA,EAAQ,EACHjG,EAAI,EAAGA,EAAIT,KAAKa,OAAQJ,IAE3BiG,GADAxB,IAAsB,EAAhBlF,KAAK0C,MAAMjC,IAAUiG,IACd,GACb1G,KAAK0C,MAAMjC,GAAS,SAAJyE,EAIlB,OAFAlF,KAAKyC,SAAW,EAETzC,KAAKib,SAGd7Y,EAAGjD,UAAU6V,SAAW,SAAmB3Q,EAAK4Q,GAC9C,IAAI5M,GAAQrI,KAAKa,OAASwD,EAAIxD,QAE1B0G,EAAIvH,KAAK+F,QACTjC,EAAIO,EAGJ6Q,EAA8B,EAAxBpR,EAAEpB,MAAMoB,EAAEjD,OAAS,GAGf,KADdwH,EAAQ,GADMrI,KAAKwI,WAAW0M,MAG5BpR,EAAIA,EAAEwQ,MAAMjM,GACZd,EAAEkM,OAAOpL,GACT6M,EAA8B,EAAxBpR,EAAEpB,MAAMoB,EAAEjD,OAAS,IAI3B,IACI2S,EADAvB,EAAI1K,EAAE1G,OAASiD,EAAEjD,OAGrB,GAAa,QAAToU,EAAgB,EAClBzB,EAAI,IAAIpR,EAAG,OACTvB,OAASoR,EAAI,EACfuB,EAAE9Q,MAAQ,IAAI9C,MAAM4T,EAAE3S,QACtB,IAAK,IAAIJ,EAAI,EAAGA,EAAI+S,EAAE3S,OAAQJ,IAC5B+S,EAAE9Q,MAAMjC,GAAK,EAIjB,IAAI0U,EAAO5N,EAAExB,QAAQgP,aAAajR,EAAG,EAAGmO,GAClB,IAAlBkD,EAAK1S,WACP8E,EAAI4N,EACA3B,IACFA,EAAE9Q,MAAMuP,GAAK,IAIjB,IAAK,IAAIhN,EAAIgN,EAAI,EAAGhN,GAAK,EAAGA,IAAK,CAC/B,IAAImQ,EAAmC,UAAL,EAAxB7N,EAAE7E,MAAMoB,EAAEjD,OAASoE,KACE,EAA5BsC,EAAE7E,MAAMoB,EAAEjD,OAASoE,EAAI,IAO1B,IAHAmQ,EAAKpR,KAAKC,IAAKmR,EAAKF,EAAO,EAAG,UAE9B3N,EAAEwN,aAAajR,EAAGsR,EAAInQ,GACA,IAAfsC,EAAE9E,UACP2S,IACA7N,EAAE9E,SAAW,EACb8E,EAAEwN,aAAajR,EAAG,EAAGmB,GAChBsC,EAAEV,WACLU,EAAE9E,UAAY,GAGd+Q,IACFA,EAAE9Q,MAAMuC,GAAKmQ,GAajB,OAVI5B,GACFA,EAAEyH,QAEJ1T,EAAE0T,QAGW,QAAThG,GAA4B,IAAV5M,GACpBd,EAAEuM,OAAOzL,GAGJ,CACLgN,IAAK7B,GAAK,KACVhO,IAAK+B,IAQTnF,EAAGjD,UAAUmW,OAAS,SAAiBjR,EAAK4Q,EAAMM,GAGhD,OAFA7T,GAAQ2C,EAAIwC,UAER7G,KAAK6G,SACA,CACLwO,IAAK,IAAIjT,EAAG,GACZoD,IAAK,IAAIpD,EAAG,IAKM,IAAlBpC,KAAKyC,UAAmC,IAAjB4B,EAAI5B,UAC7BuF,EAAMhI,KAAKwJ,MAAM8L,OAAOjR,EAAK4Q,GAEhB,QAATA,IACFI,EAAMrN,EAAIqN,IAAI7L,OAGH,QAATyL,IACFzP,EAAMwC,EAAIxC,IAAIgE,MACV+L,GAA6B,IAAjB/P,EAAI/C,UAClB+C,EAAIkF,KAAKrG,IAIN,CACLgR,IAAKA,EACL7P,IAAKA,IAIa,IAAlBxF,KAAKyC,UAAmC,IAAjB4B,EAAI5B,UAC7BuF,EAAMhI,KAAKsV,OAAOjR,EAAImF,MAAOyL,GAEhB,QAATA,IACFI,EAAMrN,EAAIqN,IAAI7L,OAGT,CACL6L,IAAKA,EACL7P,IAAKwC,EAAIxC,MAI0B,KAAlCxF,KAAKyC,SAAW4B,EAAI5B,WACvBuF,EAAMhI,KAAKwJ,MAAM8L,OAAOjR,EAAImF,MAAOyL,GAEtB,QAATA,IACFzP,EAAMwC,EAAIxC,IAAIgE,MACV+L,GAA6B,IAAjB/P,EAAI/C,UAClB+C,EAAImF,KAAKtG,IAIN,CACLgR,IAAKrN,EAAIqN,IACT7P,IAAKA,IAOLnB,EAAIxD,OAASb,KAAKa,QAAUb,KAAKyE,IAAIJ,GAAO,EACvC,CACLgR,IAAK,IAAIjT,EAAG,GACZoD,IAAKxF,MAKU,IAAfqE,EAAIxD,OACO,QAAToU,EACK,CACLI,IAAKrV,KAAKwV,KAAKnR,EAAI3B,MAAM,IACzB8C,IAAK,MAII,QAATyP,EACK,CACLI,IAAK,KACL7P,IAAK,IAAIpD,EAAGpC,KAAKgW,KAAK3R,EAAI3B,MAAM,MAI7B,CACL2S,IAAKrV,KAAKwV,KAAKnR,EAAI3B,MAAM,IACzB8C,IAAK,IAAIpD,EAAGpC,KAAKgW,KAAK3R,EAAI3B,MAAM,MAI7B1C,KAAKgV,SAAS3Q,EAAK4Q,GAlF1B,IAAII,EAAK7P,EAAKwC,GAsFhB5F,EAAGjD,UAAUkW,IAAM,SAAchR,GAC/B,OAAOrE,KAAKsV,OAAOjR,EAAK,OAAO,GAAOgR,KAIxCjT,EAAGjD,UAAUqG,IAAM,SAAcnB,GAC/B,OAAOrE,KAAKsV,OAAOjR,EAAK,OAAO,GAAOmB,KAGxCpD,EAAGjD,UAAUsW,KAAO,SAAepR,GACjC,OAAOrE,KAAKsV,OAAOjR,EAAK,OAAO,GAAMmB,KAIvCpD,EAAGjD,UAAUuW,SAAW,SAAmBrR,GACzC,IAAIsR,EAAK3V,KAAKsV,OAAOjR,GAGrB,GAAIsR,EAAGnQ,IAAIqB,SAAU,OAAO8O,EAAGN,IAE/B,IAAI7P,EAA0B,IAApBmQ,EAAGN,IAAI5S,SAAiBkT,EAAGnQ,IAAImF,KAAKtG,GAAOsR,EAAGnQ,IAEpDoQ,EAAOvR,EAAImQ,MAAM,GACjBqB,EAAKxR,EAAIyR,MAAM,GACfrR,EAAMe,EAAIf,IAAImR,GAGlB,OAAInR,EAAM,GAAY,IAAPoR,GAAoB,IAARpR,EAAkBkR,EAAGN,IAGrB,IAApBM,EAAGN,IAAI5S,SAAiBkT,EAAGN,IAAIV,MAAM,GAAKgB,EAAGN,IAAInM,MAAM,IAGhE9G,EAAGjD,UAAU6W,KAAO,SAAe3R,GACjC3C,EAAO2C,GAAO,UAId,IAHA,IAAImN,GAAK,GAAK,IAAMnN,EAEhB0R,EAAM,EACDtV,EAAIT,KAAKa,OAAS,EAAGJ,GAAK,EAAGA,IACpCsV,GAAOvE,EAAIuE,GAAuB,EAAhB/V,KAAK0C,MAAMjC,KAAW4D,EAG1C,OAAO0R,GAIT3T,EAAGjD,UAAU4H,MAAQ,SAAgB1C,GACnC3C,EAAO2C,GAAO,UAGd,IADA,IAAIqC,EAAQ,EACHjG,EAAIT,KAAKa,OAAS,EAAGJ,GAAK,EAAGA,IAAK,CACzC,IAAIyE,GAAqB,EAAhBlF,KAAK0C,MAAMjC,IAAkB,SAARiG,EAC9B1G,KAAK0C,MAAMjC,GAAMyE,EAAIb,EAAO,EAC5BqC,EAAQxB,EAAIb,EAGd,OAAOrE,KAAKib,SAGd7Y,EAAGjD,UAAUqW,KAAO,SAAenR,GACjC,OAAOrE,KAAK+F,QAAQgB,MAAM1C,IAG5BjC,EAAGjD,UAAU8W,KAAO,SAAezE,GACjC9P,EAAsB,IAAf8P,EAAE/O,UACTf,GAAQ8P,EAAE3K,UAEV,IAAIuJ,EAAIpQ,KACJqQ,EAAImB,EAAEzL,QAGRqK,EADiB,IAAfA,EAAE3N,SACA2N,EAAEqF,KAAKjE,GAEPpB,EAAErK,QAaR,IATA,IAAImQ,EAAI,IAAI9T,EAAG,GACX+T,EAAI,IAAI/T,EAAG,GAGXgU,EAAI,IAAIhU,EAAG,GACXiU,EAAI,IAAIjU,EAAG,GAEXkU,EAAI,EAEDlG,EAAEmG,UAAYlG,EAAEkG,UACrBnG,EAAE0D,OAAO,GACTzD,EAAEyD,OAAO,KACPwC,EAMJ,IAHA,IAAIE,EAAKnG,EAAEtK,QACP0Q,EAAKrG,EAAErK,SAEHqK,EAAEvJ,UAAU,CAClB,IAAK,IAAIpG,EAAI,EAAGiW,EAAK,EAAyB,KAArBtG,EAAE1N,MAAM,GAAKgU,IAAajW,EAAI,KAAMA,EAAGiW,IAAO,GACvE,GAAIjW,EAAI,EAEN,IADA2P,EAAE0D,OAAOrT,GACFA,KAAM,IACPyV,EAAES,SAAWR,EAAEQ,WACjBT,EAAExL,KAAK8L,GACPL,EAAExL,KAAK8L,IAGTP,EAAEpC,OAAO,GACTqC,EAAErC,OAAO,GAIb,IAAK,IAAI7O,EAAI,EAAG2R,EAAK,EAAyB,KAArBvG,EAAE3N,MAAM,GAAKkU,IAAa3R,EAAI,KAAMA,EAAG2R,IAAO,GACvE,GAAI3R,EAAI,EAEN,IADAoL,EAAEyD,OAAO7O,GACFA,KAAM,IACPmR,EAAEO,SAAWN,EAAEM,WACjBP,EAAE1L,KAAK8L,GACPH,EAAE1L,KAAK8L,IAGTL,EAAEtC,OAAO,GACTuC,EAAEvC,OAAO,GAIT1D,EAAE3L,IAAI4L,IAAM,GACdD,EAAEzF,KAAK0F,GACP6F,EAAEvL,KAAKyL,GACPD,EAAExL,KAAK0L,KAEPhG,EAAE1F,KAAKyF,GACPgG,EAAEzL,KAAKuL,GACPG,EAAE1L,KAAKwL,IAIX,MAAO,CACL5O,EAAG6O,EACHtS,EAAGuS,EACHQ,IAAKxG,EAAEoD,OAAO6C,KAOlBlU,EAAGjD,UAAU2X,OAAS,SAAiBtF,GACrC9P,EAAsB,IAAf8P,EAAE/O,UACTf,GAAQ8P,EAAE3K,UAEV,IAAIU,EAAIvH,KACJ8D,EAAI0N,EAAEzL,QAGRwB,EADiB,IAAfA,EAAE9E,SACA8E,EAAEkO,KAAKjE,GAEPjK,EAAExB,QAQR,IALA,IAuCIiC,EAvCA+O,EAAK,IAAI3U,EAAG,GACZ4U,EAAK,IAAI5U,EAAG,GAEZ6U,EAAQnT,EAAEiC,QAEPwB,EAAE2P,KAAK,GAAK,GAAKpT,EAAEoT,KAAK,GAAK,GAAG,CACrC,IAAK,IAAIzW,EAAI,EAAGiW,EAAK,EAAyB,KAArBnP,EAAE7E,MAAM,GAAKgU,IAAajW,EAAI,KAAMA,EAAGiW,IAAO,GACvE,GAAIjW,EAAI,EAEN,IADA8G,EAAEuM,OAAOrT,GACFA,KAAM,GACPsW,EAAGJ,SACLI,EAAGrM,KAAKuM,GAGVF,EAAGjD,OAAO,GAId,IAAK,IAAI7O,EAAI,EAAG2R,EAAK,EAAyB,KAArB9S,EAAEpB,MAAM,GAAKkU,IAAa3R,EAAI,KAAMA,EAAG2R,IAAO,GACvE,GAAI3R,EAAI,EAEN,IADAnB,EAAEgQ,OAAO7O,GACFA,KAAM,GACP+R,EAAGL,SACLK,EAAGtM,KAAKuM,GAGVD,EAAGlD,OAAO,GAIVvM,EAAE9C,IAAIX,IAAM,GACdyD,EAAEoD,KAAK7G,GACPiT,EAAGpM,KAAKqM,KAERlT,EAAE6G,KAAKpD,GACPyP,EAAGrM,KAAKoM,IAeZ,OATE/O,EADgB,IAAdT,EAAE2P,KAAK,GACHH,EAEAC,GAGAE,KAAK,GAAK,GAChBlP,EAAI0C,KAAK8G,GAGJxJ,GAGT5F,EAAGjD,UAAU0X,IAAM,SAAcxS,GAC/B,GAAIrE,KAAK6G,SAAU,OAAOxC,EAAI2E,MAC9B,GAAI3E,EAAIwC,SAAU,OAAO7G,KAAKgJ,MAE9B,IAAIzB,EAAIvH,KAAK+F,QACTjC,EAAIO,EAAI0B,QACZwB,EAAE9E,SAAW,EACbqB,EAAErB,SAAW,EAGb,IAAK,IAAI4F,EAAQ,EAAGd,EAAEgP,UAAYzS,EAAEyS,SAAUlO,IAC5Cd,EAAEuM,OAAO,GACThQ,EAAEgQ,OAAO,GAGX,OAAG,CACD,KAAOvM,EAAEgP,UACPhP,EAAEuM,OAAO,GAEX,KAAOhQ,EAAEyS,UACPzS,EAAEgQ,OAAO,GAGX,IAAItQ,EAAI+D,EAAE9C,IAAIX,GACd,GAAIN,EAAI,EAAG,CAET,IAAIiF,EAAIlB,EACRA,EAAIzD,EACJA,EAAI2E,OACC,GAAU,IAANjF,GAAyB,IAAdM,EAAEoT,KAAK,GAC3B,MAGF3P,EAAEoD,KAAK7G,GAGT,OAAOA,EAAE2P,OAAOpL,IAIlBjG,EAAGjD,UAAUgY,KAAO,SAAe9S,GACjC,OAAOrE,KAAKiW,KAAK5R,GAAKkD,EAAEkO,KAAKpR,IAG/BjC,EAAGjD,UAAUoX,OAAS,WACpB,OAA+B,KAAP,EAAhBvW,KAAK0C,MAAM,KAGrBN,EAAGjD,UAAUwX,MAAQ,WACnB,OAA+B,KAAP,EAAhB3W,KAAK0C,MAAM,KAIrBN,EAAGjD,UAAU2W,MAAQ,SAAgBzR,GACnC,OAAOrE,KAAK0C,MAAM,GAAK2B,GAIzBjC,EAAGjD,UAAUiY,MAAQ,SAAgB5M,GACnC9I,EAAsB,kBAAR8I,GACd,IAAIhH,EAAIgH,EAAM,GACV7J,GAAK6J,EAAMhH,GAAK,GAChBgQ,EAAI,GAAKhQ,EAGb,GAAIxD,KAAKa,QAAUF,EAGjB,OAFAX,KAAKgG,QAAQrF,EAAI,GACjBX,KAAK0C,MAAM/B,IAAM6S,EACVxT,KAKT,IADA,IAAI0G,EAAQ8M,EACH/S,EAAIE,EAAa,IAAV+F,GAAejG,EAAIT,KAAKa,OAAQJ,IAAK,CACnD,IAAIyE,EAAoB,EAAhBlF,KAAK0C,MAAMjC,GAEnBiG,GADAxB,GAAKwB,KACS,GACdxB,GAAK,SACLlF,KAAK0C,MAAMjC,GAAKyE,EAMlB,OAJc,IAAVwB,IACF1G,KAAK0C,MAAMjC,GAAKiG,EAChB1G,KAAKa,UAEAb,MAGToC,EAAGjD,UAAU0H,OAAS,WACpB,OAAuB,IAAhB7G,KAAKa,QAAkC,IAAlBb,KAAK0C,MAAM,IAGzCN,EAAGjD,UAAU+X,KAAO,SAAe7S,GACjC,IAOI2D,EAPAvF,EAAW4B,EAAM,EAErB,GAAsB,IAAlBrE,KAAKyC,WAAmBA,EAAU,OAAQ,EAC9C,GAAsB,IAAlBzC,KAAKyC,UAAkBA,EAAU,OAAO,EAK5C,GAHAzC,KAAKib,QAGDjb,KAAKa,OAAS,EAChBmH,EAAM,MACD,CACDvF,IACF4B,GAAOA,GAGT3C,EAAO2C,GAAO,SAAW,qBAEzB,IAAIa,EAAoB,EAAhBlF,KAAK0C,MAAM,GACnBsF,EAAM9C,IAAMb,EAAM,EAAIa,EAAIb,GAAO,EAAI,EAEvC,OAAsB,IAAlBrE,KAAKyC,SAA8B,GAANuF,EAC1BA,GAOT5F,EAAGjD,UAAUsF,IAAM,SAAcJ,GAC/B,GAAsB,IAAlBrE,KAAKyC,UAAmC,IAAjB4B,EAAI5B,SAAgB,OAAQ,EACvD,GAAsB,IAAlBzC,KAAKyC,UAAmC,IAAjB4B,EAAI5B,SAAgB,OAAO,EAEtD,IAAIuF,EAAMhI,KAAKqX,KAAKhT,GACpB,OAAsB,IAAlBrE,KAAKyC,SAA8B,GAANuF,EAC1BA,GAIT5F,EAAGjD,UAAUkY,KAAO,SAAehT,GAEjC,GAAIrE,KAAKa,OAASwD,EAAIxD,OAAQ,OAAO,EACrC,GAAIb,KAAKa,OAASwD,EAAIxD,OAAQ,OAAQ,EAGtC,IADA,IAAImH,EAAM,EACDvH,EAAIT,KAAKa,OAAS,EAAGJ,GAAK,EAAGA,IAAK,CACzC,IAAI8G,EAAoB,EAAhBvH,KAAK0C,MAAMjC,GACfqD,EAAmB,EAAfO,EAAI3B,MAAMjC,GAElB,GAAI8G,IAAMzD,EAAV,CACIyD,EAAIzD,EACNkE,GAAO,EACET,EAAIzD,IACbkE,EAAM,GAER,OAEF,OAAOA,GAGT5F,EAAGjD,UAAUmY,IAAM,SAAcjT,GAC/B,OAA0B,IAAnBrE,KAAKkX,KAAK7S,IAGnBjC,EAAGjD,UAAUoY,GAAK,SAAalT,GAC7B,OAAyB,IAAlBrE,KAAKyE,IAAIJ,IAGlBjC,EAAGjD,UAAUqY,KAAO,SAAenT,GACjC,OAAOrE,KAAKkX,KAAK7S,IAAQ,GAG3BjC,EAAGjD,UAAUsY,IAAM,SAAcpT,GAC/B,OAAOrE,KAAKyE,IAAIJ,IAAQ,GAG1BjC,EAAGjD,UAAUuY,IAAM,SAAcrT,GAC/B,OAA2B,IAApBrE,KAAKkX,KAAK7S,IAGnBjC,EAAGjD,UAAUwY,GAAK,SAAatT,GAC7B,OAA0B,IAAnBrE,KAAKyE,IAAIJ,IAGlBjC,EAAGjD,UAAUyY,KAAO,SAAevT,GACjC,OAAOrE,KAAKkX,KAAK7S,IAAQ,GAG3BjC,EAAGjD,UAAU0Y,IAAM,SAAcxT,GAC/B,OAAOrE,KAAKyE,IAAIJ,IAAQ,GAG1BjC,EAAGjD,UAAU2Y,IAAM,SAAczT,GAC/B,OAA0B,IAAnBrE,KAAKkX,KAAK7S,IAGnBjC,EAAGjD,UAAU4Y,GAAK,SAAa1T,GAC7B,OAAyB,IAAlBrE,KAAKyE,IAAIJ,IAOlBjC,EAAGO,IAAM,SAAc0B,GACrB,OAAO,IAAI2T,EAAI3T,IAGjBjC,EAAGjD,UAAU8Y,MAAQ,SAAgBC,GAGnC,OAFAxW,GAAQ1B,KAAK2C,IAAK,yCAClBjB,EAAyB,IAAlB1B,KAAKyC,SAAgB,iCACrByV,EAAIC,UAAUnY,MAAMoY,UAAUF,IAGvC9V,EAAGjD,UAAUkZ,QAAU,WAErB,OADA3W,EAAO1B,KAAK2C,IAAK,wDACV3C,KAAK2C,IAAI2V,YAAYtY,OAG9BoC,EAAGjD,UAAUiZ,UAAY,SAAoBF,GAE3C,OADAlY,KAAK2C,IAAMuV,EACJlY,MAGToC,EAAGjD,UAAUoZ,SAAW,SAAmBL,GAEzC,OADAxW,GAAQ1B,KAAK2C,IAAK,yCACX3C,KAAKoY,UAAUF,IAGxB9V,EAAGjD,UAAUqZ,OAAS,SAAiBnU,GAErC,OADA3C,EAAO1B,KAAK2C,IAAK,sCACV3C,KAAK2C,IAAIiI,IAAI5K,KAAMqE,IAG5BjC,EAAGjD,UAAUsZ,QAAU,SAAkBpU,GAEvC,OADA3C,EAAO1B,KAAK2C,IAAK,uCACV3C,KAAK2C,IAAI+H,KAAK1K,KAAMqE,IAG7BjC,EAAGjD,UAAUuZ,OAAS,SAAiBrU,GAErC,OADA3C,EAAO1B,KAAK2C,IAAK,sCACV3C,KAAK2C,IAAIkI,IAAI7K,KAAMqE,IAG5BjC,EAAGjD,UAAUwZ,QAAU,SAAkBtU,GAEvC,OADA3C,EAAO1B,KAAK2C,IAAK,uCACV3C,KAAK2C,IAAIgI,KAAK3K,KAAMqE,IAG7BjC,EAAGjD,UAAUyZ,OAAS,SAAiBvU,GAErC,OADA3C,EAAO1B,KAAK2C,IAAK,sCACV3C,KAAK2C,IAAIkW,IAAI7Y,KAAMqE,IAG5BjC,EAAGjD,UAAU2Z,OAAS,SAAiBzU,GAGrC,OAFA3C,EAAO1B,KAAK2C,IAAK,sCACjB3C,KAAK2C,IAAIoW,SAAS/Y,KAAMqE,GACjBrE,KAAK2C,IAAIkB,IAAI7D,KAAMqE,IAG5BjC,EAAGjD,UAAU6Z,QAAU,SAAkB3U,GAGvC,OAFA3C,EAAO1B,KAAK2C,IAAK,sCACjB3C,KAAK2C,IAAIoW,SAAS/Y,KAAMqE,GACjBrE,KAAK2C,IAAIkM,KAAK7O,KAAMqE,IAG7BjC,EAAGjD,UAAU8Z,OAAS,WAGpB,OAFAvX,EAAO1B,KAAK2C,IAAK,sCACjB3C,KAAK2C,IAAIuW,SAASlZ,MACXA,KAAK2C,IAAI0Q,IAAIrT,OAGtBoC,EAAGjD,UAAUga,QAAU,WAGrB,OAFAzX,EAAO1B,KAAK2C,IAAK,uCACjB3C,KAAK2C,IAAIuW,SAASlZ,MACXA,KAAK2C,IAAI2Q,KAAKtT,OAIvBoC,EAAGjD,UAAUia,QAAU,WAGrB,OAFA1X,EAAO1B,KAAK2C,IAAK,uCACjB3C,KAAK2C,IAAIuW,SAASlZ,MACXA,KAAK2C,IAAI0W,KAAKrZ,OAGvBoC,EAAGjD,UAAUma,QAAU,WAGrB,OAFA5X,EAAO1B,KAAK2C,IAAK,uCACjB3C,KAAK2C,IAAIuW,SAASlZ,MACXA,KAAK2C,IAAIwU,KAAKnX,OAIvBoC,EAAGjD,UAAUoa,OAAS,WAGpB,OAFA7X,EAAO1B,KAAK2C,IAAK,sCACjB3C,KAAK2C,IAAIuW,SAASlZ,MACXA,KAAK2C,IAAI6G,IAAIxJ,OAGtBoC,EAAGjD,UAAUqa,OAAS,SAAiBnV,GAGrC,OAFA3C,EAAO1B,KAAK2C,MAAQ0B,EAAI1B,IAAK,qBAC7B3C,KAAK2C,IAAIuW,SAASlZ,MACXA,KAAK2C,IAAIiD,IAAI5F,KAAMqE,IAI5B,IAAIoV,EAAS,CACXC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,OAAQ,MAIV,SAASC,EAAQC,EAAMvI,GAErBxR,KAAK+Z,KAAOA,EACZ/Z,KAAKwR,EAAI,IAAIpP,EAAGoP,EAAG,IACnBxR,KAAKY,EAAIZ,KAAKwR,EAAE7I,YAChB3I,KAAKyH,EAAI,IAAIrF,EAAG,GAAGqR,OAAOzT,KAAKY,GAAG+J,KAAK3K,KAAKwR,GAE5CxR,KAAKga,IAAMha,KAAKia,OAiDlB,SAASC,IACPJ,EAAOza,KACLW,KACA,OACA,2EA+DJ,SAASma,IACPL,EAAOza,KACLW,KACA,OACA,kEAIJ,SAASoa,IACPN,EAAOza,KACLW,KACA,OACA,yDAIJ,SAASqa,IAEPP,EAAOza,KACLW,KACA,QACA,uEA8CJ,SAASgY,EAAK/F,GACZ,GAAiB,kBAANA,EAAgB,CACzB,IAAIqI,EAAQlY,EAAGmY,OAAOtI,GACtBjS,KAAKiS,EAAIqI,EAAM9I,EACfxR,KAAKsa,MAAQA,OAEb5Y,EAAOuQ,EAAEqF,IAAI,GAAI,kCACjBtX,KAAKiS,EAAIA,EACTjS,KAAKsa,MAAQ,KAkOjB,SAASE,EAAMvI,GACb+F,EAAI3Y,KAAKW,KAAMiS,GAEfjS,KAAKqI,MAAQrI,KAAKiS,EAAEtJ,YAChB3I,KAAKqI,MAAQ,KAAO,IACtBrI,KAAKqI,OAAS,GAAMrI,KAAKqI,MAAQ,IAGnCrI,KAAKwD,EAAI,IAAIpB,EAAG,GAAGqR,OAAOzT,KAAKqI,OAC/BrI,KAAK6V,GAAK7V,KAAKya,KAAKza,KAAKwD,EAAE6P,OAC3BrT,KAAK0a,KAAO1a,KAAKwD,EAAEsT,OAAO9W,KAAKiS,GAE/BjS,KAAK2a,KAAO3a,KAAK0a,KAAK7W,IAAI7D,KAAKwD,GAAGmR,MAAM,GAAGU,IAAIrV,KAAKiS,GACpDjS,KAAK2a,KAAO3a,KAAK2a,KAAKlF,KAAKzV,KAAKwD,GAChCxD,KAAK2a,KAAO3a,KAAKwD,EAAEqH,IAAI7K,KAAK2a,MA5a9Bb,EAAO3a,UAAU8a,KAAO,WACtB,IAAID,EAAM,IAAI5X,EAAG,MAEjB,OADA4X,EAAItX,MAAQ,IAAI9C,MAAMoE,KAAKgB,KAAKhF,KAAKY,EAAI,KAClCoZ,GAGTF,EAAO3a,UAAUyb,QAAU,SAAkBvW,GAG3C,IACIwW,EADArX,EAAIa,EAGR,GACErE,KAAK8a,MAAMtX,EAAGxD,KAAKga,KAGnBa,GADArX,GADAA,EAAIxD,KAAK+a,MAAMvX,IACTkH,KAAK1K,KAAKga,MACPrR,kBACFkS,EAAO7a,KAAKY,GAErB,IAAI6D,EAAMoW,EAAO7a,KAAKY,GAAK,EAAI4C,EAAE6T,KAAKrX,KAAKwR,GAgB3C,OAfY,IAAR/M,GACFjB,EAAEd,MAAM,GAAK,EACbc,EAAE3C,OAAS,GACF4D,EAAM,EACfjB,EAAEmH,KAAK3K,KAAKwR,QAEIwJ,IAAZxX,EAAEyX,MAEJzX,EAAEyX,QAGFzX,EAAE4B,SAIC5B,GAGTsW,EAAO3a,UAAU2b,MAAQ,SAAgBI,EAAOzU,GAC9CyU,EAAMpH,OAAO9T,KAAKY,EAAG,EAAG6F,IAG1BqT,EAAO3a,UAAU4b,MAAQ,SAAgB1W,GACvC,OAAOA,EAAIwK,KAAK7O,KAAKyH,IASvB3F,EAASoY,EAAMJ,GAEfI,EAAK/a,UAAU2b,MAAQ,SAAgBI,EAAOC,GAK5C,IAHA,IAEIC,EAASpX,KAAKC,IAAIiX,EAAMra,OAAQ,GAC3BJ,EAAI,EAAGA,EAAI2a,EAAQ3a,IAC1B0a,EAAOzY,MAAMjC,GAAKya,EAAMxY,MAAMjC,GAIhC,GAFA0a,EAAOta,OAASua,EAEZF,EAAMra,QAAU,EAGlB,OAFAqa,EAAMxY,MAAM,GAAK,OACjBwY,EAAMra,OAAS,GAKjB,IAAIwa,EAAOH,EAAMxY,MAAM,GAGvB,IAFAyY,EAAOzY,MAAMyY,EAAOta,UAhBT,QAgBqBwa,EAE3B5a,EAAI,GAAIA,EAAIya,EAAMra,OAAQJ,IAAK,CAClC,IAAIa,EAAwB,EAAjB4Z,EAAMxY,MAAMjC,GACvBya,EAAMxY,MAAMjC,EAAI,KApBP,QAoBea,IAAgB,EAAM+Z,IAAS,GACvDA,EAAO/Z,EAET+Z,KAAU,GACVH,EAAMxY,MAAMjC,EAAI,IAAM4a,EACT,IAATA,GAAcH,EAAMra,OAAS,GAC/Bqa,EAAMra,QAAU,GAEhBqa,EAAMra,QAAU,GAIpBqZ,EAAK/a,UAAU4b,MAAQ,SAAgB1W,GAErCA,EAAI3B,MAAM2B,EAAIxD,QAAU,EACxBwD,EAAI3B,MAAM2B,EAAIxD,OAAS,GAAK,EAC5BwD,EAAIxD,QAAU,EAId,IADA,IAAI2G,EAAK,EACA/G,EAAI,EAAGA,EAAI4D,EAAIxD,OAAQJ,IAAK,CACnC,IAAIyE,EAAmB,EAAfb,EAAI3B,MAAMjC,GAClB+G,GAAU,IAAJtC,EACNb,EAAI3B,MAAMjC,GAAU,SAAL+G,EACfA,EAAS,GAAJtC,GAAasC,EAAK,SAAa,GAUtC,OANkC,IAA9BnD,EAAI3B,MAAM2B,EAAIxD,OAAS,KACzBwD,EAAIxD,SAC8B,IAA9BwD,EAAI3B,MAAM2B,EAAIxD,OAAS,IACzBwD,EAAIxD,UAGDwD,GASTvC,EAASqY,EAAML,GAQfhY,EAASsY,EAAMN,GASfhY,EAASuY,EAAQP,GAEjBO,EAAOlb,UAAU4b,MAAQ,SAAgB1W,GAGvC,IADA,IAAIqC,EAAQ,EACHjG,EAAI,EAAGA,EAAI4D,EAAIxD,OAAQJ,IAAK,CACnC,IAAImI,EAA0B,IAAL,EAAfvE,EAAI3B,MAAMjC,IAAiBiG,EACjCc,EAAU,SAALoB,EACTA,KAAQ,GAERvE,EAAI3B,MAAMjC,GAAK+G,EACfd,EAAQkC,EAKV,OAHc,IAAVlC,IACFrC,EAAI3B,MAAM2B,EAAIxD,UAAY6F,GAErBrC,GAITjC,EAAGmY,OAAS,SAAgBR,GAE1B,GAAIN,EAAOM,GAAO,OAAON,EAAOM,GAEhC,IAAIO,EACJ,GAAa,SAATP,EACFO,EAAQ,IAAIJ,OACP,GAAa,SAATH,EACTO,EAAQ,IAAIH,OACP,GAAa,SAATJ,EACTO,EAAQ,IAAIF,MACP,IAAa,WAATL,EAGT,MAAM,IAAIlY,MAAM,iBAAmBkY,GAFnCO,EAAQ,IAAID,EAMd,OAFAZ,EAAOM,GAAQO,EAERA,GAkBTtC,EAAI7Y,UAAU+Z,SAAW,SAAmB3R,GAC1C7F,EAAsB,IAAf6F,EAAE9E,SAAgB,iCACzBf,EAAO6F,EAAE5E,IAAK,oCAGhBqV,EAAI7Y,UAAU4Z,SAAW,SAAmBxR,EAAGzD,GAC7CpC,EAAqC,KAA7B6F,EAAE9E,SAAWqB,EAAErB,UAAiB,iCACxCf,EAAO6F,EAAE5E,KAAO4E,EAAE5E,MAAQmB,EAAEnB,IAC1B,oCAGJqV,EAAI7Y,UAAUsb,KAAO,SAAelT,GAClC,OAAIvH,KAAKsa,MAActa,KAAKsa,MAAMM,QAAQrT,GAAG6Q,UAAUpY,MAChDuH,EAAEkO,KAAKzV,KAAKiS,GAAGmG,UAAUpY,OAGlCgY,EAAI7Y,UAAUqK,IAAM,SAAcjC,GAChC,OAAIA,EAAEV,SACGU,EAAExB,QAGJ/F,KAAKiS,EAAEpH,IAAItD,GAAG6Q,UAAUpY,OAGjCgY,EAAI7Y,UAAUyL,IAAM,SAAcrD,EAAGzD,GACnC9D,KAAK+Y,SAASxR,EAAGzD,GAEjB,IAAIkE,EAAMT,EAAEqD,IAAI9G,GAIhB,OAHIkE,EAAIvD,IAAIzE,KAAKiS,IAAM,GACrBjK,EAAI2C,KAAK3K,KAAKiS,GAETjK,EAAIoQ,UAAUpY,OAGvBgY,EAAI7Y,UAAUuL,KAAO,SAAenD,EAAGzD,GACrC9D,KAAK+Y,SAASxR,EAAGzD,GAEjB,IAAIkE,EAAMT,EAAEmD,KAAK5G,GAIjB,OAHIkE,EAAIvD,IAAIzE,KAAKiS,IAAM,GACrBjK,EAAI2C,KAAK3K,KAAKiS,GAETjK,GAGTgQ,EAAI7Y,UAAU0L,IAAM,SAActD,EAAGzD,GACnC9D,KAAK+Y,SAASxR,EAAGzD,GAEjB,IAAIkE,EAAMT,EAAEsD,IAAI/G,GAIhB,OAHIkE,EAAIkP,KAAK,GAAK,GAChBlP,EAAI0C,KAAK1K,KAAKiS,GAETjK,EAAIoQ,UAAUpY,OAGvBgY,EAAI7Y,UAAUwL,KAAO,SAAepD,EAAGzD,GACrC9D,KAAK+Y,SAASxR,EAAGzD,GAEjB,IAAIkE,EAAMT,EAAEoD,KAAK7G,GAIjB,OAHIkE,EAAIkP,KAAK,GAAK,GAChBlP,EAAI0C,KAAK1K,KAAKiS,GAETjK,GAGTgQ,EAAI7Y,UAAU0Z,IAAM,SAActR,EAAGlD,GAEnC,OADArE,KAAKkZ,SAAS3R,GACPvH,KAAKya,KAAKlT,EAAE+M,MAAMjQ,KAG3B2T,EAAI7Y,UAAU0P,KAAO,SAAetH,EAAGzD,GAErC,OADA9D,KAAK+Y,SAASxR,EAAGzD,GACV9D,KAAKya,KAAKlT,EAAEsH,KAAK/K,KAG1BkU,EAAI7Y,UAAU0E,IAAM,SAAc0D,EAAGzD,GAEnC,OADA9D,KAAK+Y,SAASxR,EAAGzD,GACV9D,KAAKya,KAAKlT,EAAE1D,IAAIC,KAGzBkU,EAAI7Y,UAAUmU,KAAO,SAAe/L,GAClC,OAAOvH,KAAK6O,KAAKtH,EAAGA,EAAExB,UAGxBiS,EAAI7Y,UAAUkU,IAAM,SAAc9L,GAChC,OAAOvH,KAAK6D,IAAI0D,EAAGA,IAGrByQ,EAAI7Y,UAAUka,KAAO,SAAe9R,GAClC,GAAIA,EAAEV,SAAU,OAAOU,EAAExB,QAEzB,IAAIuV,EAAOtb,KAAKiS,EAAE6D,MAAM,GAIxB,GAHApU,EAAO4Z,EAAO,IAAM,GAGP,IAATA,EAAY,CACd,IAAI1V,EAAM5F,KAAKiS,EAAErH,IAAI,IAAIxI,EAAG,IAAI0R,OAAO,GACvC,OAAO9T,KAAK4F,IAAI2B,EAAG3B,GAQrB,IAFA,IAAI4N,EAAIxT,KAAKiS,EAAE4C,KAAK,GAChBlU,EAAI,GACA6S,EAAE3M,UAA2B,IAAf2M,EAAEsC,MAAM,IAC5BnV,IACA6S,EAAEM,OAAO,GAEXpS,GAAQ8R,EAAE3M,UAEV,IAAI0U,EAAM,IAAInZ,EAAG,GAAG6V,MAAMjY,MACtBwb,EAAOD,EAAIhC,SAIXkC,EAAOzb,KAAKiS,EAAE4C,KAAK,GAAGf,OAAO,GAC7B4H,EAAI1b,KAAKiS,EAAEtJ,YAGf,IAFA+S,EAAI,IAAItZ,EAAG,EAAIsZ,EAAIA,GAAGzD,MAAMjY,MAEW,IAAhCA,KAAK4F,IAAI8V,EAAGD,GAAMhX,IAAI+W,IAC3BE,EAAEjD,QAAQ+C,GAOZ,IAJA,IAAIpY,EAAIpD,KAAK4F,IAAI8V,EAAGlI,GAChBhQ,EAAIxD,KAAK4F,IAAI2B,EAAGiM,EAAEoB,KAAK,GAAGd,OAAO,IACjCrL,EAAIzI,KAAK4F,IAAI2B,EAAGiM,GAChBvB,EAAItR,EACc,IAAf8H,EAAEhE,IAAI8W,IAAY,CAEvB,IADA,IAAIvB,EAAMvR,EACDhI,EAAI,EAAoB,IAAjBuZ,EAAIvV,IAAI8W,GAAY9a,IAClCuZ,EAAMA,EAAIf,SAEZvX,EAAOjB,EAAIwR,GACX,IAAInO,EAAI9D,KAAK4F,IAAIxC,EAAG,IAAIhB,EAAG,GAAGqR,OAAOxB,EAAIxR,EAAI,IAE7C+C,EAAIA,EAAEsV,OAAOhV,GACbV,EAAIU,EAAEmV,SACNxQ,EAAIA,EAAEqQ,OAAO1V,GACb6O,EAAIxR,EAGN,OAAO+C,GAGTwU,EAAI7Y,UAAUgY,KAAO,SAAe5P,GAClC,IAAIoU,EAAMpU,EAAEuP,OAAO9W,KAAKiS,GACxB,OAAqB,IAAjB0J,EAAIlZ,UACNkZ,EAAIlZ,SAAW,EACRzC,KAAKya,KAAKkB,GAAKpC,UAEfvZ,KAAKya,KAAKkB,IAIrB3D,EAAI7Y,UAAUyG,IAAM,SAAc2B,EAAGlD,GACnC,GAAIA,EAAIwC,SAAU,OAAO,IAAIzE,EAAG,GAAG6V,MAAMjY,MACzC,GAAoB,IAAhBqE,EAAI6S,KAAK,GAAU,OAAO3P,EAAExB,QAEhC,IACI6V,EAAM,IAAIhc,MAAM,IACpBgc,EAAI,GAAK,IAAIxZ,EAAG,GAAG6V,MAAMjY,MACzB4b,EAAI,GAAKrU,EACT,IAAK,IAAI9G,EAAI,EAAGA,EAAImb,EAAI/a,OAAQJ,IAC9Bmb,EAAInb,GAAKT,KAAK6D,IAAI+X,EAAInb,EAAI,GAAI8G,GAGhC,IAAIS,EAAM4T,EAAI,GACVC,EAAU,EACVC,EAAa,EACbnY,EAAQU,EAAIsE,YAAc,GAK9B,IAJc,IAAVhF,IACFA,EAAQ,IAGLlD,EAAI4D,EAAIxD,OAAS,EAAGJ,GAAK,EAAGA,IAAK,CAEpC,IADA,IAAIgF,EAAOpB,EAAI3B,MAAMjC,GACZwE,EAAItB,EAAQ,EAAGsB,GAAK,EAAGA,IAAK,CACnC,IAAIuF,EAAO/E,GAAQR,EAAK,EACpB+C,IAAQ4T,EAAI,KACd5T,EAAMhI,KAAKqT,IAAIrL,IAGL,IAARwC,GAAyB,IAAZqR,GAKjBA,IAAY,EACZA,GAAWrR,GA9BE,MA+BbsR,GACwC,IAANrb,GAAiB,IAANwE,KAE7C+C,EAAMhI,KAAK6D,IAAImE,EAAK4T,EAAIC,IACxBC,EAAa,EACbD,EAAU,IAXRC,EAAa,EAajBnY,EAAQ,GAGV,OAAOqE,GAGTgQ,EAAI7Y,UAAUgZ,UAAY,SAAoB9T,GAC5C,IAAIb,EAAIa,EAAIoR,KAAKzV,KAAKiS,GAEtB,OAAOzO,IAAMa,EAAMb,EAAEuC,QAAUvC,GAGjCwU,EAAI7Y,UAAUmZ,YAAc,SAAsBjU,GAChD,IAAI2D,EAAM3D,EAAI0B,QAEd,OADAiC,EAAIrF,IAAM,KACHqF,GAOT5F,EAAG2Z,KAAO,SAAe1X,GACvB,OAAO,IAAImW,EAAKnW,IAmBlBvC,EAAS0Y,EAAMxC,GAEfwC,EAAKrb,UAAUgZ,UAAY,SAAoB9T,GAC7C,OAAOrE,KAAKya,KAAKpW,EAAIiQ,MAAMtU,KAAKqI,SAGlCmS,EAAKrb,UAAUmZ,YAAc,SAAsBjU,GACjD,IAAIb,EAAIxD,KAAKya,KAAKpW,EAAIR,IAAI7D,KAAK0a,OAE/B,OADAlX,EAAEb,IAAM,KACDa,GAGTgX,EAAKrb,UAAU0P,KAAO,SAAetH,EAAGzD,GACtC,GAAIyD,EAAEV,UAAY/C,EAAE+C,SAGlB,OAFAU,EAAE7E,MAAM,GAAK,EACb6E,EAAE1G,OAAS,EACJ0G,EAGT,IAAIkB,EAAIlB,EAAEsH,KAAK/K,GACXV,EAAIqF,EAAEiM,MAAM1U,KAAKqI,OAAOxE,IAAI7D,KAAK2a,MAAMlG,OAAOzU,KAAKqI,OAAOxE,IAAI7D,KAAKiS,GACnE+J,EAAIvT,EAAEkC,KAAKvH,GAAG0Q,OAAO9T,KAAKqI,OAC1BL,EAAMgU,EAQV,OANIA,EAAEvX,IAAIzE,KAAKiS,IAAM,EACnBjK,EAAMgU,EAAErR,KAAK3K,KAAKiS,GACT+J,EAAE9E,KAAK,GAAK,IACrBlP,EAAMgU,EAAEtR,KAAK1K,KAAKiS,IAGbjK,EAAIoQ,UAAUpY,OAGvBwa,EAAKrb,UAAU0E,IAAM,SAAc0D,EAAGzD,GACpC,GAAIyD,EAAEV,UAAY/C,EAAE+C,SAAU,OAAO,IAAIzE,EAAG,GAAGgW,UAAUpY,MAEzD,IAAIyI,EAAIlB,EAAE1D,IAAIC,GACVV,EAAIqF,EAAEiM,MAAM1U,KAAKqI,OAAOxE,IAAI7D,KAAK2a,MAAMlG,OAAOzU,KAAKqI,OAAOxE,IAAI7D,KAAKiS,GACnE+J,EAAIvT,EAAEkC,KAAKvH,GAAG0Q,OAAO9T,KAAKqI,OAC1BL,EAAMgU,EAOV,OANIA,EAAEvX,IAAIzE,KAAKiS,IAAM,EACnBjK,EAAMgU,EAAErR,KAAK3K,KAAKiS,GACT+J,EAAE9E,KAAK,GAAK,IACrBlP,EAAMgU,EAAEtR,KAAK1K,KAAKiS,IAGbjK,EAAIoQ,UAAUpY,OAGvBwa,EAAKrb,UAAUgY,KAAO,SAAe5P,GAGnC,OADUvH,KAAKya,KAAKlT,EAAEuP,OAAO9W,KAAKiS,GAAGpO,IAAI7D,KAAK6V,KACnCuC,UAAUpY,OAn3GzB,CAq3GoCwB,EAAQxB,Q,wDCn3G5C,IAAMsnB,EAAW7lB,EAEjB6lB,EAASE,IAAMxkB,EAAQ,MACvBskB,EAASG,IAAMzkB,EAAQ,O,kCCHvB,IAAMlB,EAAWkB,EAAQ,KACnBH,EAASG,EAAQ,MAAgBH,OACjC0Z,EAAOvZ,EAAQ,MAGfwkB,EAAMxkB,EAAQ,MAEpB,SAAS0kB,EAAWxG,GAClBlhB,KAAKwc,IAAM,MACXxc,KAAK+Z,KAAOmH,EAAOnH,KACnB/Z,KAAKkhB,OAASA,EAGdlhB,KAAK2nB,KAAO,IAAIC,EAChB5nB,KAAK2nB,KAAK/kB,MAAMse,EAAO/C,MAUzB,SAASyJ,EAAQnL,GACfF,EAAKld,KAAKW,KAAM,MAAOyc,GAmHzB,SAASoL,EAAIxjB,GACX,OAAIA,EAAM,GACD,IAAMA,EAENA,EAhIX7C,EAAOC,QAAUimB,EAEjBA,EAAWvoB,UAAU2oB,OAAS,SAAgB3H,EAAMsB,GAClD,OAAOzhB,KAAK2nB,KAAKjG,QAAQvB,EAAMsB,GAAUwB,QAQ3CnhB,EAAS8lB,EAASrL,GAElBqL,EAAQzoB,UAAU+iB,iBAAmB,SAAyBrF,EAC5DiF,EACAG,EACAJ,GACA,IAAMkG,EA2OR,SAAmBlL,EAAKiF,EAAWG,EAAKR,GACtC,IAAIzZ,EAEQ,UAAR6U,EACFA,EAAM,MACS,UAARA,IACPA,EAAM,OAER,GAAI2K,EAAIxD,UAAUgE,eAAenL,GAC/B7U,EAAMwf,EAAIxD,UAAUnH,OACjB,IAAmB,kBAARA,IAA2B,EAANA,KAAaA,EAGhD,OAAO4E,EAASR,MAAM,gBAAkBpE,GAFxC7U,EAAM6U,EAIR,GAAI7U,GAAO,GACT,OAAOyZ,EAASR,MAAM,wCAEnBa,IACH9Z,GAAO,IAIT,OAFAA,GAAQwf,EAAIzD,eAAe9B,GAAO,cAAgB,EAhQ/BgG,CAAUpL,EAAKiF,EAAWG,EAAKjiB,KAAKyhB,UAGvD,GAAII,EAAQhhB,OAAS,IAAM,CACzB,IAAMqnB,EAASrlB,EAAOslB,MAAM,GAG5B,OAFAD,EAAO,GAAKH,EACZG,EAAO,GAAKrG,EAAQhhB,OACbb,KAAKwhB,qBAAqB,CAAE0G,EAAQrG,IAM7C,IADA,IAAIuG,EAAY,EACP3nB,EAAIohB,EAAQhhB,OAAQJ,GAAK,IAAOA,IAAM,EAC7C2nB,IAEF,IAAMF,EAASrlB,EAAOslB,MAAM,EAAQC,GACpCF,EAAO,GAAKH,EACZG,EAAO,GAAK,IAAOE,EAEnB,IAAK,IAAI3nB,EAAI,EAAI2nB,EAAWnjB,EAAI4c,EAAQhhB,OAAQoE,EAAI,EAAGxE,IAAKwE,IAAM,EAChEijB,EAAOznB,GAAS,IAAJwE,EAEd,OAAOjF,KAAKwhB,qBAAqB,CAAE0G,EAAQrG,KAG7C+F,EAAQzoB,UAAUkjB,WAAa,SAAmB3e,EAAKmZ,GACrD,GAAY,WAARA,EACF,OAAO7c,KAAKwhB,qBAAqB,CAAe,EAAb9d,EAAI2kB,OAAY3kB,EAAIyc,OAClD,GAAY,WAARtD,EAAkB,CAE3B,IADA,IAAMyL,EAAMzlB,EAAOslB,MAAmB,EAAbzkB,EAAI7C,QACpBJ,EAAI,EAAGA,EAAIiD,EAAI7C,OAAQJ,IAC9B6nB,EAAIC,cAAc7kB,EAAIL,WAAW5C,GAAQ,EAAJA,GAEvC,OAAOT,KAAKwhB,qBAAqB8G,GAC5B,MAAY,WAARzL,EACJ7c,KAAK2iB,UAAUjf,GAIb1D,KAAKwhB,qBAAqB9d,GAHxB1D,KAAKyhB,SAASR,MAAM,kEAIZ,aAARpE,EACJ7c,KAAK4iB,YAAYlf,GAQf1D,KAAKwhB,qBAAqB9d,GAPxB1D,KAAKyhB,SAASR,MAAM,qNAQpB,OAAOP,KAAK7D,IAEJ,YAARA,EADF7c,KAAKwhB,qBAAqB9d,GAI1B1D,KAAKyhB,SAASR,MAAM,4BAA8BpE,EAC9B,iBAI/B+K,EAAQzoB,UAAUmjB,aAAe,SAAqBkG,EAAIC,EAAQC,GAChE,GAAkB,kBAAPF,EAAiB,CAC1B,IAAKC,EACH,OAAOzoB,KAAKyhB,SAASR,MAAM,+CAC7B,IAAKwH,EAAOT,eAAeQ,GACzB,OAAOxoB,KAAKyhB,SAASR,MAAM,iCAC7BuH,EAAKC,EAAOD,GAAI1N,MAAM,WACtB,IAAK,IAAIra,EAAI,EAAGA,EAAI+nB,EAAG3nB,OAAQJ,IAC7B+nB,EAAG/nB,IAAM,OACN,GAAIb,MAAMQ,QAAQooB,GAAK,CAC5BA,EAAKA,EAAG7J,QACR,IAAK,IAAIle,EAAI,EAAGA,EAAI+nB,EAAG3nB,OAAQJ,IAC7B+nB,EAAG/nB,IAAM,EAGb,IAAKb,MAAMQ,QAAQooB,GACjB,OAAOxoB,KAAKyhB,SAASR,MAAM,kDACUkB,KAAKC,UAAUoG,IAGtD,IAAKE,EAAU,CACb,GAAIF,EAAG,IAAM,GACX,OAAOxoB,KAAKyhB,SAASR,MAAM,+BAC7BuH,EAAGG,OAAO,EAAG,EAAW,GAARH,EAAG,GAAUA,EAAG,IAKlC,IADA,IAAIviB,EAAO,EACFxF,EAAI,EAAGA,EAAI+nB,EAAG3nB,OAAQJ,IAAK,CAClC,IAAImoB,EAAQJ,EAAG/nB,GACf,IAAKwF,IAAQ2iB,GAAS,IAAMA,IAAU,EACpC3iB,IAKJ,IAFA,IAAM4iB,EAAQhmB,EAAOslB,MAAMliB,GACvB8Z,EAAS8I,EAAMhoB,OAAS,EACnBJ,EAAI+nB,EAAG3nB,OAAS,EAAGJ,GAAK,EAAGA,IAAK,CACvC,IAAImoB,EAAQJ,EAAG/nB,GAEf,IADAooB,EAAM9I,KAAoB,IAAR6I,GACVA,IAAU,GAAK,GACrBC,EAAM9I,KAAY,IAAgB,IAAR6I,EAG9B,OAAO5oB,KAAKwhB,qBAAqBqH,IAUnCjB,EAAQzoB,UAAUojB,YAAc,SAAoBuG,EAAMjM,GACxD,IAAInZ,EACEqlB,EAAO,IAAI7pB,KAAK4pB,GA0BtB,MAxBY,YAARjM,EACFnZ,EAAM,CACJmkB,EAAIkB,EAAKC,kBACTnB,EAAIkB,EAAKE,cAAgB,GACzBpB,EAAIkB,EAAKG,cACTrB,EAAIkB,EAAKI,eACTtB,EAAIkB,EAAKK,iBACTvB,EAAIkB,EAAKM,iBACT,KACApG,KAAK,IACU,YAARpG,EACTnZ,EAAM,CACJmkB,EAAIkB,EAAKC,iBAAmB,KAC5BnB,EAAIkB,EAAKE,cAAgB,GACzBpB,EAAIkB,EAAKG,cACTrB,EAAIkB,EAAKI,eACTtB,EAAIkB,EAAKK,iBACTvB,EAAIkB,EAAKM,iBACT,KACApG,KAAK,IAEPjjB,KAAKyhB,SAASR,MAAM,YAAcpE,EAAM,8BAGnC7c,KAAKqiB,WAAW3e,EAAK,WAG9BkkB,EAAQzoB,UAAUqjB,YAAc,WAC9B,OAAOxiB,KAAKwhB,qBAAqB,KAGnCoG,EAAQzoB,UAAUsjB,WAAa,SAAmBpe,EAAKokB,GACrD,GAAmB,kBAARpkB,EAAkB,CAC3B,IAAKokB,EACH,OAAOzoB,KAAKyhB,SAASR,MAAM,+CAC7B,IAAKwH,EAAOT,eAAe3jB,GACzB,OAAOrE,KAAKyhB,SAASR,MAAM,+BACAkB,KAAKC,UAAU/d,IAE5CA,EAAMokB,EAAOpkB,GAIf,GAAmB,kBAARA,IAAqBxB,EAAOymB,SAASjlB,GAAM,CACpD,IAAMklB,EAAWllB,EAAIU,WAChBV,EAAImlB,MAAsB,IAAdD,EAAS,IACxBA,EAASE,QAAQ,GAEnBplB,EAAMxB,EAAOhD,KAAK0pB,GAGpB,GAAI1mB,EAAOymB,SAASjlB,GAAM,CACxB,IAAI4B,EAAO5B,EAAIxD,OACI,IAAfwD,EAAIxD,QACNoF,IAEF,IAAMQ,EAAM5D,EAAOslB,MAAMliB,GAIzB,OAHA5B,EAAIwB,KAAKY,GACU,IAAfpC,EAAIxD,SACN4F,EAAI,GAAK,GACJzG,KAAKwhB,qBAAqB/a,GAGnC,GAAIpC,EAAM,IACR,OAAOrE,KAAKwhB,qBAAqBnd,GAEnC,GAAIA,EAAM,IACR,OAAOrE,KAAKwhB,qBAAqB,CAAC,EAAGnd,IAGvC,IADA,IAAI4B,EAAO,EACFxF,EAAI4D,EAAK5D,GAAK,IAAOA,IAAM,EAClCwF,IAGF,IADA,IAAMQ,EAAM,IAAI7G,MAAMqG,GACbxF,EAAIgG,EAAI5F,OAAS,EAAGJ,GAAK,EAAGA,IACnCgG,EAAIhG,GAAW,IAAN4D,EACTA,IAAQ,EAMV,OAJY,IAAToC,EAAI,IACLA,EAAIgjB,QAAQ,GAGPzpB,KAAKwhB,qBAAqB3e,EAAOhD,KAAK4G,KAG/CmhB,EAAQzoB,UAAUujB,YAAc,SAAoB3iB,GAClD,OAAOC,KAAKwhB,qBAAqBzhB,EAAQ,IAAO,IAGlD6nB,EAAQzoB,UAAUgiB,KAAO,SAAaD,EAAQ/D,GAG5C,MAFsB,oBAAX+D,IACTA,EAASA,EAAO/D,IACX+D,EAAOwI,YAAY,OAAO/B,MAGnCC,EAAQzoB,UAAUyiB,aAAe,SAAqB+H,EAAYlI,EAAUhF,GAC1E,IACIhc,EADEic,EAAQ1c,KAAK2c,WAEnB,GAAyB,OAArBD,EAAe,QACjB,OAAO,EAET,IAAMyD,EAAOwJ,EAAW1G,OAIxB,QAH4BjI,IAAxB0B,EAAMkN,gBACRlN,EAAMkN,cAAgB5pB,KAAK2hB,aAAajF,EAAe,QAAG+E,EAAUhF,GAAQwG,QAE1E9C,EAAKtf,SAAW6b,EAAMkN,cAAc/oB,OACtC,OAAO,EAET,IAAKJ,EAAE,EAAGA,EAAI0f,EAAKtf,OAAQJ,IACzB,GAAI0f,EAAK1f,KAAOic,EAAMkN,cAAcnpB,GAClC,OAAO,EAEX,OAAO,I,kCCvQT,IAAM4mB,EAAW5lB,EAEjB4lB,EAASG,IAAMxkB,EAAQ,MACvBqkB,EAASI,IAAMzkB,EAAQ,O,kCCHvB,IAAMlB,EAAWkB,EAAQ,KAEnBkkB,EAASlkB,EAAQ,MACjBmZ,EAAgBnZ,EAAQ,KAAkBmZ,cAC1CI,EAAOvZ,EAAQ,MAGfwkB,EAAMxkB,EAAQ,MAEpB,SAAS6mB,EAAW3I,GAClBlhB,KAAKwc,IAAM,MACXxc,KAAK+Z,KAAOmH,EAAOnH,KACnB/Z,KAAKkhB,OAASA,EAGdlhB,KAAK2nB,KAAO,IAAIC,EAChB5nB,KAAK2nB,KAAK/kB,MAAMse,EAAO/C,MAczB,SAASyJ,EAAQnL,GACfF,EAAKld,KAAKW,KAAM,MAAOyc,GA8OzB,SAASqN,EAAaxB,EAAKyB,GACzB,IAAIlN,EAAMyL,EAAI0B,UAAUD,GACxB,GAAIzB,EAAI9I,QAAQ3C,GACd,OAAOA,EAET,IAAMoF,EAAMuF,EAAI9D,SAAS7G,GAAO,GAC1BiF,EAA6B,KAAV,GAANjF,GAGnB,GAAqB,MAAV,GAANA,GAAsB,CACzB,IAAIoN,EAAMpN,EAEV,IADAA,EAAM,EACkB,OAAV,IAANoN,IAAsB,CAE5B,GADAA,EAAM3B,EAAI0B,UAAUD,GAChBzB,EAAI9I,QAAQyK,GACd,OAAOA,EAETpN,IAAQ,EACRA,GAAa,IAANoN,QAGTpN,GAAO,GAIT,MAAO,CACLoF,IAAKA,EACLH,UAAWA,EACXjF,IAAKA,EACLqN,OANa1C,EAAI3K,IAAIA,IAUzB,SAASsN,EAAa7B,EAAKxG,EAAWiI,GACpC,IAAIhmB,EAAMukB,EAAI0B,UAAUD,GACxB,GAAIzB,EAAI9I,QAAQzb,GACd,OAAOA,EAGT,IAAK+d,GAAqB,MAAR/d,EAChB,OAAO,KAGT,GAAqB,KAAV,IAANA,GAEH,OAAOA,EAIT,IAAMM,EAAY,IAANN,EACZ,GAAIM,EAAM,EACR,OAAOikB,EAAIrH,MAAM,6BAEnBld,EAAM,EACN,IAAK,IAAItD,EAAI,EAAGA,EAAI4D,EAAK5D,IAAK,CAC5BsD,IAAQ,EACR,IAAMkB,EAAIqjB,EAAI0B,UAAUD,GACxB,GAAIzB,EAAI9I,QAAQva,GACd,OAAOA,EACTlB,GAAOkB,EAGT,OAAOlB,EAzTTvC,EAAOC,QAAUooB,EAEjBA,EAAW1qB,UAAUirB,OAAS,SAAgBjK,EAAMnB,GAKlD,OAJK7C,EAAckO,gBAAgBlK,KACjCA,EAAO,IAAIhE,EAAcgE,EAAMnB,IAG1Bhf,KAAK2nB,KAAK5I,QAAQoB,EAAMnB,IAQjCld,EAAS8lB,EAASrL,GAElBqL,EAAQzoB,UAAUogB,SAAW,SAAiB+K,EAAQzN,EAAKK,GACzD,GAAIoN,EAAOC,UACT,OAAO,EAET,IAAM7N,EAAQ4N,EAAO7K,OACf+K,EAAaV,EAAaQ,EAAQ,wBAA0BzN,EAAM,KACxE,OAAIyN,EAAO9K,QAAQgL,GACVA,GAETF,EAAO1K,QAAQlD,GAER8N,EAAW3N,MAAQA,GAAO2N,EAAWN,SAAWrN,GACpD2N,EAAWN,OAAS,OAAUrN,GAAOK,IAG1C0K,EAAQzoB,UAAU2gB,WAAa,SAAmBwK,EAAQzN,EAAKK,GAC7D,IAAMsN,EAAaV,EAAaQ,EAC9B,4BAA8BzN,EAAM,KACtC,GAAIyN,EAAO9K,QAAQgL,GACjB,OAAOA,EAET,IAAIzmB,EAAMomB,EAAaG,EACrBE,EAAW1I,UACX,4BAA8BjF,EAAM,KAGtC,GAAIyN,EAAO9K,QAAQzb,GACjB,OAAOA,EAET,IAAKmZ,GACDsN,EAAW3N,MAAQA,GACnB2N,EAAWN,SAAWrN,GACtB2N,EAAWN,OAAS,OAASrN,EAC/B,OAAOyN,EAAOrJ,MAAM,yBAA2BpE,EAAM,KAGvD,GAAI2N,EAAW1I,WAAqB,OAAR/d,EAC1B,OAAOumB,EAAOG,KAAK1mB,EAAK,6BAA+B8Y,EAAM,KAG/D,IAAMH,EAAQ4N,EAAO7K,OACfzX,EAAMhI,KAAK0qB,cACfJ,EACA,2CAA6CtqB,KAAK6c,IAAM,KAC1D,OAAIyN,EAAO9K,QAAQxX,GACVA,GAETjE,EAAMumB,EAAOvK,OAASrD,EAAMqD,OAC5BuK,EAAO1K,QAAQlD,GACR4N,EAAOG,KAAK1mB,EAAK,6BAA+B8Y,EAAM,OAG/D+K,EAAQzoB,UAAUurB,cAAgB,SAAsBJ,EAAQP,GAC9D,OAAS,CACP,IAAMlN,EAAMiN,EAAaQ,EAAQP,GACjC,GAAIO,EAAO9K,QAAQ3C,GACjB,OAAOA,EACT,IAAM9Y,EAAMomB,EAAaG,EAAQzN,EAAIiF,UAAWiI,GAChD,GAAIO,EAAO9K,QAAQzb,GACjB,OAAOA,EAET,IAAIiE,OAAG,EAOP,GALEA,EADE6U,EAAIiF,WAAqB,OAAR/d,EACbumB,EAAOG,KAAK1mB,GAEZ/D,KAAK0qB,cAAcJ,EAAQP,GAG/BO,EAAO9K,QAAQxX,GACjB,OAAOA,EAET,GAAmB,QAAf6U,EAAIqN,OACN,QAINtC,EAAQzoB,UAAUshB,YAAc,SAAoB6J,EAAQzN,EAAK8N,EAC/D3L,GAEA,IADA,IAAMG,EAAS,IACPmL,EAAOC,WAAW,CACxB,IAAMK,EAAc5qB,KAAKuf,SAAS+K,EAAQ,OAC1C,GAAIA,EAAO9K,QAAQoL,GACjB,OAAOA,EAET,IAAM5iB,EAAM2iB,EAAQP,OAAOE,EAAQ,MAAOtL,GAC1C,GAAIsL,EAAO9K,QAAQxX,IAAQ4iB,EACzB,MACFzL,EAAOnB,KAAKhW,GAEd,OAAOmX,GAGTyI,EAAQzoB,UAAUwhB,WAAa,SAAmB2J,EAAQzN,GACxD,GAAY,WAARA,EAAkB,CACpB,IAAMwL,EAASiC,EAAON,YACtB,OAAIM,EAAO9K,QAAQ6I,GACVA,EACF,CAAEA,OAAQA,EAAQlI,KAAMmK,EAAOtK,OACjC,GAAY,WAARnD,EAAkB,CAC3B,IAAMmD,EAAMsK,EAAOtK,MACnB,GAAIA,EAAInf,OAAS,IAAM,EACrB,OAAOypB,EAAOrJ,MAAM,mDAGtB,IADA,IAAIvd,EAAM,GACDjD,EAAI,EAAGA,EAAIuf,EAAInf,OAAS,EAAGJ,IAClCiD,GAAOmnB,OAAOC,aAAa9K,EAAI+K,aAAiB,EAAJtqB,IAE9C,OAAOiD,EACF,GAAY,WAARmZ,EAAkB,CAC3B,IAAMmO,EAASV,EAAOtK,MAAM5gB,SAAS,SACrC,OAAKY,KAAK2iB,UAAUqI,GAIbA,EAHEV,EAAOrJ,MAAM,0DAIjB,GAAY,WAARpE,EACT,OAAOyN,EAAOtK,MACT,GAAY,YAARnD,EACT,OAAOyN,EAAOtK,MACT,GAAY,aAARnD,EAAoB,CAC7B,IAAMoO,EAAWX,EAAOtK,MAAM5gB,SAAS,SACvC,OAAKY,KAAK4iB,YAAYqI,GAIfA,EAHEX,EAAOrJ,MAAM,4DAIjB,MAAI,OAAOP,KAAK7D,GACdyN,EAAOtK,MAAM5gB,WAEbkrB,EAAOrJ,MAAM,4BAA8BpE,EAAM,iBAI5D+K,EAAQzoB,UAAUyhB,aAAe,SAAqB0J,EAAQ7B,EAAQC,GAKpE,IAJA,IAAIvJ,EACE+L,EAAc,GAChBtC,EAAQ,EACRuC,EAAW,GACPb,EAAOC,WAEb3B,IAAU,EACVA,GAAoB,KAFpBuC,EAAWb,EAAON,aAGQ,KAAV,IAAXmB,KACHD,EAAYlN,KAAK4K,GACjBA,EAAQ,GAGG,IAAXuC,GACFD,EAAYlN,KAAK4K,GAEnB,IAAMwC,EAASF,EAAY,GAAK,GAAM,EAChCG,EAASH,EAAY,GAAK,GAOhC,GAJE/L,EADEuJ,EACOwC,EAEA,CAACE,EAAOC,GAAQ/O,OAAO4O,EAAYvM,MAAM,IAEhD8J,EAAQ,CACV,IAAIzO,EAAMyO,EAAOtJ,EAAO8D,KAAK,WACjBjI,IAARhB,IACFA,EAAMyO,EAAOtJ,EAAO8D,KAAK,YACfjI,IAARhB,IACFmF,EAASnF,GAGb,OAAOmF,GAGTyI,EAAQzoB,UAAU0hB,YAAc,SAAoByJ,EAAQzN,GAC1D,IAEIyO,EACAC,EACAC,EACAC,EACAxnB,EACAynB,EAPEhoB,EAAM4mB,EAAOtK,MAAM5gB,WAQzB,GAAY,YAARyd,EACFyO,EAAyB,EAAlB5nB,EAAIib,MAAM,EAAG,GACpB4M,EAAwB,EAAlB7nB,EAAIib,MAAM,EAAG,GACnB6M,EAAwB,EAAlB9nB,EAAIib,MAAM,EAAG,GACnB8M,EAA0B,EAAnB/nB,EAAIib,MAAM,EAAG,IACpB1a,EAA0B,EAApBP,EAAIib,MAAM,GAAI,IACpB+M,EAA0B,EAApBhoB,EAAIib,MAAM,GAAI,QACf,IAAY,YAAR9B,EAYT,OAAOyN,EAAOrJ,MAAM,YAAcpE,EAAM,8BAXxCyO,EAAyB,EAAlB5nB,EAAIib,MAAM,EAAG,GACpB4M,EAAwB,EAAlB7nB,EAAIib,MAAM,EAAG,GACnB6M,EAAwB,EAAlB9nB,EAAIib,MAAM,EAAG,GACnB8M,EAAyB,EAAlB/nB,EAAIib,MAAM,EAAG,GACpB1a,EAAyB,EAAnBP,EAAIib,MAAM,EAAG,IACnB+M,EAA0B,EAApBhoB,EAAIib,MAAM,GAAI,IAElB2M,EADEA,EAAO,GACF,IAAOA,EAEP,KAAOA,EAKlB,OAAOpsB,KAAKysB,IAAIL,EAAMC,EAAM,EAAGC,EAAKC,EAAMxnB,EAAKynB,EAAK,IAGtD9D,EAAQzoB,UAAU2hB,YAAc,WAC9B,OAAO,MAGT8G,EAAQzoB,UAAU4hB,YAAc,SAAoBuJ,GAClD,IAAMtiB,EAAMsiB,EAAON,YACnB,OAAIM,EAAO9K,QAAQxX,GACVA,EAEQ,IAARA,GAGX4f,EAAQzoB,UAAU6hB,WAAa,SAAmBsJ,EAAQ7B,GAExD,IAAMzI,EAAMsK,EAAOtK,MACfhY,EAAM,IAAIkf,EAAOlH,GAKrB,OAHIyI,IACFzgB,EAAMygB,EAAOzgB,EAAI5I,SAAS,MAAQ4I,GAE7BA,GAGT4f,EAAQzoB,UAAUgiB,KAAO,SAAaD,EAAQ/D,GAG5C,MAFsB,oBAAX+D,IACTA,EAASA,EAAO/D,IACX+D,EAAO0K,YAAY,OAAOjE,O,qBC1QnCnmB,EAAOC,SAAWuB,EAAQ,OAAsBA,EAAQ,IAARA,EAAoB,WAClE,OAA4G,GAArGrD,OAAO+mB,eAAe1jB,EAAQ,KAARA,CAAyB,OAAQ,IAAK,CAAE6oB,IAAK,WAAc,OAAO,KAAQtkB,M,qBCDzG,IAAI6c,EAAWphB,EAAQ,KACnB6iB,EAAW7iB,EAAQ,KAAa6iB,SAEhCiG,EAAK1H,EAASyB,IAAazB,EAASyB,EAASkG,eACjDvqB,EAAOC,QAAU,SAAUR,GACzB,OAAO6qB,EAAKjG,EAASkG,cAAc9qB,GAAM,K,qBCL3C,IAAImlB,EAAMpjB,EAAQ,KACdgpB,EAAYhpB,EAAQ,KACpBipB,EAAejpB,EAAQ,KAARA,EAA6B,GAC5CoiB,EAAWpiB,EAAQ,KAARA,CAAyB,YAExCxB,EAAOC,QAAU,SAAUyqB,EAAQC,GACjC,IAGI7O,EAHA4I,EAAI8F,EAAUE,GACdzrB,EAAI,EACJ0e,EAAS,GAEb,IAAK7B,KAAO4I,EAAO5I,GAAO8H,GAAUgB,EAAIF,EAAG5I,IAAQ6B,EAAOnB,KAAKV,GAE/D,KAAO6O,EAAMtrB,OAASJ,GAAO2lB,EAAIF,EAAG5I,EAAM6O,EAAM1rB,SAC7CwrB,EAAa9M,EAAQ7B,IAAQ6B,EAAOnB,KAAKV,IAE5C,OAAO6B,I,qBCdT,IAAIiN,EAAMppB,EAAQ,MAElBxB,EAAOC,QAAU9B,OAAO,KAAK0sB,qBAAqB,GAAK1sB,OAAS,SAAUsB,GACxE,MAAkB,UAAXmrB,EAAInrB,GAAkBA,EAAG6Z,MAAM,IAAMnb,OAAOsB,K,qBCHrD,IAAIqrB,EAAYtpB,EAAQ,MACpBiB,EAAMD,KAAKC,IACfzC,EAAOC,QAAU,SAAUR,GACzB,OAAOA,EAAK,EAAIgD,EAAIqoB,EAAUrrB,GAAK,kBAAoB,I,kCCHzD,IAAIsrB,EAAMvpB,EAAQ,KAARA,EAAwB,GAGlCA,EAAQ,KAARA,CAA0B6nB,OAAQ,UAAU,SAAU2B,GACpDxsB,KAAKysB,GAAK5B,OAAO2B,GACjBxsB,KAAK0sB,GAAK,KAET,WACD,IAEIC,EAFAzG,EAAIlmB,KAAKysB,GACTtpB,EAAQnD,KAAK0sB,GAEjB,OAAIvpB,GAAS+iB,EAAErlB,OAAe,CAAEd,WAAOib,EAAWla,MAAM,IACxD6rB,EAAQJ,EAAIrG,EAAG/iB,GACfnD,KAAK0sB,IAAMC,EAAM9rB,OACV,CAAEd,MAAO4sB,EAAO7rB,MAAM,Q,kCCd/B,IAAI0lB,EAAUxjB,EAAQ,KAClB4pB,EAAU5pB,EAAQ,KAClB6pB,EAAW7pB,EAAQ,MACnB8pB,EAAO9pB,EAAQ,KACf+pB,EAAY/pB,EAAQ,KACpBgqB,EAAchqB,EAAQ,MACtBiqB,EAAiBjqB,EAAQ,MACzBkqB,EAAiBlqB,EAAQ,MACzBmqB,EAAWnqB,EAAQ,IAARA,CAAkB,YAC7BoqB,IAAU,GAAG1O,MAAQ,QAAU,GAAGA,QAKlC2O,EAAa,WAAc,OAAOrtB,MAEtCwB,EAAOC,QAAU,SAAU6rB,EAAMC,EAAMC,EAAalsB,EAAMmsB,EAASC,EAAQC,GACzEX,EAAYQ,EAAaD,EAAMjsB,GAC/B,IAeI+a,EAASiB,EAAKsQ,EAfdC,EAAY,SAAUC,GACxB,IAAKV,GAASU,KAAQC,EAAO,OAAOA,EAAMD,GAC1C,OAAQA,GACN,IAVK,OAWL,IAVO,SAUM,OAAO,WAAoB,OAAO,IAAIN,EAAYxtB,KAAM8tB,IACrE,OAAO,WAAqB,OAAO,IAAIN,EAAYxtB,KAAM8tB,KAEzDzH,EAAMkH,EAAO,YACbS,EAdO,UAcMP,EACbQ,GAAa,EACbF,EAAQT,EAAKnuB,UACb+uB,EAAUH,EAAMZ,IAAaY,EAnBjB,eAmBuCN,GAAWM,EAAMN,GACpEU,EAAWD,GAAWL,EAAUJ,GAChCW,EAAWX,EAAWO,EAAwBH,EAAU,WAArBM,OAAkCnT,EACrEqT,EAAqB,SAARd,GAAkBQ,EAAMO,SAAqBJ,EAwB9D,GArBIG,IACFT,EAAoBV,EAAemB,EAAWhvB,KAAK,IAAIiuB,OAC7B3tB,OAAOR,WAAayuB,EAAkBtsB,OAE9D2rB,EAAeW,EAAmBvH,GAAK,GAElCG,GAAiD,mBAA/BoH,EAAkBT,IAAyBL,EAAKc,EAAmBT,EAAUE,IAIpGW,GAAcE,GAjCP,WAiCkBA,EAAQnU,OACnCkU,GAAa,EACbE,EAAW,WAAoB,OAAOD,EAAQ7uB,KAAKW,QAG/CwmB,IAAWmH,IAAYP,IAASa,GAAeF,EAAMZ,IACzDL,EAAKiB,EAAOZ,EAAUgB,GAGxBpB,EAAUQ,GAAQY,EAClBpB,EAAU1G,GAAOgH,EACbI,EAMF,GALApR,EAAU,CACRoM,OAAQuF,EAAaG,EAAWN,EA9CzB,UA+CPnP,KAAMgP,EAASS,EAAWN,EAhDrB,QAiDLS,QAASF,GAEPT,EAAQ,IAAKrQ,KAAOjB,EAChBiB,KAAOyQ,GAAQlB,EAASkB,EAAOzQ,EAAKjB,EAAQiB,SAC7CsP,EAAQA,EAAQ2B,EAAI3B,EAAQlsB,GAAK0sB,GAASa,GAAaV,EAAMlR,GAEtE,OAAOA,I,qBCnET7a,EAAOC,QAAUuB,EAAQ,M,qBCCzB,IAAIwrB,EAAQxrB,EAAQ,MAChByrB,EAAazrB,EAAQ,MAAoBsZ,OAAO,SAAU,aAE9D7a,EAAQT,EAAIrB,OAAO+uB,qBAAuB,SAA6BxI,GACrE,OAAOsI,EAAMtI,EAAGuI,K,qBCLlB,IAAIE,EAAM3rB,EAAQ,KACd4rB,EAAa5rB,EAAQ,KACrBgpB,EAAYhpB,EAAQ,KACpB6rB,EAAc7rB,EAAQ,MACtBojB,EAAMpjB,EAAQ,KACd8rB,EAAiB9rB,EAAQ,MACzB+rB,EAAOpvB,OAAOqvB,yBAElBvtB,EAAQT,EAAIgC,EAAQ,KAAoB+rB,EAAO,SAAkC7I,EAAGqI,GAGlF,GAFArI,EAAI8F,EAAU9F,GACdqI,EAAIM,EAAYN,GAAG,GACfO,EAAgB,IAClB,OAAOC,EAAK7I,EAAGqI,GACf,MAAOjvB,IACT,GAAI8mB,EAAIF,EAAGqI,GAAI,OAAOK,GAAYD,EAAI3tB,EAAE3B,KAAK6mB,EAAGqI,GAAIrI,EAAEqI,M,qBCdxD,IAAIU,EAAcjsB,EAAQ,KACtBksB,EAAUlsB,EAAQ,KAClBgpB,EAAYhpB,EAAQ,KACpBmsB,EAASnsB,EAAQ,KAAiBhC,EACtCQ,EAAOC,QAAU,SAAU2tB,GACzB,OAAO,SAAUnuB,GAOf,IANA,IAKIqc,EALA4I,EAAI8F,EAAU/qB,GACdyd,EAAOwQ,EAAQhJ,GACfrlB,EAAS6d,EAAK7d,OACdJ,EAAI,EACJ0e,EAAS,GAENte,EAASJ,GACd6c,EAAMoB,EAAKje,KACNwuB,IAAeE,EAAO9vB,KAAK6mB,EAAG5I,IACjC6B,EAAOnB,KAAKoR,EAAY,CAAC9R,EAAK4I,EAAE5I,IAAQ4I,EAAE5I,IAG9C,OAAO6B,K,gCClBX,SAASkQ,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQpS,EAAKkB,GACpE,IACE,IAAImR,EAAOL,EAAIhS,GAAKkB,GAChBze,EAAQ4vB,EAAK5vB,MACjB,MAAOkhB,GAEP,YADAuO,EAAOvO,GAIL0O,EAAK7uB,KACPyuB,EAAQxvB,GAER6vB,QAAQL,QAAQxvB,GAAO8vB,KAAKJ,EAAOC,GAIxB,SAASI,EAAkB5L,GACxC,OAAO,WACL,IAAI5c,EAAOtH,KACP8c,EAAOoB,UACX,OAAO,IAAI0R,SAAQ,SAAUL,EAASC,GACpC,IAAIF,EAAMpL,EAAGjG,MAAM3W,EAAMwV,GAEzB,SAAS2S,EAAM1vB,GACbsvB,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQ,OAAQ3vB,GAGlE,SAAS2vB,EAAOxuB,GACdmuB,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQ,QAASxuB,GAGnEuuB,OAAMzU,OA/BZ,mC,iCCAe,SAAS+U,EAAuBzoB,GAC7C,QAAa,IAATA,EACF,MAAM,IAAI0oB,eAAe,6DAG3B,OAAO1oB,EALT,mC,gCCAe,SAAS2oB,EAAuBC,EAASlQ,GAKtD,OAJKA,IACHA,EAAMkQ,EAAQvR,MAAM,IAGfhf,OAAOwwB,OAAOxwB,OAAOywB,iBAAiBF,EAAS,CACpDlQ,IAAK,CACHjgB,MAAOJ,OAAOwwB,OAAOnQ,OAP3B,mC,gCCAe,SAASqQ,EAAgBC,EAAU9C,GAChD,KAAM8C,aAAoB9C,GACxB,MAAM,IAAIltB,UAAU,qCAFxB,mC,kCCAA,6EAIe,SAASiwB,EAASpwB,GAC/B,OAAO,YAAeA,IAAQ,YAAgBA,IAAQ,YAA2BA,IAAQ,gB,qBCL3FqB,EAAOC,QAAU,CAAE,QAAWuB,EAAQ,MAAkC6jB,YAAY,I,kCCEpFplB,EAAQolB,YAAa,EAErBplB,EAAQ+uB,QAAU,SAAUC,EAAMC,GAChC,GAAID,GAAQC,EAAe,CACzB,IAAIC,EAAqB/wB,MAAMQ,QAAQswB,GAAiBA,EAAgBA,EAAc5V,MAAM,KACxF8V,EAAWH,EAAK1W,MAAQ,GACxB8W,GAAYJ,EAAKlP,MAAQ,IAAIuP,cAC7BC,EAAeF,EAASjsB,QAAQ,QAAS,IAC7C,OAAO+rB,EAAmBtP,MAAK,SAAUE,GACvC,IAAIyP,EAAYzP,EAAK0P,OAAOH,cAE5B,MAA4B,MAAxBE,EAAUpK,OAAO,GACZgK,EAASE,cAAcI,SAASF,GAC9BA,EAAUE,SAAS,MAErBH,IAAiBC,EAAUpsB,QAAQ,QAAS,IAG9CisB,IAAaG,KAIxB,OAAO,I,wGCtBM,SAAS,EAAWG,EAAQrU,EAAMsU,GAc/C,OAZE,EADE,OAAAC,EAAA,KACWvyB,QAAQC,UAER,SAAoBoyB,EAAQrU,EAAMsU,GAC7C,IAAI7pB,EAAI,CAAC,MACTA,EAAEyW,KAAKC,MAAM1W,EAAGuV,GAChB,IACIwT,EAAW,IADGgB,SAASC,KAAKtT,MAAMkT,EAAQ5pB,IAG9C,OADI6pB,GAAO,OAAAI,EAAA,GAAelB,EAAUc,EAAMjyB,WACnCmxB,IAIOrS,MAAM,KAAMC,WCZjB,SAAS,EAAiBkT,GACvC,IAAIK,EAAwB,oBAARC,IAAqB,IAAIA,SAAQ1W,EA8BrD,OA5BA,EAAmB,SAA0BoW,GAC3C,GAAc,OAAVA,ICRkClN,EDQEkN,GCPsB,IAAzDE,SAASlyB,SAASC,KAAK6kB,GAAIyN,QAAQ,kBDOQ,OAAOP,ECR5C,IAA2BlN,EDUtC,GAAqB,oBAAVkN,EACT,MAAM,IAAI9wB,UAAU,sDAGtB,GAAsB,qBAAXmxB,EAAwB,CACjC,GAAIA,EAAOrL,IAAIgL,GAAQ,OAAOK,EAAO5F,IAAIuF,GAEzCK,EAAOG,IAAIR,EAAOS,GAGpB,SAASA,IACP,OAAO,EAAUT,EAAOlT,UAAW,OAAAgP,EAAA,GAAeltB,MAAMmC,aAW1D,OARA0vB,EAAQ1yB,UAAYQ,OAAOsmB,OAAOmL,EAAMjyB,UAAW,CACjDgD,YAAa,CACXpC,MAAO8xB,EACP9K,YAAY,EACZC,UAAU,EACVT,cAAc,KAGX,OAAAiL,EAAA,GAAeK,EAAST,KAGTA,K,kFElCX,SAASU,EAAexC,GACrC,IAAIyC,EAAOC,EAqBX,SAASC,EAAO3U,EAAKkB,GACnB,IACE,IAAIW,EAASmQ,EAAIhS,GAAKkB,GAClBze,EAAQof,EAAOpf,MACfmyB,EAAenyB,aAAiBoyB,EAAA,EACpCvC,QAAQL,QAAQ2C,EAAenyB,EAAME,QAAUF,GAAO8vB,MAAK,SAAUrR,GAC/D0T,EACFD,EAAe,WAAR3U,EAAmB,SAAW,OAAQkB,GAI/C4T,EAAOjT,EAAOre,KAAO,SAAW,SAAU0d,MACzC,SAAUtd,GACX+wB,EAAO,QAAS/wB,MAElB,MAAOA,GACPkxB,EAAO,QAASlxB,IAIpB,SAASkxB,EAAO7Q,EAAMxhB,GACpB,OAAQwhB,GACN,IAAK,SACHwQ,EAAMxC,QAAQ,CACZxvB,MAAOA,EACPe,MAAM,IAER,MAEF,IAAK,QACHixB,EAAMvC,OAAOzvB,GACb,MAEF,QACEgyB,EAAMxC,QAAQ,CACZxvB,MAAOA,EACPe,MAAM,KAKZixB,EAAQA,EAAMzwB,MAGZ2wB,EAAOF,EAAMzU,IAAKyU,EAAMvT,KAExBwT,EAAO,KAIXhyB,KAAKqyB,QArEL,SAAc/U,EAAKkB,GACjB,OAAO,IAAIoR,SAAQ,SAAUL,EAASC,GACpC,IAAI8C,EAAU,CACZhV,IAAKA,EACLkB,IAAKA,EACL+Q,QAASA,EACTC,OAAQA,EACRluB,KAAM,MAGJ0wB,EACFA,EAAOA,EAAK1wB,KAAOgxB,GAEnBP,EAAQC,EAAOM,EACfL,EAAO3U,EAAKkB,QAyDW,oBAAlB8Q,EAAY,SACrBtvB,KAAa,YAAIgb,GC3EN,SAASuX,EAAoBrO,GAC1C,OAAO,WACL,OAAO,IAAI4N,EAAe5N,EAAGjG,MAAMje,KAAMke,aD6EvB,oBAAXze,QAAyBA,OAAO+yB,gBACzCV,EAAe3yB,UAAUM,OAAO+yB,eAAiB,WAC/C,OAAOxyB,OAIX8xB,EAAe3yB,UAAUmC,KAAO,SAAUkd,GACxC,OAAOxe,KAAKqyB,QAAQ,OAAQ7T,IAG9BsT,EAAe3yB,UAAiB,MAAI,SAAUqf,GAC5C,OAAOxe,KAAKqyB,QAAQ,QAAS7T,IAG/BsT,EAAe3yB,UAAkB,OAAI,SAAUqf,GAC7C,OAAOxe,KAAKqyB,QAAQ,SAAU7T,K,gCE/FhC,SAASiU,EAAkBC,EAAQC,GACjC,IAAK,IAAIlyB,EAAI,EAAGA,EAAIkyB,EAAM9xB,OAAQJ,IAAK,CACrC,IAAImyB,EAAaD,EAAMlyB,GACvBmyB,EAAW7L,WAAa6L,EAAW7L,aAAc,EACjD6L,EAAWrM,cAAe,EACtB,UAAWqM,IAAYA,EAAW5L,UAAW,GACjDrnB,OAAO+mB,eAAegM,EAAQE,EAAWtV,IAAKsV,IAInC,SAASC,EAAarF,EAAasF,EAAYC,GAG5D,OAFID,GAAYL,EAAkBjF,EAAYruB,UAAW2zB,GACrDC,GAAaN,EAAkBjF,EAAauF,GACzCvF,EAbT,mC,gCCAA,+CACe,SAASwF,EAAUC,EAAUC,GAC1C,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI5yB,UAAU,sDAGtB2yB,EAAS9zB,UAAYQ,OAAOsmB,OAAOiN,GAAcA,EAAW/zB,UAAW,CACrEgD,YAAa,CACXpC,MAAOkzB,EACPjM,UAAU,EACVT,cAAc,KAGd2M,GAAY,YAAeD,EAAUC,K,kCCb3C,S,kCCEAzxB,EAAQqG,WAuCR,SAAqBqrB,GACnB,IAAIC,EAAOC,EAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAC3B,OAAuC,GAA9BE,EAAWC,GAAuB,EAAKA,GA1ClD9xB,EAAQ+xB,YAiDR,SAAsBL,GACpB,IAAInZ,EAcAvZ,EAbA2yB,EAAOC,EAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAEvBjzB,EAAM,IAAIszB,EAVhB,SAAsBN,EAAKG,EAAUC,GACnC,OAAuC,GAA9BD,EAAWC,GAAuB,EAAKA,EAS9BG,CAAYP,EAAKG,EAAUC,IAEzCI,EAAU,EAGV5vB,EAAMwvB,EAAkB,EACxBD,EAAW,EACXA,EAGJ,IAAK7yB,EAAI,EAAGA,EAAIsD,EAAKtD,GAAK,EACxBuZ,EACG4Z,EAAUT,EAAI9vB,WAAW5C,KAAO,GAChCmzB,EAAUT,EAAI9vB,WAAW5C,EAAI,KAAO,GACpCmzB,EAAUT,EAAI9vB,WAAW5C,EAAI,KAAO,EACrCmzB,EAAUT,EAAI9vB,WAAW5C,EAAI,IAC/BN,EAAIwzB,KAAc3Z,GAAO,GAAM,IAC/B7Z,EAAIwzB,KAAc3Z,GAAO,EAAK,IAC9B7Z,EAAIwzB,KAAmB,IAAN3Z,EAGK,IAApBuZ,IACFvZ,EACG4Z,EAAUT,EAAI9vB,WAAW5C,KAAO,EAChCmzB,EAAUT,EAAI9vB,WAAW5C,EAAI,KAAO,EACvCN,EAAIwzB,KAAmB,IAAN3Z,GAGK,IAApBuZ,IACFvZ,EACG4Z,EAAUT,EAAI9vB,WAAW5C,KAAO,GAChCmzB,EAAUT,EAAI9vB,WAAW5C,EAAI,KAAO,EACpCmzB,EAAUT,EAAI9vB,WAAW5C,EAAI,KAAO,EACvCN,EAAIwzB,KAAc3Z,GAAO,EAAK,IAC9B7Z,EAAIwzB,KAAmB,IAAN3Z,GAGnB,OAAO7Z,GA3FTsB,EAAQoyB,cAkHR,SAAwBC,GAQtB,IAPA,IAAI9Z,EACAjW,EAAM+vB,EAAMjzB,OACZkzB,EAAahwB,EAAM,EACnBiwB,EAAQ,GAIHvzB,EAAI,EAAGwzB,EAAOlwB,EAAMgwB,EAAYtzB,EAAIwzB,EAAMxzB,GAH9B,MAInBuzB,EAAMhW,KAAKkW,EAAYJ,EAAOrzB,EAAIA,EAJf,MAIqCwzB,EAAOA,EAAQxzB,EAJpD,QAQF,IAAfszB,GACF/Z,EAAM8Z,EAAM/vB,EAAM,GAClBiwB,EAAMhW,KACJmW,EAAOna,GAAO,GACdma,EAAQna,GAAO,EAAK,IACpB,OAEsB,IAAf+Z,IACT/Z,GAAO8Z,EAAM/vB,EAAM,IAAM,GAAK+vB,EAAM/vB,EAAM,GAC1CiwB,EAAMhW,KACJmW,EAAOna,GAAO,IACdma,EAAQna,GAAO,EAAK,IACpBma,EAAQna,GAAO,EAAK,IACpB,MAIJ,OAAOga,EAAM/Q,KAAK,KAzIpB,IALA,IAAIkR,EAAS,GACTP,EAAY,GACZH,EAA4B,qBAAfW,WAA6BA,WAAax0B,MAEvDy0B,EAAO,mEACF5zB,EAAI,EAAGsD,EAAMswB,EAAKxzB,OAAQJ,EAAIsD,IAAOtD,EAC5C0zB,EAAO1zB,GAAK4zB,EAAK5zB,GACjBmzB,EAAUS,EAAKhxB,WAAW5C,IAAMA,EAQlC,SAAS4yB,EAASF,GAChB,IAAIpvB,EAAMovB,EAAItyB,OAEd,GAAIkD,EAAM,EAAI,EACZ,MAAM,IAAIlC,MAAM,kDAKlB,IAAIyxB,EAAWH,EAAIxB,QAAQ,KAO3B,OANkB,IAAd2B,IAAiBA,EAAWvvB,GAMzB,CAACuvB,EAJcA,IAAavvB,EAC/B,EACA,EAAKuvB,EAAW,GAsEtB,SAASY,EAAaJ,EAAOnwB,EAAOC,GAGlC,IAFA,IAAIoW,EARoB3V,EASpB8W,EAAS,GACJ1a,EAAIkD,EAAOlD,EAAImD,EAAKnD,GAAK,EAChCuZ,GACI8Z,EAAMrzB,IAAM,GAAM,WAClBqzB,EAAMrzB,EAAI,IAAM,EAAK,QACP,IAAfqzB,EAAMrzB,EAAI,IACb0a,EAAO6C,KAdFmW,GADiB9vB,EAeM2V,IAdT,GAAK,IACxBma,EAAO9vB,GAAO,GAAK,IACnB8vB,EAAO9vB,GAAO,EAAI,IAClB8vB,EAAa,GAAN9vB,IAaT,OAAO8W,EAAO8H,KAAK,IAjGrB2Q,EAAU,IAAIvwB,WAAW,IAAM,GAC/BuwB,EAAU,IAAIvwB,WAAW,IAAM,I,gCCnB/B,kEAGe,SAASixB,EAAaC,GACnC,OAAO,WACL,IACIpV,EADAqV,EAAQ,YAAeD,GAG3B,GAAI,cAA4B,CAC9B,IAAIE,EAAY,YAAez0B,MAAMmC,YACrCgd,EAASrgB,QAAQC,UAAUy1B,EAAOtW,UAAWuW,QAE7CtV,EAASqV,EAAMvW,MAAMje,KAAMke,WAG7B,OAAO,YAA0Ble,KAAMmf,M,kCCb3C,IAAMmI,EAAWtkB,EAAQ,MACnBqkB,EAAWrkB,EAAQ,MACnBlB,EAAWkB,EAAQ,KAQzB,SAAS0xB,EAAO3a,EAAMoE,GACpBne,KAAK+Z,KAAOA,EACZ/Z,KAAKme,KAAOA,EAEZne,KAAKqnB,SAAW,GAChBrnB,KAAKsnB,SAAW,GAXN7lB,EAER0lB,OAAS,SAAgBpN,EAAMoE,GACjC,OAAO,IAAIuW,EAAO3a,EAAMoE,IAW1BuW,EAAOv1B,UAAUw1B,aAAe,SAAqBrH,GACnD,IAAMvT,EAAO/Z,KAAK+Z,KAElB,SAAS6a,EAAU1T,GACjBlhB,KAAK60B,WAAW3T,EAAQnH,GAO1B,OALAjY,EAAS8yB,EAAWtH,GACpBsH,EAAUz1B,UAAU01B,WAAa,SAAoB3T,EAAQnH,GAC3DuT,EAAKjuB,KAAKW,KAAMkhB,EAAQnH,IAGnB,IAAI6a,EAAU50B,OAGvB00B,EAAOv1B,UAAUysB,YAAc,SAAqBpP,GAKlD,OAJAA,EAAMA,GAAO,MAERxc,KAAKqnB,SAASW,eAAexL,KAChCxc,KAAKqnB,SAAS7K,GAAOxc,KAAK20B,aAAatN,EAAS7K,KAC3Cxc,KAAKqnB,SAAS7K,IAGvBkY,EAAOv1B,UAAUirB,OAAS,SAAgBjK,EAAM3D,EAAKwC,GACnD,OAAOhf,KAAK4rB,YAAYpP,GAAK4N,OAAOjK,EAAMnB,IAG5C0V,EAAOv1B,UAAUuqB,YAAc,SAAqBlN,GAKlD,OAJAA,EAAMA,GAAO,MAERxc,KAAKsnB,SAASU,eAAexL,KAChCxc,KAAKsnB,SAAS9K,GAAOxc,KAAK20B,aAAarN,EAAS9K,KAC3Cxc,KAAKsnB,SAAS9K,IAGvBkY,EAAOv1B,UAAU2oB,OAAS,SAAgB3H,EAAM3D,EAAoBiF,GAClE,OAAOzhB,KAAK0pB,YAAYlN,GAAKsL,OAAO3H,EAAMsB,K,kCCrD5C,IAAM3f,EAAWkB,EAAQ,KAEnB0kB,EAAa1kB,EAAQ,MAE3B,SAAS8xB,EAAW5T,GAClBwG,EAAWroB,KAAKW,KAAMkhB,GACtBlhB,KAAKwc,IAAM,MAEb1a,EAASgzB,EAAYpN,GACrBlmB,EAAOC,QAAUqzB,EAEjBA,EAAW31B,UAAU2oB,OAAS,SAAgB3H,EAAMnB,GAKlD,IAJA,IAEMxN,EAFMkW,EAAWvoB,UAAU2oB,OAAOzoB,KAAKW,KAAMmgB,GAErC/gB,SAAS,UACjBqH,EAAM,CAAE,cAAgBuY,EAAQ+V,MAAQ,SACrCt0B,EAAI,EAAGA,EAAI+Q,EAAE3Q,OAAQJ,GAAK,GACjCgG,EAAIuX,KAAKxM,EAAEmN,MAAMle,EAAGA,EAAI,KAE1B,OADAgG,EAAIuX,KAAK,YAAcgB,EAAQ+V,MAAQ,SAChCtuB,EAAIwc,KAAK,Q,kCCnBlB,IAAMnhB,EAAWkB,EAAQ,KACnBH,EAASG,EAAQ,MAAgBH,OAEjCgnB,EAAa7mB,EAAQ,MAE3B,SAASgyB,EAAW9T,GAClB2I,EAAWxqB,KAAKW,KAAMkhB,GACtBlhB,KAAKwc,IAAM,MAEb1a,EAASkzB,EAAYnL,GACrBroB,EAAOC,QAAUuzB,EAEjBA,EAAW71B,UAAUirB,OAAS,SAAgBjK,EAAMnB,GAQlD,IAPA,IAAMiW,EAAQ9U,EAAK/gB,WAAW0b,MAAM,YAE9Bia,EAAQ/V,EAAQ+V,MAAMG,cAEtBvjB,EAAK,kCACPhO,GAAS,EACTC,GAAO,EACFnD,EAAI,EAAGA,EAAIw0B,EAAMp0B,OAAQJ,IAAK,CACrC,IAAM2gB,EAAQ6T,EAAMx0B,GAAG2gB,MAAMzP,GAC7B,GAAc,OAAVyP,GAGAA,EAAM,KAAO2T,EAAjB,CAGA,IAAe,IAAXpxB,EAIG,CACL,GAAiB,QAAbyd,EAAM,GACR,MACFxd,EAAMnD,EACN,MAPA,GAAiB,UAAb2gB,EAAM,GACR,MACFzd,EAAQlD,GAQZ,IAAe,IAAXkD,IAAyB,IAATC,EAClB,MAAM,IAAI/B,MAAM,8BAAgCkzB,GAElD,IAAMI,EAASF,EAAMtW,MAAMhb,EAAQ,EAAGC,GAAKqf,KAAK,IAEhDkS,EAAOvwB,QAAQ,kBAAmB,IAElC,IAAMsW,EAAQrY,EAAOhD,KAAKs1B,EAAQ,UAClC,OAAOtL,EAAW1qB,UAAUirB,OAAO/qB,KAAKW,KAAMkb,EAAO8D,K,kCC/CvD,IAAM1c,EAAOb,EAEba,EAAK2Z,SAAWjZ,EAAQ,MAAciZ,SACtC3Z,EAAK6Z,cAAgBnZ,EAAQ,KAAYmZ,cACzC7Z,EAAK4Z,cAAgBlZ,EAAQ,KAAYkZ,cACzC5Z,EAAKia,KAAOvZ,EAAQ,O,kCCLpB,IAAMokB,EAAY3lB,EAGlB2lB,EAAUgO,SAAW,SAAiB3W,GACpC,IAAMzW,EAAM,GAWZ,OATArI,OAAO+e,KAAKD,GAAKZ,SAAQ,SAASP,IAErB,EAANA,IAAYA,IACfA,GAAY,GAEd,IAAMvd,EAAQ0e,EAAInB,GAClBtV,EAAIjI,GAASud,KAGRtV,GAGTof,EAAUI,IAAMxkB,EAAQ,O,qBCpBxBA,EAAQ,MACRxB,EAAOC,QAAUuB,EAAQ,KAAuBrD,OAAO01B,Q,qBCAvD,IAAIzI,EAAU5pB,EAAQ,KAEtB4pB,EAAQA,EAAQvI,EAAIuI,EAAQlsB,EAAG,SAAU,CAAE20B,OAAQryB,EAAQ,S,mBCH3DxB,EAAOC,QAAU,SAAUR,GACzB,GAAiB,mBAANA,EAAkB,MAAMX,UAAUW,EAAK,uBAClD,OAAOA,I,kCCAT,IAAIguB,EAAcjsB,EAAQ,KACtBksB,EAAUlsB,EAAQ,KAClBsyB,EAAOtyB,EAAQ,MACf2rB,EAAM3rB,EAAQ,KACduyB,EAAWvyB,EAAQ,KACnBwyB,EAAUxyB,EAAQ,MAClByyB,EAAU91B,OAAO01B,OAGrB7zB,EAAOC,SAAWg0B,GAAWzyB,EAAQ,IAARA,EAAoB,WAC/C,IAAIkT,EAAI,GACJC,EAAI,GAEJkO,EAAI5kB,SACJi2B,EAAI,uBAGR,OAFAxf,EAAEmO,GAAK,EACPqR,EAAE5a,MAAM,IAAI+C,SAAQ,SAAUpW,GAAK0O,EAAE1O,GAAKA,KACd,GAArBguB,EAAQ,GAAIvf,GAAGmO,IAAW1kB,OAAO+e,KAAK+W,EAAQ,GAAItf,IAAI8M,KAAK,KAAOyS,KACtE,SAAgBhD,EAAQiD,GAM3B,IALA,IAAIC,EAAIL,EAAS7C,GACbmD,EAAO3X,UAAUrd,OACjBsC,EAAQ,EACR2yB,EAAaR,EAAKt0B,EAClBmuB,EAASR,EAAI3tB,EACV60B,EAAO1yB,GAMZ,IALA,IAIIma,EAJA+G,EAAImR,EAAQtX,UAAU/a,MACtBub,EAAOoX,EAAa5G,EAAQ7K,GAAG/H,OAAOwZ,EAAWzR,IAAM6K,EAAQ7K,GAC/DxjB,EAAS6d,EAAK7d,OACdoE,EAAI,EAEDpE,EAASoE,GACdqY,EAAMoB,EAAKzZ,KACNgqB,IAAeE,EAAO9vB,KAAKglB,EAAG/G,KAAMsY,EAAEtY,GAAO+G,EAAE/G,IAEtD,OAAOsY,GACPH,G,qBCnCJ,IAAIzJ,EAAYhpB,EAAQ,KACpB+yB,EAAW/yB,EAAQ,MACnBgzB,EAAkBhzB,EAAQ,MAC9BxB,EAAOC,QAAU,SAAUw0B,GACzB,OAAO,SAAUC,EAAOC,EAAIC,GAC1B,IAGIr2B,EAHAmmB,EAAI8F,EAAUkK,GACdr1B,EAASk1B,EAAS7P,EAAErlB,QACpBsC,EAAQ6yB,EAAgBI,EAAWv1B,GAIvC,GAAIo1B,GAAeE,GAAMA,GAAI,KAAOt1B,EAASsC,GAG3C,IAFApD,EAAQmmB,EAAE/iB,OAEGpD,EAAO,OAAO,OAEtB,KAAMc,EAASsC,EAAOA,IAAS,IAAI8yB,GAAe9yB,KAAS+iB,IAC5DA,EAAE/iB,KAAWgzB,EAAI,OAAOF,GAAe9yB,GAAS,EACpD,OAAQ8yB,IAAgB,K,qBCpB9B,IAAI3J,EAAYtpB,EAAQ,MACpBsB,EAAMN,KAAKM,IACXL,EAAMD,KAAKC,IACfzC,EAAOC,QAAU,SAAU0B,EAAOtC,GAEhC,OADAsC,EAAQmpB,EAAUnpB,IACH,EAAImB,EAAInB,EAAQtC,EAAQ,GAAKoD,EAAId,EAAOtC,K,qBCLzDW,EAAOC,QAAU,CAAE,QAAWuB,EAAQ,MAAuC6jB,YAAY,I,qBCAzF7jB,EAAQ,MACRA,EAAQ,MACRxB,EAAOC,QAAUuB,EAAQ,MAA0BhC,EAAE,a,qBCFrD,IAAIsrB,EAAYtpB,EAAQ,MACpBqzB,EAAUrzB,EAAQ,MAGtBxB,EAAOC,QAAU,SAAU60B,GACzB,OAAO,SAAUnS,EAAMoS,GACrB,IAGIhvB,EAAGzD,EAHHnD,EAAIkqB,OAAOwL,EAAQlS,IACnB1jB,EAAI6rB,EAAUiK,GACd9lB,EAAI9P,EAAEE,OAEV,OAAIJ,EAAI,GAAKA,GAAKgQ,EAAU6lB,EAAY,QAAKtb,GAC7CzT,EAAI5G,EAAE0C,WAAW5C,IACN,OAAU8G,EAAI,OAAU9G,EAAI,IAAMgQ,IAAM3M,EAAInD,EAAE0C,WAAW5C,EAAI,IAAM,OAAUqD,EAAI,MACxFwyB,EAAY31B,EAAEimB,OAAOnmB,GAAK8G,EAC1B+uB,EAAY31B,EAAEge,MAAMle,EAAGA,EAAI,GAA2BqD,EAAI,OAAzByD,EAAI,OAAU,IAAqB,S,kCCb5E,IAAI0e,EAASjjB,EAAQ,MACjB4vB,EAAa5vB,EAAQ,KACrBiqB,EAAiBjqB,EAAQ,MACzB4qB,EAAoB,GAGxB5qB,EAAQ,IAARA,CAAmB4qB,EAAmB5qB,EAAQ,IAARA,CAAkB,aAAa,WAAc,OAAOhD,QAE1FwB,EAAOC,QAAU,SAAU+rB,EAAaD,EAAMjsB,GAC5CksB,EAAYruB,UAAY8mB,EAAO2H,EAAmB,CAAEtsB,KAAMsxB,EAAW,EAAGtxB,KACxE2rB,EAAeO,EAAaD,EAAO,e,qBCXrC,IAAIiJ,EAAKxzB,EAAQ,KACbiiB,EAAWjiB,EAAQ,KACnBksB,EAAUlsB,EAAQ,KAEtBxB,EAAOC,QAAUuB,EAAQ,KAAoBrD,OAAOywB,iBAAmB,SAA0BlK,EAAGC,GAClGlB,EAASiB,GAKT,IAJA,IAGIqI,EAHA7P,EAAOwQ,EAAQ/I,GACftlB,EAAS6d,EAAK7d,OACdJ,EAAI,EAEDI,EAASJ,GAAG+1B,EAAGx1B,EAAEklB,EAAGqI,EAAI7P,EAAKje,KAAM0lB,EAAWoI,IACrD,OAAOrI,I,qBCXT,IAAIL,EAAW7iB,EAAQ,KAAa6iB,SACpCrkB,EAAOC,QAAUokB,GAAYA,EAAS4Q,iB,qBCAtC,IAAIrQ,EAAMpjB,EAAQ,KACduyB,EAAWvyB,EAAQ,KACnBoiB,EAAWpiB,EAAQ,KAARA,CAAyB,YACpC0zB,EAAc/2B,OAAOR,UAEzBqC,EAAOC,QAAU9B,OAAOutB,gBAAkB,SAAUhH,GAElD,OADAA,EAAIqP,EAASrP,GACTE,EAAIF,EAAGd,GAAkBc,EAAEd,GACH,mBAAjBc,EAAE/jB,aAA6B+jB,aAAaA,EAAE/jB,YAChD+jB,EAAE/jB,YAAYhD,UACd+mB,aAAavmB,OAAS+2B,EAAc,O,qBCX/C1zB,EAAQ,MAYR,IAXA,IAAI4hB,EAAS5hB,EAAQ,KACjB8pB,EAAO9pB,EAAQ,KACf+pB,EAAY/pB,EAAQ,KACpB2zB,EAAgB3zB,EAAQ,IAARA,CAAkB,eAElC4zB,EAAe,wbAIU9b,MAAM,KAE1Bra,EAAI,EAAGA,EAAIm2B,EAAa/1B,OAAQJ,IAAK,CAC5C,IAAI8sB,EAAOqJ,EAAan2B,GACpBo2B,EAAajS,EAAO2I,GACpBQ,EAAQ8I,GAAcA,EAAW13B,UACjC4uB,IAAUA,EAAM4I,IAAgB7J,EAAKiB,EAAO4I,EAAepJ,GAC/DR,EAAUQ,GAAQR,EAAUntB,Q,kCChB9B,IAAIk3B,EAAmB9zB,EAAQ,MAC3B3B,EAAO2B,EAAQ,MACf+pB,EAAY/pB,EAAQ,KACpBgpB,EAAYhpB,EAAQ,KAMxBxB,EAAOC,QAAUuB,EAAQ,KAARA,CAA0BpD,MAAO,SAAS,SAAU4sB,EAAUsB,GAC7E9tB,KAAKysB,GAAKT,EAAUQ,GACpBxsB,KAAK0sB,GAAK,EACV1sB,KAAK+2B,GAAKjJ,KAET,WACD,IAAI5H,EAAIlmB,KAAKysB,GACTqB,EAAO9tB,KAAK+2B,GACZ5zB,EAAQnD,KAAK0sB,KACjB,OAAKxG,GAAK/iB,GAAS+iB,EAAErlB,QACnBb,KAAKysB,QAAKzR,EACH3Z,EAAK,IAEaA,EAAK,EAApB,QAARysB,EAA+B3qB,EACvB,UAAR2qB,EAAiC5H,EAAE/iB,GACxB,CAACA,EAAO+iB,EAAE/iB,OACxB,UAGH4pB,EAAUiK,UAAYjK,EAAUntB,MAEhCk3B,EAAiB,QACjBA,EAAiB,UACjBA,EAAiB,Y,mBCjCjBt1B,EAAOC,QAAU,c,mBCAjBD,EAAOC,QAAU,SAAUX,EAAMf,GAC/B,MAAO,CAAEA,MAAOA,EAAOe,OAAQA,K,qBCDjCU,EAAOC,QAAU,CAAE,QAAWuB,EAAQ,MAA8B6jB,YAAY,I,qBCAhF7jB,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,MACRxB,EAAOC,QAAUuB,EAAQ,KAAuBvD,Q,kCCFhD,IAAImlB,EAAS5hB,EAAQ,KACjBojB,EAAMpjB,EAAQ,KACdisB,EAAcjsB,EAAQ,KACtB4pB,EAAU5pB,EAAQ,KAClB6pB,EAAW7pB,EAAQ,MACnBi0B,EAAOj0B,EAAQ,MAAWk0B,IAC1BC,EAASn0B,EAAQ,KACjByhB,EAASzhB,EAAQ,MACjBiqB,EAAiBjqB,EAAQ,MACzB0hB,EAAM1hB,EAAQ,KACdo0B,EAAMp0B,EAAQ,KACdyjB,EAASzjB,EAAQ,MACjBq0B,EAAYr0B,EAAQ,MACpBs0B,EAAWt0B,EAAQ,MACnB5C,EAAU4C,EAAQ,MAClBiiB,EAAWjiB,EAAQ,KACnBohB,EAAWphB,EAAQ,KACnBuyB,EAAWvyB,EAAQ,KACnBgpB,EAAYhpB,EAAQ,KACpB6rB,EAAc7rB,EAAQ,MACtB4rB,EAAa5rB,EAAQ,KACrBu0B,EAAUv0B,EAAQ,MAClBw0B,EAAUx0B,EAAQ,MAClBy0B,EAAQz0B,EAAQ,MAChB00B,EAAQ10B,EAAQ,MAChB20B,EAAM30B,EAAQ,KACdwrB,EAAQxrB,EAAQ,KAChB+rB,EAAO0I,EAAMz2B,EACbw1B,EAAKmB,EAAI32B,EACT42B,EAAOJ,EAAQx2B,EACf2lB,EAAU/B,EAAOnlB,OACjBo4B,EAAQjT,EAAOzC,KACf2V,EAAaD,GAASA,EAAMzV,UAE5B2V,EAASX,EAAI,WACbY,EAAeZ,EAAI,eACnBjI,EAAS,GAAG9C,qBACZ4L,EAAiBxT,EAAO,mBACxByT,EAAazT,EAAO,WACpB0T,EAAY1T,EAAO,cACnBiS,EAAc/2B,OAAgB,UAC9By4B,EAA+B,mBAAXzR,KAA2B+Q,EAAM12B,EACrDq3B,EAAUzT,EAAOyT,QAEjBC,GAAUD,IAAYA,EAAiB,YAAMA,EAAiB,UAAEE,UAGhEC,EAAgBvJ,GAAekI,GAAO,WACxC,OAES,GAFFI,EAAQf,EAAG,GAAI,IAAK,CACzB3K,IAAK,WAAc,OAAO2K,EAAGx2B,KAAM,IAAK,CAAED,MAAO,IAAKwH,MACpDA,KACD,SAAUtG,EAAIqc,EAAKjH,GACtB,IAAIoiB,EAAY1J,EAAK2H,EAAapZ,GAC9Bmb,UAAkB/B,EAAYpZ,GAClCkZ,EAAGv1B,EAAIqc,EAAKjH,GACRoiB,GAAax3B,IAAOy1B,GAAaF,EAAGE,EAAapZ,EAAKmb,IACxDjC,EAEAkC,EAAO,SAAU7b,GACnB,IAAI8b,EAAMT,EAAWrb,GAAO0a,EAAQ5Q,EAAiB,WAErD,OADAgS,EAAI5B,GAAKla,EACF8b,GAGLC,EAAWR,GAAyC,iBAApBzR,EAAQjnB,SAAuB,SAAUuB,GAC3E,MAAoB,iBAANA,GACZ,SAAUA,GACZ,OAAOA,aAAc0lB,GAGnBkS,EAAkB,SAAwB53B,EAAIqc,EAAKjH,GAKrD,OAJIpV,IAAOy1B,GAAamC,EAAgBV,EAAW7a,EAAKjH,GACxD4O,EAAShkB,GACTqc,EAAMuR,EAAYvR,GAAK,GACvB2H,EAAS5O,GACL+P,EAAI8R,EAAY5a,IACbjH,EAAE0Q,YAIDX,EAAInlB,EAAI82B,IAAW92B,EAAG82B,GAAQza,KAAMrc,EAAG82B,GAAQza,IAAO,GAC1DjH,EAAIkhB,EAAQlhB,EAAG,CAAE0Q,WAAY6H,EAAW,GAAG,OAJtCxI,EAAInlB,EAAI82B,IAASvB,EAAGv1B,EAAI82B,EAAQnJ,EAAW,EAAG,KACnD3tB,EAAG82B,GAAQza,IAAO,GAIXkb,EAAcv3B,EAAIqc,EAAKjH,IACzBmgB,EAAGv1B,EAAIqc,EAAKjH,IAEnByiB,EAAoB,SAA0B73B,EAAIstB,GACpDtJ,EAAShkB,GAKT,IAJA,IAGIqc,EAHAoB,EAAO4Y,EAAS/I,EAAIvC,EAAUuC,IAC9B9tB,EAAI,EACJgQ,EAAIiO,EAAK7d,OAEN4P,EAAIhQ,GAAGo4B,EAAgB53B,EAAIqc,EAAMoB,EAAKje,KAAM8tB,EAAEjR,IACrD,OAAOrc,GAKL83B,EAAwB,SAA8Bzb,GACxD,IAAI0b,EAAI7J,EAAO9vB,KAAKW,KAAMsd,EAAMuR,EAAYvR,GAAK,IACjD,QAAItd,OAAS02B,GAAetQ,EAAI8R,EAAY5a,KAAS8I,EAAI+R,EAAW7a,QAC7D0b,IAAM5S,EAAIpmB,KAAMsd,KAAS8I,EAAI8R,EAAY5a,IAAQ8I,EAAIpmB,KAAM+3B,IAAW/3B,KAAK+3B,GAAQza,KAAO0b,IAE/FC,EAA4B,SAAkCh4B,EAAIqc,GAGpE,GAFArc,EAAK+qB,EAAU/qB,GACfqc,EAAMuR,EAAYvR,GAAK,GACnBrc,IAAOy1B,IAAetQ,EAAI8R,EAAY5a,IAAS8I,EAAI+R,EAAW7a,GAAlE,CACA,IAAIjH,EAAI0Y,EAAK9tB,EAAIqc,GAEjB,OADIjH,IAAK+P,EAAI8R,EAAY5a,IAAU8I,EAAInlB,EAAI82B,IAAW92B,EAAG82B,GAAQza,KAAOjH,EAAE0Q,YAAa,GAChF1Q,IAEL6iB,EAAuB,SAA6Bj4B,GAKtD,IAJA,IAGIqc,EAHA6O,EAAQyL,EAAK5L,EAAU/qB,IACvBke,EAAS,GACT1e,EAAI,EAED0rB,EAAMtrB,OAASJ,GACf2lB,EAAI8R,EAAY5a,EAAM6O,EAAM1rB,OAAS6c,GAAOya,GAAUza,GAAO2Z,GAAM9X,EAAOnB,KAAKV,GACpF,OAAO6B,GAEPga,GAAyB,SAA+Bl4B,GAM1D,IALA,IAIIqc,EAJA8b,EAAQn4B,IAAOy1B,EACfvK,EAAQyL,EAAKwB,EAAQjB,EAAYnM,EAAU/qB,IAC3Cke,EAAS,GACT1e,EAAI,EAED0rB,EAAMtrB,OAASJ,IAChB2lB,EAAI8R,EAAY5a,EAAM6O,EAAM1rB,OAAU24B,IAAQhT,EAAIsQ,EAAapZ,IAAc6B,EAAOnB,KAAKka,EAAW5a,IACxG,OAAO6B,GAINiZ,IAYHvL,GAXAlG,EAAU,WACR,GAAI3mB,gBAAgB2mB,EAAS,MAAMrmB,UAAU,gCAC7C,IAAIuc,EAAM6H,EAAIxG,UAAUrd,OAAS,EAAIqd,UAAU,QAAKlD,GAChDqe,EAAO,SAAPA,EAAiBt5B,GACfC,OAAS02B,GAAa2C,EAAKh6B,KAAK84B,EAAWp4B,GAC3CqmB,EAAIpmB,KAAM+3B,IAAW3R,EAAIpmB,KAAK+3B,GAASlb,KAAM7c,KAAK+3B,GAAQlb,IAAO,GACrE2b,EAAcx4B,KAAM6c,EAAK+R,EAAW,EAAG7uB,KAGzC,OADIkvB,GAAeqJ,GAAQE,EAAc9B,EAAa7Z,EAAK,CAAE0J,cAAc,EAAMqL,IAAKyH,IAC/EX,EAAK7b,KAEY,UAAG,YAAY,WACvC,OAAO7c,KAAK+2B,MAGdU,EAAMz2B,EAAIi4B,EACVtB,EAAI32B,EAAI63B,EACR71B,EAAQ,MAAkBhC,EAAIw2B,EAAQx2B,EAAIk4B,EAC1Cl2B,EAAQ,KAAiBhC,EAAI+3B,EAC7BrB,EAAM12B,EAAIm4B,GAENlK,IAAgBjsB,EAAQ,MAC1B6pB,EAAS6J,EAAa,uBAAwBqC,GAAuB,GAGvEtS,EAAOzlB,EAAI,SAAU+Y,GACnB,OAAO2e,EAAKtB,EAAIrd,MAIpB6S,EAAQA,EAAQ0M,EAAI1M,EAAQ2M,EAAI3M,EAAQlsB,GAAK03B,EAAY,CAAE34B,OAAQknB,IAEnE,IAAK,IAAI6S,GAEP,iHACA1e,MAAM,KAAM7V,GAAI,EAAGu0B,GAAW34B,OAASoE,IAAGmyB,EAAIoC,GAAWv0B,OAE3D,IAAK,IAAIw0B,GAAmBjL,EAAM4I,EAAIvS,OAAQpd,GAAI,EAAGgyB,GAAiB54B,OAAS4G,IAAI4vB,EAAUoC,GAAiBhyB,OAE9GmlB,EAAQA,EAAQvI,EAAIuI,EAAQlsB,GAAK03B,EAAY,SAAU,CAErD,IAAO,SAAU9a,GACf,OAAO8I,EAAI6R,EAAgB3a,GAAO,IAC9B2a,EAAe3a,GACf2a,EAAe3a,GAAOqJ,EAAQrJ,IAGpCoc,OAAQ,SAAgBf,GACtB,IAAKC,EAASD,GAAM,MAAMr4B,UAAUq4B,EAAM,qBAC1C,IAAK,IAAIrb,KAAO2a,EAAgB,GAAIA,EAAe3a,KAASqb,EAAK,OAAOrb,GAE1Eqc,UAAW,WAAcrB,GAAS,GAClCsB,UAAW,WAActB,GAAS,KAGpC1L,EAAQA,EAAQvI,EAAIuI,EAAQlsB,GAAK03B,EAAY,SAAU,CAErDnS,OA/FY,SAAgBhlB,EAAIstB,GAChC,YAAavT,IAANuT,EAAkBgJ,EAAQt2B,GAAM63B,EAAkBvB,EAAQt2B,GAAKstB,IAgGtE7H,eAAgBmS,EAEhBzI,iBAAkB0I,EAElB9J,yBAA0BiK,EAE1BvK,oBAAqBwK,EAErBlU,sBAAuBmU,KAKzB,IAAIU,GAAsB1C,GAAO,WAAcO,EAAM12B,EAAE,MAEvD4rB,EAAQA,EAAQvI,EAAIuI,EAAQlsB,EAAIm5B,GAAqB,SAAU,CAC7D7U,sBAAuB,SAA+B/jB,GACpD,OAAOy2B,EAAM12B,EAAEu0B,EAASt0B,OAK5B42B,GAASjL,EAAQA,EAAQvI,EAAIuI,EAAQlsB,IAAM03B,GAAcjB,GAAO,WAC9D,IAAI9S,EAAIsC,IAIR,MAA0B,UAAnBmR,EAAW,CAACzT,KAA2C,MAAxByT,EAAW,CAAEvwB,EAAG8c,KAAyC,MAAzByT,EAAWn4B,OAAO0kB,QACrF,OAAQ,CACXjC,UAAW,SAAmBnhB,GAI5B,IAHA,IAEI64B,EAAUC,EAFVjd,EAAO,CAAC7b,GACRR,EAAI,EAEDyd,UAAUrd,OAASJ,GAAGqc,EAAKkB,KAAKE,UAAUzd,MAEjD,GADAs5B,EAAYD,EAAWhd,EAAK,IACvBsH,EAAS0V,SAAoB9e,IAAP/Z,KAAoB23B,EAAS33B,GAMxD,OALKb,EAAQ05B,KAAWA,EAAW,SAAUxc,EAAKvd,GAEhD,GADwB,mBAAbg6B,IAAyBh6B,EAAQg6B,EAAU16B,KAAKW,KAAMsd,EAAKvd,KACjE64B,EAAS74B,GAAQ,OAAOA,IAE/B+c,EAAK,GAAKgd,EACHhC,EAAW7Z,MAAM4Z,EAAO/a,MAKnC6J,EAAiB,UAAEqR,IAAiBh1B,EAAQ,IAARA,CAAmB2jB,EAAiB,UAAGqR,EAAcrR,EAAiB,UAAErC,SAE5G2I,EAAetG,EAAS,UAExBsG,EAAejpB,KAAM,QAAQ,GAE7BipB,EAAerI,EAAOzC,KAAM,QAAQ,I,qBCrPpC,IAAI8U,EAAOj0B,EAAQ,IAARA,CAAkB,QACzBohB,EAAWphB,EAAQ,KACnBojB,EAAMpjB,EAAQ,KACdg3B,EAAUh3B,EAAQ,KAAgBhC,EAClCwnB,EAAK,EACLyR,EAAet6B,OAAOs6B,cAAgB,WACxC,OAAO,GAELC,GAAUl3B,EAAQ,IAARA,EAAoB,WAChC,OAAOi3B,EAAat6B,OAAOw6B,kBAAkB,QAE3CC,EAAU,SAAUn5B,GACtB+4B,EAAQ/4B,EAAIg2B,EAAM,CAAEl3B,MAAO,CACzBU,EAAG,OAAQ+nB,EACXtjB,EAAG,OAgCHm1B,EAAO74B,EAAOC,QAAU,CAC1By1B,IAAKD,EACLqD,MAAM,EACNC,QAhCY,SAAUt5B,EAAIglB,GAE1B,IAAK7B,EAASnjB,GAAK,MAAoB,iBAANA,EAAiBA,GAAmB,iBAANA,EAAiB,IAAM,KAAOA,EAC7F,IAAKmlB,EAAInlB,EAAIg2B,GAAO,CAElB,IAAKgD,EAAah5B,GAAK,MAAO,IAE9B,IAAKglB,EAAQ,MAAO,IAEpBmU,EAAQn5B,GAER,OAAOA,EAAGg2B,GAAMx2B,GAsBlB+5B,QApBY,SAAUv5B,EAAIglB,GAC1B,IAAKG,EAAInlB,EAAIg2B,GAAO,CAElB,IAAKgD,EAAah5B,GAAK,OAAO,EAE9B,IAAKglB,EAAQ,OAAO,EAEpBmU,EAAQn5B,GAER,OAAOA,EAAGg2B,GAAM/xB,GAYlBu1B,SATa,SAAUx5B,GAEvB,OADIi5B,GAAUG,EAAKC,MAAQL,EAAah5B,KAAQmlB,EAAInlB,EAAIg2B,IAAOmD,EAAQn5B,GAChEA,K,qBC3CT,IAAIiuB,EAAUlsB,EAAQ,KAClBsyB,EAAOtyB,EAAQ,MACf2rB,EAAM3rB,EAAQ,KAClBxB,EAAOC,QAAU,SAAUR,GACzB,IAAIke,EAAS+P,EAAQjuB,GACjB60B,EAAaR,EAAKt0B,EACtB,GAAI80B,EAKF,IAJA,IAGIxY,EAHAod,EAAU5E,EAAW70B,GACrBkuB,EAASR,EAAI3tB,EACbP,EAAI,EAEDi6B,EAAQ75B,OAASJ,GAAO0uB,EAAO9vB,KAAK4B,EAAIqc,EAAMod,EAAQj6B,OAAO0e,EAAOnB,KAAKV,GAChF,OAAO6B,I,qBCZX,IAAIiN,EAAMppB,EAAQ,MAClBxB,EAAOC,QAAU7B,MAAMQ,SAAW,SAAiBoe,GACjD,MAAmB,SAAZ4N,EAAI5N,K,qBCFb,IAAIwN,EAAYhpB,EAAQ,KACpB40B,EAAO50B,EAAQ,MAAkBhC,EACjC5B,EAAW,GAAGA,SAEdu7B,EAA+B,iBAAV53B,QAAsBA,QAAUpD,OAAO+uB,oBAC5D/uB,OAAO+uB,oBAAoB3rB,QAAU,GAUzCvB,EAAOC,QAAQT,EAAI,SAA6BC,GAC9C,OAAO05B,GAAoC,mBAArBv7B,EAASC,KAAK4B,GATjB,SAAUA,GAC7B,IACE,OAAO22B,EAAK32B,GACZ,MAAO3B,GACP,OAAOq7B,EAAYhc,SAK0Cic,CAAe35B,GAAM22B,EAAK5L,EAAU/qB,M,0CCjBrG+B,EAAQ,KAARA,CAAyB,kB,qBCAzBA,EAAQ,KAARA,CAAyB,e,qBCAzBxB,EAAOC,QAAU,CAAE,QAAWuB,EAAQ,MAA+C6jB,YAAY,I,qBCAjG7jB,EAAQ,MACRxB,EAAOC,QAAUuB,EAAQ,KAAuBrD,OAAO6xB,gB,qBCAvD,IAAI5E,EAAU5pB,EAAQ,KACtB4pB,EAAQA,EAAQvI,EAAG,SAAU,CAAEmN,eAAgBxuB,EAAQ,MAAgB4uB,O,qBCAvE,IAAIxN,EAAWphB,EAAQ,KACnBiiB,EAAWjiB,EAAQ,KACnB63B,EAAQ,SAAU3U,EAAG6H,GAEvB,GADA9I,EAASiB,IACJ9B,EAAS2J,IAAoB,OAAVA,EAAgB,MAAMztB,UAAUytB,EAAQ,8BAElEvsB,EAAOC,QAAU,CACfmwB,IAAKjyB,OAAO6xB,iBAAmB,aAAe,GAC5C,SAAU9Q,EAAMoa,EAAOlJ,GACrB,KACEA,EAAM5uB,EAAQ,KAARA,CAAkBsuB,SAASjyB,KAAM2D,EAAQ,MAAkBhC,EAAErB,OAAOR,UAAW,aAAayyB,IAAK,IACnGlR,EAAM,IACVoa,IAAUpa,aAAgB9gB,OAC1B,MAAON,GAAKw7B,GAAQ,EACtB,OAAO,SAAwB5U,EAAG6H,GAIhC,OAHA8M,EAAM3U,EAAG6H,GACL+M,EAAO5U,EAAE6U,UAAYhN,EACpB6D,EAAI1L,EAAG6H,GACL7H,GAVX,CAYE,IAAI,QAASlL,GACjB6f,MAAOA,I,qBCvBTr5B,EAAOC,QAAU,CAAE,QAAWuB,EAAQ,MAAqC6jB,YAAY,I,qBCAvF7jB,EAAQ,MACR,IAAIg4B,EAAUh4B,EAAQ,KAAuBrD,OAC7C6B,EAAOC,QAAU,SAAgB8sB,EAAGlY,GAClC,OAAO2kB,EAAQ/U,OAAOsI,EAAGlY,K,qBCH3B,IAAIuW,EAAU5pB,EAAQ,KAEtB4pB,EAAQA,EAAQvI,EAAG,SAAU,CAAE4B,OAAQjjB,EAAQ,S,qBCF/CA,EAAQ,MACRxB,EAAOC,QAAUuB,EAAQ,KAAuBrD,OAAO2uB,S,qBCAvD,IAAI1B,EAAU5pB,EAAQ,KAClBorB,EAAWprB,EAAQ,KAARA,EAA8B,GAE7C4pB,EAAQA,EAAQvI,EAAG,SAAU,CAC3BiK,QAAS,SAAiBrtB,GACxB,OAAOmtB,EAASntB,O,qBCNpB+B,EAAQ,MACRxB,EAAOC,QAAUuB,EAAQ,KAAuBrD,OAAO8oB,Q,qBCAvD,IAAImE,EAAU5pB,EAAQ,KAClBi4B,EAAUj4B,EAAQ,KAARA,EAA8B,GAE5C4pB,EAAQA,EAAQvI,EAAG,SAAU,CAC3BoE,OAAQ,SAAgBxnB,GACtB,OAAOg6B,EAAQh6B,O,qBCNnB+B,EAAQ,MACRA,EAAQ,MACRxB,EAAOC,QAAUuB,EAAQ,KAAuBpD,MAAMC,M,kCCDtD,IAAIqY,EAAMlV,EAAQ,MACd4pB,EAAU5pB,EAAQ,KAClBuyB,EAAWvyB,EAAQ,KACnB3D,EAAO2D,EAAQ,MACfk4B,EAAcl4B,EAAQ,MACtB+yB,EAAW/yB,EAAQ,MACnBm4B,EAAiBn4B,EAAQ,MACzBo4B,EAAYp4B,EAAQ,MAExB4pB,EAAQA,EAAQvI,EAAIuI,EAAQlsB,GAAKsC,EAAQ,KAARA,EAA0B,SAAUxD,GAAQI,MAAMC,KAAKL,MAAW,QAAS,CAE1GK,KAAM,SAAcw7B,GAClB,IAOIx6B,EAAQse,EAAQ9d,EAAM3B,EAPtBwmB,EAAIqP,EAAS8F,GACbjlB,EAAmB,mBAARpW,KAAqBA,KAAOJ,MACvCi2B,EAAO3X,UAAUrd,OACjBy6B,EAAQzF,EAAO,EAAI3X,UAAU,QAAKlD,EAClCugB,OAAoBvgB,IAAVsgB,EACVn4B,EAAQ,EACRq4B,EAASJ,EAAUlV,GAIvB,GAFIqV,IAASD,EAAQpjB,EAAIojB,EAAOzF,EAAO,EAAI3X,UAAU,QAAKlD,EAAW,SAEvDA,GAAVwgB,GAAyBplB,GAAKxW,OAASs7B,EAAYM,GAMrD,IAAKrc,EAAS,IAAI/I,EADlBvV,EAASk1B,EAAS7P,EAAErlB,SACSA,EAASsC,EAAOA,IAC3Cg4B,EAAehc,EAAQhc,EAAOo4B,EAAUD,EAAMpV,EAAE/iB,GAAQA,GAAS+iB,EAAE/iB,SANrE,IAAKzD,EAAW87B,EAAOn8B,KAAK6mB,GAAI/G,EAAS,IAAI/I,IAAO/U,EAAO3B,EAAS4B,QAAQR,KAAMqC,IAChFg4B,EAAehc,EAAQhc,EAAOo4B,EAAUl8B,EAAKK,EAAU47B,EAAO,CAACj6B,EAAKtB,MAAOoD,IAAQ,GAAQ9B,EAAKtB,OASpG,OADAof,EAAOte,OAASsC,EACTgc,M,qBCjCX,IAAI8F,EAAWjiB,EAAQ,KACvBxB,EAAOC,QAAU,SAAU/B,EAAUwkB,EAAInkB,EAAOuuB,GAC9C,IACE,OAAOA,EAAUpK,EAAGe,EAASllB,GAAO,GAAIA,EAAM,IAAMmkB,EAAGnkB,GAEvD,MAAOT,GACP,IAAI2H,EAAMvH,EAAiB,OAE3B,WADYsb,IAAR/T,GAAmBge,EAAShe,EAAI5H,KAAKK,IACnCJ,K,qBCRV,IAAIytB,EAAY/pB,EAAQ,KACpBmqB,EAAWnqB,EAAQ,IAARA,CAAkB,YAC7By4B,EAAa77B,MAAMT,UAEvBqC,EAAOC,QAAU,SAAUR,GACzB,YAAc+Z,IAAP/Z,IAAqB8rB,EAAUntB,QAAUqB,GAAMw6B,EAAWtO,KAAclsB,K,kCCLjF,IAAI43B,EAAkB71B,EAAQ,KAC1B4rB,EAAa5rB,EAAQ,KAEzBxB,EAAOC,QAAU,SAAUyqB,EAAQ/oB,EAAOpD,GACpCoD,KAAS+oB,EAAQ2M,EAAgB73B,EAAEkrB,EAAQ/oB,EAAOyrB,EAAW,EAAG7uB,IAC/DmsB,EAAO/oB,GAASpD,I,qBCNvB,IAAI27B,EAAU14B,EAAQ,MAClBmqB,EAAWnqB,EAAQ,IAARA,CAAkB,YAC7B+pB,EAAY/pB,EAAQ,KACxBxB,EAAOC,QAAUuB,EAAQ,KAAW24B,kBAAoB,SAAU16B,GAChE,QAAU+Z,GAAN/Z,EAAiB,OAAOA,EAAGksB,IAC1BlsB,EAAG,eACH8rB,EAAU2O,EAAQz6B,M,qBCLzB,IAAImrB,EAAMppB,EAAQ,MACdqjB,EAAMrjB,EAAQ,IAARA,CAAkB,eAExB44B,EAAkD,aAA5CxP,EAAI,WAAc,OAAOlO,UAArB,IASd1c,EAAOC,QAAU,SAAUR,GACzB,IAAIilB,EAAG0P,EAAGzf,EACV,YAAc6E,IAAP/Z,EAAmB,YAAqB,OAAPA,EAAc,OAEN,iBAApC20B,EAVD,SAAU30B,EAAIqc,GACzB,IACE,OAAOrc,EAAGqc,GACV,MAAOhe,KAOOu8B,CAAO3V,EAAIvmB,OAAOsB,GAAKolB,IAAoBuP,EAEvDgG,EAAMxP,EAAIlG,GAEM,WAAf/P,EAAIiW,EAAIlG,KAAsC,mBAAZA,EAAE4V,OAAuB,YAAc3lB,I,qBCrBhF,IAAIgX,EAAWnqB,EAAQ,IAARA,CAAkB,YAC7B+4B,GAAe,EAEnB,IACE,IAAIC,EAAQ,CAAC,GAAG7O,KAChB6O,EAAc,OAAI,WAAcD,GAAe,GAE/Cn8B,MAAMC,KAAKm8B,GAAO,WAAc,MAAM,KACtC,MAAO18B,IAETkC,EAAOC,QAAU,SAAUw6B,EAAMC,GAC/B,IAAKA,IAAgBH,EAAc,OAAO,EAC1C,IAAII,GAAO,EACX,IACE,IAAIh8B,EAAM,CAAC,GACPX,EAAOW,EAAIgtB,KACf3tB,EAAK8B,KAAO,WAAc,MAAO,CAAER,KAAMq7B,GAAO,IAChDh8B,EAAIgtB,GAAY,WAAc,OAAO3tB,GACrCy8B,EAAK97B,GACL,MAAOb,IACT,OAAO68B,I,sGChBM,SAASC,EAAmBj8B,GACzC,OCJa,SAA4BA,GACzC,GAAIP,MAAMQ,QAAQD,GAAM,OAAO,OAAAk8B,EAAA,GAAiBl8B,GDGzC,CAAkBA,IAAQ,OAAAm8B,EAAA,GAAgBn8B,IAAQ,OAAAo8B,EAAA,GAA2Bp8B,IELvE,WACb,MAAM,IAAIG,UAAU,wIFIwE,K,+BGL9F,8CAEA,SAASk8B,EAAQtQ,EAAQuQ,GACvB,IAAI/d,EAAO/e,OAAO+e,KAAKwN,GAEvB,GAAIvsB,OAAOqlB,sBAAuB,CAChC,IAAI0V,EAAU/6B,OAAOqlB,sBAAsBkH,GACvCuQ,IAAgB/B,EAAUA,EAAQtc,QAAO,SAAUua,GACrD,OAAOh5B,OAAOqvB,yBAAyB9C,EAAQyM,GAAK5R,eAEtDrI,EAAKV,KAAKC,MAAMS,EAAMgc,GAGxB,OAAOhc,EAGM,SAASge,EAAehK,GACrC,IAAK,IAAIjyB,EAAI,EAAGA,EAAIyd,UAAUrd,OAAQJ,IAAK,CACzC,IAAIk1B,EAAyB,MAAhBzX,UAAUzd,GAAayd,UAAUzd,GAAK,GAE/CA,EAAI,EACN+7B,EAAQ78B,OAAOg2B,IAAS,GAAM9X,SAAQ,SAAUP,GAC9C,YAAeoV,EAAQpV,EAAKqY,EAAOrY,OAE5B3d,OAAOg9B,0BAChBh9B,OAAOywB,iBAAiBsC,EAAQ/yB,OAAOg9B,0BAA0BhH,IAEjE6G,EAAQ78B,OAAOg2B,IAAS9X,SAAQ,SAAUP,GACxC3d,OAAO+mB,eAAegM,EAAQpV,EAAK3d,OAAOqvB,yBAAyB2G,EAAQrY,OAKjF,OAAOoV,I,oBCjCTlxB,EAAOC,QAAU,CAAE,QAAWuB,EAAQ,MAAqC6jB,YAAY,I,kCCIvF,SAAS+V,EAAgBzf,GAAO,OAAOA,GAAOA,EAAI0J,WAAa1J,EAAa,QAAIA,EAFhF1b,EAAQolB,YAAa,EAIrB,IAAIgW,EAAoB75B,EAAQ,MAEhCvB,EAAQq7B,iBAAmBF,EAAgBC,GAE3C,IAAIE,EAAU/5B,EAAQ,MAEtBvB,EAAQu7B,OAASJ,EAAgBG,GAEjC,IAAIE,EAASj6B,EAAQ,MAErBvB,EAAQy7B,MAAQN,EAAgBK,GAEhC,IAAIE,EAAen6B,EAAQ,MAE3BvB,EAAQ27B,YAAcR,EAAgBO,GAEtC,IAAIE,EAAiBr6B,EAAQ,MAE7BvB,EAAQ67B,cAAgBV,EAAgBS,GAExC,IAAIE,EAAgBv6B,EAAQ,MAE5BvB,EAAQ+7B,aAAeZ,EAAgBW,GAEvC,IAAIE,EAAmBz6B,EAAQ,MAE/BvB,EAAQi8B,gBAAkBd,EAAgBa,GAE1C,IAAIE,EAAkB36B,EAAQ,MAE9BvB,EAAQm8B,eAAiBhB,EAAgBe,GAEzC,IAAIE,EAAU76B,EAAQ,MAEtBvB,EAAQq8B,OAASlB,EAAgBiB,GAEjC,IAAIE,EAAU/6B,EAAQ,MAEtBvB,EAAQu8B,OAASpB,EAAgBmB,GAEjC,IAAIE,EAAUj7B,EAAQ,MAEtBvB,EAAQy8B,OAAStB,EAAgBqB,GAEjC,IAAIE,EAASn7B,EAAQ,MAErBvB,EAAQ28B,MAAQxB,EAAgBuB,GAEhC,IAAIE,EAAcr7B,EAAQ,MAE1BvB,EAAQ68B,WAAa1B,EAAgByB,GAErC,IAAIE,EAAUv7B,EAAQ,MAEtBvB,EAAQ+8B,OAAS5B,EAAgB2B,GAEjC,IAAIE,EAAWz7B,EAAQ,MAEvBvB,EAAiB,QAAIm7B,EAAgB6B,GAErC,IAAIC,EAAY17B,EAAQ,MAExBvB,EAAQk9B,SAAW/B,EAAgB8B,GAEnC,IAAIE,EAAU57B,EAAQ,MAEtBvB,EAAQo9B,OAASjC,EAAgBgC,GAEjC,IAAIE,EAAQ97B,EAAQ,MAEpBvB,EAAQs9B,KAAOnC,EAAgBkC,GAE/B,IAAIE,EAAUh8B,EAAQ,MAEtBvB,EAAQw9B,OAASrC,EAAgBoC,GAEjC,IAAIE,EAAal8B,EAAQ,MAEzBvB,EAAQ09B,UAAYvC,EAAgBsC,GAEpC,IAAIE,EAAep8B,EAAQ,MAE3BvB,EAAQ49B,YAAczC,EAAgBwC,GAEtC,IAAIE,EAAYt8B,EAAQ,MAExBvB,EAAQ89B,SAAW3C,EAAgB0C,GAEnC,IAAIE,EAAax8B,EAAQ,MAEzBvB,EAAQg+B,UAAY7C,EAAgB4C,GAEpC,IAAIE,EAAW18B,EAAQ,MAEvBvB,EAAQk+B,QAAU/C,EAAgB8C,GAElC,IAAIE,EAAa58B,EAAQ,MAEzBvB,EAAQo+B,UAAYjD,EAAgBgD,GAEpC,IAAIE,EAAS98B,EAAQ,MAErBvB,EAAQs+B,MAAQnD,EAAgBkD,GAEhC,IAAIE,EAAWh9B,EAAQ,MAEvBvB,EAAQw+B,QAAUrD,EAAgBoD,GAElC,IAAIE,EAASl9B,EAAQ,MAErBvB,EAAQ0+B,MAAQvD,EAAgBsD,GAEhC,IAAIE,EAAWp9B,EAAQ,MAEvBvB,EAAQ4+B,QAAUzD,EAAgBwD,GAElC,IAAIE,EAAOt9B,EAAQ,MAEnBvB,EAAQ8+B,IAAM3D,EAAgB0D,GAE9B,IAAIE,EAAcx9B,EAAQ,MAE1BvB,EAAQg/B,WAAa7D,EAAgB4D,GAErC,IAAIE,EAAgB19B,EAAQ,MAE5BvB,EAAQk/B,aAAe/D,EAAgB8D,GAEvC,IAAIE,EAAa59B,EAAQ,MAEzBvB,EAAQo/B,UAAYjE,EAAgBgE,GAEpC,IAAIE,EAAe99B,EAAQ,MAE3BvB,EAAQs/B,YAAcnE,EAAgBkE,GAEtC,IAAIE,EAAYh+B,EAAQ,MAExBvB,EAAQw/B,SAAWrE,EAAgBoE,GAEnC,IAAIE,EAAQl+B,EAAQ,MAEpBvB,EAAQ0/B,KAAOvE,EAAgBsE,GAE/B,IAAIE,EAAYp+B,EAAQ,MAExBvB,EAAQ4/B,SAAWzE,EAAgBwE,I,kCCtJnC3/B,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,mBACRC,OAAQ,2CACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,SACRC,OAAQ,8CACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,QACRC,OAAQ,8CACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,eACRC,OAAQ,uFACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,iBACRC,OAAQ,yFACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,gBACRC,OAAQ,wFACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,mBACRC,OAAQ,4FACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,kBACRC,OAAQ,2FACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,SACRC,OAAQ,cACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,SACRC,OAAQ,iDACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,SACRC,OAAQ,0CACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,QACRC,OAAQ,0CACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,aACRC,OAAQ,YACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,SACRC,OAAQ,yBACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,UACRC,OAAQ,0CACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,WACRC,OAAQ,0CACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,SACRC,OAAQ,8CACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,OACRC,OAAQ,0CACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,SACRC,OAAQ,uCACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,YACRC,OAAQ,iDACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,eACRC,OAAQ,0CACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,aACRC,OAAQ,8CACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,YACRC,OAAQ,cACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,UACRC,OAAQ,cACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,YACRC,OAAQ,gDACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,QACRC,OAAQ,0CACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,UACRC,OAAQ,0CACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,QACRC,OAAQ,0CACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,UACRC,OAAQ,cACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,MACRC,OAAQ,0CACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,aACRC,OAAQ,qCACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,eACRC,OAAQ,qCACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,YACRC,OAAQ,0DACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,cACRC,OAAQ,kDACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,WACRC,OAAQ,0CACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,cACRC,OAAQ,cACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kCCrBlCA,EAAQolB,YAAa,EACrBplB,EAAiB,QAAI,CACnB6/B,OAAQ,WACRC,OAAQ,mCACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,UACRC,OAAQ,WAEV/gC,EAAOC,QAAUA,EAAiB,S,kBCvBlC,IAAIkjB,EAAOnjB,EAAOC,QAAU,CAAEqjB,QAAS,UACrB,iBAAP0d,MAAiBA,IAAM7d,I,oBCDlC,IAAIE,EAAQ7hB,EAAQ,KAARA,CAAqB,OAC7B0hB,EAAM1hB,EAAQ,KACdvD,EAASuD,EAAQ,KAAavD,OAC9BgjC,EAA8B,mBAAVhjC,GAET+B,EAAOC,QAAU,SAAUsY,GACxC,OAAO8K,EAAM9K,KAAU8K,EAAM9K,GAC3B0oB,GAAchjC,EAAOsa,KAAU0oB,EAAahjC,EAASilB,GAAK,UAAY3K,MAGjE8K,MAAQA,G,gCCRjBpjB,EAAQolB,YAAa,EAErB,IAIgC1J,EAJ5BulB,EAAU1/B,EAAQ,MAElB2/B,GAE4BxlB,EAFMulB,IAEevlB,EAAI0J,WAAa1J,EAAM,CAAEqT,QAASrT,GAEvF1b,EAAQ+uB,QAAUmS,EAASnS,SAAW,SAAUkC,GAC9C,IAAK,IAAIjyB,EAAI,EAAGA,EAAIyd,UAAUrd,OAAQJ,IAAK,CACzC,IAAIk1B,EAASzX,UAAUzd,GAEvB,IAAK,IAAI6c,KAAOqY,EACVh2B,OAAOR,UAAU6oB,eAAe3oB,KAAKs2B,EAAQrY,KAC/CoV,EAAOpV,GAAOqY,EAAOrY,IAK3B,OAAOoV,I,oBCrBT,IAAI9N,EAAS5hB,EAAQ,KACjB2hB,EAAO3hB,EAAQ,KACfkV,EAAMlV,EAAQ,MACd8pB,EAAO9pB,EAAQ,KACfojB,EAAMpjB,EAAQ,KAGd4pB,EAAU,SAAVA,EAAoBrL,EAAMxH,EAAM4b,GAClC,IASIrY,EAAKslB,EAAKn8B,EATVo8B,EAAYthB,EAAOqL,EAAQlsB,EAC3BoiC,EAAYvhB,EAAOqL,EAAQ0M,EAC3ByJ,EAAYxhB,EAAOqL,EAAQvI,EAC3B2e,EAAWzhB,EAAOqL,EAAQ2B,EAC1B0U,EAAU1hB,EAAOqL,EAAQzW,EACzB+sB,EAAU3hB,EAAOqL,EAAQ2M,EACzB93B,EAAUqhC,EAAYne,EAAOA,EAAK5K,KAAU4K,EAAK5K,GAAQ,IACzDopB,EAAW1hC,EAAiB,UAC5BixB,EAASoQ,EAAYle,EAASme,EAAYne,EAAO7K,IAAS6K,EAAO7K,IAAS,IAAa,UAG3F,IAAKuD,KADDwlB,IAAWnN,EAAS5b,GACZ4b,GAEViN,GAAOC,GAAanQ,QAA0B1X,IAAhB0X,EAAOpV,KAC1B8I,EAAI3kB,EAAS6b,KAExB7W,EAAMm8B,EAAMlQ,EAAOpV,GAAOqY,EAAOrY,GAEjC7b,EAAQ6b,GAAOwlB,GAAmC,mBAAfpQ,EAAOpV,GAAqBqY,EAAOrY,GAEpE2lB,GAAWL,EAAM1qB,EAAIzR,EAAKme,GAE1Bse,GAAWxQ,EAAOpV,IAAQ7W,EAAO,SAAU2P,GAC3C,IAAI1V,EAAI,SAAU6G,EAAGzD,EAAGV,GACtB,GAAIpD,gBAAgBoW,EAAG,CACrB,OAAQ8H,UAAUrd,QAChB,KAAK,EAAG,OAAO,IAAIuV,EACnB,KAAK,EAAG,OAAO,IAAIA,EAAE7O,GACrB,KAAK,EAAG,OAAO,IAAI6O,EAAE7O,EAAGzD,GACxB,OAAO,IAAIsS,EAAE7O,EAAGzD,EAAGV,GACrB,OAAOgT,EAAE6H,MAAMje,KAAMke,YAGzB,OADAxd,EAAW,UAAI0V,EAAW,UACnB1V,EAX0B,CAahC+F,GAAOu8B,GAA0B,mBAAPv8B,EAAoByR,EAAIoZ,SAASjyB,KAAMoH,GAAOA,EAEvEu8B,KACDvhC,EAAQ2hC,UAAY3hC,EAAQ2hC,QAAU,KAAK9lB,GAAO7W,EAE/C8a,EAAOqL,EAAQyW,GAAKF,IAAaA,EAAS7lB,IAAMwP,EAAKqW,EAAU7lB,EAAK7W,MAK9EmmB,EAAQlsB,EAAI,EACZksB,EAAQ0M,EAAI,EACZ1M,EAAQvI,EAAI,EACZuI,EAAQ2B,EAAI,EACZ3B,EAAQzW,EAAI,GACZyW,EAAQ2M,EAAI,GACZ3M,EAAQ0W,EAAI,GACZ1W,EAAQyW,EAAI,IACZ7hC,EAAOC,QAAUmrB,G,kBC5DjB,IAAIhI,EAASpjB,EAAOC,QAA2B,oBAAVsB,QAAyBA,OAAOiB,MAAQA,KACzEjB,OAAwB,oBAARuE,MAAuBA,KAAKtD,MAAQA,KAAOsD,KAE3DgqB,SAAS,cAATA,GACc,iBAAPiS,MAAiBA,IAAM3e,I,oBCJlCpjB,EAAOC,SAAWuB,EAAQ,IAARA,EAAoB,WACpC,OAA+E,GAAxErD,OAAO+mB,eAAe,GAAI,IAAK,CAAEmF,IAAK,WAAc,OAAO,KAAQtkB,M,iCCF5E,+CACe,SAASi8B,EAA4BhjC,EAAGijC,GACrD,GAAKjjC,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAO,YAAiBA,EAAGijC,GACtD,IAAI7iC,EAAIjB,OAAOR,UAAUC,SAASC,KAAKmB,GAAGme,MAAM,GAAI,GAEpD,MADU,WAAN/d,GAAkBJ,EAAE2B,cAAavB,EAAIJ,EAAE2B,YAAY4X,MAC7C,QAANnZ,GAAqB,QAANA,EAAoBhB,MAAMC,KAAKe,GACxC,cAANA,GAAqB,2CAA2C8f,KAAK9f,GAAW,YAAiBJ,EAAGijC,QAAxG,K,oBCPF,IAAIxe,EAAWjiB,EAAQ,KACnB8rB,EAAiB9rB,EAAQ,MACzB6rB,EAAc7rB,EAAQ,MACtBwzB,EAAK72B,OAAO+mB,eAEhBjlB,EAAQT,EAAIgC,EAAQ,KAAoBrD,OAAO+mB,eAAiB,SAAwBR,EAAGqI,EAAGmV,GAI5F,GAHAze,EAASiB,GACTqI,EAAIM,EAAYN,GAAG,GACnBtJ,EAASye,GACL5U,EAAgB,IAClB,OAAO0H,EAAGtQ,EAAGqI,EAAGmV,GAChB,MAAOpkC,IACT,GAAI,QAASokC,GAAc,QAASA,EAAY,MAAMpjC,UAAU,4BAEhE,MADI,UAAWojC,IAAYxd,EAAEqI,GAAKmV,EAAW3jC,OACtCmmB,I,kBCdT,IAAI8B,EAAiB,GAAGA,eACxBxmB,EAAOC,QAAU,SAAUR,EAAIqc,GAC7B,OAAO0K,EAAe3oB,KAAK4B,EAAIqc,K,oBCDjC,IAAIkY,EAAUxyB,EAAQ,MAClBqzB,EAAUrzB,EAAQ,MACtBxB,EAAOC,QAAU,SAAUR,GACzB,OAAOu0B,EAAQa,EAAQp1B,M,gCCFzBQ,EAAQolB,YAAa,EAErBplB,EAAQ+uB,QAAU,SAAUF,EAAU9C,GACpC,KAAM8C,aAAoB9C,GACxB,MAAM,IAAIltB,UAAU,uC,gCCJxBmB,EAAQolB,YAAa,EAErB,IAIgC1J,EAJ5BwmB,EAAW3gC,EAAQ,KAEnB4gC,GAE4BzmB,EAFMwmB,IAEexmB,EAAI0J,WAAa1J,EAAM,CAAEqT,QAASrT,GAEvF1b,EAAQ+uB,QAAU,SAAUlpB,EAAMjI,GAChC,IAAKiI,EACH,MAAM,IAAI0oB,eAAe,6DAG3B,OAAO3wB,GAAuF,YAA7D,qBAATA,EAAuB,aAAc,EAAIukC,EAASpT,SAASnxB,KAAuC,oBAATA,EAA8BiI,EAAPjI,I,gCCb1IoC,EAAQolB,YAAa,EAErB,IAEIgd,EAAmBC,EAFD9gC,EAAQ,OAM1B+gC,EAAWD,EAFD9gC,EAAQ,OAMlB4gC,EAAWE,EAFA9gC,EAAQ,MAIvB,SAAS8gC,EAAuB3mB,GAAO,OAAOA,GAAOA,EAAI0J,WAAa1J,EAAM,CAAEqT,QAASrT,GAEvF1b,EAAQ+uB,QAAU,SAAUyC,EAAUC,GACpC,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI5yB,UAAU,4DAAoF,qBAAf4yB,EAA6B,aAAc,EAAI0Q,EAASpT,SAAS0C,KAG5JD,EAAS9zB,WAAY,EAAI4kC,EAASvT,SAAS0C,GAAcA,EAAW/zB,UAAW,CAC7EgD,YAAa,CACXpC,MAAOkzB,EACPlM,YAAY,EACZC,UAAU,EACVT,cAAc,KAGd2M,IAAY2Q,EAAiBrT,SAAU,EAAIqT,EAAiBrT,SAASyC,EAAUC,GAAcD,EAAS8H,UAAY7H,K,gCC7BxHzxB,EAAQolB,YAAa,EAErBplB,EAAQ+uB,QAAU,SAAUrT,EAAKuB,GAC/B,IAAIgU,EAAS,GAEb,IAAK,IAAIjyB,KAAK0c,EACRuB,EAAKiT,QAAQlxB,IAAM,GAClBd,OAAOR,UAAU6oB,eAAe3oB,KAAK8d,EAAK1c,KAC/CiyB,EAAOjyB,GAAK0c,EAAI1c,IAGlB,OAAOiyB,I,oBCbT,IAAI8D,EAAKxzB,EAAQ,KACb4rB,EAAa5rB,EAAQ,KACzBxB,EAAOC,QAAUuB,EAAQ,KAAoB,SAAUkpB,EAAQ5O,EAAKvd,GAClE,OAAOy2B,EAAGx1B,EAAEkrB,EAAQ5O,EAAKsR,EAAW,EAAG7uB,KACrC,SAAUmsB,EAAQ5O,EAAKvd,GAEzB,OADAmsB,EAAO5O,GAAOvd,EACPmsB,I,oBCNT,IAAI9H,EAAWphB,EAAQ,KACvBxB,EAAOC,QAAU,SAAUR,GACzB,IAAKmjB,EAASnjB,GAAK,MAAMX,UAAUW,EAAK,sBACxC,OAAOA,I,kBCHTO,EAAOC,QAAU,SAAUR,GACzB,MAAqB,kBAAPA,EAAyB,OAAPA,EAA4B,oBAAPA,I,iCCDxC,SAAS+iC,EAAgBxjC,EAAGgR,GAMzC,OALAwyB,EAAkBrkC,OAAO6xB,gBAAkB,SAAyBhxB,EAAGgR,GAErE,OADAhR,EAAEu6B,UAAYvpB,EACPhR,IAGcA,EAAGgR,GAN5B,mC,iCCAe,SAASyyB,EAAQ9mB,GAa9B,OATE8mB,EADoB,oBAAXxkC,QAAoD,kBAApBA,OAAOC,SACtC,SAAiByd,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX1d,QAAyB0d,EAAIhb,cAAgB1C,QAAU0d,IAAQ1d,OAAON,UAAY,gBAAkBge,IAI9GA,G,+CCXF,SAAS+mB,EAA2B58B,EAAMjI,GACvD,OAAIA,GAA2B,WAAlB4kC,EAAQ5kC,IAAsC,oBAATA,EAI3C,OAAA8kC,EAAA,GAAsB78B,GAHpBjI,I,gCCHI,SAAS+kC,EAAyBzO,EAAQ0O,GACvD,GAAc,MAAV1O,EAAgB,MAAO,GAC3B,IACIrY,EAAK7c,EADLiyB,ECHS,SAAuCiD,EAAQ0O,GAC5D,GAAc,MAAV1O,EAAgB,MAAO,GAC3B,IAEIrY,EAAK7c,EAFLiyB,EAAS,GACT4R,EAAa3kC,OAAO+e,KAAKiX,GAG7B,IAAKl1B,EAAI,EAAGA,EAAI6jC,EAAWzjC,OAAQJ,IACjC6c,EAAMgnB,EAAW7jC,GACb4jC,EAAS1S,QAAQrU,IAAQ,IAC7BoV,EAAOpV,GAAOqY,EAAOrY,IAGvB,OAAOoV,EDTM,CAA6BiD,EAAQ0O,GAGlD,GAAI1kC,OAAOqlB,sBAAuB,CAChC,IAAIuf,EAAmB5kC,OAAOqlB,sBAAsB2Q,GAEpD,IAAKl1B,EAAI,EAAGA,EAAI8jC,EAAiB1jC,OAAQJ,IACvC6c,EAAMinB,EAAiB9jC,GACnB4jC,EAAS1S,QAAQrU,IAAQ,GACxB3d,OAAOR,UAAUktB,qBAAqBhtB,KAAKs2B,EAAQrY,KACxDoV,EAAOpV,GAAOqY,EAAOrY,IAIzB,OAAOoV,E,oEEfT,IAAM5wB,EAAWkB,EAAQ,KACnBiZ,EAAWjZ,EAAQ,MAAoBiZ,SACvCpZ,EAASG,EAAQ,MAAgBH,OAEvC,SAASsZ,EAAc7Z,EAAM0c,GAC3B/C,EAAS5c,KAAKW,KAAMgf,GACfnc,EAAOymB,SAAShnB,IAKrBtC,KAAKsC,KAAOA,EACZtC,KAAK+f,OAAS,EACd/f,KAAKa,OAASyB,EAAKzB,QANjBb,KAAKihB,MAAM,oBA8Ef,SAAS/E,EAAcnc,EAAO0hB,GAC5B,GAAI7hB,MAAMQ,QAAQL,GAChBC,KAAKa,OAAS,EACdb,KAAKD,MAAQA,EAAM0e,KAAI,SAASG,GAI9B,OAHK1C,EAAcsoB,gBAAgB5lB,KACjCA,EAAO,IAAI1C,EAAc0C,EAAM6C,IACjCzhB,KAAKa,QAAU+d,EAAK/d,OACb+d,IACN5e,WACE,GAAqB,kBAAVD,EAAoB,CACpC,KAAM,GAAKA,GAASA,GAAS,KAC3B,OAAO0hB,EAASR,MAAM,gCACxBjhB,KAAKD,MAAQA,EACbC,KAAKa,OAAS,OACT,GAAqB,kBAAVd,EAChBC,KAAKD,MAAQA,EACbC,KAAKa,OAASgC,EAAOiF,WAAW/H,OAC3B,KAAI8C,EAAOymB,SAASvpB,GAIzB,OAAO0hB,EAASR,MAAM,4BAA8BlhB,GAHpDC,KAAKD,MAAQA,EACbC,KAAKa,OAASd,EAAMc,QAzFxBiB,EAASqa,EAAeF,GACxBxa,EAAQ0a,cAAgBA,EAExBA,EAAckO,gBAAkB,SAAyBlK,GACvD,OAAIA,aAAgBhE,GAKiB,kBAATgE,GAC1Btd,EAAOymB,SAASnJ,EAAK7d,OACK,kBAA1B6d,EAAKhe,YAAY4X,MACM,kBAAhBoG,EAAKJ,QACW,kBAAhBI,EAAKtf,QACS,oBAAdsf,EAAKV,MACY,oBAAjBU,EAAKP,SACY,oBAAjBO,EAAKoK,SACc,oBAAnBpK,EAAK6J,WACS,oBAAd7J,EAAKsK,MACQ,oBAAbtK,EAAKH,KAKhB7D,EAAchd,UAAUsgB,KAAO,WAC7B,MAAO,CAAEM,OAAQ/f,KAAK+f,OAAQ0B,SAAUxF,EAAS9c,UAAUsgB,KAAKpgB,KAAKW,QAGvEmc,EAAchd,UAAUygB,QAAU,SAAiBH,GAEjD,IAAMzX,EAAM,IAAImU,EAAcnc,KAAKsC,MAOnC,OANA0F,EAAI+X,OAASN,EAAKM,OAClB/X,EAAInH,OAASb,KAAK+f,OAElB/f,KAAK+f,OAASN,EAAKM,OACnB9D,EAAS9c,UAAUygB,QAAQvgB,KAAKW,KAAMyf,EAAKgC,UAEpCzZ,GAGTmU,EAAchd,UAAUorB,QAAU,WAChC,OAAOvqB,KAAK+f,SAAW/f,KAAKa,QAG9Bsb,EAAchd,UAAU6qB,UAAY,SAAmBD,GACrD,OAAI/pB,KAAK+f,OAAS,GAAK/f,KAAKa,OACnBb,KAAKsC,KAAK0nB,UAAUhqB,KAAK+f,UAAU,GAEnC/f,KAAKihB,MAAM8I,GAAQ,0BAG9B5N,EAAchd,UAAUsrB,KAAO,SAAcga,EAAO1a,GAClD,KAAM/pB,KAAK+f,OAAS0kB,GAASzkC,KAAKa,QAChC,OAAOb,KAAKihB,MAAM8I,GAAQ,yBAE5B,IAAM/hB,EAAM,IAAImU,EAAcnc,KAAKsC,MAQnC,OALA0F,EAAIqY,eAAiBrgB,KAAKqgB,eAE1BrY,EAAI+X,OAAS/f,KAAK+f,OAClB/X,EAAInH,OAASb,KAAK+f,OAAS0kB,EAC3BzkC,KAAK+f,QAAU0kB,EACRz8B,GAGTmU,EAAchd,UAAU6gB,IAAM,SAAaP,GACzC,OAAOzf,KAAKsC,KAAKqc,MAAMc,EAAOA,EAAKM,OAAS/f,KAAK+f,OAAQ/f,KAAKa,SA2BhEY,EAAQya,cAAgBA,EAExBA,EAAcsoB,gBAAkB,SAAyBrkB,GACvD,OAAIA,aAAgBjE,GAKiB,kBAATiE,GACA,kBAA1BA,EAAKhe,YAAY4X,MACM,kBAAhBoG,EAAKtf,QACS,oBAAdsf,EAAK8C,MAKhB/G,EAAc/c,UAAU8jB,KAAO,SAAcxc,EAAKsZ,GAMhD,OALKtZ,IACHA,EAAM5D,EAAOslB,MAAMnoB,KAAKa,SACrBkf,IACHA,EAAS,GAES,IAAhB/f,KAAKa,SAGLjB,MAAMQ,QAAQJ,KAAKD,OACrBC,KAAKD,MAAM8d,SAAQ,SAASe,GAC1BA,EAAKqE,KAAKxc,EAAKsZ,GACfA,GAAUnB,EAAK/d,WAGS,kBAAfb,KAAKD,MACd0G,EAAIsZ,GAAU/f,KAAKD,MACU,kBAAfC,KAAKD,MACnB0G,EAAIsf,MAAM/lB,KAAKD,MAAOggB,GACfld,EAAOymB,SAAStpB,KAAKD,QAC5BC,KAAKD,MAAM8F,KAAKY,EAAKsZ,GACvBA,GAAU/f,KAAKa,SAdR4F,I,kBCtIXjF,EAAOC,QAAU,SAAUw6B,GACzB,IACE,QAASA,IACT,MAAO38B,GACP,OAAO,K,kBCJXkC,EAAOC,QAAU,SAAUijC,EAAQ3kC,GACjC,MAAO,CACLgnB,aAAuB,EAAT2d,GACdne,eAAyB,EAATme,GAChB1d,WAAqB,EAAT0d,GACZ3kC,MAAOA,K,oBCJX,IAAIyuB,EAAQxrB,EAAQ,MAChBmiB,EAAcniB,EAAQ,MAE1BxB,EAAOC,QAAU9B,OAAO+e,MAAQ,SAAcwH,GAC5C,OAAOsI,EAAMtI,EAAGf,K,kBCLlB1jB,EAAQT,EAAI,GAAGqrB,sB,kBCAf7qB,EAAOC,QAAU,I,iCCAF,SAASkjC,EAAgBnkC,GAItC,OAHAmkC,EAAkBhlC,OAAO6xB,eAAiB7xB,OAAOutB,eAAiB,SAAyB1sB,GACzF,OAAOA,EAAEu6B,WAAap7B,OAAOutB,eAAe1sB,KAEvBA,GAJzB,mC,iCCAe,SAASokC,EAAkBzkC,EAAK4D,IAClC,MAAPA,GAAeA,EAAM5D,EAAIU,UAAQkD,EAAM5D,EAAIU,QAE/C,IAAK,IAAIJ,EAAI,EAAGokC,EAAO,IAAIjlC,MAAMmE,GAAMtD,EAAIsD,EAAKtD,IAC9CokC,EAAKpkC,GAAKN,EAAIM,GAGhB,OAAOokC,EAPT,mC,oBCAArjC,EAAOC,QAAU,CAAE,QAAWuB,EAAQ,MAAsC6jB,YAAY,I,kBCAxFrlB,EAAOC,SAAU,G,kBCAjB,IAAI+mB,EAAK,EACLsc,EAAK9gC,KAAK+gC,SACdvjC,EAAOC,QAAU,SAAU6b,GACzB,MAAO,UAAUhB,YAAetB,IAARsC,EAAoB,GAAKA,EAAK,QAASkL,EAAKsc,GAAI1lC,SAAS,O,oBCFnF,IAAIi3B,EAAUrzB,EAAQ,MACtBxB,EAAOC,QAAU,SAAUR,GACzB,OAAOtB,OAAO02B,EAAQp1B,M,sGCCT,SAAS+jC,EAAe7kC,EAAKM,GAC1C,OAAO,OAAAwkC,EAAA,GAAe9kC,ICLT,SAA+BA,EAAKM,GACjD,GAAsB,qBAAXhB,QAA4BA,OAAOC,YAAYC,OAAOQ,GAAjE,CACA,IAAI+kC,EAAO,GACPC,GAAK,EACLC,GAAK,EACLrkC,OAAKia,EAET,IACE,IAAK,IAAiCqqB,EAA7B3Y,EAAKvsB,EAAIV,OAAOC,cAAmBylC,GAAME,EAAK3Y,EAAGprB,QAAQR,QAChEokC,EAAKlnB,KAAKqnB,EAAGtlC,QAETU,GAAKykC,EAAKrkC,SAAWJ,GAH8C0kC,GAAK,IAK9E,MAAOjkC,GACPkkC,GAAK,EACLrkC,EAAKG,EACL,QACA,IACOikC,GAAsB,MAAhBzY,EAAW,QAAWA,EAAW,SAC5C,QACA,GAAI0Y,EAAI,MAAMrkC,GAIlB,OAAOmkC,GDnBuB,CAAqB/kC,EAAKM,IAAM,OAAA87B,EAAA,GAA2Bp8B,EAAKM,IAAM,OAAA6kC,EAAA,O,iCEHtG7jC,EAAQolB,YAAa,EAErB,IAEI0e,EAAazB,EAFD9gC,EAAQ,OAMpBwiC,EAAW1B,EAFD9gC,EAAQ,OAIlBihC,EAAsC,oBAArBuB,EAAShV,SAAwD,kBAAvB+U,EAAW/U,QAAuB,SAAUrT,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAmC,oBAArBqoB,EAAShV,SAA0BrT,EAAIhb,cAAgBqjC,EAAShV,SAAWrT,IAAQqoB,EAAShV,QAAQrxB,UAAY,gBAAkBge,GAEjT,SAAS2mB,EAAuB3mB,GAAO,OAAOA,GAAOA,EAAI0J,WAAa1J,EAAM,CAAEqT,QAASrT,GAEvF1b,EAAQ+uB,QAAsC,oBAArBgV,EAAShV,SAA0D,WAAhCyT,EAAQsB,EAAW/U,SAAwB,SAAUrT,GAC/G,MAAsB,qBAARA,EAAsB,YAAc8mB,EAAQ9mB,IACxD,SAAUA,GACZ,OAAOA,GAAmC,oBAArBqoB,EAAShV,SAA0BrT,EAAIhb,cAAgBqjC,EAAShV,SAAWrT,IAAQqoB,EAAShV,QAAQrxB,UAAY,SAA0B,qBAARge,EAAsB,YAAc8mB,EAAQ9mB","file":"static/js/main~2a42e354.b21b0f4a.chunk.js","sourcesContent":["export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _AwaitValue(value) {\n this.wrapped = value;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nexport default function _createForOfIteratorHelper(o) {\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (o = unsupportedIterableToArray(o))) {\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var it,\n normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, 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 // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nconst Reporter = require('../base/reporter').Reporter;\nconst EncoderBuffer = require('../base/buffer').EncoderBuffer;\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst assert = require('minimalistic-assert');\n\n// Supported tags\nconst tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nconst methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nconst overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent, name) {\n const state = {};\n this._baseState = state;\n\n state.name = name;\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nconst stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n const state = this._baseState;\n const cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n const res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n const state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n const clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n const state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n const state = this._baseState;\n\n // Filter children and args\n const children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n const res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n const value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n const state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n const state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n const state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n const state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n const state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n const state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n const state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n const state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n let result = state['default'];\n let present = true;\n\n let prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n let tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n const save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n let prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n const explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n const start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n let save;\n if (state.any)\n save = input.save();\n const body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any) {\n // no-op\n } else if (state.choice === null) {\n result = this._decodeGeneric(state.tag, input, options);\n } else {\n result = this._decodeChoice(input, options);\n }\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n const data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n const state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n const state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n const state = this._baseState;\n let result = null;\n let match = false;\n\n Object.keys(state.choice).some(function(key) {\n const save = input.save();\n const node = state.choice[key];\n try {\n const value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n const state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n const result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n let result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default'];\n else\n return;\n }\n\n // Encode children first\n let content = null;\n let primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n const prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n const res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n const child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n const state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n if (!state.any && state.choice === null) {\n const tag = state.implicit !== null ? state.implicit : state.tag;\n const cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n const state = this._baseState;\n\n const node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n const state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '()+,-./:=?]*$/.test(str);\n};\n","'use strict';\n\nconst inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n const state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n const state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n const state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n const state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n const state = this._reporterState;\n\n const prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n const state = this._reporterState;\n\n const now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n let err;\n const state = this._reporterState;\n\n const inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n const state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n}\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","'use strict';\n\n// Helper\nfunction reverse(map) {\n const res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n const value = map[key];\n res[value] = key;\n });\n\n return res;\n}\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = reverse(exports.tag);\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","'use strict';\n\nconst asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, 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 // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nconst encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","'use strict';\n\nconst inherits = require('inherits');\nconst Buffer = require('safer-buffer').Buffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n const encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n const header = Buffer.alloc(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n let lenOctets = 1;\n for (let i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n const header = Buffer.alloc(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (let i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n const buf = Buffer.alloc(str.length * 2);\n for (let i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s.]+/g);\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n let size = 0;\n for (let i = 0; i < id.length; i++) {\n let ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n const objid = Buffer.alloc(size);\n let offset = objid.length - 1;\n for (let i = id.length - 1; i >= 0; i--) {\n let ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n let str;\n const date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getUTCFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getUTCFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n const numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = Buffer.from(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n let size = num.length;\n if (num.length === 0)\n size++;\n\n const out = Buffer.alloc(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0;\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n let size = 1;\n for (let i = num; i >= 0x100; i >>= 8)\n size++;\n\n const out = new Array(size);\n for (let i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(Buffer.from(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n const state = this._baseState;\n let i;\n if (state['default'] === null)\n return false;\n\n const data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n let res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","'use strict';\n\nconst decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","'use strict';\n\nconst inherits = require('inherits');\n\nconst bignum = require('bn.js');\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!DecoderBuffer.isDecoderBuffer(data)) {\n data = new DecoderBuffer(data, options);\n }\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n const state = buffer.save();\n const decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n const decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n let len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n const state = buffer.save();\n const res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n for (;;) {\n const tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n const len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n let res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len);\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n const result = [];\n while (!buffer.isEmpty()) {\n const possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n const res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n const unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n const raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n let str = '';\n for (let i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n const numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n const printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n let result;\n const identifiers = [];\n let ident = 0;\n let subident = 0;\n while (!buffer.isEmpty()) {\n subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n const first = (identifiers[0] / 40) | 0;\n const second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n let tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n const str = buffer.raw().toString();\n\n let year;\n let mon;\n let day;\n let hour;\n let min;\n let sec;\n if (tag === 'gentime') {\n year = str.slice(0, 4) | 0;\n mon = str.slice(4, 6) | 0;\n day = str.slice(6, 8) | 0;\n hour = str.slice(8, 10) | 0;\n min = str.slice(10, 12) | 0;\n sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n year = str.slice(0, 2) | 0;\n mon = str.slice(2, 4) | 0;\n day = str.slice(4, 6) | 0;\n hour = str.slice(6, 8) | 0;\n min = str.slice(8, 10) | 0;\n sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull() {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n const res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n const raw = buffer.raw();\n let res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n let tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n const cls = der.tagClass[tag >> 6];\n const primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n let oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n const tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n let len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n const num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (let i = 0; i < num; i++) {\n len <<= 8;\n const j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = require('./_hide');\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","var DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nvar isEnum = require('./_object-pie').f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || isEnum.call(O, key)) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (file, acceptedFiles) {\n if (file && acceptedFiles) {\n var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n var fileName = file.name || '';\n var mimeType = (file.type || '').toLowerCase();\n var baseMimeType = mimeType.replace(/\\/.*$/, '');\n return acceptedFilesArray.some(function (type) {\n var validType = type.trim().toLowerCase();\n\n if (validType.charAt(0) === '.') {\n return fileName.toLowerCase().endsWith(validType);\n } else if (validType.endsWith('/*')) {\n // This is something like a image/* mime type\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n\n return mimeType === validType;\n });\n }\n\n return true;\n};","import setPrototypeOf from \"./setPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nimport setPrototypeOf from \"./setPrototypeOf\";\nimport isNativeFunction from \"./isNativeFunction\";\nimport construct from \"./construct\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","import AwaitValue from \"./AwaitValue\";\nexport default function AsyncGenerator(gen) {\n var front, back;\n\n function send(key, arg) {\n return new Promise(function (resolve, reject) {\n var request = {\n key: key,\n arg: arg,\n resolve: resolve,\n reject: reject,\n next: null\n };\n\n if (back) {\n back = back.next = request;\n } else {\n front = back = request;\n resume(key, arg);\n }\n });\n }\n\n function resume(key, arg) {\n try {\n var result = gen[key](arg);\n var value = result.value;\n var wrappedAwait = value instanceof AwaitValue;\n Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) {\n if (wrappedAwait) {\n resume(key === \"return\" ? \"return\" : \"next\", arg);\n return;\n }\n\n settle(result.done ? \"return\" : \"normal\", arg);\n }, function (err) {\n resume(\"throw\", err);\n });\n } catch (err) {\n settle(\"throw\", err);\n }\n }\n\n function settle(type, value) {\n switch (type) {\n case \"return\":\n front.resolve({\n value: value,\n done: true\n });\n break;\n\n case \"throw\":\n front.reject(value);\n break;\n\n default:\n front.resolve({\n value: value,\n done: false\n });\n break;\n }\n\n front = front.next;\n\n if (front) {\n resume(front.key, front.arg);\n } else {\n back = null;\n }\n }\n\n this._invoke = send;\n\n if (typeof gen[\"return\"] !== \"function\") {\n this[\"return\"] = undefined;\n }\n}\n\nif (typeof Symbol === \"function\" && Symbol.asyncIterator) {\n AsyncGenerator.prototype[Symbol.asyncIterator] = function () {\n return this;\n };\n}\n\nAsyncGenerator.prototype.next = function (arg) {\n return this._invoke(\"next\", arg);\n};\n\nAsyncGenerator.prototype[\"throw\"] = function (arg) {\n return this._invoke(\"throw\", arg);\n};\n\nAsyncGenerator.prototype[\"return\"] = function (arg) {\n return this._invoke(\"return\", arg);\n};","import AsyncGenerator from \"./AsyncGenerator\";\nexport default function _wrapAsyncGenerator(fn) {\n return function () {\n return new AsyncGenerator(fn.apply(this, arguments));\n };\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import AwaitValue from \"./AwaitValue\";\nexport default function _awaitAsyncGenerator(value) {\n return new AwaitValue(value);\n}","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","import getPrototypeOf from \"./getPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n return function () {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (isNativeReflectConstruct()) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","'use strict';\n\nconst encoders = require('./encoders');\nconst decoders = require('./decoders');\nconst inherits = require('inherits');\n\nconst api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n\n this.decoders = {};\n this.encoders = {};\n}\n\nEntity.prototype._createNamed = function createNamed(Base) {\n const name = this.name;\n\n function Generated(entity) {\n this._initNamed(entity, name);\n }\n inherits(Generated, Base);\n Generated.prototype._initNamed = function _initNamed(entity, name) {\n Base.call(this, entity, name);\n };\n\n return new Generated(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der';\n // Lazily create decoder\n if (!this.decoders.hasOwnProperty(enc))\n this.decoders[enc] = this._createNamed(decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der';\n // Lazily create encoder\n if (!this.encoders.hasOwnProperty(enc))\n this.encoders[enc] = this._createNamed(encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\n","'use strict';\n\nconst inherits = require('inherits');\n\nconst DEREncoder = require('./der');\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n}\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n const buf = DEREncoder.prototype.encode.call(this, data);\n\n const p = buf.toString('base64');\n const out = [ '-----BEGIN ' + options.label + '-----' ];\n for (let i = 0; i < p.length; i += 64)\n out.push(p.slice(i, i + 64));\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\n","'use strict';\n\nconst inherits = require('inherits');\nconst Buffer = require('safer-buffer').Buffer;\n\nconst DERDecoder = require('./der');\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n}\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n const lines = data.toString().split(/[\\r\\n]+/g);\n\n const label = options.label.toUpperCase();\n\n const re = /^-----(BEGIN|END) ([^-]+)-----$/;\n let start = -1;\n let end = -1;\n for (let i = 0; i < lines.length; i++) {\n const match = lines[i].match(re);\n if (match === null)\n continue;\n\n if (match[2] !== label)\n continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN')\n break;\n start = i;\n } else {\n if (match[1] !== 'END')\n break;\n end = i;\n break;\n }\n }\n if (start === -1 || end === -1)\n throw new Error('PEM section not found for: ' + label);\n\n const base64 = lines.slice(start + 1, end).join('');\n // Remove excessive symbols\n base64.replace(/[^a-z0-9+/=]+/gi, '');\n\n const input = Buffer.from(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\n","'use strict';\n\nconst base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","'use strict';\n\nconst constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n const res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n const value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\n","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function () { /* empty */ };\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","require('../../modules/es7.object.entries');\nmodule.exports = require('../../modules/_core').Object.entries;\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $entries = require('./_object-to-array')(true);\n\n$export($export.S, 'Object', {\n entries: function entries(it) {\n return $entries(it);\n }\n});\n","require('../../modules/es7.object.values');\nmodule.exports = require('../../modules/_core').Object.values;\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import defineProperty from \"./defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","module.exports = { \"default\": require(\"core-js/library/fn/object/values\"), __esModule: true };","'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequire(obj) { return obj && obj.__esModule ? obj['default'] : obj; }\n\nvar _threezerotwofour = require('./threezerotwofour');\n\nexports.threezerotwofour = _interopRequire(_threezerotwofour);\n\nvar _apathy = require('./apathy');\n\nexports.apathy = _interopRequire(_apathy);\n\nvar _ashes = require('./ashes');\n\nexports.ashes = _interopRequire(_ashes);\n\nvar _atelierDune = require('./atelier-dune');\n\nexports.atelierDune = _interopRequire(_atelierDune);\n\nvar _atelierForest = require('./atelier-forest');\n\nexports.atelierForest = _interopRequire(_atelierForest);\n\nvar _atelierHeath = require('./atelier-heath');\n\nexports.atelierHeath = _interopRequire(_atelierHeath);\n\nvar _atelierLakeside = require('./atelier-lakeside');\n\nexports.atelierLakeside = _interopRequire(_atelierLakeside);\n\nvar _atelierSeaside = require('./atelier-seaside');\n\nexports.atelierSeaside = _interopRequire(_atelierSeaside);\n\nvar _bespin = require('./bespin');\n\nexports.bespin = _interopRequire(_bespin);\n\nvar _brewer = require('./brewer');\n\nexports.brewer = _interopRequire(_brewer);\n\nvar _bright = require('./bright');\n\nexports.bright = _interopRequire(_bright);\n\nvar _chalk = require('./chalk');\n\nexports.chalk = _interopRequire(_chalk);\n\nvar _codeschool = require('./codeschool');\n\nexports.codeschool = _interopRequire(_codeschool);\n\nvar _colors = require('./colors');\n\nexports.colors = _interopRequire(_colors);\n\nvar _default = require('./default');\n\nexports['default'] = _interopRequire(_default);\n\nvar _eighties = require('./eighties');\n\nexports.eighties = _interopRequire(_eighties);\n\nvar _embers = require('./embers');\n\nexports.embers = _interopRequire(_embers);\n\nvar _flat = require('./flat');\n\nexports.flat = _interopRequire(_flat);\n\nvar _google = require('./google');\n\nexports.google = _interopRequire(_google);\n\nvar _grayscale = require('./grayscale');\n\nexports.grayscale = _interopRequire(_grayscale);\n\nvar _greenscreen = require('./greenscreen');\n\nexports.greenscreen = _interopRequire(_greenscreen);\n\nvar _harmonic = require('./harmonic');\n\nexports.harmonic = _interopRequire(_harmonic);\n\nvar _hopscotch = require('./hopscotch');\n\nexports.hopscotch = _interopRequire(_hopscotch);\n\nvar _isotope = require('./isotope');\n\nexports.isotope = _interopRequire(_isotope);\n\nvar _marrakesh = require('./marrakesh');\n\nexports.marrakesh = _interopRequire(_marrakesh);\n\nvar _mocha = require('./mocha');\n\nexports.mocha = _interopRequire(_mocha);\n\nvar _monokai = require('./monokai');\n\nexports.monokai = _interopRequire(_monokai);\n\nvar _ocean = require('./ocean');\n\nexports.ocean = _interopRequire(_ocean);\n\nvar _paraiso = require('./paraiso');\n\nexports.paraiso = _interopRequire(_paraiso);\n\nvar _pop = require('./pop');\n\nexports.pop = _interopRequire(_pop);\n\nvar _railscasts = require('./railscasts');\n\nexports.railscasts = _interopRequire(_railscasts);\n\nvar _shapeshifter = require('./shapeshifter');\n\nexports.shapeshifter = _interopRequire(_shapeshifter);\n\nvar _solarized = require('./solarized');\n\nexports.solarized = _interopRequire(_solarized);\n\nvar _summerfruit = require('./summerfruit');\n\nexports.summerfruit = _interopRequire(_summerfruit);\n\nvar _tomorrow = require('./tomorrow');\n\nexports.tomorrow = _interopRequire(_tomorrow);\n\nvar _tube = require('./tube');\n\nexports.tube = _interopRequire(_tube);\n\nvar _twilight = require('./twilight');\n\nexports.twilight = _interopRequire(_twilight);","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'threezerotwofour',\n author: 'jan t. sott (http://github.com/idleberg)',\n base00: '#090300',\n base01: '#3a3432',\n base02: '#4a4543',\n base03: '#5c5855',\n base04: '#807d7c',\n base05: '#a5a2a2',\n base06: '#d6d5d4',\n base07: '#f7f7f7',\n base08: '#db2d20',\n base09: '#e8bbd0',\n base0A: '#fded02',\n base0B: '#01a252',\n base0C: '#b5e4f4',\n base0D: '#01a0e4',\n base0E: '#a16a94',\n base0F: '#cdab53'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'apathy',\n author: 'jannik siebert (https://github.com/janniks)',\n base00: '#031A16',\n base01: '#0B342D',\n base02: '#184E45',\n base03: '#2B685E',\n base04: '#5F9C92',\n base05: '#81B5AC',\n base06: '#A7CEC8',\n base07: '#D2E7E4',\n base08: '#3E9688',\n base09: '#3E7996',\n base0A: '#3E4C96',\n base0B: '#883E96',\n base0C: '#963E4C',\n base0D: '#96883E',\n base0E: '#4C963E',\n base0F: '#3E965B'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'ashes',\n author: 'jannik siebert (https://github.com/janniks)',\n base00: '#1C2023',\n base01: '#393F45',\n base02: '#565E65',\n base03: '#747C84',\n base04: '#ADB3BA',\n base05: '#C7CCD1',\n base06: '#DFE2E5',\n base07: '#F3F4F5',\n base08: '#C7AE95',\n base09: '#C7C795',\n base0A: '#AEC795',\n base0B: '#95C7AE',\n base0C: '#95AEC7',\n base0D: '#AE95C7',\n base0E: '#C795AE',\n base0F: '#C79595'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'atelier dune',\n author: 'bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune)',\n base00: '#20201d',\n base01: '#292824',\n base02: '#6e6b5e',\n base03: '#7d7a68',\n base04: '#999580',\n base05: '#a6a28c',\n base06: '#e8e4cf',\n base07: '#fefbec',\n base08: '#d73737',\n base09: '#b65611',\n base0A: '#cfb017',\n base0B: '#60ac39',\n base0C: '#1fad83',\n base0D: '#6684e1',\n base0E: '#b854d4',\n base0F: '#d43552'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'atelier forest',\n author: 'bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest)',\n base00: '#1b1918',\n base01: '#2c2421',\n base02: '#68615e',\n base03: '#766e6b',\n base04: '#9c9491',\n base05: '#a8a19f',\n base06: '#e6e2e0',\n base07: '#f1efee',\n base08: '#f22c40',\n base09: '#df5320',\n base0A: '#d5911a',\n base0B: '#5ab738',\n base0C: '#00ad9c',\n base0D: '#407ee7',\n base0E: '#6666ea',\n base0F: '#c33ff3'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'atelier heath',\n author: 'bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath)',\n base00: '#1b181b',\n base01: '#292329',\n base02: '#695d69',\n base03: '#776977',\n base04: '#9e8f9e',\n base05: '#ab9bab',\n base06: '#d8cad8',\n base07: '#f7f3f7',\n base08: '#ca402b',\n base09: '#a65926',\n base0A: '#bb8a35',\n base0B: '#379a37',\n base0C: '#159393',\n base0D: '#516aec',\n base0E: '#7b59c0',\n base0F: '#cc33cc'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'atelier lakeside',\n author: 'bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside/)',\n base00: '#161b1d',\n base01: '#1f292e',\n base02: '#516d7b',\n base03: '#5a7b8c',\n base04: '#7195a8',\n base05: '#7ea2b4',\n base06: '#c1e4f6',\n base07: '#ebf8ff',\n base08: '#d22d72',\n base09: '#935c25',\n base0A: '#8a8a0f',\n base0B: '#568c3b',\n base0C: '#2d8f6f',\n base0D: '#257fad',\n base0E: '#5d5db1',\n base0F: '#b72dd2'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'atelier seaside',\n author: 'bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside/)',\n base00: '#131513',\n base01: '#242924',\n base02: '#5e6e5e',\n base03: '#687d68',\n base04: '#809980',\n base05: '#8ca68c',\n base06: '#cfe8cf',\n base07: '#f0fff0',\n base08: '#e6193c',\n base09: '#87711d',\n base0A: '#c3c322',\n base0B: '#29a329',\n base0C: '#1999b3',\n base0D: '#3d62f5',\n base0E: '#ad2bee',\n base0F: '#e619c3'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'bespin',\n author: 'jan t. sott',\n base00: '#28211c',\n base01: '#36312e',\n base02: '#5e5d5c',\n base03: '#666666',\n base04: '#797977',\n base05: '#8a8986',\n base06: '#9d9b97',\n base07: '#baae9e',\n base08: '#cf6a4c',\n base09: '#cf7d34',\n base0A: '#f9ee98',\n base0B: '#54be0d',\n base0C: '#afc4db',\n base0D: '#5ea6ea',\n base0E: '#9b859d',\n base0F: '#937121'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'brewer',\n author: 'timothée poisot (http://github.com/tpoisot)',\n base00: '#0c0d0e',\n base01: '#2e2f30',\n base02: '#515253',\n base03: '#737475',\n base04: '#959697',\n base05: '#b7b8b9',\n base06: '#dadbdc',\n base07: '#fcfdfe',\n base08: '#e31a1c',\n base09: '#e6550d',\n base0A: '#dca060',\n base0B: '#31a354',\n base0C: '#80b1d3',\n base0D: '#3182bd',\n base0E: '#756bb1',\n base0F: '#b15928'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'bright',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#000000',\n base01: '#303030',\n base02: '#505050',\n base03: '#b0b0b0',\n base04: '#d0d0d0',\n base05: '#e0e0e0',\n base06: '#f5f5f5',\n base07: '#ffffff',\n base08: '#fb0120',\n base09: '#fc6d24',\n base0A: '#fda331',\n base0B: '#a1c659',\n base0C: '#76c7b7',\n base0D: '#6fb3d2',\n base0E: '#d381c3',\n base0F: '#be643c'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'chalk',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#151515',\n base01: '#202020',\n base02: '#303030',\n base03: '#505050',\n base04: '#b0b0b0',\n base05: '#d0d0d0',\n base06: '#e0e0e0',\n base07: '#f5f5f5',\n base08: '#fb9fb1',\n base09: '#eda987',\n base0A: '#ddb26f',\n base0B: '#acc267',\n base0C: '#12cfc0',\n base0D: '#6fc2ef',\n base0E: '#e1a3ee',\n base0F: '#deaf8f'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'codeschool',\n author: 'brettof86',\n base00: '#232c31',\n base01: '#1c3657',\n base02: '#2a343a',\n base03: '#3f4944',\n base04: '#84898c',\n base05: '#9ea7a6',\n base06: '#a7cfa3',\n base07: '#b5d8f6',\n base08: '#2a5491',\n base09: '#43820d',\n base0A: '#a03b1e',\n base0B: '#237986',\n base0C: '#b02f30',\n base0D: '#484d79',\n base0E: '#c59820',\n base0F: '#c98344'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'colors',\n author: 'mrmrs (http://clrs.cc)',\n base00: '#111111',\n base01: '#333333',\n base02: '#555555',\n base03: '#777777',\n base04: '#999999',\n base05: '#bbbbbb',\n base06: '#dddddd',\n base07: '#ffffff',\n base08: '#ff4136',\n base09: '#ff851b',\n base0A: '#ffdc00',\n base0B: '#2ecc40',\n base0C: '#7fdbff',\n base0D: '#0074d9',\n base0E: '#b10dc9',\n base0F: '#85144b'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'default',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#181818',\n base01: '#282828',\n base02: '#383838',\n base03: '#585858',\n base04: '#b8b8b8',\n base05: '#d8d8d8',\n base06: '#e8e8e8',\n base07: '#f8f8f8',\n base08: '#ab4642',\n base09: '#dc9656',\n base0A: '#f7ca88',\n base0B: '#a1b56c',\n base0C: '#86c1b9',\n base0D: '#7cafc2',\n base0E: '#ba8baf',\n base0F: '#a16946'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'eighties',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#2d2d2d',\n base01: '#393939',\n base02: '#515151',\n base03: '#747369',\n base04: '#a09f93',\n base05: '#d3d0c8',\n base06: '#e8e6df',\n base07: '#f2f0ec',\n base08: '#f2777a',\n base09: '#f99157',\n base0A: '#ffcc66',\n base0B: '#99cc99',\n base0C: '#66cccc',\n base0D: '#6699cc',\n base0E: '#cc99cc',\n base0F: '#d27b53'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'embers',\n author: 'jannik siebert (https://github.com/janniks)',\n base00: '#16130F',\n base01: '#2C2620',\n base02: '#433B32',\n base03: '#5A5047',\n base04: '#8A8075',\n base05: '#A39A90',\n base06: '#BEB6AE',\n base07: '#DBD6D1',\n base08: '#826D57',\n base09: '#828257',\n base0A: '#6D8257',\n base0B: '#57826D',\n base0C: '#576D82',\n base0D: '#6D5782',\n base0E: '#82576D',\n base0F: '#825757'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'flat',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#2C3E50',\n base01: '#34495E',\n base02: '#7F8C8D',\n base03: '#95A5A6',\n base04: '#BDC3C7',\n base05: '#e0e0e0',\n base06: '#f5f5f5',\n base07: '#ECF0F1',\n base08: '#E74C3C',\n base09: '#E67E22',\n base0A: '#F1C40F',\n base0B: '#2ECC71',\n base0C: '#1ABC9C',\n base0D: '#3498DB',\n base0E: '#9B59B6',\n base0F: '#be643c'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'google',\n author: 'seth wright (http://sethawright.com)',\n base00: '#1d1f21',\n base01: '#282a2e',\n base02: '#373b41',\n base03: '#969896',\n base04: '#b4b7b4',\n base05: '#c5c8c6',\n base06: '#e0e0e0',\n base07: '#ffffff',\n base08: '#CC342B',\n base09: '#F96A38',\n base0A: '#FBA922',\n base0B: '#198844',\n base0C: '#3971ED',\n base0D: '#3971ED',\n base0E: '#A36AC7',\n base0F: '#3971ED'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'grayscale',\n author: 'alexandre gavioli (https://github.com/alexx2/)',\n base00: '#101010',\n base01: '#252525',\n base02: '#464646',\n base03: '#525252',\n base04: '#ababab',\n base05: '#b9b9b9',\n base06: '#e3e3e3',\n base07: '#f7f7f7',\n base08: '#7c7c7c',\n base09: '#999999',\n base0A: '#a0a0a0',\n base0B: '#8e8e8e',\n base0C: '#868686',\n base0D: '#686868',\n base0E: '#747474',\n base0F: '#5e5e5e'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'green screen',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#001100',\n base01: '#003300',\n base02: '#005500',\n base03: '#007700',\n base04: '#009900',\n base05: '#00bb00',\n base06: '#00dd00',\n base07: '#00ff00',\n base08: '#007700',\n base09: '#009900',\n base0A: '#007700',\n base0B: '#00bb00',\n base0C: '#005500',\n base0D: '#009900',\n base0E: '#00bb00',\n base0F: '#005500'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'harmonic16',\n author: 'jannik siebert (https://github.com/janniks)',\n base00: '#0b1c2c',\n base01: '#223b54',\n base02: '#405c79',\n base03: '#627e99',\n base04: '#aabcce',\n base05: '#cbd6e2',\n base06: '#e5ebf1',\n base07: '#f7f9fb',\n base08: '#bf8b56',\n base09: '#bfbf56',\n base0A: '#8bbf56',\n base0B: '#56bf8b',\n base0C: '#568bbf',\n base0D: '#8b56bf',\n base0E: '#bf568b',\n base0F: '#bf5656'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'hopscotch',\n author: 'jan t. sott',\n base00: '#322931',\n base01: '#433b42',\n base02: '#5c545b',\n base03: '#797379',\n base04: '#989498',\n base05: '#b9b5b8',\n base06: '#d5d3d5',\n base07: '#ffffff',\n base08: '#dd464c',\n base09: '#fd8b19',\n base0A: '#fdcc59',\n base0B: '#8fc13e',\n base0C: '#149b93',\n base0D: '#1290bf',\n base0E: '#c85e7c',\n base0F: '#b33508'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'isotope',\n author: 'jan t. sott',\n base00: '#000000',\n base01: '#404040',\n base02: '#606060',\n base03: '#808080',\n base04: '#c0c0c0',\n base05: '#d0d0d0',\n base06: '#e0e0e0',\n base07: '#ffffff',\n base08: '#ff0000',\n base09: '#ff9900',\n base0A: '#ff0099',\n base0B: '#33ff00',\n base0C: '#00ffff',\n base0D: '#0066ff',\n base0E: '#cc00ff',\n base0F: '#3300ff'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'marrakesh',\n author: 'alexandre gavioli (http://github.com/alexx2/)',\n base00: '#201602',\n base01: '#302e00',\n base02: '#5f5b17',\n base03: '#6c6823',\n base04: '#86813b',\n base05: '#948e48',\n base06: '#ccc37a',\n base07: '#faf0a5',\n base08: '#c35359',\n base09: '#b36144',\n base0A: '#a88339',\n base0B: '#18974e',\n base0C: '#75a738',\n base0D: '#477ca1',\n base0E: '#8868b3',\n base0F: '#b3588e'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'mocha',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#3B3228',\n base01: '#534636',\n base02: '#645240',\n base03: '#7e705a',\n base04: '#b8afad',\n base05: '#d0c8c6',\n base06: '#e9e1dd',\n base07: '#f5eeeb',\n base08: '#cb6077',\n base09: '#d28b71',\n base0A: '#f4bc87',\n base0B: '#beb55b',\n base0C: '#7bbda4',\n base0D: '#8ab3b5',\n base0E: '#a89bb9',\n base0F: '#bb9584'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'monokai',\n author: 'wimer hazenberg (http://www.monokai.nl)',\n base00: '#272822',\n base01: '#383830',\n base02: '#49483e',\n base03: '#75715e',\n base04: '#a59f85',\n base05: '#f8f8f2',\n base06: '#f5f4f1',\n base07: '#f9f8f5',\n base08: '#f92672',\n base09: '#fd971f',\n base0A: '#f4bf75',\n base0B: '#a6e22e',\n base0C: '#a1efe4',\n base0D: '#66d9ef',\n base0E: '#ae81ff',\n base0F: '#cc6633'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'ocean',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#2b303b',\n base01: '#343d46',\n base02: '#4f5b66',\n base03: '#65737e',\n base04: '#a7adba',\n base05: '#c0c5ce',\n base06: '#dfe1e8',\n base07: '#eff1f5',\n base08: '#bf616a',\n base09: '#d08770',\n base0A: '#ebcb8b',\n base0B: '#a3be8c',\n base0C: '#96b5b4',\n base0D: '#8fa1b3',\n base0E: '#b48ead',\n base0F: '#ab7967'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'paraiso',\n author: 'jan t. sott',\n base00: '#2f1e2e',\n base01: '#41323f',\n base02: '#4f424c',\n base03: '#776e71',\n base04: '#8d8687',\n base05: '#a39e9b',\n base06: '#b9b6b0',\n base07: '#e7e9db',\n base08: '#ef6155',\n base09: '#f99b15',\n base0A: '#fec418',\n base0B: '#48b685',\n base0C: '#5bc4bf',\n base0D: '#06b6ef',\n base0E: '#815ba4',\n base0F: '#e96ba8'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'pop',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#000000',\n base01: '#202020',\n base02: '#303030',\n base03: '#505050',\n base04: '#b0b0b0',\n base05: '#d0d0d0',\n base06: '#e0e0e0',\n base07: '#ffffff',\n base08: '#eb008a',\n base09: '#f29333',\n base0A: '#f8ca12',\n base0B: '#37b349',\n base0C: '#00aabb',\n base0D: '#0e5a94',\n base0E: '#b31e8d',\n base0F: '#7a2d00'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'railscasts',\n author: 'ryan bates (http://railscasts.com)',\n base00: '#2b2b2b',\n base01: '#272935',\n base02: '#3a4055',\n base03: '#5a647e',\n base04: '#d4cfc9',\n base05: '#e6e1dc',\n base06: '#f4f1ed',\n base07: '#f9f7f3',\n base08: '#da4939',\n base09: '#cc7833',\n base0A: '#ffc66d',\n base0B: '#a5c261',\n base0C: '#519f50',\n base0D: '#6d9cbe',\n base0E: '#b6b3eb',\n base0F: '#bc9458'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'shapeshifter',\n author: 'tyler benziger (http://tybenz.com)',\n base00: '#000000',\n base01: '#040404',\n base02: '#102015',\n base03: '#343434',\n base04: '#555555',\n base05: '#ababab',\n base06: '#e0e0e0',\n base07: '#f9f9f9',\n base08: '#e92f2f',\n base09: '#e09448',\n base0A: '#dddd13',\n base0B: '#0ed839',\n base0C: '#23edda',\n base0D: '#3b48e3',\n base0E: '#f996e2',\n base0F: '#69542d'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'solarized',\n author: 'ethan schoonover (http://ethanschoonover.com/solarized)',\n base00: '#002b36',\n base01: '#073642',\n base02: '#586e75',\n base03: '#657b83',\n base04: '#839496',\n base05: '#93a1a1',\n base06: '#eee8d5',\n base07: '#fdf6e3',\n base08: '#dc322f',\n base09: '#cb4b16',\n base0A: '#b58900',\n base0B: '#859900',\n base0C: '#2aa198',\n base0D: '#268bd2',\n base0E: '#6c71c4',\n base0F: '#d33682'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'summerfruit',\n author: 'christopher corley (http://cscorley.github.io/)',\n base00: '#151515',\n base01: '#202020',\n base02: '#303030',\n base03: '#505050',\n base04: '#B0B0B0',\n base05: '#D0D0D0',\n base06: '#E0E0E0',\n base07: '#FFFFFF',\n base08: '#FF0086',\n base09: '#FD8900',\n base0A: '#ABA800',\n base0B: '#00C918',\n base0C: '#1faaaa',\n base0D: '#3777E6',\n base0E: '#AD00A1',\n base0F: '#cc6633'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'tomorrow',\n author: 'chris kempson (http://chriskempson.com)',\n base00: '#1d1f21',\n base01: '#282a2e',\n base02: '#373b41',\n base03: '#969896',\n base04: '#b4b7b4',\n base05: '#c5c8c6',\n base06: '#e0e0e0',\n base07: '#ffffff',\n base08: '#cc6666',\n base09: '#de935f',\n base0A: '#f0c674',\n base0B: '#b5bd68',\n base0C: '#8abeb7',\n base0D: '#81a2be',\n base0E: '#b294bb',\n base0F: '#a3685a'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'london tube',\n author: 'jan t. sott',\n base00: '#231f20',\n base01: '#1c3f95',\n base02: '#5a5758',\n base03: '#737171',\n base04: '#959ca1',\n base05: '#d9d8d8',\n base06: '#e7e7e8',\n base07: '#ffffff',\n base08: '#ee2e24',\n base09: '#f386a1',\n base0A: '#ffd204',\n base0B: '#00853e',\n base0C: '#85cebc',\n base0D: '#009ddc',\n base0E: '#98005d',\n base0F: '#b06110'\n};\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports['default'] = {\n scheme: 'twilight',\n author: 'david hart (http://hart-dev.com)',\n base00: '#1e1e1e',\n base01: '#323537',\n base02: '#464b50',\n base03: '#5f5a60',\n base04: '#838184',\n base05: '#a7a7a7',\n base06: '#c3c3c3',\n base07: '#ffffff',\n base08: '#cf6a4c',\n base09: '#cda869',\n base0A: '#f9ee98',\n base0B: '#8f9d6a',\n base0C: '#afc4db',\n base0D: '#7587a6',\n base0E: '#9b859d',\n base0F: '#9b703f'\n};\nmodule.exports = exports['default'];","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","'use strict';\n\nconst inherits = require('inherits');\nconst Reporter = require('../base/reporter').Reporter;\nconst Buffer = require('safer-buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.isDecoderBuffer = function isDecoderBuffer(data) {\n if (data instanceof DecoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n Buffer.isBuffer(data.base) &&\n data.constructor.name === 'DecoderBuffer' &&\n typeof data.offset === 'number' &&\n typeof data.length === 'number' &&\n typeof data.save === 'function' &&\n typeof data.restore === 'function' &&\n typeof data.isEmpty === 'function' &&\n typeof data.readUInt8 === 'function' &&\n typeof data.skip === 'function' &&\n typeof data.raw === 'function';\n\n return isCompatible;\n};\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n const res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n};\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n const res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n};\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n};\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!EncoderBuffer.isEncoderBuffer(item))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.isEncoderBuffer = function isEncoderBuffer(data) {\n if (data instanceof EncoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n data.constructor.name === 'EncoderBuffer' &&\n typeof data.length === 'number' &&\n typeof data.join === 'function';\n\n return isCompatible;\n};\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = Buffer.alloc(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","module.exports = {};\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","module.exports = { \"default\": require(\"core-js/library/fn/object/entries\"), __esModule: true };","module.exports = true;\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};"],"sourceRoot":""}