{"version":3,"sources":["webpack:///./node_modules/history/esm/history.js","webpack:///./node_modules/html2canvas/dist/html2canvas.js","webpack:///./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack:///./node_modules/file-saver/dist/FileSaver.min.js","webpack:///./node_modules/fflate/esm/browser.js","webpack:///./node_modules/hyphenate-style-name/index.js"],"names":["addLeadingSlash","path","charAt","stripLeadingSlash","substr","stripBasename","prefix","toLowerCase","indexOf","length","hasBasename","stripTrailingSlash","slice","createPath","location","pathname","search","hash","createLocation","state","key","currentLocation","hashIndex","searchIndex","parsePath","undefined","decodeURI","e","URIError","locationsAreEqual","a","b","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","callback","result","appendListener","fn","isActive","listener","apply","arguments","push","filter","item","notifyListeners","_len","args","Array","_key","forEach","canUseDOM","window","document","createElement","getConfirmation","message","confirm","getHistoryState","history","createBrowserHistory","props","ua","globalHistory","canUseHistory","navigator","userAgent","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_ref","_window$location","createKey","Math","random","toString","transitionManager","setState","nextState","handlePopState","event","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","n","listenerCount","checkDOMListeners","addEventListener","removeEventListener","isBlocked","href","pushState","prevIndex","nextKeys","replace","replaceState","goBack","goForward","block","unblock","listen","unlisten","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","url","getHashPath","substring","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","lastIndexOf","baseTag","querySelector","getAttribute","pushHashPath","nextPaths","clamp","lowerBound","upperBound","min","max","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entries","index","map","entry","nextIndex","nextEntries","splice","canGo","module","exports","extendStatics","d","Object","setPrototypeOf","__proto__","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__assign","assign","t","s","i","call","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","rejected","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","TypeError","pop","Bounds","x","w","h","left","top","width","height","add","fromClientRect","clientRect","parseBounds","node","getBoundingClientRect","toCodePoints","str","codePoints","charCodeAt","extra","fromCodePoint","_i","String","codeUnits","codePoint","fromCharCode","chars","lookup","Uint8Array","TokenType","slice16","view","start","end","Uint16Array","Trie","initialValue","errorValue","highStart","highValueIndex","data","get","ix","UTRIE2_DATA_BLOCK_LENGTH","UTRIE2_INDEX_1_OFFSET","UTRIE2_INDEX_2_BLOCK_LENGTH","SP","BA","HY","CL","CP","EX","IN","NS","OP","IS","NU","PO","PR","SY","AL","EB","EM","H2","H3","ID","JL","JV","JT","SA","UnicodeTrie","base64","buffer","encoded1","encoded2","encoded3","encoded4","bufferLength","len","ArrayBuffer","bytes","isArray","decode","view32","polyUint32Array","Uint32Array","view16","polyUint16Array","headerLength","ceil","createTrieFromBase64","ALPHABETICS","HARD_LINE_BREAKS","SPACE","PREFIX_POSTFIX","LINE_BREAKS","concat","KOREAN_SYLLABLE_BLOCK","HYPHEN","isAdjacentWithSpaceIgnored","currentIndex","classTypes","current","prev","previousNonSpaceClassType","type","_lineBreakAtIndex","indicies","forbiddenBreaks","beforeIndex","afterIndex","before","count","cssFormattedClasses","options","lineBreak","wordBreak","_a","types","categories","classType","codePointsToCharacterClasses","isLetterNumber","letterNumber","Break","required","isDigit","isHex","isWhiteSpace","isNameStartCodePoint","isLowerCaseLetter","isUpperCaseLetter","isLetter","isNonASCIICodePoint","isNameCodePoint","isNonPrintableCodePoint","isValidEscape","c1","c2","isIdentifierStart","c3","isNumberStart","stringToNumber","c","sign","integers","int","parseInt","fraction","fracd","frac","expsign","exponent","exp","pow","LEFT_PARENTHESIS_TOKEN","RIGHT_PARENTHESIS_TOKEN","COMMA_TOKEN","SUFFIX_MATCH_TOKEN","PREFIX_MATCH_TOKEN","COLUMN_TOKEN","DASH_MATCH_TOKEN","INCLUDE_MATCH_TOKEN","LEFT_CURLY_BRACKET_TOKEN","RIGHT_CURLY_BRACKET_TOKEN","SUBSTRING_MATCH_TOKEN","BAD_URL_TOKEN","BAD_STRING_TOKEN","CDO_TOKEN","CDC_TOKEN","COLON_TOKEN","SEMICOLON_TOKEN","LEFT_SQUARE_BRACKET_TOKEN","RIGHT_SQUARE_BRACKET_TOKEN","WHITESPACE_TOKEN","EOF_TOKEN","Tokenizer","_value","write","chunk","read","tokens","token","consumeToken","consumeCodePoint","consumeStringToken","peekCodePoint","flags","consumeName","HASH_TOKEN","reconsumeCodePoint","consumeNumericToken","e1","e2","e3","consumeIdentLikeToken","a1","a2","a3","AT_KEYWORD_TOKEN","u1","u2","consumeUnicodeRangeToken","consumeWhiteSpace","DELIM_TOKEN","shift","unshift","digits","questionMarks","start_1","digit","UNICODE_RANGE_TOKEN","endDigits","consumeUrlToken","FUNCTION_TOKEN","IDENT_TOKEN","URL_TOKEN","stringToken","STRING_TOKEN","consumeBadUrlRemnants","consumeEscapedCodePoint","consumeStringSlice","amount","endingCodePoint","consumeNumber","repr","number","unit","DIMENSION_TOKEN","PERCENTAGE_TOKEN","NUMBER_TOKEN","hex","hexCodePoint","isSurrogateCodePoint","Parser","_tokens","tokenizer","parseValue","parseComponentValue","parseValues","parseComponentValues","SyntaxError","reconsumeToken","consumeComponentValue","values","consumeSimpleBlock","consumeFunction","isEndingTokenFor","functionToken","cssFunction","name","FUNCTION","isDimensionToken","isNumberToken","isIdentToken","isStringToken","isIdentWithValue","nonWhiteSpace","nonFunctionArgSeparator","parseFunctionArgs","arg","Error","isLength","isLengthPercentage","parseLengthPercentageTuple","ZERO_LENGTH","FIFTY_PERCENT","HUNDRED_PERCENT","getAbsoluteValueForTuple","tuple","getAbsoluteValue","parent","angle","PI","isAngle","parseNamedSide","ident","join","deg","color","colorFunction","SUPPORTED_COLOR_FUNCTIONS","r","pack","namedColor","COLORS","toUpperCase","TRANSPARENT","isTransparent","asString","alpha","blue","green","red","round","getTokenColorValue","rgb","_b","hue2rgb","t1","t2","hue","PropertyDescriptorParsingType","BACKGROUND_CLIP","hsl","saturation","lightness","l","hsla","rgba","ALICEBLUE","ANTIQUEWHITE","AQUA","AQUAMARINE","AZURE","BEIGE","BISQUE","BLACK","BLANCHEDALMOND","BLUE","BLUEVIOLET","BROWN","BURLYWOOD","CADETBLUE","CHARTREUSE","CHOCOLATE","CORAL","CORNFLOWERBLUE","CORNSILK","CRIMSON","CYAN","DARKBLUE","DARKCYAN","DARKGOLDENROD","DARKGRAY","DARKGREEN","DARKGREY","DARKKHAKI","DARKMAGENTA","DARKOLIVEGREEN","DARKORANGE","DARKORCHID","DARKRED","DARKSALMON","DARKSEAGREEN","DARKSLATEBLUE","DARKSLATEGRAY","DARKSLATEGREY","DARKTURQUOISE","DARKVIOLET","DEEPPINK","DEEPSKYBLUE","DIMGRAY","DIMGREY","DODGERBLUE","FIREBRICK","FLORALWHITE","FORESTGREEN","FUCHSIA","GAINSBORO","GHOSTWHITE","GOLD","GOLDENROD","GRAY","GREEN","GREENYELLOW","GREY","HONEYDEW","HOTPINK","INDIANRED","INDIGO","IVORY","KHAKI","LAVENDER","LAVENDERBLUSH","LAWNGREEN","LEMONCHIFFON","LIGHTBLUE","LIGHTCORAL","LIGHTCYAN","LIGHTGOLDENRODYELLOW","LIGHTGRAY","LIGHTGREEN","LIGHTGREY","LIGHTPINK","LIGHTSALMON","LIGHTSEAGREEN","LIGHTSKYBLUE","LIGHTSLATEGRAY","LIGHTSLATEGREY","LIGHTSTEELBLUE","LIGHTYELLOW","LIME","LIMEGREEN","LINEN","MAGENTA","MAROON","MEDIUMAQUAMARINE","MEDIUMBLUE","MEDIUMORCHID","MEDIUMPURPLE","MEDIUMSEAGREEN","MEDIUMSLATEBLUE","MEDIUMSPRINGGREEN","MEDIUMTURQUOISE","MEDIUMVIOLETRED","MIDNIGHTBLUE","MINTCREAM","MISTYROSE","MOCCASIN","NAVAJOWHITE","NAVY","OLDLACE","OLIVE","OLIVEDRAB","ORANGE","ORANGERED","ORCHID","PALEGOLDENROD","PALEGREEN","PALETURQUOISE","PALEVIOLETRED","PAPAYAWHIP","PEACHPUFF","PERU","PINK","PLUM","POWDERBLUE","PURPLE","REBECCAPURPLE","RED","ROSYBROWN","ROYALBLUE","SADDLEBROWN","SALMON","SANDYBROWN","SEAGREEN","SEASHELL","SIENNA","SILVER","SKYBLUE","SLATEBLUE","SLATEGRAY","SLATEGREY","SNOW","SPRINGGREEN","STEELBLUE","TAN","TEAL","THISTLE","TOMATO","TURQUOISE","VIOLET","WHEAT","WHITE","WHITESMOKE","YELLOW","YELLOWGREEN","CSSImageType","CSSRadialShape","CSSRadialExtent","backgroundClip","LIST","parse","PADDING_BOX","CONTENT_BOX","BORDER_BOX","backgroundColor","TYPE_VALUE","format","parseColorStop","color$1","stop","processColorStops","stops","lineLength","first","last","processStops","previous","stop_1","absoluteValue","gapBegin","stop_2","gapLength","gapValue","calculateGradientDirection","radian","corner","centerX","centerY","atan2","getAngleFromCorner","abs","sin","cos","halfWidth","halfHeight","halfLineLength","yDiff","xDiff","distance","sqrt","findCorner","closest","reduce","stat","cx","cy","optimumDistance","optimumCorner","Infinity","prefixLinearGradient","angle$1","firstToken","colorStop","LINEAR_GRADIENT","isGreenPixel","createForeignObjectSVG","xmlns","svg","createElementNS","foreignObject","setAttributeNS","appendChild","loadSerializedSVG","img","Image","onload","onerror","src","encodeURIComponent","XMLSerializer","serializeToString","FEATURES","createRange","range","testElement","style","TEST_HEIGHT","display","selectNode","rangeBounds","rangeHeight","removeChild","testRangeBounds","defineProperty","canvas","ctx","getContext","drawImage","toDataURL","testSVG","from","fetch","fillStyle","fillRect","greenImageSrc","getImageData","backgroundImage","size","catch","testForeignObject","crossOrigin","XMLHttpRequest","responseType","Logger","id","enabled","Date","now","debug","console","getTime","info","instances","destroy","getInstance","instance","error","CacheStorage","_caches","Cache","open","cache","getOrigin","link","_link","protocol","hostname","port","isSameOrigin","_origin","setContext","_current","attachInstance","detachInstance","_options","_cache","addImage","has","isBlobImage","isRenderable","loadImage","match","useCORS","useProxy","_this","isInlineImage","SUPPORT_CORS_IMAGES","proxy","SUPPORT_CORS_XHR","allowTaint","isInlineBase64Image","complete","setTimeout","imageTimeout","keys","SUPPORT_RESPONSE_TYPE","xhr","status","response","reader_1","FileReader","readAsDataURL","timeout_1","timeout","ontimeout","send","INLINE_SVG","INLINE_BASE64","INLINE_IMG","SUPPORT_SVG_DRAWING","isSVG","test","prefixRadialGradient","shape","CIRCLE","FARTHEST_CORNER","position","isColorStop","acc","ELLIPSE","CLOSEST_SIDE","FARTHEST_SIDE","CLOSEST_CORNER","RADIAL_GRADIENT","BACKGROUND_REPEAT","image","image_1","URL","imageFunction","SUPPORTED_IMAGE_FUNCTIONS","isAtPosition_1","isSupportedImage","backgroundOrigin","backgroundPosition","BACKGROUND_SIZE","backgroundRepeat","parseBackgroundRepeat","NO_REPEAT","REPEAT_X","REPEAT_Y","REPEAT","BORDER_STYLE","backgroundSize","isBackgroundSizeInfoToken","borderColorForSide","side","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","borderRadiusForSide","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","FLOAT","borderStyleForSide","IDENT_VALUE","NONE","SOLID","borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle","borderWidthForSide","VALUE","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","bit","parseDisplayValue","LINE_BREAK","float","LEFT","RIGHT","INLINE_START","INLINE_END","letterSpacing","LIST_STYLE_POSITION","STRICT","NORMAL","lineHeight","TOKEN_VALUE","listStyleImage","LIST_STYLE_TYPE","listStylePosition","INSIDE","OUTSIDE","OVERFLOW","listStyleType","DISC","SQUARE","DECIMAL","CJK_DECIMAL","DECIMAL_LEADING_ZERO","LOWER_ROMAN","UPPER_ROMAN","LOWER_GREEK","LOWER_ALPHA","UPPER_ALPHA","ARABIC_INDIC","ARMENIAN","BENGALI","CAMBODIAN","CJK_EARTHLY_BRANCH","CJK_HEAVENLY_STEM","CJK_IDEOGRAPHIC","DEVANAGARI","ETHIOPIC_NUMERIC","GEORGIAN","GUJARATI","GURMUKHI","HEBREW","HIRAGANA","HIRAGANA_IROHA","JAPANESE_FORMAL","JAPANESE_INFORMAL","KANNADA","KATAKANA","KATAKANA_IROHA","KHMER","KOREAN_HANGUL_FORMAL","KOREAN_HANJA_FORMAL","KOREAN_HANJA_INFORMAL","LAO","LOWER_ARMENIAN","MALAYALAM","MONGOLIAN","MYANMAR","ORIYA","PERSIAN","SIMP_CHINESE_FORMAL","SIMP_CHINESE_INFORMAL","TAMIL","TELUGU","THAI","TIBETAN","TRAD_CHINESE_FORMAL","TRAD_CHINESE_INFORMAL","UPPER_ARMENIAN","DISCLOSURE_OPEN","DISCLOSURE_CLOSED","marginForSide","marginTop","marginRight","marginBottom","marginLeft","OVERFLOW_WRAP","overflow","HIDDEN","SCROLL","AUTO","VISIBLE","TEXT_ALIGN","overflowWrap","BREAK_WORD","paddingForSide","paddingTop","paddingRight","paddingBottom","paddingLeft","POSITION","textAlign","CENTER","TEXT_TRANSFORM","RELATIVE","ABSOLUTE","FIXED","STICKY","STATIC","textShadow","shadow","offsetX","offsetY","blur","VISIBILITY","textTransform","UPPERCASE","LOWERCASE","CAPITALIZE","transform","transformFunction","SUPPORTED_TRANSFORM_FUNCTIONS","matrix","matrix3d","b1","b2","a4","b4","DEFAULT_VALUE","DEFAULT","transformOrigin","origins","WORD_BREAK","visibility","COLLAPSE","FONT_STYLE","BREAK_ALL","KEEP_ALL","zIndex","auto","order","opacity","textDecorationColor","textDecorationLine","line","fontFamily","accumulator","results","fontSize","fontWeight","fontVariant","PseudoElementType","fontStyle","OBLIQUE","ITALIC","contains","content","counterIncrement","increments","filtered","counter","increment","counterReset","resets","reset","quotes","open_1","close_1","close","getQuote","depth","quote","boxShadow","spread","inset","CSSParsedDeclaration","declaration","cssFloat","overflowTuple","overflowX","overflowY","isVisible","isTransformed","isPositioned","isPositionedWithZIndex","isFloating","isInlineLevel","CSSParsedPseudoDeclaration","CSSParsedCounterDeclaration","descriptor","parser","length_1","value_1","ElementContainer","element","styles","getComputedStyle","textNodes","elements","isHTMLElementNode","bounds","TextBounds","text","getWrapperBounds","ownerDocument","wrapper","cloneNode","parentNode","replaceChild","firstChild","getRangeBounds","offset","setStart","setEnd","breakText","breakWords","bk","breaker","forbiddenBreakpoints","lastEnd","LineBreaker","words","TextContainer","transform$1","textBounds","textList","trim","SUPPORT_RANGE_BOUNDS","replacementNode","splitText","parseTextBounds","capitalize","m","p1","p2","ImageElementContainer","_super","currentSrc","intrinsicWidth","naturalWidth","intrinsicHeight","naturalHeight","CanvasElementContainer","SVGElementContainer","baseVal","LIElementContainer","OLElementContainer","reversed","CHECKBOX_BORDER_RADIUS","RADIO_BORDER_RADIUS","PASSWORD","InputElementContainer","input","checked","placeholder","SelectElementContainer","option","selectedIndex","TextareaElementContainer","parseColor","IFrameElementContainer","iframe","contentWindow","documentElement","tree","parseTree","documentBackgroundColor","bodyBackgroundColor","LIST_OWNERS","parseNodeTree","root","childNode","nextNode","nextSibling","isTextNode","isElementNode","container","createContainer","createsRealStackingContext","createsStackingContext","tagName","isTextareaElement","isSVGElement","isSelectElement","isImageElement","isCanvasElement","isLIElement","isOLElement","isInputElement","isIFrameElement","isBodyElement","nodeType","Node","TEXT_NODE","ELEMENT_NODE","isSVGElementNode","className","isStyleElement","isScriptElement","CounterState","counters","getCounterValue","getCounterValues","canReset","counterNames","ROMAN_UPPER","createAdditiveCounter","symbols","fallback","suffix","createCounterText","string","integer","createCounterStyleWithSymbolResolver","codePointRangeLength","isNumeric","resolver","createCounterStyleFromRange","codePointRangeStart","codePointRangeEnd","floor","createCounterStyleFromSymbols","createCJKCounter","numbers","multipliers","negativeSign","tmp","coefficient","appendSuffix","defaultSuffix","cjkSuffix","koreanSuffix","spaceSuffix","CJK_TEN_COEFFICIENTS","CJK_ZEROS","DocumentCloner","scrolledElements","referenceElement","quoteDepth","toIFrame","windowSize","createIFrameContainer","scrollX","defaultView","pageXOffset","scrollY","pageYOffset","cloneWindow","documentClone","iframeLoad","iframeLoader","onclone","restoreNodeScroll","scrollTo","clonedReferenceElement","nodeName","fonts","ready","serializeDoctype","doctype","restoreOwnerScroll","adoptNode","createElementClone","createCanvasClone","createStyleClone","clone","loading","sheet","cssRules","css","rule","cssText","textContent","inlineImages","clonedCanvas","clonedCtx","putImageData","createTextNode","styleBefore","styleAfter","createPseudoHideStyles","resolvePseudoContent","BEFORE","child","hasAttribute","ignoreElements","copyStyles","insertBefore","after","AFTER","copyCSSStyles","scrollTop","scrollLeft","pseudoElt","anonymousReplacedElement","attr","counterStyle","counterState","counterType","delim","counterStates","counterType_1","separator","PSEUDO_HIDE_ELEMENT_CLASS_BEFORE","PSEUDO_HIDE_ELEMENT_CLASS_AFTER","newClassName","baseValue","PathType","cloneIframeContainer","border","scrolling","setAttribute","onreadystatechange","interval","setInterval","childNodes","readyState","clearInterval","target","property","setProperty","getPropertyValue","internalSubset","publicId","systemId","createStyles","CORNER","equalPath","some","Vector","VECTOR","deltaX","deltaY","lerp","BezierCurve","startControl","endControl","BEZIER_CURVE","subdivide","firstHalf","ab","bc","cd","abbc","bccd","dest","reverse","isBezierCurve","BoundCurves","tlh","tlv","trh","trv","_c","brh","brv","_d","blh","blv","factors","maxFactor","topWidth","rightHeight","bottomWidth","leftHeight","topLeftBorderBox","getCurvePoints","TOP_LEFT","topRightBorderBox","TOP_RIGHT","bottomRightBorderBox","BOTTOM_RIGHT","bottomLeftBorderBox","BOTTOM_LEFT","topLeftPaddingBox","topRightPaddingBox","bottomRightPaddingBox","bottomLeftPaddingBox","topLeftContentBox","topRightContentBox","bottomRightContentBox","bottomLeftContentBox","r1","r2","kappa","ox","oy","xm","ym","calculateBorderBoxPath","curves","calculatePaddingBoxPath","TransformEffect","ClipEffect","StackingContext","inlineLevel","nonInlineLevel","negativeZIndex","zeroOrAutoZIndexOrTransformedOrOpacity","positiveZIndex","nonPositionedFloats","nonPositionedInlineLevel","ElementPaint","parentStack","effects","borderBox","paddingBox","getParentEffects","parseStackTree","stackingContext","realStackingContext","listItems","treatAsRealStackingContext","paintContainer","listOwnerItems","stack","order_1","index_1","index_2","processListItems","owner","numbering","listValue","createPathFromCurves","outer1","inner1","outer2","inner2","contentBox","calculateBackgroundRendering","intrinsicSize","backgroundPositioningArea","calculateBackgroundPositioningArea","getBackgroundValueForIndex","backgroundPaintingArea","calculateBackgroundPaintingArea","backgroundImageSize","calculateBackgroundSize","sizeWidth","sizeHeight","calculateBackgroundRepeatPath","isAuto","hasIntrinsicValue","intrinsicProportion","second","hasIntrinsicProportion","CONTAIN","COVER","hasIntrinsicWidth","hasIntrinsicHeight","hasIntrinsicDimensions","width_3","height_3","repeat","FontMetrics","_data","_document","parseMetrics","span","margin","padding","verticalAlign","baseline","offsetTop","middle","getMetrics","CanvasRenderer","_activeEffects","scale","fontMetrics","translate","textBaseline","applyEffects","popEffect","effect","applyEffect","save","isTransformEffect","isClipEffect","clip","restore","renderStack","globalAlpha","renderStackContent","renderNode","paint","renderNodeBackgroundAndBorders","renderNodeContent","renderTextWithLetterSpacing","fillText","letter","measureText","createFontStyle","variant","renderTextNode","font","textShadows","shadowColor","shadowOffsetX","shadowOffsetY","shadowBlur","renderReplacedElement","box","windowWidth","windowHeight","render","fill","beginPath","arc","isTextInputElement","canvasTextAlign","computeLineHeight","_e","_f","_g","_h","_j","_k","_l","_m","_o","_p","mask","paths","moveTo","lineTo","formatPath","closePath","point","bezierCurveTo","renderRepeat","pattern","resizeImage","renderBackgroundImage","_loop_1","this_1","x0","x1","y0","y1","gradient_1","top_1","rx","ry","radialGradient_1","midX","midY","invF","createPattern","createLinearGradient","addColorStop","background","isRadialGradient","gradient","calculateRadius","createRadialGradient","renderBorder","curvePoints","borderSide","parsePathForBorder","hasBackground","borders","borders_1","calculateBackgroundCurvedPaintingArea","deltaW","deltaH","borderBoxArea","maskOffset","shadowPaintingArea","calculateContentBoxPath","ForeignObjectRenderer","loadSerializedSVG$1","parseColor$1","renderElement","opts","instanceName","resourceOptions","defaultOptions","windowBounds","documentCloner","clonedElement","bgColor","defaultBackgroundColor","renderOptions","scrollWidth","offsetWidth","clientWidth","scrollHeight","offsetHeight","clientHeight","parseDocumentSize","logging","removeContainer","foreignObjectRendering","devicePixelRatio","innerWidth","innerHeight","factory","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","Memo","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","dispatchEvent","MouseEvent","createEvent","initMouseEvent","self","global","saveAs","HTMLAnchorElement","webkitURL","j","download","rel","origin","createObjectURL","revokeObjectURL","msSaveOrOpenBlob","autoBom","warn","Blob","title","innerText","HTMLElement","safari","k","onloadend","u8","u16","u32","fleb","fdeb","clim","freb","eb","fl","revfl","fd","revfd","rev","hMap","mb","co","le","rvb","sv","r_1","flt","fdt","flm","flrm","fdm","fdrm","bits","o","bits16","shft","slc","set","subarray","inflt","dat","buf","st","sl","noBuf","noSt","cbuf","bl","nbuf","final","pos","bt","lm","dm","lbt","dbt","tbts","hLit","hcLen","tl","ldt","clt","clb","clbmsk","clm","lt","dt","lms","dms","mxa","sym","dsym","wbits","wbits16","hTree","sort","i0","i1","i2","maxSym","tr","mbt","ln","lft","cst","i2_1","i2_2","i2_3","lc","cl","cli","cln","cls","clen","cf","wfblk","out","wblk","syms","lf","df","li","bs","dlt","mlb","ddt","mdb","lclt","nlc","lcdt","ndc","lcfreq","lct","mlcb","nlcc","ll","dl","flen","ftlen","dtlen","llm","lcts","it","clct","dst","deo","et","dflt","lvl","plvl","pre","post","lst","opt","msk_1","head","bs1_1","bs2_1","hsh","lc_1","wi","hv","imod","pimod","rem","ch_1","dif","maxn","maxd","ml","nl","mmd","md","ti","lin","din","adler","dopt","level","mem","log","wbytes","zlh","lv","zlv","zlibSync","unzlibSync","uppercasePattern","msPattern","toHyphenLower","hName"],"mappings":"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,GAAI,EAAG,EAAG,EAAG,GAC9DmG,OAAQ,CAAC,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,MAE3Eie,GAAW,CACXpkB,SAAU,CACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEJmG,OAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAGJ4e,GAAS,CACT/kB,SAAU,CACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEJmG,OAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAGJye,GAAW,CACX5kB,SAAU,CACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEJmG,OAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA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","file":"vendors~203e0718.7e27619ad7abf530fc2d.bundle.js","sourcesContent":["import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","/*!\n * html2canvas 1.0.0-rc.7 \n * Copyright (c) 2020 Niklas von Hertzen \n * Released under MIT License\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.html2canvas = factory());\n}(this, function () { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\r\n /* global Reflect, Promise */\r\n\r\n var extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n\r\n function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n }\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\r\n\r\n function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n }\r\n\r\n function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n }\n\n var Bounds = /** @class */ (function () {\r\n function Bounds(x, y, w, h) {\r\n this.left = x;\r\n this.top = y;\r\n this.width = w;\r\n this.height = h;\r\n }\r\n Bounds.prototype.add = function (x, y, w, h) {\r\n return new Bounds(this.left + x, this.top + y, this.width + w, this.height + h);\r\n };\r\n Bounds.fromClientRect = function (clientRect) {\r\n return new Bounds(clientRect.left, clientRect.top, clientRect.width, clientRect.height);\r\n };\r\n return Bounds;\r\n }());\r\n var parseBounds = function (node) {\r\n return Bounds.fromClientRect(node.getBoundingClientRect());\r\n };\r\n var parseDocumentSize = function (document) {\r\n var body = document.body;\r\n var documentElement = document.documentElement;\r\n if (!body || !documentElement) {\r\n throw new Error(\"Unable to get document size\");\r\n }\r\n var width = Math.max(Math.max(body.scrollWidth, documentElement.scrollWidth), Math.max(body.offsetWidth, documentElement.offsetWidth), Math.max(body.clientWidth, documentElement.clientWidth));\r\n var height = Math.max(Math.max(body.scrollHeight, documentElement.scrollHeight), Math.max(body.offsetHeight, documentElement.offsetHeight), Math.max(body.clientHeight, documentElement.clientHeight));\r\n return new Bounds(0, 0, width, height);\r\n };\n\n /*\n * css-line-break 1.1.1 \n * Copyright (c) 2019 Niklas von Hertzen \n * Released under MIT License\n */\n var toCodePoints = function (str) {\r\n var codePoints = [];\r\n var i = 0;\r\n var length = str.length;\r\n while (i < length) {\r\n var value = str.charCodeAt(i++);\r\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\r\n var extra = str.charCodeAt(i++);\r\n if ((extra & 0xfc00) === 0xdc00) {\r\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\r\n }\r\n else {\r\n codePoints.push(value);\r\n i--;\r\n }\r\n }\r\n else {\r\n codePoints.push(value);\r\n }\r\n }\r\n return codePoints;\r\n };\r\n var fromCodePoint = function () {\r\n var codePoints = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n codePoints[_i] = arguments[_i];\r\n }\r\n if (String.fromCodePoint) {\r\n return String.fromCodePoint.apply(String, codePoints);\r\n }\r\n var length = codePoints.length;\r\n if (!length) {\r\n return '';\r\n }\r\n var codeUnits = [];\r\n var index = -1;\r\n var result = '';\r\n while (++index < length) {\r\n var codePoint = codePoints[index];\r\n if (codePoint <= 0xffff) {\r\n codeUnits.push(codePoint);\r\n }\r\n else {\r\n codePoint -= 0x10000;\r\n codeUnits.push((codePoint >> 10) + 0xd800, codePoint % 0x400 + 0xdc00);\r\n }\r\n if (index + 1 === length || codeUnits.length > 0x4000) {\r\n result += String.fromCharCode.apply(String, codeUnits);\r\n codeUnits.length = 0;\r\n }\r\n }\r\n return result;\r\n };\r\n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\r\n // Use a lookup table to find the index.\r\n var lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\r\n for (var i = 0; i < chars.length; i++) {\r\n lookup[chars.charCodeAt(i)] = i;\r\n }\r\n var decode = function (base64) {\r\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\r\n if (base64[base64.length - 1] === '=') {\r\n bufferLength--;\r\n if (base64[base64.length - 2] === '=') {\r\n bufferLength--;\r\n }\r\n }\r\n var buffer = typeof ArrayBuffer !== 'undefined' &&\r\n typeof Uint8Array !== 'undefined' &&\r\n typeof Uint8Array.prototype.slice !== 'undefined'\r\n ? new ArrayBuffer(bufferLength)\r\n : new Array(bufferLength);\r\n var bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\r\n for (i = 0; i < len; i += 4) {\r\n encoded1 = lookup[base64.charCodeAt(i)];\r\n encoded2 = lookup[base64.charCodeAt(i + 1)];\r\n encoded3 = lookup[base64.charCodeAt(i + 2)];\r\n encoded4 = lookup[base64.charCodeAt(i + 3)];\r\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\r\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\r\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\r\n }\r\n return buffer;\r\n };\r\n var polyUint16Array = function (buffer) {\r\n var length = buffer.length;\r\n var bytes = [];\r\n for (var i = 0; i < length; i += 2) {\r\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\r\n }\r\n return bytes;\r\n };\r\n var polyUint32Array = function (buffer) {\r\n var length = buffer.length;\r\n var bytes = [];\r\n for (var i = 0; i < length; i += 4) {\r\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\r\n }\r\n return bytes;\r\n };\n\n /** Shift size for getting the index-2 table offset. */\r\n var UTRIE2_SHIFT_2 = 5;\r\n /** Shift size for getting the index-1 table offset. */\r\n var UTRIE2_SHIFT_1 = 6 + 5;\r\n /**\r\n * Shift size for shifting left the index array values.\r\n * Increases possible data size with 16-bit index values at the cost\r\n * of compactability.\r\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\r\n */\r\n var UTRIE2_INDEX_SHIFT = 2;\r\n /**\r\n * Difference between the two shift sizes,\r\n * for getting an index-1 offset from an index-2 offset. 6=11-5\r\n */\r\n var UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\r\n /**\r\n * The part of the index-2 table for U+D800..U+DBFF stores values for\r\n * lead surrogate code _units_ not code _points_.\r\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\r\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\r\n */\r\n var UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\r\n /** Number of entries in a data block. 32=0x20 */\r\n var UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\r\n /** Mask for getting the lower bits for the in-data-block offset. */\r\n var UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\r\n var UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\r\n /** Count the lengths of both BMP pieces. 2080=0x820 */\r\n var UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;\r\n /**\r\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\r\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\r\n */\r\n var UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\r\n var UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\r\n /**\r\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\r\n * Variable length, for code points up to highStart, where the last single-value range starts.\r\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\r\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\r\n *\r\n * The part of the index-2 table for supplementary code points starts\r\n * after this index-1 table.\r\n *\r\n * Both the index-1 table and the following part of the index-2 table\r\n * are omitted completely if there is only BMP data.\r\n */\r\n var UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\r\n /**\r\n * Number of index-1 entries for the BMP. 32=0x20\r\n * This part of the index-1 table is omitted from the serialized form.\r\n */\r\n var UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\r\n /** Number of entries in an index-2 block. 64=0x40 */\r\n var UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\r\n /** Mask for getting the lower bits for the in-index-2-block offset. */\r\n var UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\r\n var slice16 = function (view, start, end) {\r\n if (view.slice) {\r\n return view.slice(start, end);\r\n }\r\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\r\n };\r\n var slice32 = function (view, start, end) {\r\n if (view.slice) {\r\n return view.slice(start, end);\r\n }\r\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\r\n };\r\n var createTrieFromBase64 = function (base64) {\r\n var buffer = decode(base64);\r\n var view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);\r\n var view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);\r\n var headerLength = 24;\r\n var index = slice16(view16, headerLength / 2, view32[4] / 2);\r\n var data = view32[5] === 2\r\n ? slice16(view16, (headerLength + view32[4]) / 2)\r\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\r\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\r\n };\r\n var Trie = /** @class */ (function () {\r\n function Trie(initialValue, errorValue, highStart, highValueIndex, index, data) {\r\n this.initialValue = initialValue;\r\n this.errorValue = errorValue;\r\n this.highStart = highStart;\r\n this.highValueIndex = highValueIndex;\r\n this.index = index;\r\n this.data = data;\r\n }\r\n /**\r\n * Get the value for a code point as stored in the Trie.\r\n *\r\n * @param codePoint the code point\r\n * @return the value\r\n */\r\n Trie.prototype.get = function (codePoint) {\r\n var ix;\r\n if (codePoint >= 0) {\r\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\r\n // Ordinary BMP code point, excluding leading surrogates.\r\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\r\n // 16 bit data is stored in the index array itself.\r\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\r\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\r\n return this.data[ix];\r\n }\r\n if (codePoint <= 0xffff) {\r\n // Lead Surrogate Code Point. A Separate index section is stored for\r\n // lead surrogate code units and code points.\r\n // The main index has the code unit data.\r\n // For this function, we need the code point data.\r\n // Note: this expression could be refactored for slightly improved efficiency, but\r\n // surrogate code points will be so rare in practice that it's not worth it.\r\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];\r\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\r\n return this.data[ix];\r\n }\r\n if (codePoint < this.highStart) {\r\n // Supplemental code point, use two-level lookup.\r\n ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);\r\n ix = this.index[ix];\r\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\r\n ix = this.index[ix];\r\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\r\n return this.data[ix];\r\n }\r\n if (codePoint <= 0x10ffff) {\r\n return this.data[this.highValueIndex];\r\n }\r\n }\r\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\r\n return this.errorValue;\r\n };\r\n return Trie;\r\n }());\n\n var base64 = 'KwAAAAAAAAAACA4AIDoAAPAfAAACAAAAAAAIABAAGABAAEgAUABYAF4AZgBeAGYAYABoAHAAeABeAGYAfACEAIAAiACQAJgAoACoAK0AtQC9AMUAXgBmAF4AZgBeAGYAzQDVAF4AZgDRANkA3gDmAOwA9AD8AAQBDAEUARoBIgGAAIgAJwEvATcBPwFFAU0BTAFUAVwBZAFsAXMBewGDATAAiwGTAZsBogGkAawBtAG8AcIBygHSAdoB4AHoAfAB+AH+AQYCDgIWAv4BHgImAi4CNgI+AkUCTQJTAlsCYwJrAnECeQKBAk0CiQKRApkCoQKoArACuALAAsQCzAIwANQC3ALkAjAA7AL0AvwCAQMJAxADGAMwACADJgMuAzYDPgOAAEYDSgNSA1IDUgNaA1oDYANiA2IDgACAAGoDgAByA3YDfgOAAIQDgACKA5IDmgOAAIAAogOqA4AAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAK8DtwOAAIAAvwPHA88D1wPfAyAD5wPsA/QD/AOAAIAABAQMBBIEgAAWBB4EJgQuBDMEIAM7BEEEXgBJBCADUQRZBGEEaQQwADAAcQQ+AXkEgQSJBJEEgACYBIAAoASoBK8EtwQwAL8ExQSAAIAAgACAAIAAgACgAM0EXgBeAF4AXgBeAF4AXgBeANUEXgDZBOEEXgDpBPEE+QQBBQkFEQUZBSEFKQUxBTUFPQVFBUwFVAVcBV4AYwVeAGsFcwV7BYMFiwWSBV4AmgWgBacFXgBeAF4AXgBeAKsFXgCyBbEFugW7BcIFwgXIBcIFwgXQBdQF3AXkBesF8wX7BQMGCwYTBhsGIwYrBjMGOwZeAD8GRwZNBl4AVAZbBl4AXgBeAF4AXgBeAF4AXgBeAF4AXgBeAGMGXgBqBnEGXgBeAF4AXgBeAF4AXgBeAF4AXgB5BoAG4wSGBo4GkwaAAIADHgR5AF4AXgBeAJsGgABGA4AAowarBrMGswagALsGwwbLBjAA0wbaBtoG3QbaBtoG2gbaBtoG2gblBusG8wb7BgMHCwcTBxsHCwcjBysHMAc1BzUHOgdCB9oGSgdSB1oHYAfaBloHaAfaBlIH2gbaBtoG2gbaBtoG2gbaBjUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHbQdeAF4ANQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQd1B30HNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B4MH2gaKB68EgACAAIAAgACAAIAAgACAAI8HlwdeAJ8HpweAAIAArwe3B14AXgC/B8UHygcwANAH2AfgB4AA6AfwBz4B+AcACFwBCAgPCBcIogEYAR8IJwiAAC8INwg/CCADRwhPCFcIXwhnCEoDGgSAAIAAgABvCHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIhAiLCI4IMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAANQc1BzUHNQc1BzUHNQc1BzUHNQc1B54INQc1B6II2gaqCLIIugiAAIAAvgjGCIAAgACAAIAAgACAAIAAgACAAIAAywiHAYAA0wiAANkI3QjlCO0I9Aj8CIAAgACAAAIJCgkSCRoJIgknCTYHLwk3CZYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiAAIAAAAFAAXgBeAGAAcABeAHwAQACQAKAArQC9AJ4AXgBeAE0A3gBRAN4A7AD8AMwBGgEAAKcBNwEFAUwBXAF4QkhCmEKnArcCgAHHAsABz4LAAcABwAHAAd+C6ABoAG+C/4LAAcABwAHAAc+DF4MAAcAB54M3gweDV4Nng3eDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEeDqABVg6WDqABoQ6gAaABoAHXDvcONw/3DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DncPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB7cPPwlGCU4JMACAAIAAgABWCV4JYQmAAGkJcAl4CXwJgAkwADAAMAAwAIgJgACLCZMJgACZCZ8JowmrCYAAswkwAF4AXgB8AIAAuwkABMMJyQmAAM4JgADVCTAAMAAwADAAgACAAIAAgACAAIAAgACAAIAAqwYWBNkIMAAwADAAMADdCeAJ6AnuCR4E9gkwAP4JBQoNCjAAMACAABUK0wiAAB0KJAosCjQKgAAwADwKQwqAAEsKvQmdCVMKWwowADAAgACAALcEMACAAGMKgABrCjAAMAAwADAAMAAwADAAMAAwADAAMAAeBDAAMAAwADAAMAAwADAAMAAwADAAMAAwAIkEPQFzCnoKiQSCCooKkAqJBJgKoAqkCokEGAGsCrQKvArBCjAAMADJCtEKFQHZCuEK/gHpCvEKMAAwADAAMACAAIwE+QowAIAAPwEBCzAAMAAwADAAMACAAAkLEQswAIAAPwEZCyELgAAOCCkLMAAxCzkLMAAwADAAMAAwADAAXgBeAEELMAAwADAAMAAwADAAMAAwAEkLTQtVC4AAXAtkC4AAiQkwADAAMAAwADAAMAAwADAAbAtxC3kLgAuFC4sLMAAwAJMLlwufCzAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAApwswADAAMACAAIAAgACvC4AAgACAAIAAgACAALcLMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAvwuAAMcLgACAAIAAgACAAIAAyguAAIAAgACAAIAA0QswADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAANkLgACAAIAA4AswADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACJCR4E6AswADAAhwHwC4AA+AsADAgMEAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMACAAIAAGAwdDCUMMAAwAC0MNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQw1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHPQwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADUHNQc1BzUHNQc1BzUHNQc2BzAAMAA5DDUHNQc1BzUHNQc1BzUHNQc1BzUHNQdFDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAgACAAIAATQxSDFoMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAF4AXgBeAF4AXgBeAF4AYgxeAGoMXgBxDHkMfwxeAIUMXgBeAI0MMAAwADAAMAAwAF4AXgCVDJ0MMAAwADAAMABeAF4ApQxeAKsMswy7DF4Awgy9DMoMXgBeAF4AXgBeAF4AXgBeAF4AXgDRDNkMeQBqCeAM3Ax8AOYM7Az0DPgMXgBeAF4AXgBeAF4AXgBeAF4AXgBeAF4AXgBeAF4AXgCgAAANoAAHDQ4NFg0wADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAeDSYNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIAAgACAAIAAgACAAC4NMABeAF4ANg0wADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAD4NRg1ODVYNXg1mDTAAbQ0wADAAMAAwADAAMAAwADAA2gbaBtoG2gbaBtoG2gbaBnUNeg3CBYANwgWFDdoGjA3aBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gaUDZwNpA2oDdoG2gawDbcNvw3HDdoG2gbPDdYN3A3fDeYN2gbsDfMN2gbaBvoN/g3aBgYODg7aBl4AXgBeABYOXgBeACUG2gYeDl4AJA5eACwO2w3aBtoGMQ45DtoG2gbaBtoGQQ7aBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gZJDjUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B1EO2gY1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQdZDjUHNQc1BzUHNQc1B2EONQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHaA41BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B3AO2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gY1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B2EO2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gZJDtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBkkOeA6gAKAAoAAwADAAMAAwAKAAoACgAKAAoACgAKAAgA4wADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAD//wQABAAEAAQABAAEAAQABAAEAA0AAwABAAEAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAKABMAFwAeABsAGgAeABcAFgASAB4AGwAYAA8AGAAcAEsASwBLAEsASwBLAEsASwBLAEsAGAAYAB4AHgAeABMAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAFgAbABIAHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYADQARAB4ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkAFgAaABsAGwAbAB4AHQAdAB4ATwAXAB4ADQAeAB4AGgAbAE8ATwAOAFAAHQAdAB0ATwBPABcATwBPAE8AFgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwArAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAAQABAANAA0ASwBLAEsASwBLAEsASwBLAEsASwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUAArACsABABQAAQABAAEAAQABAAEAAQAKwArAAQABAArACsABAAEAAQAUAArACsAKwArACsAKwArACsABAArACsAKwArAFAAUAArAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAGgAaAFAAUABQAFAAUABMAB4AGwBQAB4AKwArACsABAAEAAQAKwBQAFAAUABQAFAAUAArACsAKwArAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUAArAFAAUAArACsABAArAAQABAAEAAQABAArACsAKwArAAQABAArACsABAAEAAQAKwArACsABAArACsAKwArACsAKwArAFAAUABQAFAAKwBQACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwAEAAQAUABQAFAABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUAArACsABABQAAQABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQAKwArAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwAeABsAKwArACsAKwArACsAKwBQAAQABAAEAAQABAAEACsABAAEAAQAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwArAAQABAArACsABAAEAAQAKwArACsAKwArACsAKwArAAQABAArACsAKwArAFAAUAArAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwAeAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwAEAFAAKwBQAFAAUABQAFAAUAArACsAKwBQAFAAUAArAFAAUABQAFAAKwArACsAUABQACsAUAArAFAAUAArACsAKwBQAFAAKwArACsAUABQAFAAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQAKwArACsABAAEAAQAKwAEAAQABAAEACsAKwBQACsAKwArACsAKwArAAQAKwArACsAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAB4AHgAeAB4AHgAeABsAHgArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABAArACsAKwArACsAKwArAAQABAArAFAAUABQACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAB4AUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABAArACsAKwArACsAKwArAAQABAArACsAKwArACsAKwArAFAAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwArAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAKwBcAFwAKwBcACsAKwBcACsAKwArACsAKwArAFwAXABcAFwAKwBcAFwAXABcAFwAXABcACsAXABcAFwAKwBcACsAXAArACsAXABcACsAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgArACoAKgBcACsAKwBcAFwAXABcAFwAKwBcACsAKgAqACoAKgAqACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAFwAXABcAFwAUAAOAA4ADgAOAB4ADgAOAAkADgAOAA0ACQATABMAEwATABMACQAeABMAHgAeAB4ABAAEAB4AHgAeAB4AHgAeAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUAANAAQAHgAEAB4ABAAWABEAFgARAAQABABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAAQABAAEAAQABAANAAQABABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsADQANAB4AHgAeAB4AHgAeAAQAHgAeAB4AHgAeAB4AKwAeAB4ADgAOAA0ADgAeAB4AHgAeAB4ACQAJACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgAeAB4AHgBcAFwAXABcAFwAXAAqACoAKgAqAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAKgAqACoAKgAqACoAKgBcAFwAXAAqACoAKgAqAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAXAAqAEsASwBLAEsASwBLAEsASwBLAEsAKgAqACoAKgAqACoAUABQAFAAUABQAFAAKwBQACsAKwArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQACsAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwAEAAQABAAeAA0AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAEQArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAADQANAA0AUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAA0ADQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoADQANABUAXAANAB4ADQAbAFwAKgArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAB4AHgATABMADQANAA4AHgATABMAHgAEAAQABAAJACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAUABQAFAAUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwAeACsAKwArABMAEwBLAEsASwBLAEsASwBLAEsASwBLAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwBcAFwAXABcAFwAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcACsAKwArACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwAeAB4AXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgArACsABABLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKgAqACoAKgAqACoAKgBcACoAKgAqACoAKgAqACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAUABQAFAAUABQAFAAUAArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4ADQANAA0ADQAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAHgAeAB4AHgBQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwANAA0ADQANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwBQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsABAAEAAQAHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAABABQAFAAUABQAAQABAAEAFAAUAAEAAQABAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAKwBQACsAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAKwArAB4AHgAeAB4AHgAeACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAUABQAFAAKwAeAB4AHgAeAB4AHgAeAA4AHgArAA0ADQANAA0ADQANAA0ACQANAA0ADQAIAAQACwAEAAQADQAJAA0ADQAMAB0AHQAeABcAFwAWABcAFwAXABYAFwAdAB0AHgAeABQAFAAUAA0AAQABAAQABAAEAAQABAAJABoAGgAaABoAGgAaABoAGgAeABcAFwAdABUAFQAeAB4AHgAeAB4AHgAYABYAEQAVABUAFQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgANAB4ADQANAA0ADQAeAA0ADQANAAcAHgAeAB4AHgArAAQABAAEAAQABAAEAAQABAAEAAQAUABQACsAKwBPAFAAUABQAFAAUAAeAB4AHgAWABEATwBQAE8ATwBPAE8AUABQAFAAUABQAB4AHgAeABYAEQArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAGwAbABsAGwAbABsAGwAaABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAaABsAGwAbABsAGgAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgBQABoAHgAdAB4AUAAeABoAHgAeAB4AHgAeAB4AHgAeAB4ATwAeAFAAGwAeAB4AUABQAFAAUABQAB4AHgAeAB0AHQAeAFAAHgBQAB4AUAAeAFAATwBQAFAAHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AUABQAFAAUABPAE8AUABQAFAAUABQAE8AUABQAE8AUABPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAE8ATwBPAE8ATwBPAE8ATwBPAE8AUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAATwAeAB4AKwArACsAKwAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB0AHQAeAB4AHgAdAB0AHgAeAB0AHgAeAB4AHQAeAB0AGwAbAB4AHQAeAB4AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB0AHgAdAB4AHQAdAB0AHQAdAB0AHgAdAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAdAB0AHQAdAB4AHgAdAB0AHgAeAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABQAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAlACUAHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBQAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAeAB4AHgAeAB0AHQAeAB4AHgAeAB0AHQAdAB4AHgAdAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB0AHQAeAB4AHQAeAB4AHgAeAB0AHQAeAB4AHgAeACUAJQAdAB0AJQAeACUAJQAlACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAHgAeAB4AHgAdAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHQAdAB0AHgAdACUAHQAdAB4AHQAdAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHQAdAB0AHQAlAB4AJQAlACUAHQAlACUAHQAdAB0AJQAlAB0AHQAlAB0AHQAlACUAJQAeAB0AHgAeAB4AHgAdAB0AJQAdAB0AHQAdAB0AHQAlACUAJQAlACUAHQAlACUAIAAlAB0AHQAlACUAJQAlACUAJQAlACUAHgAeAB4AJQAlACAAIAAgACAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeABcAFwAXABcAFwAXAB4AEwATACUAHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwArACUAJQBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAKwArACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAE8ATwBPAE8ATwBPAE8ATwAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeACsAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUAArACsAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQBQAFAAUABQACsAKwArACsAUABQAFAAUABQAFAAUABQAA0AUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQACsAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgBQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAABAAEAAQAKwAEAAQAKwArACsAKwArAAQABAAEAAQAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsABAAEAAQAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsADQANAA0ADQANAA0ADQANAB4AKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AUABQAFAAUABQAFAAUABQAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAUABQAFAAUABQAA0ADQANAA0ADQANABQAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwANAA0ADQANAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAeAAQABAAEAB4AKwArAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLACsADQArAB4AKwArAAQABAAEAAQAUABQAB4AUAArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwAEAAQABAAEAAQABAAEAAQABAAOAA0ADQATABMAHgAeAB4ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0AUABQAFAAUAAEAAQAKwArAAQADQANAB4AUAArACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXABcAA0ADQANACoASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUAArACsAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANACsADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEcARwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQACsAKwAeAAQABAANAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAEAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUAArACsAUAArACsAUABQACsAKwBQAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AKwArAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAeAB4ADQANAA0ADQAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAArAAQABAArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAEAAQABAAEAAQABAAEACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAFgAWAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAKwBQACsAKwArACsAKwArAFAAKwArACsAKwBQACsAUAArAFAAKwBQAFAAUAArAFAAUAArAFAAKwArAFAAKwBQACsAUAArAFAAKwBQACsAUABQACsAUAArACsAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAUABQAFAAUAArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUAArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAlACUAJQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeACUAJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeACUAJQAlACUAJQAeACUAJQAlACUAJQAgACAAIAAlACUAIAAlACUAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIQAhACEAIQAhACUAJQAgACAAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAgACAAIAAlACUAJQAlACAAJQAgACAAIAAgACAAIAAgACAAIAAlACUAJQAgACUAJQAlACUAIAAgACAAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeACUAHgAlAB4AJQAlACUAJQAlACAAJQAlACUAJQAeACUAHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAgACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAlACUAJQAlACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAIAAgACAAJQAlACUAIAAgACAAIAAgAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFwAXABcAFQAVABUAHgAeAB4AHgAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAgACAAJQAlACUAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAlACAAIAAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsA';\n\n /* @flow */\r\n var LETTER_NUMBER_MODIFIER = 50;\r\n // Non-tailorable Line Breaking Classes\r\n var BK = 1; // Cause a line break (after)\r\n var CR = 2; // Cause a line break (after), except between CR and LF\r\n var LF = 3; // Cause a line break (after)\r\n var CM = 4; // Prohibit a line break between the character and the preceding character\r\n var NL = 5; // Cause a line break (after)\r\n var WJ = 7; // Prohibit line breaks before and after\r\n var ZW = 8; // Provide a break opportunity\r\n var GL = 9; // Prohibit line breaks before and after\r\n var SP = 10; // Enable indirect line breaks\r\n var ZWJ = 11; // Prohibit line breaks within joiner sequences\r\n // Break Opportunities\r\n var B2 = 12; // Provide a line break opportunity before and after the character\r\n var BA = 13; // Generally provide a line break opportunity after the character\r\n var BB = 14; // Generally provide a line break opportunity before the character\r\n var HY = 15; // Provide a line break opportunity after the character, except in numeric context\r\n var CB = 16; // Provide a line break opportunity contingent on additional information\r\n // Characters Prohibiting Certain Breaks\r\n var CL = 17; // Prohibit line breaks before\r\n var CP = 18; // Prohibit line breaks before\r\n var EX = 19; // Prohibit line breaks before\r\n var IN = 20; // Allow only indirect line breaks between pairs\r\n var NS = 21; // Allow only indirect line breaks before\r\n var OP = 22; // Prohibit line breaks after\r\n var QU = 23; // Act like they are both opening and closing\r\n // Numeric Context\r\n var IS = 24; // Prevent breaks after any and before numeric\r\n var NU = 25; // Form numeric expressions for line breaking purposes\r\n var PO = 26; // Do not break following a numeric expression\r\n var PR = 27; // Do not break in front of a numeric expression\r\n var SY = 28; // Prevent a break before; and allow a break after\r\n // Other Characters\r\n var AI = 29; // Act like AL when the resolvedEAW is N; otherwise; act as ID\r\n var AL = 30; // Are alphabetic characters or symbols that are used with alphabetic characters\r\n var CJ = 31; // Treat as NS or ID for strict or normal breaking.\r\n var EB = 32; // Do not break from following Emoji Modifier\r\n var EM = 33; // Do not break from preceding Emoji Base\r\n var H2 = 34; // Form Korean syllable blocks\r\n var H3 = 35; // Form Korean syllable blocks\r\n var HL = 36; // Do not break around a following hyphen; otherwise act as Alphabetic\r\n var ID = 37; // Break before or after; except in some numeric context\r\n var JL = 38; // Form Korean syllable blocks\r\n var JV = 39; // Form Korean syllable blocks\r\n var JT = 40; // Form Korean syllable blocks\r\n var RI = 41; // Keep pairs together. For pairs; break before and after other classes\r\n var SA = 42; // Provide a line break opportunity contingent on additional, language-specific context analysis\r\n var XX = 43; // Have as yet unknown line breaking behavior or unassigned code positions\r\n var BREAK_MANDATORY = '!';\r\n var BREAK_NOT_ALLOWED = '×';\r\n var BREAK_ALLOWED = '÷';\r\n var UnicodeTrie = createTrieFromBase64(base64);\r\n var ALPHABETICS = [AL, HL];\r\n var HARD_LINE_BREAKS = [BK, CR, LF, NL];\r\n var SPACE = [SP, ZW];\r\n var PREFIX_POSTFIX = [PR, PO];\r\n var LINE_BREAKS = HARD_LINE_BREAKS.concat(SPACE);\r\n var KOREAN_SYLLABLE_BLOCK = [JL, JV, JT, H2, H3];\r\n var HYPHEN = [HY, BA];\r\n var codePointsToCharacterClasses = function (codePoints, lineBreak) {\r\n if (lineBreak === void 0) { lineBreak = 'strict'; }\r\n var types = [];\r\n var indicies = [];\r\n var categories = [];\r\n codePoints.forEach(function (codePoint, index) {\r\n var classType = UnicodeTrie.get(codePoint);\r\n if (classType > LETTER_NUMBER_MODIFIER) {\r\n categories.push(true);\r\n classType -= LETTER_NUMBER_MODIFIER;\r\n }\r\n else {\r\n categories.push(false);\r\n }\r\n if (['normal', 'auto', 'loose'].indexOf(lineBreak) !== -1) {\r\n // U+2010, – U+2013, 〜 U+301C, ゠ U+30A0\r\n if ([0x2010, 0x2013, 0x301c, 0x30a0].indexOf(codePoint) !== -1) {\r\n indicies.push(index);\r\n return types.push(CB);\r\n }\r\n }\r\n if (classType === CM || classType === ZWJ) {\r\n // LB10 Treat any remaining combining mark or ZWJ as AL.\r\n if (index === 0) {\r\n indicies.push(index);\r\n return types.push(AL);\r\n }\r\n // LB9 Do not break a combining character sequence; treat it as if it has the line breaking class of\r\n // the base character in all of the following rules. Treat ZWJ as if it were CM.\r\n var prev = types[index - 1];\r\n if (LINE_BREAKS.indexOf(prev) === -1) {\r\n indicies.push(indicies[index - 1]);\r\n return types.push(prev);\r\n }\r\n indicies.push(index);\r\n return types.push(AL);\r\n }\r\n indicies.push(index);\r\n if (classType === CJ) {\r\n return types.push(lineBreak === 'strict' ? NS : ID);\r\n }\r\n if (classType === SA) {\r\n return types.push(AL);\r\n }\r\n if (classType === AI) {\r\n return types.push(AL);\r\n }\r\n // For supplementary characters, a useful default is to treat characters in the range 10000..1FFFD as AL\r\n // and characters in the ranges 20000..2FFFD and 30000..3FFFD as ID, until the implementation can be revised\r\n // to take into account the actual line breaking properties for these characters.\r\n if (classType === XX) {\r\n if ((codePoint >= 0x20000 && codePoint <= 0x2fffd) || (codePoint >= 0x30000 && codePoint <= 0x3fffd)) {\r\n return types.push(ID);\r\n }\r\n else {\r\n return types.push(AL);\r\n }\r\n }\r\n types.push(classType);\r\n });\r\n return [indicies, types, categories];\r\n };\r\n var isAdjacentWithSpaceIgnored = function (a, b, currentIndex, classTypes) {\r\n var current = classTypes[currentIndex];\r\n if (Array.isArray(a) ? a.indexOf(current) !== -1 : a === current) {\r\n var i = currentIndex;\r\n while (i <= classTypes.length) {\r\n i++;\r\n var next = classTypes[i];\r\n if (next === b) {\r\n return true;\r\n }\r\n if (next !== SP) {\r\n break;\r\n }\r\n }\r\n }\r\n if (current === SP) {\r\n var i = currentIndex;\r\n while (i > 0) {\r\n i--;\r\n var prev = classTypes[i];\r\n if (Array.isArray(a) ? a.indexOf(prev) !== -1 : a === prev) {\r\n var n = currentIndex;\r\n while (n <= classTypes.length) {\r\n n++;\r\n var next = classTypes[n];\r\n if (next === b) {\r\n return true;\r\n }\r\n if (next !== SP) {\r\n break;\r\n }\r\n }\r\n }\r\n if (prev !== SP) {\r\n break;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n var previousNonSpaceClassType = function (currentIndex, classTypes) {\r\n var i = currentIndex;\r\n while (i >= 0) {\r\n var type = classTypes[i];\r\n if (type === SP) {\r\n i--;\r\n }\r\n else {\r\n return type;\r\n }\r\n }\r\n return 0;\r\n };\r\n var _lineBreakAtIndex = function (codePoints, classTypes, indicies, index, forbiddenBreaks) {\r\n if (indicies[index] === 0) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n var currentIndex = index - 1;\r\n if (Array.isArray(forbiddenBreaks) && forbiddenBreaks[currentIndex] === true) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n var beforeIndex = currentIndex - 1;\r\n var afterIndex = currentIndex + 1;\r\n var current = classTypes[currentIndex];\r\n // LB4 Always break after hard line breaks.\r\n // LB5 Treat CR followed by LF, as well as CR, LF, and NL as hard line breaks.\r\n var before = beforeIndex >= 0 ? classTypes[beforeIndex] : 0;\r\n var next = classTypes[afterIndex];\r\n if (current === CR && next === LF) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n if (HARD_LINE_BREAKS.indexOf(current) !== -1) {\r\n return BREAK_MANDATORY;\r\n }\r\n // LB6 Do not break before hard line breaks.\r\n if (HARD_LINE_BREAKS.indexOf(next) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB7 Do not break before spaces or zero width space.\r\n if (SPACE.indexOf(next) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB8 Break before any character following a zero-width space, even if one or more spaces intervene.\r\n if (previousNonSpaceClassType(currentIndex, classTypes) === ZW) {\r\n return BREAK_ALLOWED;\r\n }\r\n // LB8a Do not break between a zero width joiner and an ideograph, emoji base or emoji modifier.\r\n if (UnicodeTrie.get(codePoints[currentIndex]) === ZWJ && (next === ID || next === EB || next === EM)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB11 Do not break before or after Word joiner and related characters.\r\n if (current === WJ || next === WJ) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB12 Do not break after NBSP and related characters.\r\n if (current === GL) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB12a Do not break before NBSP and related characters, except after spaces and hyphens.\r\n if ([SP, BA, HY].indexOf(current) === -1 && next === GL) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB13 Do not break before ‘]’ or ‘!’ or ‘;’ or ‘/’, even after spaces.\r\n if ([CL, CP, EX, IS, SY].indexOf(next) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB14 Do not break after ‘[’, even after spaces.\r\n if (previousNonSpaceClassType(currentIndex, classTypes) === OP) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB15 Do not break within ‘”[’, even with intervening spaces.\r\n if (isAdjacentWithSpaceIgnored(QU, OP, currentIndex, classTypes)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB16 Do not break between closing punctuation and a nonstarter (lb=NS), even with intervening spaces.\r\n if (isAdjacentWithSpaceIgnored([CL, CP], NS, currentIndex, classTypes)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB17 Do not break within ‘——’, even with intervening spaces.\r\n if (isAdjacentWithSpaceIgnored(B2, B2, currentIndex, classTypes)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB18 Break after spaces.\r\n if (current === SP) {\r\n return BREAK_ALLOWED;\r\n }\r\n // LB19 Do not break before or after quotation marks, such as ‘ ” ’.\r\n if (current === QU || next === QU) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB20 Break before and after unresolved CB.\r\n if (next === CB || current === CB) {\r\n return BREAK_ALLOWED;\r\n }\r\n // LB21 Do not break before hyphen-minus, other hyphens, fixed-width spaces, small kana, and other non-starters, or after acute accents.\r\n if ([BA, HY, NS].indexOf(next) !== -1 || current === BB) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB21a Don't break after Hebrew + Hyphen.\r\n if (before === HL && HYPHEN.indexOf(current) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB21b Don’t break between Solidus and Hebrew letters.\r\n if (current === SY && next === HL) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB22 Do not break between two ellipses, or between letters, numbers or exclamations and ellipsis.\r\n if (next === IN && ALPHABETICS.concat(IN, EX, NU, ID, EB, EM).indexOf(current) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB23 Do not break between digits and letters.\r\n if ((ALPHABETICS.indexOf(next) !== -1 && current === NU) || (ALPHABETICS.indexOf(current) !== -1 && next === NU)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB23a Do not break between numeric prefixes and ideographs, or between ideographs and numeric postfixes.\r\n if ((current === PR && [ID, EB, EM].indexOf(next) !== -1) ||\r\n ([ID, EB, EM].indexOf(current) !== -1 && next === PO)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB24 Do not break between numeric prefix/postfix and letters, or between letters and prefix/postfix.\r\n if ((ALPHABETICS.indexOf(current) !== -1 && PREFIX_POSTFIX.indexOf(next) !== -1) ||\r\n (PREFIX_POSTFIX.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB25 Do not break between the following pairs of classes relevant to numbers:\r\n if (\r\n // (PR | PO) × ( OP | HY )? NU\r\n ([PR, PO].indexOf(current) !== -1 &&\r\n (next === NU || ([OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU))) ||\r\n // ( OP | HY ) × NU\r\n ([OP, HY].indexOf(current) !== -1 && next === NU) ||\r\n // NU ×\t(NU | SY | IS)\r\n (current === NU && [NU, SY, IS].indexOf(next) !== -1)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // NU (NU | SY | IS)* × (NU | SY | IS | CL | CP)\r\n if ([NU, SY, IS, CL, CP].indexOf(next) !== -1) {\r\n var prevIndex = currentIndex;\r\n while (prevIndex >= 0) {\r\n var type = classTypes[prevIndex];\r\n if (type === NU) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n else if ([SY, IS].indexOf(type) !== -1) {\r\n prevIndex--;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n // NU (NU | SY | IS)* (CL | CP)? × (PO | PR))\r\n if ([PR, PO].indexOf(next) !== -1) {\r\n var prevIndex = [CL, CP].indexOf(current) !== -1 ? beforeIndex : currentIndex;\r\n while (prevIndex >= 0) {\r\n var type = classTypes[prevIndex];\r\n if (type === NU) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n else if ([SY, IS].indexOf(type) !== -1) {\r\n prevIndex--;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n // LB26 Do not break a Korean syllable.\r\n if ((JL === current && [JL, JV, H2, H3].indexOf(next) !== -1) ||\r\n ([JV, H2].indexOf(current) !== -1 && [JV, JT].indexOf(next) !== -1) ||\r\n ([JT, H3].indexOf(current) !== -1 && next === JT)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB27 Treat a Korean Syllable Block the same as ID.\r\n if ((KOREAN_SYLLABLE_BLOCK.indexOf(current) !== -1 && [IN, PO].indexOf(next) !== -1) ||\r\n (KOREAN_SYLLABLE_BLOCK.indexOf(next) !== -1 && current === PR)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB28 Do not break between alphabetics (“at”).\r\n if (ALPHABETICS.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB29 Do not break between numeric punctuation and alphabetics (“e.g.”).\r\n if (current === IS && ALPHABETICS.indexOf(next) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB30 Do not break between letters, numbers, or ordinary symbols and opening or closing parentheses.\r\n if ((ALPHABETICS.concat(NU).indexOf(current) !== -1 && next === OP) ||\r\n (ALPHABETICS.concat(NU).indexOf(next) !== -1 && current === CP)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB30a Break between two regional indicator symbols if and only if there are an even number of regional\r\n // indicators preceding the position of the break.\r\n if (current === RI && next === RI) {\r\n var i = indicies[currentIndex];\r\n var count = 1;\r\n while (i > 0) {\r\n i--;\r\n if (classTypes[i] === RI) {\r\n count++;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n if (count % 2 !== 0) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n }\r\n // LB30b Do not break between an emoji base and an emoji modifier.\r\n if (current === EB && next === EM) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n return BREAK_ALLOWED;\r\n };\r\n var cssFormattedClasses = function (codePoints, options) {\r\n if (!options) {\r\n options = { lineBreak: 'normal', wordBreak: 'normal' };\r\n }\r\n var _a = codePointsToCharacterClasses(codePoints, options.lineBreak), indicies = _a[0], classTypes = _a[1], isLetterNumber = _a[2];\r\n if (options.wordBreak === 'break-all' || options.wordBreak === 'break-word') {\r\n classTypes = classTypes.map(function (type) { return ([NU, AL, SA].indexOf(type) !== -1 ? ID : type); });\r\n }\r\n var forbiddenBreakpoints = options.wordBreak === 'keep-all'\r\n ? isLetterNumber.map(function (letterNumber, i) {\r\n return letterNumber && codePoints[i] >= 0x4e00 && codePoints[i] <= 0x9fff;\r\n })\r\n : undefined;\r\n return [indicies, classTypes, forbiddenBreakpoints];\r\n };\r\n var Break = /** @class */ (function () {\r\n function Break(codePoints, lineBreak, start, end) {\r\n this.codePoints = codePoints;\r\n this.required = lineBreak === BREAK_MANDATORY;\r\n this.start = start;\r\n this.end = end;\r\n }\r\n Break.prototype.slice = function () {\r\n return fromCodePoint.apply(void 0, this.codePoints.slice(this.start, this.end));\r\n };\r\n return Break;\r\n }());\r\n var LineBreaker = function (str, options) {\r\n var codePoints = toCodePoints(str);\r\n var _a = cssFormattedClasses(codePoints, options), indicies = _a[0], classTypes = _a[1], forbiddenBreakpoints = _a[2];\r\n var length = codePoints.length;\r\n var lastEnd = 0;\r\n var nextIndex = 0;\r\n return {\r\n next: function () {\r\n if (nextIndex >= length) {\r\n return { done: true, value: null };\r\n }\r\n var lineBreak = BREAK_NOT_ALLOWED;\r\n while (nextIndex < length &&\r\n (lineBreak = _lineBreakAtIndex(codePoints, classTypes, indicies, ++nextIndex, forbiddenBreakpoints)) ===\r\n BREAK_NOT_ALLOWED) { }\r\n if (lineBreak !== BREAK_NOT_ALLOWED || nextIndex === length) {\r\n var value = new Break(codePoints, lineBreak, lastEnd, nextIndex);\r\n lastEnd = nextIndex;\r\n return { value: value, done: false };\r\n }\r\n return { done: true, value: null };\r\n },\r\n };\r\n };\n\n // https://www.w3.org/TR/css-syntax-3\r\n var TokenType;\r\n (function (TokenType) {\r\n TokenType[TokenType[\"STRING_TOKEN\"] = 0] = \"STRING_TOKEN\";\r\n TokenType[TokenType[\"BAD_STRING_TOKEN\"] = 1] = \"BAD_STRING_TOKEN\";\r\n TokenType[TokenType[\"LEFT_PARENTHESIS_TOKEN\"] = 2] = \"LEFT_PARENTHESIS_TOKEN\";\r\n TokenType[TokenType[\"RIGHT_PARENTHESIS_TOKEN\"] = 3] = \"RIGHT_PARENTHESIS_TOKEN\";\r\n TokenType[TokenType[\"COMMA_TOKEN\"] = 4] = \"COMMA_TOKEN\";\r\n TokenType[TokenType[\"HASH_TOKEN\"] = 5] = \"HASH_TOKEN\";\r\n TokenType[TokenType[\"DELIM_TOKEN\"] = 6] = \"DELIM_TOKEN\";\r\n TokenType[TokenType[\"AT_KEYWORD_TOKEN\"] = 7] = \"AT_KEYWORD_TOKEN\";\r\n TokenType[TokenType[\"PREFIX_MATCH_TOKEN\"] = 8] = \"PREFIX_MATCH_TOKEN\";\r\n TokenType[TokenType[\"DASH_MATCH_TOKEN\"] = 9] = \"DASH_MATCH_TOKEN\";\r\n TokenType[TokenType[\"INCLUDE_MATCH_TOKEN\"] = 10] = \"INCLUDE_MATCH_TOKEN\";\r\n TokenType[TokenType[\"LEFT_CURLY_BRACKET_TOKEN\"] = 11] = \"LEFT_CURLY_BRACKET_TOKEN\";\r\n TokenType[TokenType[\"RIGHT_CURLY_BRACKET_TOKEN\"] = 12] = \"RIGHT_CURLY_BRACKET_TOKEN\";\r\n TokenType[TokenType[\"SUFFIX_MATCH_TOKEN\"] = 13] = \"SUFFIX_MATCH_TOKEN\";\r\n TokenType[TokenType[\"SUBSTRING_MATCH_TOKEN\"] = 14] = \"SUBSTRING_MATCH_TOKEN\";\r\n TokenType[TokenType[\"DIMENSION_TOKEN\"] = 15] = \"DIMENSION_TOKEN\";\r\n TokenType[TokenType[\"PERCENTAGE_TOKEN\"] = 16] = \"PERCENTAGE_TOKEN\";\r\n TokenType[TokenType[\"NUMBER_TOKEN\"] = 17] = \"NUMBER_TOKEN\";\r\n TokenType[TokenType[\"FUNCTION\"] = 18] = \"FUNCTION\";\r\n TokenType[TokenType[\"FUNCTION_TOKEN\"] = 19] = \"FUNCTION_TOKEN\";\r\n TokenType[TokenType[\"IDENT_TOKEN\"] = 20] = \"IDENT_TOKEN\";\r\n TokenType[TokenType[\"COLUMN_TOKEN\"] = 21] = \"COLUMN_TOKEN\";\r\n TokenType[TokenType[\"URL_TOKEN\"] = 22] = \"URL_TOKEN\";\r\n TokenType[TokenType[\"BAD_URL_TOKEN\"] = 23] = \"BAD_URL_TOKEN\";\r\n TokenType[TokenType[\"CDC_TOKEN\"] = 24] = \"CDC_TOKEN\";\r\n TokenType[TokenType[\"CDO_TOKEN\"] = 25] = \"CDO_TOKEN\";\r\n TokenType[TokenType[\"COLON_TOKEN\"] = 26] = \"COLON_TOKEN\";\r\n TokenType[TokenType[\"SEMICOLON_TOKEN\"] = 27] = \"SEMICOLON_TOKEN\";\r\n TokenType[TokenType[\"LEFT_SQUARE_BRACKET_TOKEN\"] = 28] = \"LEFT_SQUARE_BRACKET_TOKEN\";\r\n TokenType[TokenType[\"RIGHT_SQUARE_BRACKET_TOKEN\"] = 29] = \"RIGHT_SQUARE_BRACKET_TOKEN\";\r\n TokenType[TokenType[\"UNICODE_RANGE_TOKEN\"] = 30] = \"UNICODE_RANGE_TOKEN\";\r\n TokenType[TokenType[\"WHITESPACE_TOKEN\"] = 31] = \"WHITESPACE_TOKEN\";\r\n TokenType[TokenType[\"EOF_TOKEN\"] = 32] = \"EOF_TOKEN\";\r\n })(TokenType || (TokenType = {}));\r\n var FLAG_UNRESTRICTED = 1 << 0;\r\n var FLAG_ID = 1 << 1;\r\n var FLAG_INTEGER = 1 << 2;\r\n var FLAG_NUMBER = 1 << 3;\r\n var LINE_FEED = 0x000a;\r\n var SOLIDUS = 0x002f;\r\n var REVERSE_SOLIDUS = 0x005c;\r\n var CHARACTER_TABULATION = 0x0009;\r\n var SPACE$1 = 0x0020;\r\n var QUOTATION_MARK = 0x0022;\r\n var EQUALS_SIGN = 0x003d;\r\n var NUMBER_SIGN = 0x0023;\r\n var DOLLAR_SIGN = 0x0024;\r\n var PERCENTAGE_SIGN = 0x0025;\r\n var APOSTROPHE = 0x0027;\r\n var LEFT_PARENTHESIS = 0x0028;\r\n var RIGHT_PARENTHESIS = 0x0029;\r\n var LOW_LINE = 0x005f;\r\n var HYPHEN_MINUS = 0x002d;\r\n var EXCLAMATION_MARK = 0x0021;\r\n var LESS_THAN_SIGN = 0x003c;\r\n var GREATER_THAN_SIGN = 0x003e;\r\n var COMMERCIAL_AT = 0x0040;\r\n var LEFT_SQUARE_BRACKET = 0x005b;\r\n var RIGHT_SQUARE_BRACKET = 0x005d;\r\n var CIRCUMFLEX_ACCENT = 0x003d;\r\n var LEFT_CURLY_BRACKET = 0x007b;\r\n var QUESTION_MARK = 0x003f;\r\n var RIGHT_CURLY_BRACKET = 0x007d;\r\n var VERTICAL_LINE = 0x007c;\r\n var TILDE = 0x007e;\r\n var CONTROL = 0x0080;\r\n var REPLACEMENT_CHARACTER = 0xfffd;\r\n var ASTERISK = 0x002a;\r\n var PLUS_SIGN = 0x002b;\r\n var COMMA = 0x002c;\r\n var COLON = 0x003a;\r\n var SEMICOLON = 0x003b;\r\n var FULL_STOP = 0x002e;\r\n var NULL = 0x0000;\r\n var BACKSPACE = 0x0008;\r\n var LINE_TABULATION = 0x000b;\r\n var SHIFT_OUT = 0x000e;\r\n var INFORMATION_SEPARATOR_ONE = 0x001f;\r\n var DELETE = 0x007f;\r\n var EOF = -1;\r\n var ZERO = 0x0030;\r\n var a = 0x0061;\r\n var e = 0x0065;\r\n var f = 0x0066;\r\n var u = 0x0075;\r\n var z = 0x007a;\r\n var A = 0x0041;\r\n var E = 0x0045;\r\n var F = 0x0046;\r\n var U = 0x0055;\r\n var Z = 0x005a;\r\n var isDigit = function (codePoint) { return codePoint >= ZERO && codePoint <= 0x0039; };\r\n var isSurrogateCodePoint = function (codePoint) { return codePoint >= 0xd800 && codePoint <= 0xdfff; };\r\n var isHex = function (codePoint) {\r\n return isDigit(codePoint) || (codePoint >= A && codePoint <= F) || (codePoint >= a && codePoint <= f);\r\n };\r\n var isLowerCaseLetter = function (codePoint) { return codePoint >= a && codePoint <= z; };\r\n var isUpperCaseLetter = function (codePoint) { return codePoint >= A && codePoint <= Z; };\r\n var isLetter = function (codePoint) { return isLowerCaseLetter(codePoint) || isUpperCaseLetter(codePoint); };\r\n var isNonASCIICodePoint = function (codePoint) { return codePoint >= CONTROL; };\r\n var isWhiteSpace = function (codePoint) {\r\n return codePoint === LINE_FEED || codePoint === CHARACTER_TABULATION || codePoint === SPACE$1;\r\n };\r\n var isNameStartCodePoint = function (codePoint) {\r\n return isLetter(codePoint) || isNonASCIICodePoint(codePoint) || codePoint === LOW_LINE;\r\n };\r\n var isNameCodePoint = function (codePoint) {\r\n return isNameStartCodePoint(codePoint) || isDigit(codePoint) || codePoint === HYPHEN_MINUS;\r\n };\r\n var isNonPrintableCodePoint = function (codePoint) {\r\n return ((codePoint >= NULL && codePoint <= BACKSPACE) ||\r\n codePoint === LINE_TABULATION ||\r\n (codePoint >= SHIFT_OUT && codePoint <= INFORMATION_SEPARATOR_ONE) ||\r\n codePoint === DELETE);\r\n };\r\n var isValidEscape = function (c1, c2) {\r\n if (c1 !== REVERSE_SOLIDUS) {\r\n return false;\r\n }\r\n return c2 !== LINE_FEED;\r\n };\r\n var isIdentifierStart = function (c1, c2, c3) {\r\n if (c1 === HYPHEN_MINUS) {\r\n return isNameStartCodePoint(c2) || isValidEscape(c2, c3);\r\n }\r\n else if (isNameStartCodePoint(c1)) {\r\n return true;\r\n }\r\n else if (c1 === REVERSE_SOLIDUS && isValidEscape(c1, c2)) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n var isNumberStart = function (c1, c2, c3) {\r\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\r\n if (isDigit(c2)) {\r\n return true;\r\n }\r\n return c2 === FULL_STOP && isDigit(c3);\r\n }\r\n if (c1 === FULL_STOP) {\r\n return isDigit(c2);\r\n }\r\n return isDigit(c1);\r\n };\r\n var stringToNumber = function (codePoints) {\r\n var c = 0;\r\n var sign = 1;\r\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\r\n if (codePoints[c] === HYPHEN_MINUS) {\r\n sign = -1;\r\n }\r\n c++;\r\n }\r\n var integers = [];\r\n while (isDigit(codePoints[c])) {\r\n integers.push(codePoints[c++]);\r\n }\r\n var int = integers.length ? parseInt(fromCodePoint.apply(void 0, integers), 10) : 0;\r\n if (codePoints[c] === FULL_STOP) {\r\n c++;\r\n }\r\n var fraction = [];\r\n while (isDigit(codePoints[c])) {\r\n fraction.push(codePoints[c++]);\r\n }\r\n var fracd = fraction.length;\r\n var frac = fracd ? parseInt(fromCodePoint.apply(void 0, fraction), 10) : 0;\r\n if (codePoints[c] === E || codePoints[c] === e) {\r\n c++;\r\n }\r\n var expsign = 1;\r\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\r\n if (codePoints[c] === HYPHEN_MINUS) {\r\n expsign = -1;\r\n }\r\n c++;\r\n }\r\n var exponent = [];\r\n while (isDigit(codePoints[c])) {\r\n exponent.push(codePoints[c++]);\r\n }\r\n var exp = exponent.length ? parseInt(fromCodePoint.apply(void 0, exponent), 10) : 0;\r\n return sign * (int + frac * Math.pow(10, -fracd)) * Math.pow(10, expsign * exp);\r\n };\r\n var LEFT_PARENTHESIS_TOKEN = {\r\n type: TokenType.LEFT_PARENTHESIS_TOKEN\r\n };\r\n var RIGHT_PARENTHESIS_TOKEN = {\r\n type: TokenType.RIGHT_PARENTHESIS_TOKEN\r\n };\r\n var COMMA_TOKEN = { type: TokenType.COMMA_TOKEN };\r\n var SUFFIX_MATCH_TOKEN = { type: TokenType.SUFFIX_MATCH_TOKEN };\r\n var PREFIX_MATCH_TOKEN = { type: TokenType.PREFIX_MATCH_TOKEN };\r\n var COLUMN_TOKEN = { type: TokenType.COLUMN_TOKEN };\r\n var DASH_MATCH_TOKEN = { type: TokenType.DASH_MATCH_TOKEN };\r\n var INCLUDE_MATCH_TOKEN = { type: TokenType.INCLUDE_MATCH_TOKEN };\r\n var LEFT_CURLY_BRACKET_TOKEN = {\r\n type: TokenType.LEFT_CURLY_BRACKET_TOKEN\r\n };\r\n var RIGHT_CURLY_BRACKET_TOKEN = {\r\n type: TokenType.RIGHT_CURLY_BRACKET_TOKEN\r\n };\r\n var SUBSTRING_MATCH_TOKEN = { type: TokenType.SUBSTRING_MATCH_TOKEN };\r\n var BAD_URL_TOKEN = { type: TokenType.BAD_URL_TOKEN };\r\n var BAD_STRING_TOKEN = { type: TokenType.BAD_STRING_TOKEN };\r\n var CDO_TOKEN = { type: TokenType.CDO_TOKEN };\r\n var CDC_TOKEN = { type: TokenType.CDC_TOKEN };\r\n var COLON_TOKEN = { type: TokenType.COLON_TOKEN };\r\n var SEMICOLON_TOKEN = { type: TokenType.SEMICOLON_TOKEN };\r\n var LEFT_SQUARE_BRACKET_TOKEN = {\r\n type: TokenType.LEFT_SQUARE_BRACKET_TOKEN\r\n };\r\n var RIGHT_SQUARE_BRACKET_TOKEN = {\r\n type: TokenType.RIGHT_SQUARE_BRACKET_TOKEN\r\n };\r\n var WHITESPACE_TOKEN = { type: TokenType.WHITESPACE_TOKEN };\r\n var EOF_TOKEN = { type: TokenType.EOF_TOKEN };\r\n var Tokenizer = /** @class */ (function () {\r\n function Tokenizer() {\r\n this._value = [];\r\n }\r\n Tokenizer.prototype.write = function (chunk) {\r\n this._value = this._value.concat(toCodePoints(chunk));\r\n };\r\n Tokenizer.prototype.read = function () {\r\n var tokens = [];\r\n var token = this.consumeToken();\r\n while (token !== EOF_TOKEN) {\r\n tokens.push(token);\r\n token = this.consumeToken();\r\n }\r\n return tokens;\r\n };\r\n Tokenizer.prototype.consumeToken = function () {\r\n var codePoint = this.consumeCodePoint();\r\n switch (codePoint) {\r\n case QUOTATION_MARK:\r\n return this.consumeStringToken(QUOTATION_MARK);\r\n case NUMBER_SIGN:\r\n var c1 = this.peekCodePoint(0);\r\n var c2 = this.peekCodePoint(1);\r\n var c3 = this.peekCodePoint(2);\r\n if (isNameCodePoint(c1) || isValidEscape(c2, c3)) {\r\n var flags = isIdentifierStart(c1, c2, c3) ? FLAG_ID : FLAG_UNRESTRICTED;\r\n var value = this.consumeName();\r\n return { type: TokenType.HASH_TOKEN, value: value, flags: flags };\r\n }\r\n break;\r\n case DOLLAR_SIGN:\r\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\r\n this.consumeCodePoint();\r\n return SUFFIX_MATCH_TOKEN;\r\n }\r\n break;\r\n case APOSTROPHE:\r\n return this.consumeStringToken(APOSTROPHE);\r\n case LEFT_PARENTHESIS:\r\n return LEFT_PARENTHESIS_TOKEN;\r\n case RIGHT_PARENTHESIS:\r\n return RIGHT_PARENTHESIS_TOKEN;\r\n case ASTERISK:\r\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\r\n this.consumeCodePoint();\r\n return SUBSTRING_MATCH_TOKEN;\r\n }\r\n break;\r\n case PLUS_SIGN:\r\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeNumericToken();\r\n }\r\n break;\r\n case COMMA:\r\n return COMMA_TOKEN;\r\n case HYPHEN_MINUS:\r\n var e1 = codePoint;\r\n var e2 = this.peekCodePoint(0);\r\n var e3 = this.peekCodePoint(1);\r\n if (isNumberStart(e1, e2, e3)) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeNumericToken();\r\n }\r\n if (isIdentifierStart(e1, e2, e3)) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeIdentLikeToken();\r\n }\r\n if (e2 === HYPHEN_MINUS && e3 === GREATER_THAN_SIGN) {\r\n this.consumeCodePoint();\r\n this.consumeCodePoint();\r\n return CDC_TOKEN;\r\n }\r\n break;\r\n case FULL_STOP:\r\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeNumericToken();\r\n }\r\n break;\r\n case SOLIDUS:\r\n if (this.peekCodePoint(0) === ASTERISK) {\r\n this.consumeCodePoint();\r\n while (true) {\r\n var c = this.consumeCodePoint();\r\n if (c === ASTERISK) {\r\n c = this.consumeCodePoint();\r\n if (c === SOLIDUS) {\r\n return this.consumeToken();\r\n }\r\n }\r\n if (c === EOF) {\r\n return this.consumeToken();\r\n }\r\n }\r\n }\r\n break;\r\n case COLON:\r\n return COLON_TOKEN;\r\n case SEMICOLON:\r\n return SEMICOLON_TOKEN;\r\n case LESS_THAN_SIGN:\r\n if (this.peekCodePoint(0) === EXCLAMATION_MARK &&\r\n this.peekCodePoint(1) === HYPHEN_MINUS &&\r\n this.peekCodePoint(2) === HYPHEN_MINUS) {\r\n this.consumeCodePoint();\r\n this.consumeCodePoint();\r\n return CDO_TOKEN;\r\n }\r\n break;\r\n case COMMERCIAL_AT:\r\n var a1 = this.peekCodePoint(0);\r\n var a2 = this.peekCodePoint(1);\r\n var a3 = this.peekCodePoint(2);\r\n if (isIdentifierStart(a1, a2, a3)) {\r\n var value = this.consumeName();\r\n return { type: TokenType.AT_KEYWORD_TOKEN, value: value };\r\n }\r\n break;\r\n case LEFT_SQUARE_BRACKET:\r\n return LEFT_SQUARE_BRACKET_TOKEN;\r\n case REVERSE_SOLIDUS:\r\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeIdentLikeToken();\r\n }\r\n break;\r\n case RIGHT_SQUARE_BRACKET:\r\n return RIGHT_SQUARE_BRACKET_TOKEN;\r\n case CIRCUMFLEX_ACCENT:\r\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\r\n this.consumeCodePoint();\r\n return PREFIX_MATCH_TOKEN;\r\n }\r\n break;\r\n case LEFT_CURLY_BRACKET:\r\n return LEFT_CURLY_BRACKET_TOKEN;\r\n case RIGHT_CURLY_BRACKET:\r\n return RIGHT_CURLY_BRACKET_TOKEN;\r\n case u:\r\n case U:\r\n var u1 = this.peekCodePoint(0);\r\n var u2 = this.peekCodePoint(1);\r\n if (u1 === PLUS_SIGN && (isHex(u2) || u2 === QUESTION_MARK)) {\r\n this.consumeCodePoint();\r\n this.consumeUnicodeRangeToken();\r\n }\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeIdentLikeToken();\r\n case VERTICAL_LINE:\r\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\r\n this.consumeCodePoint();\r\n return DASH_MATCH_TOKEN;\r\n }\r\n if (this.peekCodePoint(0) === VERTICAL_LINE) {\r\n this.consumeCodePoint();\r\n return COLUMN_TOKEN;\r\n }\r\n break;\r\n case TILDE:\r\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\r\n this.consumeCodePoint();\r\n return INCLUDE_MATCH_TOKEN;\r\n }\r\n break;\r\n case EOF:\r\n return EOF_TOKEN;\r\n }\r\n if (isWhiteSpace(codePoint)) {\r\n this.consumeWhiteSpace();\r\n return WHITESPACE_TOKEN;\r\n }\r\n if (isDigit(codePoint)) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeNumericToken();\r\n }\r\n if (isNameStartCodePoint(codePoint)) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeIdentLikeToken();\r\n }\r\n return { type: TokenType.DELIM_TOKEN, value: fromCodePoint(codePoint) };\r\n };\r\n Tokenizer.prototype.consumeCodePoint = function () {\r\n var value = this._value.shift();\r\n return typeof value === 'undefined' ? -1 : value;\r\n };\r\n Tokenizer.prototype.reconsumeCodePoint = function (codePoint) {\r\n this._value.unshift(codePoint);\r\n };\r\n Tokenizer.prototype.peekCodePoint = function (delta) {\r\n if (delta >= this._value.length) {\r\n return -1;\r\n }\r\n return this._value[delta];\r\n };\r\n Tokenizer.prototype.consumeUnicodeRangeToken = function () {\r\n var digits = [];\r\n var codePoint = this.consumeCodePoint();\r\n while (isHex(codePoint) && digits.length < 6) {\r\n digits.push(codePoint);\r\n codePoint = this.consumeCodePoint();\r\n }\r\n var questionMarks = false;\r\n while (codePoint === QUESTION_MARK && digits.length < 6) {\r\n digits.push(codePoint);\r\n codePoint = this.consumeCodePoint();\r\n questionMarks = true;\r\n }\r\n if (questionMarks) {\r\n var start_1 = parseInt(fromCodePoint.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? ZERO : digit); })), 16);\r\n var end = parseInt(fromCodePoint.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? F : digit); })), 16);\r\n return { type: TokenType.UNICODE_RANGE_TOKEN, start: start_1, end: end };\r\n }\r\n var start = parseInt(fromCodePoint.apply(void 0, digits), 16);\r\n if (this.peekCodePoint(0) === HYPHEN_MINUS && isHex(this.peekCodePoint(1))) {\r\n this.consumeCodePoint();\r\n codePoint = this.consumeCodePoint();\r\n var endDigits = [];\r\n while (isHex(codePoint) && endDigits.length < 6) {\r\n endDigits.push(codePoint);\r\n codePoint = this.consumeCodePoint();\r\n }\r\n var end = parseInt(fromCodePoint.apply(void 0, endDigits), 16);\r\n return { type: TokenType.UNICODE_RANGE_TOKEN, start: start, end: end };\r\n }\r\n else {\r\n return { type: TokenType.UNICODE_RANGE_TOKEN, start: start, end: start };\r\n }\r\n };\r\n Tokenizer.prototype.consumeIdentLikeToken = function () {\r\n var value = this.consumeName();\r\n if (value.toLowerCase() === 'url' && this.peekCodePoint(0) === LEFT_PARENTHESIS) {\r\n this.consumeCodePoint();\r\n return this.consumeUrlToken();\r\n }\r\n else if (this.peekCodePoint(0) === LEFT_PARENTHESIS) {\r\n this.consumeCodePoint();\r\n return { type: TokenType.FUNCTION_TOKEN, value: value };\r\n }\r\n return { type: TokenType.IDENT_TOKEN, value: value };\r\n };\r\n Tokenizer.prototype.consumeUrlToken = function () {\r\n var value = [];\r\n this.consumeWhiteSpace();\r\n if (this.peekCodePoint(0) === EOF) {\r\n return { type: TokenType.URL_TOKEN, value: '' };\r\n }\r\n var next = this.peekCodePoint(0);\r\n if (next === APOSTROPHE || next === QUOTATION_MARK) {\r\n var stringToken = this.consumeStringToken(this.consumeCodePoint());\r\n if (stringToken.type === TokenType.STRING_TOKEN) {\r\n this.consumeWhiteSpace();\r\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\r\n this.consumeCodePoint();\r\n return { type: TokenType.URL_TOKEN, value: stringToken.value };\r\n }\r\n }\r\n this.consumeBadUrlRemnants();\r\n return BAD_URL_TOKEN;\r\n }\r\n while (true) {\r\n var codePoint = this.consumeCodePoint();\r\n if (codePoint === EOF || codePoint === RIGHT_PARENTHESIS) {\r\n return { type: TokenType.URL_TOKEN, value: fromCodePoint.apply(void 0, value) };\r\n }\r\n else if (isWhiteSpace(codePoint)) {\r\n this.consumeWhiteSpace();\r\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\r\n this.consumeCodePoint();\r\n return { type: TokenType.URL_TOKEN, value: fromCodePoint.apply(void 0, value) };\r\n }\r\n this.consumeBadUrlRemnants();\r\n return BAD_URL_TOKEN;\r\n }\r\n else if (codePoint === QUOTATION_MARK ||\r\n codePoint === APOSTROPHE ||\r\n codePoint === LEFT_PARENTHESIS ||\r\n isNonPrintableCodePoint(codePoint)) {\r\n this.consumeBadUrlRemnants();\r\n return BAD_URL_TOKEN;\r\n }\r\n else if (codePoint === REVERSE_SOLIDUS) {\r\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\r\n value.push(this.consumeEscapedCodePoint());\r\n }\r\n else {\r\n this.consumeBadUrlRemnants();\r\n return BAD_URL_TOKEN;\r\n }\r\n }\r\n else {\r\n value.push(codePoint);\r\n }\r\n }\r\n };\r\n Tokenizer.prototype.consumeWhiteSpace = function () {\r\n while (isWhiteSpace(this.peekCodePoint(0))) {\r\n this.consumeCodePoint();\r\n }\r\n };\r\n Tokenizer.prototype.consumeBadUrlRemnants = function () {\r\n while (true) {\r\n var codePoint = this.consumeCodePoint();\r\n if (codePoint === RIGHT_PARENTHESIS || codePoint === EOF) {\r\n return;\r\n }\r\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\r\n this.consumeEscapedCodePoint();\r\n }\r\n }\r\n };\r\n Tokenizer.prototype.consumeStringSlice = function (count) {\r\n var SLICE_STACK_SIZE = 60000;\r\n var value = '';\r\n while (count > 0) {\r\n var amount = Math.min(SLICE_STACK_SIZE, count);\r\n value += fromCodePoint.apply(void 0, this._value.splice(0, amount));\r\n count -= amount;\r\n }\r\n this._value.shift();\r\n return value;\r\n };\r\n Tokenizer.prototype.consumeStringToken = function (endingCodePoint) {\r\n var value = '';\r\n var i = 0;\r\n do {\r\n var codePoint = this._value[i];\r\n if (codePoint === EOF || codePoint === undefined || codePoint === endingCodePoint) {\r\n value += this.consumeStringSlice(i);\r\n return { type: TokenType.STRING_TOKEN, value: value };\r\n }\r\n if (codePoint === LINE_FEED) {\r\n this._value.splice(0, i);\r\n return BAD_STRING_TOKEN;\r\n }\r\n if (codePoint === REVERSE_SOLIDUS) {\r\n var next = this._value[i + 1];\r\n if (next !== EOF && next !== undefined) {\r\n if (next === LINE_FEED) {\r\n value += this.consumeStringSlice(i);\r\n i = -1;\r\n this._value.shift();\r\n }\r\n else if (isValidEscape(codePoint, next)) {\r\n value += this.consumeStringSlice(i);\r\n value += fromCodePoint(this.consumeEscapedCodePoint());\r\n i = -1;\r\n }\r\n }\r\n }\r\n i++;\r\n } while (true);\r\n };\r\n Tokenizer.prototype.consumeNumber = function () {\r\n var repr = [];\r\n var type = FLAG_INTEGER;\r\n var c1 = this.peekCodePoint(0);\r\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\r\n repr.push(this.consumeCodePoint());\r\n }\r\n while (isDigit(this.peekCodePoint(0))) {\r\n repr.push(this.consumeCodePoint());\r\n }\r\n c1 = this.peekCodePoint(0);\r\n var c2 = this.peekCodePoint(1);\r\n if (c1 === FULL_STOP && isDigit(c2)) {\r\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\r\n type = FLAG_NUMBER;\r\n while (isDigit(this.peekCodePoint(0))) {\r\n repr.push(this.consumeCodePoint());\r\n }\r\n }\r\n c1 = this.peekCodePoint(0);\r\n c2 = this.peekCodePoint(1);\r\n var c3 = this.peekCodePoint(2);\r\n if ((c1 === E || c1 === e) && (((c2 === PLUS_SIGN || c2 === HYPHEN_MINUS) && isDigit(c3)) || isDigit(c2))) {\r\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\r\n type = FLAG_NUMBER;\r\n while (isDigit(this.peekCodePoint(0))) {\r\n repr.push(this.consumeCodePoint());\r\n }\r\n }\r\n return [stringToNumber(repr), type];\r\n };\r\n Tokenizer.prototype.consumeNumericToken = function () {\r\n var _a = this.consumeNumber(), number = _a[0], flags = _a[1];\r\n var c1 = this.peekCodePoint(0);\r\n var c2 = this.peekCodePoint(1);\r\n var c3 = this.peekCodePoint(2);\r\n if (isIdentifierStart(c1, c2, c3)) {\r\n var unit = this.consumeName();\r\n return { type: TokenType.DIMENSION_TOKEN, number: number, flags: flags, unit: unit };\r\n }\r\n if (c1 === PERCENTAGE_SIGN) {\r\n this.consumeCodePoint();\r\n return { type: TokenType.PERCENTAGE_TOKEN, number: number, flags: flags };\r\n }\r\n return { type: TokenType.NUMBER_TOKEN, number: number, flags: flags };\r\n };\r\n Tokenizer.prototype.consumeEscapedCodePoint = function () {\r\n var codePoint = this.consumeCodePoint();\r\n if (isHex(codePoint)) {\r\n var hex = fromCodePoint(codePoint);\r\n while (isHex(this.peekCodePoint(0)) && hex.length < 6) {\r\n hex += fromCodePoint(this.consumeCodePoint());\r\n }\r\n if (isWhiteSpace(this.peekCodePoint(0))) {\r\n this.consumeCodePoint();\r\n }\r\n var hexCodePoint = parseInt(hex, 16);\r\n if (hexCodePoint === 0 || isSurrogateCodePoint(hexCodePoint) || hexCodePoint > 0x10ffff) {\r\n return REPLACEMENT_CHARACTER;\r\n }\r\n return hexCodePoint;\r\n }\r\n if (codePoint === EOF) {\r\n return REPLACEMENT_CHARACTER;\r\n }\r\n return codePoint;\r\n };\r\n Tokenizer.prototype.consumeName = function () {\r\n var result = '';\r\n while (true) {\r\n var codePoint = this.consumeCodePoint();\r\n if (isNameCodePoint(codePoint)) {\r\n result += fromCodePoint(codePoint);\r\n }\r\n else if (isValidEscape(codePoint, this.peekCodePoint(0))) {\r\n result += fromCodePoint(this.consumeEscapedCodePoint());\r\n }\r\n else {\r\n this.reconsumeCodePoint(codePoint);\r\n return result;\r\n }\r\n }\r\n };\r\n return Tokenizer;\r\n }());\n\n var Parser = /** @class */ (function () {\r\n function Parser(tokens) {\r\n this._tokens = tokens;\r\n }\r\n Parser.create = function (value) {\r\n var tokenizer = new Tokenizer();\r\n tokenizer.write(value);\r\n return new Parser(tokenizer.read());\r\n };\r\n Parser.parseValue = function (value) {\r\n return Parser.create(value).parseComponentValue();\r\n };\r\n Parser.parseValues = function (value) {\r\n return Parser.create(value).parseComponentValues();\r\n };\r\n Parser.prototype.parseComponentValue = function () {\r\n var token = this.consumeToken();\r\n while (token.type === TokenType.WHITESPACE_TOKEN) {\r\n token = this.consumeToken();\r\n }\r\n if (token.type === TokenType.EOF_TOKEN) {\r\n throw new SyntaxError(\"Error parsing CSS component value, unexpected EOF\");\r\n }\r\n this.reconsumeToken(token);\r\n var value = this.consumeComponentValue();\r\n do {\r\n token = this.consumeToken();\r\n } while (token.type === TokenType.WHITESPACE_TOKEN);\r\n if (token.type === TokenType.EOF_TOKEN) {\r\n return value;\r\n }\r\n throw new SyntaxError(\"Error parsing CSS component value, multiple values found when expecting only one\");\r\n };\r\n Parser.prototype.parseComponentValues = function () {\r\n var values = [];\r\n while (true) {\r\n var value = this.consumeComponentValue();\r\n if (value.type === TokenType.EOF_TOKEN) {\r\n return values;\r\n }\r\n values.push(value);\r\n values.push();\r\n }\r\n };\r\n Parser.prototype.consumeComponentValue = function () {\r\n var token = this.consumeToken();\r\n switch (token.type) {\r\n case TokenType.LEFT_CURLY_BRACKET_TOKEN:\r\n case TokenType.LEFT_SQUARE_BRACKET_TOKEN:\r\n case TokenType.LEFT_PARENTHESIS_TOKEN:\r\n return this.consumeSimpleBlock(token.type);\r\n case TokenType.FUNCTION_TOKEN:\r\n return this.consumeFunction(token);\r\n }\r\n return token;\r\n };\r\n Parser.prototype.consumeSimpleBlock = function (type) {\r\n var block = { type: type, values: [] };\r\n var token = this.consumeToken();\r\n while (true) {\r\n if (token.type === TokenType.EOF_TOKEN || isEndingTokenFor(token, type)) {\r\n return block;\r\n }\r\n this.reconsumeToken(token);\r\n block.values.push(this.consumeComponentValue());\r\n token = this.consumeToken();\r\n }\r\n };\r\n Parser.prototype.consumeFunction = function (functionToken) {\r\n var cssFunction = {\r\n name: functionToken.value,\r\n values: [],\r\n type: TokenType.FUNCTION\r\n };\r\n while (true) {\r\n var token = this.consumeToken();\r\n if (token.type === TokenType.EOF_TOKEN || token.type === TokenType.RIGHT_PARENTHESIS_TOKEN) {\r\n return cssFunction;\r\n }\r\n this.reconsumeToken(token);\r\n cssFunction.values.push(this.consumeComponentValue());\r\n }\r\n };\r\n Parser.prototype.consumeToken = function () {\r\n var token = this._tokens.shift();\r\n return typeof token === 'undefined' ? EOF_TOKEN : token;\r\n };\r\n Parser.prototype.reconsumeToken = function (token) {\r\n this._tokens.unshift(token);\r\n };\r\n return Parser;\r\n }());\r\n var isDimensionToken = function (token) { return token.type === TokenType.DIMENSION_TOKEN; };\r\n var isNumberToken = function (token) { return token.type === TokenType.NUMBER_TOKEN; };\r\n var isIdentToken = function (token) { return token.type === TokenType.IDENT_TOKEN; };\r\n var isStringToken = function (token) { return token.type === TokenType.STRING_TOKEN; };\r\n var isIdentWithValue = function (token, value) {\r\n return isIdentToken(token) && token.value === value;\r\n };\r\n var nonWhiteSpace = function (token) { return token.type !== TokenType.WHITESPACE_TOKEN; };\r\n var nonFunctionArgSeparator = function (token) {\r\n return token.type !== TokenType.WHITESPACE_TOKEN && token.type !== TokenType.COMMA_TOKEN;\r\n };\r\n var parseFunctionArgs = function (tokens) {\r\n var args = [];\r\n var arg = [];\r\n tokens.forEach(function (token) {\r\n if (token.type === TokenType.COMMA_TOKEN) {\r\n if (arg.length === 0) {\r\n throw new Error(\"Error parsing function args, zero tokens for arg\");\r\n }\r\n args.push(arg);\r\n arg = [];\r\n return;\r\n }\r\n if (token.type !== TokenType.WHITESPACE_TOKEN) {\r\n arg.push(token);\r\n }\r\n });\r\n if (arg.length) {\r\n args.push(arg);\r\n }\r\n return args;\r\n };\r\n var isEndingTokenFor = function (token, type) {\r\n if (type === TokenType.LEFT_CURLY_BRACKET_TOKEN && token.type === TokenType.RIGHT_CURLY_BRACKET_TOKEN) {\r\n return true;\r\n }\r\n if (type === TokenType.LEFT_SQUARE_BRACKET_TOKEN && token.type === TokenType.RIGHT_SQUARE_BRACKET_TOKEN) {\r\n return true;\r\n }\r\n return type === TokenType.LEFT_PARENTHESIS_TOKEN && token.type === TokenType.RIGHT_PARENTHESIS_TOKEN;\r\n };\n\n var isLength = function (token) {\r\n return token.type === TokenType.NUMBER_TOKEN || token.type === TokenType.DIMENSION_TOKEN;\r\n };\n\n var isLengthPercentage = function (token) {\r\n return token.type === TokenType.PERCENTAGE_TOKEN || isLength(token);\r\n };\r\n var parseLengthPercentageTuple = function (tokens) {\r\n return tokens.length > 1 ? [tokens[0], tokens[1]] : [tokens[0]];\r\n };\r\n var ZERO_LENGTH = {\r\n type: TokenType.NUMBER_TOKEN,\r\n number: 0,\r\n flags: FLAG_INTEGER\r\n };\r\n var FIFTY_PERCENT = {\r\n type: TokenType.PERCENTAGE_TOKEN,\r\n number: 50,\r\n flags: FLAG_INTEGER\r\n };\r\n var HUNDRED_PERCENT = {\r\n type: TokenType.PERCENTAGE_TOKEN,\r\n number: 100,\r\n flags: FLAG_INTEGER\r\n };\r\n var getAbsoluteValueForTuple = function (tuple, width, height) {\r\n var x = tuple[0], y = tuple[1];\r\n return [getAbsoluteValue(x, width), getAbsoluteValue(typeof y !== 'undefined' ? y : x, height)];\r\n };\r\n var getAbsoluteValue = function (token, parent) {\r\n if (token.type === TokenType.PERCENTAGE_TOKEN) {\r\n return (token.number / 100) * parent;\r\n }\r\n if (isDimensionToken(token)) {\r\n switch (token.unit) {\r\n case 'rem':\r\n case 'em':\r\n return 16 * token.number; // TODO use correct font-size\r\n case 'px':\r\n default:\r\n return token.number;\r\n }\r\n }\r\n return token.number;\r\n };\n\n var DEG = 'deg';\r\n var GRAD = 'grad';\r\n var RAD = 'rad';\r\n var TURN = 'turn';\r\n var angle = {\r\n name: 'angle',\r\n parse: function (value) {\r\n if (value.type === TokenType.DIMENSION_TOKEN) {\r\n switch (value.unit) {\r\n case DEG:\r\n return (Math.PI * value.number) / 180;\r\n case GRAD:\r\n return (Math.PI / 200) * value.number;\r\n case RAD:\r\n return value.number;\r\n case TURN:\r\n return Math.PI * 2 * value.number;\r\n }\r\n }\r\n throw new Error(\"Unsupported angle type\");\r\n }\r\n };\r\n var isAngle = function (value) {\r\n if (value.type === TokenType.DIMENSION_TOKEN) {\r\n if (value.unit === DEG || value.unit === GRAD || value.unit === RAD || value.unit === TURN) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n var parseNamedSide = function (tokens) {\r\n var sideOrCorner = tokens\r\n .filter(isIdentToken)\r\n .map(function (ident) { return ident.value; })\r\n .join(' ');\r\n switch (sideOrCorner) {\r\n case 'to bottom right':\r\n case 'to right bottom':\r\n case 'left top':\r\n case 'top left':\r\n return [ZERO_LENGTH, ZERO_LENGTH];\r\n case 'to top':\r\n case 'bottom':\r\n return deg(0);\r\n case 'to bottom left':\r\n case 'to left bottom':\r\n case 'right top':\r\n case 'top right':\r\n return [ZERO_LENGTH, HUNDRED_PERCENT];\r\n case 'to right':\r\n case 'left':\r\n return deg(90);\r\n case 'to top left':\r\n case 'to left top':\r\n case 'right bottom':\r\n case 'bottom right':\r\n return [HUNDRED_PERCENT, HUNDRED_PERCENT];\r\n case 'to bottom':\r\n case 'top':\r\n return deg(180);\r\n case 'to top right':\r\n case 'to right top':\r\n case 'left bottom':\r\n case 'bottom left':\r\n return [HUNDRED_PERCENT, ZERO_LENGTH];\r\n case 'to left':\r\n case 'right':\r\n return deg(270);\r\n }\r\n return 0;\r\n };\r\n var deg = function (deg) { return (Math.PI * deg) / 180; };\n\n var color = {\r\n name: 'color',\r\n parse: function (value) {\r\n if (value.type === TokenType.FUNCTION) {\r\n var colorFunction = SUPPORTED_COLOR_FUNCTIONS[value.name];\r\n if (typeof colorFunction === 'undefined') {\r\n throw new Error(\"Attempting to parse an unsupported color function \\\"\" + value.name + \"\\\"\");\r\n }\r\n return colorFunction(value.values);\r\n }\r\n if (value.type === TokenType.HASH_TOKEN) {\r\n if (value.value.length === 3) {\r\n var r = value.value.substring(0, 1);\r\n var g = value.value.substring(1, 2);\r\n var b = value.value.substring(2, 3);\r\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), 1);\r\n }\r\n if (value.value.length === 4) {\r\n var r = value.value.substring(0, 1);\r\n var g = value.value.substring(1, 2);\r\n var b = value.value.substring(2, 3);\r\n var a = value.value.substring(3, 4);\r\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), parseInt(a + a, 16) / 255);\r\n }\r\n if (value.value.length === 6) {\r\n var r = value.value.substring(0, 2);\r\n var g = value.value.substring(2, 4);\r\n var b = value.value.substring(4, 6);\r\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), 1);\r\n }\r\n if (value.value.length === 8) {\r\n var r = value.value.substring(0, 2);\r\n var g = value.value.substring(2, 4);\r\n var b = value.value.substring(4, 6);\r\n var a = value.value.substring(6, 8);\r\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), parseInt(a, 16) / 255);\r\n }\r\n }\r\n if (value.type === TokenType.IDENT_TOKEN) {\r\n var namedColor = COLORS[value.value.toUpperCase()];\r\n if (typeof namedColor !== 'undefined') {\r\n return namedColor;\r\n }\r\n }\r\n return COLORS.TRANSPARENT;\r\n }\r\n };\r\n var isTransparent = function (color) { return (0xff & color) === 0; };\r\n var asString = function (color) {\r\n var alpha = 0xff & color;\r\n var blue = 0xff & (color >> 8);\r\n var green = 0xff & (color >> 16);\r\n var red = 0xff & (color >> 24);\r\n return alpha < 255 ? \"rgba(\" + red + \",\" + green + \",\" + blue + \",\" + alpha / 255 + \")\" : \"rgb(\" + red + \",\" + green + \",\" + blue + \")\";\r\n };\r\n var pack = function (r, g, b, a) {\r\n return ((r << 24) | (g << 16) | (b << 8) | (Math.round(a * 255) << 0)) >>> 0;\r\n };\r\n var getTokenColorValue = function (token, i) {\r\n if (token.type === TokenType.NUMBER_TOKEN) {\r\n return token.number;\r\n }\r\n if (token.type === TokenType.PERCENTAGE_TOKEN) {\r\n var max = i === 3 ? 1 : 255;\r\n return i === 3 ? (token.number / 100) * max : Math.round((token.number / 100) * max);\r\n }\r\n return 0;\r\n };\r\n var rgb = function (args) {\r\n var tokens = args.filter(nonFunctionArgSeparator);\r\n if (tokens.length === 3) {\r\n var _a = tokens.map(getTokenColorValue), r = _a[0], g = _a[1], b = _a[2];\r\n return pack(r, g, b, 1);\r\n }\r\n if (tokens.length === 4) {\r\n var _b = tokens.map(getTokenColorValue), r = _b[0], g = _b[1], b = _b[2], a = _b[3];\r\n return pack(r, g, b, a);\r\n }\r\n return 0;\r\n };\r\n function hue2rgb(t1, t2, hue) {\r\n if (hue < 0) {\r\n hue += 1;\r\n }\r\n if (hue >= 1) {\r\n hue -= 1;\r\n }\r\n if (hue < 1 / 6) {\r\n return (t2 - t1) * hue * 6 + t1;\r\n }\r\n else if (hue < 1 / 2) {\r\n return t2;\r\n }\r\n else if (hue < 2 / 3) {\r\n return (t2 - t1) * 6 * (2 / 3 - hue) + t1;\r\n }\r\n else {\r\n return t1;\r\n }\r\n }\r\n var hsl = function (args) {\r\n var tokens = args.filter(nonFunctionArgSeparator);\r\n var hue = tokens[0], saturation = tokens[1], lightness = tokens[2], alpha = tokens[3];\r\n var h = (hue.type === TokenType.NUMBER_TOKEN ? deg(hue.number) : angle.parse(hue)) / (Math.PI * 2);\r\n var s = isLengthPercentage(saturation) ? saturation.number / 100 : 0;\r\n var l = isLengthPercentage(lightness) ? lightness.number / 100 : 0;\r\n var a = typeof alpha !== 'undefined' && isLengthPercentage(alpha) ? getAbsoluteValue(alpha, 1) : 1;\r\n if (s === 0) {\r\n return pack(l * 255, l * 255, l * 255, 1);\r\n }\r\n var t2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\r\n var t1 = l * 2 - t2;\r\n var r = hue2rgb(t1, t2, h + 1 / 3);\r\n var g = hue2rgb(t1, t2, h);\r\n var b = hue2rgb(t1, t2, h - 1 / 3);\r\n return pack(r * 255, g * 255, b * 255, a);\r\n };\r\n var SUPPORTED_COLOR_FUNCTIONS = {\r\n hsl: hsl,\r\n hsla: hsl,\r\n rgb: rgb,\r\n rgba: rgb\r\n };\r\n var COLORS = {\r\n ALICEBLUE: 0xf0f8ffff,\r\n ANTIQUEWHITE: 0xfaebd7ff,\r\n AQUA: 0x00ffffff,\r\n AQUAMARINE: 0x7fffd4ff,\r\n AZURE: 0xf0ffffff,\r\n BEIGE: 0xf5f5dcff,\r\n BISQUE: 0xffe4c4ff,\r\n BLACK: 0x000000ff,\r\n BLANCHEDALMOND: 0xffebcdff,\r\n BLUE: 0x0000ffff,\r\n BLUEVIOLET: 0x8a2be2ff,\r\n BROWN: 0xa52a2aff,\r\n BURLYWOOD: 0xdeb887ff,\r\n CADETBLUE: 0x5f9ea0ff,\r\n CHARTREUSE: 0x7fff00ff,\r\n CHOCOLATE: 0xd2691eff,\r\n CORAL: 0xff7f50ff,\r\n CORNFLOWERBLUE: 0x6495edff,\r\n CORNSILK: 0xfff8dcff,\r\n CRIMSON: 0xdc143cff,\r\n CYAN: 0x00ffffff,\r\n DARKBLUE: 0x00008bff,\r\n DARKCYAN: 0x008b8bff,\r\n DARKGOLDENROD: 0xb886bbff,\r\n DARKGRAY: 0xa9a9a9ff,\r\n DARKGREEN: 0x006400ff,\r\n DARKGREY: 0xa9a9a9ff,\r\n DARKKHAKI: 0xbdb76bff,\r\n DARKMAGENTA: 0x8b008bff,\r\n DARKOLIVEGREEN: 0x556b2fff,\r\n DARKORANGE: 0xff8c00ff,\r\n DARKORCHID: 0x9932ccff,\r\n DARKRED: 0x8b0000ff,\r\n DARKSALMON: 0xe9967aff,\r\n DARKSEAGREEN: 0x8fbc8fff,\r\n DARKSLATEBLUE: 0x483d8bff,\r\n DARKSLATEGRAY: 0x2f4f4fff,\r\n DARKSLATEGREY: 0x2f4f4fff,\r\n DARKTURQUOISE: 0x00ced1ff,\r\n DARKVIOLET: 0x9400d3ff,\r\n DEEPPINK: 0xff1493ff,\r\n DEEPSKYBLUE: 0x00bfffff,\r\n DIMGRAY: 0x696969ff,\r\n DIMGREY: 0x696969ff,\r\n DODGERBLUE: 0x1e90ffff,\r\n FIREBRICK: 0xb22222ff,\r\n FLORALWHITE: 0xfffaf0ff,\r\n FORESTGREEN: 0x228b22ff,\r\n FUCHSIA: 0xff00ffff,\r\n GAINSBORO: 0xdcdcdcff,\r\n GHOSTWHITE: 0xf8f8ffff,\r\n GOLD: 0xffd700ff,\r\n GOLDENROD: 0xdaa520ff,\r\n GRAY: 0x808080ff,\r\n GREEN: 0x008000ff,\r\n GREENYELLOW: 0xadff2fff,\r\n GREY: 0x808080ff,\r\n HONEYDEW: 0xf0fff0ff,\r\n HOTPINK: 0xff69b4ff,\r\n INDIANRED: 0xcd5c5cff,\r\n INDIGO: 0x4b0082ff,\r\n IVORY: 0xfffff0ff,\r\n KHAKI: 0xf0e68cff,\r\n LAVENDER: 0xe6e6faff,\r\n LAVENDERBLUSH: 0xfff0f5ff,\r\n LAWNGREEN: 0x7cfc00ff,\r\n LEMONCHIFFON: 0xfffacdff,\r\n LIGHTBLUE: 0xadd8e6ff,\r\n LIGHTCORAL: 0xf08080ff,\r\n LIGHTCYAN: 0xe0ffffff,\r\n LIGHTGOLDENRODYELLOW: 0xfafad2ff,\r\n LIGHTGRAY: 0xd3d3d3ff,\r\n LIGHTGREEN: 0x90ee90ff,\r\n LIGHTGREY: 0xd3d3d3ff,\r\n LIGHTPINK: 0xffb6c1ff,\r\n LIGHTSALMON: 0xffa07aff,\r\n LIGHTSEAGREEN: 0x20b2aaff,\r\n LIGHTSKYBLUE: 0x87cefaff,\r\n LIGHTSLATEGRAY: 0x778899ff,\r\n LIGHTSLATEGREY: 0x778899ff,\r\n LIGHTSTEELBLUE: 0xb0c4deff,\r\n LIGHTYELLOW: 0xffffe0ff,\r\n LIME: 0x00ff00ff,\r\n LIMEGREEN: 0x32cd32ff,\r\n LINEN: 0xfaf0e6ff,\r\n MAGENTA: 0xff00ffff,\r\n MAROON: 0x800000ff,\r\n MEDIUMAQUAMARINE: 0x66cdaaff,\r\n MEDIUMBLUE: 0x0000cdff,\r\n MEDIUMORCHID: 0xba55d3ff,\r\n MEDIUMPURPLE: 0x9370dbff,\r\n MEDIUMSEAGREEN: 0x3cb371ff,\r\n MEDIUMSLATEBLUE: 0x7b68eeff,\r\n MEDIUMSPRINGGREEN: 0x00fa9aff,\r\n MEDIUMTURQUOISE: 0x48d1ccff,\r\n MEDIUMVIOLETRED: 0xc71585ff,\r\n MIDNIGHTBLUE: 0x191970ff,\r\n MINTCREAM: 0xf5fffaff,\r\n MISTYROSE: 0xffe4e1ff,\r\n MOCCASIN: 0xffe4b5ff,\r\n NAVAJOWHITE: 0xffdeadff,\r\n NAVY: 0x000080ff,\r\n OLDLACE: 0xfdf5e6ff,\r\n OLIVE: 0x808000ff,\r\n OLIVEDRAB: 0x6b8e23ff,\r\n ORANGE: 0xffa500ff,\r\n ORANGERED: 0xff4500ff,\r\n ORCHID: 0xda70d6ff,\r\n PALEGOLDENROD: 0xeee8aaff,\r\n PALEGREEN: 0x98fb98ff,\r\n PALETURQUOISE: 0xafeeeeff,\r\n PALEVIOLETRED: 0xdb7093ff,\r\n PAPAYAWHIP: 0xffefd5ff,\r\n PEACHPUFF: 0xffdab9ff,\r\n PERU: 0xcd853fff,\r\n PINK: 0xffc0cbff,\r\n PLUM: 0xdda0ddff,\r\n POWDERBLUE: 0xb0e0e6ff,\r\n PURPLE: 0x800080ff,\r\n REBECCAPURPLE: 0x663399ff,\r\n RED: 0xff0000ff,\r\n ROSYBROWN: 0xbc8f8fff,\r\n ROYALBLUE: 0x4169e1ff,\r\n SADDLEBROWN: 0x8b4513ff,\r\n SALMON: 0xfa8072ff,\r\n SANDYBROWN: 0xf4a460ff,\r\n SEAGREEN: 0x2e8b57ff,\r\n SEASHELL: 0xfff5eeff,\r\n SIENNA: 0xa0522dff,\r\n SILVER: 0xc0c0c0ff,\r\n SKYBLUE: 0x87ceebff,\r\n SLATEBLUE: 0x6a5acdff,\r\n SLATEGRAY: 0x708090ff,\r\n SLATEGREY: 0x708090ff,\r\n SNOW: 0xfffafaff,\r\n SPRINGGREEN: 0x00ff7fff,\r\n STEELBLUE: 0x4682b4ff,\r\n TAN: 0xd2b48cff,\r\n TEAL: 0x008080ff,\r\n THISTLE: 0xd8bfd8ff,\r\n TOMATO: 0xff6347ff,\r\n TRANSPARENT: 0x00000000,\r\n TURQUOISE: 0x40e0d0ff,\r\n VIOLET: 0xee82eeff,\r\n WHEAT: 0xf5deb3ff,\r\n WHITE: 0xffffffff,\r\n WHITESMOKE: 0xf5f5f5ff,\r\n YELLOW: 0xffff00ff,\r\n YELLOWGREEN: 0x9acd32ff\r\n };\n\n var PropertyDescriptorParsingType;\r\n (function (PropertyDescriptorParsingType) {\r\n PropertyDescriptorParsingType[PropertyDescriptorParsingType[\"VALUE\"] = 0] = \"VALUE\";\r\n PropertyDescriptorParsingType[PropertyDescriptorParsingType[\"LIST\"] = 1] = \"LIST\";\r\n PropertyDescriptorParsingType[PropertyDescriptorParsingType[\"IDENT_VALUE\"] = 2] = \"IDENT_VALUE\";\r\n PropertyDescriptorParsingType[PropertyDescriptorParsingType[\"TYPE_VALUE\"] = 3] = \"TYPE_VALUE\";\r\n PropertyDescriptorParsingType[PropertyDescriptorParsingType[\"TOKEN_VALUE\"] = 4] = \"TOKEN_VALUE\";\r\n })(PropertyDescriptorParsingType || (PropertyDescriptorParsingType = {}));\n\n var BACKGROUND_CLIP;\r\n (function (BACKGROUND_CLIP) {\r\n BACKGROUND_CLIP[BACKGROUND_CLIP[\"BORDER_BOX\"] = 0] = \"BORDER_BOX\";\r\n BACKGROUND_CLIP[BACKGROUND_CLIP[\"PADDING_BOX\"] = 1] = \"PADDING_BOX\";\r\n BACKGROUND_CLIP[BACKGROUND_CLIP[\"CONTENT_BOX\"] = 2] = \"CONTENT_BOX\";\r\n })(BACKGROUND_CLIP || (BACKGROUND_CLIP = {}));\r\n var backgroundClip = {\r\n name: 'background-clip',\r\n initialValue: 'border-box',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return tokens.map(function (token) {\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case 'padding-box':\r\n return BACKGROUND_CLIP.PADDING_BOX;\r\n case 'content-box':\r\n return BACKGROUND_CLIP.CONTENT_BOX;\r\n }\r\n }\r\n return BACKGROUND_CLIP.BORDER_BOX;\r\n });\r\n }\r\n };\n\n var backgroundColor = {\r\n name: \"background-color\",\r\n initialValue: 'transparent',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TYPE_VALUE,\r\n format: 'color'\r\n };\n\n var parseColorStop = function (args) {\r\n var color$1 = color.parse(args[0]);\r\n var stop = args[1];\r\n return stop && isLengthPercentage(stop) ? { color: color$1, stop: stop } : { color: color$1, stop: null };\r\n };\r\n var processColorStops = function (stops, lineLength) {\r\n var first = stops[0];\r\n var last = stops[stops.length - 1];\r\n if (first.stop === null) {\r\n first.stop = ZERO_LENGTH;\r\n }\r\n if (last.stop === null) {\r\n last.stop = HUNDRED_PERCENT;\r\n }\r\n var processStops = [];\r\n var previous = 0;\r\n for (var i = 0; i < stops.length; i++) {\r\n var stop_1 = stops[i].stop;\r\n if (stop_1 !== null) {\r\n var absoluteValue = getAbsoluteValue(stop_1, lineLength);\r\n if (absoluteValue > previous) {\r\n processStops.push(absoluteValue);\r\n }\r\n else {\r\n processStops.push(previous);\r\n }\r\n previous = absoluteValue;\r\n }\r\n else {\r\n processStops.push(null);\r\n }\r\n }\r\n var gapBegin = null;\r\n for (var i = 0; i < processStops.length; i++) {\r\n var stop_2 = processStops[i];\r\n if (stop_2 === null) {\r\n if (gapBegin === null) {\r\n gapBegin = i;\r\n }\r\n }\r\n else if (gapBegin !== null) {\r\n var gapLength = i - gapBegin;\r\n var beforeGap = processStops[gapBegin - 1];\r\n var gapValue = (stop_2 - beforeGap) / (gapLength + 1);\r\n for (var g = 1; g <= gapLength; g++) {\r\n processStops[gapBegin + g - 1] = gapValue * g;\r\n }\r\n gapBegin = null;\r\n }\r\n }\r\n return stops.map(function (_a, i) {\r\n var color = _a.color;\r\n return { color: color, stop: Math.max(Math.min(1, processStops[i] / lineLength), 0) };\r\n });\r\n };\r\n var getAngleFromCorner = function (corner, width, height) {\r\n var centerX = width / 2;\r\n var centerY = height / 2;\r\n var x = getAbsoluteValue(corner[0], width) - centerX;\r\n var y = centerY - getAbsoluteValue(corner[1], height);\r\n return (Math.atan2(y, x) + Math.PI * 2) % (Math.PI * 2);\r\n };\r\n var calculateGradientDirection = function (angle, width, height) {\r\n var radian = typeof angle === 'number' ? angle : getAngleFromCorner(angle, width, height);\r\n var lineLength = Math.abs(width * Math.sin(radian)) + Math.abs(height * Math.cos(radian));\r\n var halfWidth = width / 2;\r\n var halfHeight = height / 2;\r\n var halfLineLength = lineLength / 2;\r\n var yDiff = Math.sin(radian - Math.PI / 2) * halfLineLength;\r\n var xDiff = Math.cos(radian - Math.PI / 2) * halfLineLength;\r\n return [lineLength, halfWidth - xDiff, halfWidth + xDiff, halfHeight - yDiff, halfHeight + yDiff];\r\n };\r\n var distance = function (a, b) { return Math.sqrt(a * a + b * b); };\r\n var findCorner = function (width, height, x, y, closest) {\r\n var corners = [[0, 0], [0, height], [width, 0], [width, height]];\r\n return corners.reduce(function (stat, corner) {\r\n var cx = corner[0], cy = corner[1];\r\n var d = distance(x - cx, y - cy);\r\n if (closest ? d < stat.optimumDistance : d > stat.optimumDistance) {\r\n return {\r\n optimumCorner: corner,\r\n optimumDistance: d\r\n };\r\n }\r\n return stat;\r\n }, {\r\n optimumDistance: closest ? Infinity : -Infinity,\r\n optimumCorner: null\r\n }).optimumCorner;\r\n };\r\n var calculateRadius = function (gradient, x, y, width, height) {\r\n var rx = 0;\r\n var ry = 0;\r\n switch (gradient.size) {\r\n case CSSRadialExtent.CLOSEST_SIDE:\r\n // The ending shape is sized so that that it exactly meets the side of the gradient box closest to the gradient’s center.\r\n // If the shape is an ellipse, it exactly meets the closest side in each dimension.\r\n if (gradient.shape === CSSRadialShape.CIRCLE) {\r\n rx = ry = Math.min(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\r\n }\r\n else if (gradient.shape === CSSRadialShape.ELLIPSE) {\r\n rx = Math.min(Math.abs(x), Math.abs(x - width));\r\n ry = Math.min(Math.abs(y), Math.abs(y - height));\r\n }\r\n break;\r\n case CSSRadialExtent.CLOSEST_CORNER:\r\n // The ending shape is sized so that that it passes through the corner of the gradient box closest to the gradient’s center.\r\n // If the shape is an ellipse, the ending shape is given the same aspect-ratio it would have if closest-side were specified.\r\n if (gradient.shape === CSSRadialShape.CIRCLE) {\r\n rx = ry = Math.min(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height));\r\n }\r\n else if (gradient.shape === CSSRadialShape.ELLIPSE) {\r\n // Compute the ratio ry/rx (which is to be the same as for \"closest-side\")\r\n var c = Math.min(Math.abs(y), Math.abs(y - height)) / Math.min(Math.abs(x), Math.abs(x - width));\r\n var _a = findCorner(width, height, x, y, true), cx = _a[0], cy = _a[1];\r\n rx = distance(cx - x, (cy - y) / c);\r\n ry = c * rx;\r\n }\r\n break;\r\n case CSSRadialExtent.FARTHEST_SIDE:\r\n // Same as closest-side, except the ending shape is sized based on the farthest side(s)\r\n if (gradient.shape === CSSRadialShape.CIRCLE) {\r\n rx = ry = Math.max(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\r\n }\r\n else if (gradient.shape === CSSRadialShape.ELLIPSE) {\r\n rx = Math.max(Math.abs(x), Math.abs(x - width));\r\n ry = Math.max(Math.abs(y), Math.abs(y - height));\r\n }\r\n break;\r\n case CSSRadialExtent.FARTHEST_CORNER:\r\n // Same as closest-corner, except the ending shape is sized based on the farthest corner.\r\n // If the shape is an ellipse, the ending shape is given the same aspect ratio it would have if farthest-side were specified.\r\n if (gradient.shape === CSSRadialShape.CIRCLE) {\r\n rx = ry = Math.max(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height));\r\n }\r\n else if (gradient.shape === CSSRadialShape.ELLIPSE) {\r\n // Compute the ratio ry/rx (which is to be the same as for \"farthest-side\")\r\n var c = Math.max(Math.abs(y), Math.abs(y - height)) / Math.max(Math.abs(x), Math.abs(x - width));\r\n var _b = findCorner(width, height, x, y, false), cx = _b[0], cy = _b[1];\r\n rx = distance(cx - x, (cy - y) / c);\r\n ry = c * rx;\r\n }\r\n break;\r\n }\r\n if (Array.isArray(gradient.size)) {\r\n rx = getAbsoluteValue(gradient.size[0], width);\r\n ry = gradient.size.length === 2 ? getAbsoluteValue(gradient.size[1], height) : rx;\r\n }\r\n return [rx, ry];\r\n };\n\n var linearGradient = function (tokens) {\r\n var angle$1 = deg(180);\r\n var stops = [];\r\n parseFunctionArgs(tokens).forEach(function (arg, i) {\r\n if (i === 0) {\r\n var firstToken = arg[0];\r\n if (firstToken.type === TokenType.IDENT_TOKEN && firstToken.value === 'to') {\r\n angle$1 = parseNamedSide(arg);\r\n return;\r\n }\r\n else if (isAngle(firstToken)) {\r\n angle$1 = angle.parse(firstToken);\r\n return;\r\n }\r\n }\r\n var colorStop = parseColorStop(arg);\r\n stops.push(colorStop);\r\n });\r\n return { angle: angle$1, stops: stops, type: CSSImageType.LINEAR_GRADIENT };\r\n };\n\n var prefixLinearGradient = function (tokens) {\r\n var angle$1 = deg(180);\r\n var stops = [];\r\n parseFunctionArgs(tokens).forEach(function (arg, i) {\r\n if (i === 0) {\r\n var firstToken = arg[0];\r\n if (firstToken.type === TokenType.IDENT_TOKEN &&\r\n ['top', 'left', 'right', 'bottom'].indexOf(firstToken.value) !== -1) {\r\n angle$1 = parseNamedSide(arg);\r\n return;\r\n }\r\n else if (isAngle(firstToken)) {\r\n angle$1 = (angle.parse(firstToken) + deg(270)) % deg(360);\r\n return;\r\n }\r\n }\r\n var colorStop = parseColorStop(arg);\r\n stops.push(colorStop);\r\n });\r\n return {\r\n angle: angle$1,\r\n stops: stops,\r\n type: CSSImageType.LINEAR_GRADIENT\r\n };\r\n };\n\n var testRangeBounds = function (document) {\r\n var TEST_HEIGHT = 123;\r\n if (document.createRange) {\r\n var range = document.createRange();\r\n if (range.getBoundingClientRect) {\r\n var testElement = document.createElement('boundtest');\r\n testElement.style.height = TEST_HEIGHT + \"px\";\r\n testElement.style.display = 'block';\r\n document.body.appendChild(testElement);\r\n range.selectNode(testElement);\r\n var rangeBounds = range.getBoundingClientRect();\r\n var rangeHeight = Math.round(rangeBounds.height);\r\n document.body.removeChild(testElement);\r\n if (rangeHeight === TEST_HEIGHT) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n var testCORS = function () { return typeof new Image().crossOrigin !== 'undefined'; };\r\n var testResponseType = function () { return typeof new XMLHttpRequest().responseType === 'string'; };\r\n var testSVG = function (document) {\r\n var img = new Image();\r\n var canvas = document.createElement('canvas');\r\n var ctx = canvas.getContext('2d');\r\n if (!ctx) {\r\n return false;\r\n }\r\n img.src = \"data:image/svg+xml,\";\r\n try {\r\n ctx.drawImage(img, 0, 0);\r\n canvas.toDataURL();\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n var isGreenPixel = function (data) {\r\n return data[0] === 0 && data[1] === 255 && data[2] === 0 && data[3] === 255;\r\n };\r\n var testForeignObject = function (document) {\r\n var canvas = document.createElement('canvas');\r\n var size = 100;\r\n canvas.width = size;\r\n canvas.height = size;\r\n var ctx = canvas.getContext('2d');\r\n if (!ctx) {\r\n return Promise.reject(false);\r\n }\r\n ctx.fillStyle = 'rgb(0, 255, 0)';\r\n ctx.fillRect(0, 0, size, size);\r\n var img = new Image();\r\n var greenImageSrc = canvas.toDataURL();\r\n img.src = greenImageSrc;\r\n var svg = createForeignObjectSVG(size, size, 0, 0, img);\r\n ctx.fillStyle = 'red';\r\n ctx.fillRect(0, 0, size, size);\r\n return loadSerializedSVG(svg)\r\n .then(function (img) {\r\n ctx.drawImage(img, 0, 0);\r\n var data = ctx.getImageData(0, 0, size, size).data;\r\n ctx.fillStyle = 'red';\r\n ctx.fillRect(0, 0, size, size);\r\n var node = document.createElement('div');\r\n node.style.backgroundImage = \"url(\" + greenImageSrc + \")\";\r\n node.style.height = size + \"px\";\r\n // Firefox 55 does not render inline tags\r\n return isGreenPixel(data)\r\n ? loadSerializedSVG(createForeignObjectSVG(size, size, 0, 0, node))\r\n : Promise.reject(false);\r\n })\r\n .then(function (img) {\r\n ctx.drawImage(img, 0, 0);\r\n // Edge does not render background-images\r\n return isGreenPixel(ctx.getImageData(0, 0, size, size).data);\r\n })\r\n .catch(function () { return false; });\r\n };\r\n var createForeignObjectSVG = function (width, height, x, y, node) {\r\n var xmlns = 'http://www.w3.org/2000/svg';\r\n var svg = document.createElementNS(xmlns, 'svg');\r\n var foreignObject = document.createElementNS(xmlns, 'foreignObject');\r\n svg.setAttributeNS(null, 'width', width.toString());\r\n svg.setAttributeNS(null, 'height', height.toString());\r\n foreignObject.setAttributeNS(null, 'width', '100%');\r\n foreignObject.setAttributeNS(null, 'height', '100%');\r\n foreignObject.setAttributeNS(null, 'x', x.toString());\r\n foreignObject.setAttributeNS(null, 'y', y.toString());\r\n foreignObject.setAttributeNS(null, 'externalResourcesRequired', 'true');\r\n svg.appendChild(foreignObject);\r\n foreignObject.appendChild(node);\r\n return svg;\r\n };\r\n var loadSerializedSVG = function (svg) {\r\n return new Promise(function (resolve, reject) {\r\n var img = new Image();\r\n img.onload = function () { return resolve(img); };\r\n img.onerror = reject;\r\n img.src = \"data:image/svg+xml;charset=utf-8,\" + encodeURIComponent(new XMLSerializer().serializeToString(svg));\r\n });\r\n };\r\n var FEATURES = {\r\n get SUPPORT_RANGE_BOUNDS() {\r\n var value = testRangeBounds(document);\r\n Object.defineProperty(FEATURES, 'SUPPORT_RANGE_BOUNDS', { value: value });\r\n return value;\r\n },\r\n get SUPPORT_SVG_DRAWING() {\r\n var value = testSVG(document);\r\n Object.defineProperty(FEATURES, 'SUPPORT_SVG_DRAWING', { value: value });\r\n return value;\r\n },\r\n get SUPPORT_FOREIGNOBJECT_DRAWING() {\r\n var value = typeof Array.from === 'function' && typeof window.fetch === 'function'\r\n ? testForeignObject(document)\r\n : Promise.resolve(false);\r\n Object.defineProperty(FEATURES, 'SUPPORT_FOREIGNOBJECT_DRAWING', { value: value });\r\n return value;\r\n },\r\n get SUPPORT_CORS_IMAGES() {\r\n var value = testCORS();\r\n Object.defineProperty(FEATURES, 'SUPPORT_CORS_IMAGES', { value: value });\r\n return value;\r\n },\r\n get SUPPORT_RESPONSE_TYPE() {\r\n var value = testResponseType();\r\n Object.defineProperty(FEATURES, 'SUPPORT_RESPONSE_TYPE', { value: value });\r\n return value;\r\n },\r\n get SUPPORT_CORS_XHR() {\r\n var value = 'withCredentials' in new XMLHttpRequest();\r\n Object.defineProperty(FEATURES, 'SUPPORT_CORS_XHR', { value: value });\r\n return value;\r\n }\r\n };\n\n var Logger = /** @class */ (function () {\r\n function Logger(_a) {\r\n var id = _a.id, enabled = _a.enabled;\r\n this.id = id;\r\n this.enabled = enabled;\r\n this.start = Date.now();\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Logger.prototype.debug = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (this.enabled) {\r\n // eslint-disable-next-line no-console\r\n if (typeof window !== 'undefined' && window.console && typeof console.debug === 'function') {\r\n // eslint-disable-next-line no-console\r\n console.debug.apply(console, [this.id, this.getTime() + \"ms\"].concat(args));\r\n }\r\n else {\r\n this.info.apply(this, args);\r\n }\r\n }\r\n };\r\n Logger.prototype.getTime = function () {\r\n return Date.now() - this.start;\r\n };\r\n Logger.create = function (options) {\r\n Logger.instances[options.id] = new Logger(options);\r\n };\r\n Logger.destroy = function (id) {\r\n delete Logger.instances[id];\r\n };\r\n Logger.getInstance = function (id) {\r\n var instance = Logger.instances[id];\r\n if (typeof instance === 'undefined') {\r\n throw new Error(\"No logger instance found with id \" + id);\r\n }\r\n return instance;\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Logger.prototype.info = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (this.enabled) {\r\n // eslint-disable-next-line no-console\r\n if (typeof window !== 'undefined' && window.console && typeof console.info === 'function') {\r\n // eslint-disable-next-line no-console\r\n console.info.apply(console, [this.id, this.getTime() + \"ms\"].concat(args));\r\n }\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Logger.prototype.error = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (this.enabled) {\r\n // eslint-disable-next-line no-console\r\n if (typeof window !== 'undefined' && window.console && typeof console.error === 'function') {\r\n // eslint-disable-next-line no-console\r\n console.error.apply(console, [this.id, this.getTime() + \"ms\"].concat(args));\r\n }\r\n else {\r\n this.info.apply(this, args);\r\n }\r\n }\r\n };\r\n Logger.instances = {};\r\n return Logger;\r\n }());\n\n var CacheStorage = /** @class */ (function () {\r\n function CacheStorage() {\r\n }\r\n CacheStorage.create = function (name, options) {\r\n return (CacheStorage._caches[name] = new Cache(name, options));\r\n };\r\n CacheStorage.destroy = function (name) {\r\n delete CacheStorage._caches[name];\r\n };\r\n CacheStorage.open = function (name) {\r\n var cache = CacheStorage._caches[name];\r\n if (typeof cache !== 'undefined') {\r\n return cache;\r\n }\r\n throw new Error(\"Cache with key \\\"\" + name + \"\\\" not found\");\r\n };\r\n CacheStorage.getOrigin = function (url) {\r\n var link = CacheStorage._link;\r\n if (!link) {\r\n return 'about:blank';\r\n }\r\n link.href = url;\r\n link.href = link.href; // IE9, LOL! - http://jsfiddle.net/niklasvh/2e48b/\r\n return link.protocol + link.hostname + link.port;\r\n };\r\n CacheStorage.isSameOrigin = function (src) {\r\n return CacheStorage.getOrigin(src) === CacheStorage._origin;\r\n };\r\n CacheStorage.setContext = function (window) {\r\n CacheStorage._link = window.document.createElement('a');\r\n CacheStorage._origin = CacheStorage.getOrigin(window.location.href);\r\n };\r\n CacheStorage.getInstance = function () {\r\n var current = CacheStorage._current;\r\n if (current === null) {\r\n throw new Error(\"No cache instance attached\");\r\n }\r\n return current;\r\n };\r\n CacheStorage.attachInstance = function (cache) {\r\n CacheStorage._current = cache;\r\n };\r\n CacheStorage.detachInstance = function () {\r\n CacheStorage._current = null;\r\n };\r\n CacheStorage._caches = {};\r\n CacheStorage._origin = 'about:blank';\r\n CacheStorage._current = null;\r\n return CacheStorage;\r\n }());\r\n var Cache = /** @class */ (function () {\r\n function Cache(id, options) {\r\n this.id = id;\r\n this._options = options;\r\n this._cache = {};\r\n }\r\n Cache.prototype.addImage = function (src) {\r\n var result = Promise.resolve();\r\n if (this.has(src)) {\r\n return result;\r\n }\r\n if (isBlobImage(src) || isRenderable(src)) {\r\n this._cache[src] = this.loadImage(src);\r\n return result;\r\n }\r\n return result;\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Cache.prototype.match = function (src) {\r\n return this._cache[src];\r\n };\r\n Cache.prototype.loadImage = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var isSameOrigin, useCORS, useProxy, src;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n isSameOrigin = CacheStorage.isSameOrigin(key);\r\n useCORS = !isInlineImage(key) && this._options.useCORS === true && FEATURES.SUPPORT_CORS_IMAGES && !isSameOrigin;\r\n useProxy = !isInlineImage(key) &&\r\n !isSameOrigin &&\r\n typeof this._options.proxy === 'string' &&\r\n FEATURES.SUPPORT_CORS_XHR &&\r\n !useCORS;\r\n if (!isSameOrigin && this._options.allowTaint === false && !isInlineImage(key) && !useProxy && !useCORS) {\r\n return [2 /*return*/];\r\n }\r\n src = key;\r\n if (!useProxy) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.proxy(src)];\r\n case 1:\r\n src = _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n Logger.getInstance(this.id).debug(\"Added image \" + key.substring(0, 256));\r\n return [4 /*yield*/, new Promise(function (resolve, reject) {\r\n var img = new Image();\r\n img.onload = function () { return resolve(img); };\r\n img.onerror = reject;\r\n //ios safari 10.3 taints canvas with data urls unless crossOrigin is set to anonymous\r\n if (isInlineBase64Image(src) || useCORS) {\r\n img.crossOrigin = 'anonymous';\r\n }\r\n img.src = src;\r\n if (img.complete === true) {\r\n // Inline XML images may fail to parse, throwing an Error later on\r\n setTimeout(function () { return resolve(img); }, 500);\r\n }\r\n if (_this._options.imageTimeout > 0) {\r\n setTimeout(function () { return reject(\"Timed out (\" + _this._options.imageTimeout + \"ms) loading image\"); }, _this._options.imageTimeout);\r\n }\r\n })];\r\n case 3: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n Cache.prototype.has = function (key) {\r\n return typeof this._cache[key] !== 'undefined';\r\n };\r\n Cache.prototype.keys = function () {\r\n return Promise.resolve(Object.keys(this._cache));\r\n };\r\n Cache.prototype.proxy = function (src) {\r\n var _this = this;\r\n var proxy = this._options.proxy;\r\n if (!proxy) {\r\n throw new Error('No proxy defined');\r\n }\r\n var key = src.substring(0, 256);\r\n return new Promise(function (resolve, reject) {\r\n var responseType = FEATURES.SUPPORT_RESPONSE_TYPE ? 'blob' : 'text';\r\n var xhr = new XMLHttpRequest();\r\n xhr.onload = function () {\r\n if (xhr.status === 200) {\r\n if (responseType === 'text') {\r\n resolve(xhr.response);\r\n }\r\n else {\r\n var reader_1 = new FileReader();\r\n reader_1.addEventListener('load', function () { return resolve(reader_1.result); }, false);\r\n reader_1.addEventListener('error', function (e) { return reject(e); }, false);\r\n reader_1.readAsDataURL(xhr.response);\r\n }\r\n }\r\n else {\r\n reject(\"Failed to proxy resource \" + key + \" with status code \" + xhr.status);\r\n }\r\n };\r\n xhr.onerror = reject;\r\n xhr.open('GET', proxy + \"?url=\" + encodeURIComponent(src) + \"&responseType=\" + responseType);\r\n if (responseType !== 'text' && xhr instanceof XMLHttpRequest) {\r\n xhr.responseType = responseType;\r\n }\r\n if (_this._options.imageTimeout) {\r\n var timeout_1 = _this._options.imageTimeout;\r\n xhr.timeout = timeout_1;\r\n xhr.ontimeout = function () { return reject(\"Timed out (\" + timeout_1 + \"ms) proxying \" + key); };\r\n }\r\n xhr.send();\r\n });\r\n };\r\n return Cache;\r\n }());\r\n var INLINE_SVG = /^data:image\\/svg\\+xml/i;\r\n var INLINE_BASE64 = /^data:image\\/.*;base64,/i;\r\n var INLINE_IMG = /^data:image\\/.*/i;\r\n var isRenderable = function (src) { return FEATURES.SUPPORT_SVG_DRAWING || !isSVG(src); };\r\n var isInlineImage = function (src) { return INLINE_IMG.test(src); };\r\n var isInlineBase64Image = function (src) { return INLINE_BASE64.test(src); };\r\n var isBlobImage = function (src) { return src.substr(0, 4) === 'blob'; };\r\n var isSVG = function (src) { return src.substr(-3).toLowerCase() === 'svg' || INLINE_SVG.test(src); };\n\n var webkitGradient = function (tokens) {\r\n var angle = deg(180);\r\n var stops = [];\r\n var type = CSSImageType.LINEAR_GRADIENT;\r\n var shape = CSSRadialShape.CIRCLE;\r\n var size = CSSRadialExtent.FARTHEST_CORNER;\r\n var position = [];\r\n parseFunctionArgs(tokens).forEach(function (arg, i) {\r\n var firstToken = arg[0];\r\n if (i === 0) {\r\n if (isIdentToken(firstToken) && firstToken.value === 'linear') {\r\n type = CSSImageType.LINEAR_GRADIENT;\r\n return;\r\n }\r\n else if (isIdentToken(firstToken) && firstToken.value === 'radial') {\r\n type = CSSImageType.RADIAL_GRADIENT;\r\n return;\r\n }\r\n }\r\n if (firstToken.type === TokenType.FUNCTION) {\r\n if (firstToken.name === 'from') {\r\n var color$1 = color.parse(firstToken.values[0]);\r\n stops.push({ stop: ZERO_LENGTH, color: color$1 });\r\n }\r\n else if (firstToken.name === 'to') {\r\n var color$1 = color.parse(firstToken.values[0]);\r\n stops.push({ stop: HUNDRED_PERCENT, color: color$1 });\r\n }\r\n else if (firstToken.name === 'color-stop') {\r\n var values = firstToken.values.filter(nonFunctionArgSeparator);\r\n if (values.length === 2) {\r\n var color$1 = color.parse(values[1]);\r\n var stop_1 = values[0];\r\n if (isNumberToken(stop_1)) {\r\n stops.push({\r\n stop: { type: TokenType.PERCENTAGE_TOKEN, number: stop_1.number * 100, flags: stop_1.flags },\r\n color: color$1\r\n });\r\n }\r\n }\r\n }\r\n }\r\n });\r\n return type === CSSImageType.LINEAR_GRADIENT\r\n ? {\r\n angle: (angle + deg(180)) % deg(360),\r\n stops: stops,\r\n type: type\r\n }\r\n : { size: size, shape: shape, stops: stops, position: position, type: type };\r\n };\n\n var CLOSEST_SIDE = 'closest-side';\r\n var FARTHEST_SIDE = 'farthest-side';\r\n var CLOSEST_CORNER = 'closest-corner';\r\n var FARTHEST_CORNER = 'farthest-corner';\r\n var CIRCLE = 'circle';\r\n var ELLIPSE = 'ellipse';\r\n var COVER = 'cover';\r\n var CONTAIN = 'contain';\r\n var radialGradient = function (tokens) {\r\n var shape = CSSRadialShape.CIRCLE;\r\n var size = CSSRadialExtent.FARTHEST_CORNER;\r\n var stops = [];\r\n var position = [];\r\n parseFunctionArgs(tokens).forEach(function (arg, i) {\r\n var isColorStop = true;\r\n if (i === 0) {\r\n var isAtPosition_1 = false;\r\n isColorStop = arg.reduce(function (acc, token) {\r\n if (isAtPosition_1) {\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case 'center':\r\n position.push(FIFTY_PERCENT);\r\n return acc;\r\n case 'top':\r\n case 'left':\r\n position.push(ZERO_LENGTH);\r\n return acc;\r\n case 'right':\r\n case 'bottom':\r\n position.push(HUNDRED_PERCENT);\r\n return acc;\r\n }\r\n }\r\n else if (isLengthPercentage(token) || isLength(token)) {\r\n position.push(token);\r\n }\r\n }\r\n else if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case CIRCLE:\r\n shape = CSSRadialShape.CIRCLE;\r\n return false;\r\n case ELLIPSE:\r\n shape = CSSRadialShape.ELLIPSE;\r\n return false;\r\n case 'at':\r\n isAtPosition_1 = true;\r\n return false;\r\n case CLOSEST_SIDE:\r\n size = CSSRadialExtent.CLOSEST_SIDE;\r\n return false;\r\n case COVER:\r\n case FARTHEST_SIDE:\r\n size = CSSRadialExtent.FARTHEST_SIDE;\r\n return false;\r\n case CONTAIN:\r\n case CLOSEST_CORNER:\r\n size = CSSRadialExtent.CLOSEST_CORNER;\r\n return false;\r\n case FARTHEST_CORNER:\r\n size = CSSRadialExtent.FARTHEST_CORNER;\r\n return false;\r\n }\r\n }\r\n else if (isLength(token) || isLengthPercentage(token)) {\r\n if (!Array.isArray(size)) {\r\n size = [];\r\n }\r\n size.push(token);\r\n return false;\r\n }\r\n return acc;\r\n }, isColorStop);\r\n }\r\n if (isColorStop) {\r\n var colorStop = parseColorStop(arg);\r\n stops.push(colorStop);\r\n }\r\n });\r\n return { size: size, shape: shape, stops: stops, position: position, type: CSSImageType.RADIAL_GRADIENT };\r\n };\n\n var prefixRadialGradient = function (tokens) {\r\n var shape = CSSRadialShape.CIRCLE;\r\n var size = CSSRadialExtent.FARTHEST_CORNER;\r\n var stops = [];\r\n var position = [];\r\n parseFunctionArgs(tokens).forEach(function (arg, i) {\r\n var isColorStop = true;\r\n if (i === 0) {\r\n isColorStop = arg.reduce(function (acc, token) {\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case 'center':\r\n position.push(FIFTY_PERCENT);\r\n return false;\r\n case 'top':\r\n case 'left':\r\n position.push(ZERO_LENGTH);\r\n return false;\r\n case 'right':\r\n case 'bottom':\r\n position.push(HUNDRED_PERCENT);\r\n return false;\r\n }\r\n }\r\n else if (isLengthPercentage(token) || isLength(token)) {\r\n position.push(token);\r\n return false;\r\n }\r\n return acc;\r\n }, isColorStop);\r\n }\r\n else if (i === 1) {\r\n isColorStop = arg.reduce(function (acc, token) {\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case CIRCLE:\r\n shape = CSSRadialShape.CIRCLE;\r\n return false;\r\n case ELLIPSE:\r\n shape = CSSRadialShape.ELLIPSE;\r\n return false;\r\n case CONTAIN:\r\n case CLOSEST_SIDE:\r\n size = CSSRadialExtent.CLOSEST_SIDE;\r\n return false;\r\n case FARTHEST_SIDE:\r\n size = CSSRadialExtent.FARTHEST_SIDE;\r\n return false;\r\n case CLOSEST_CORNER:\r\n size = CSSRadialExtent.CLOSEST_CORNER;\r\n return false;\r\n case COVER:\r\n case FARTHEST_CORNER:\r\n size = CSSRadialExtent.FARTHEST_CORNER;\r\n return false;\r\n }\r\n }\r\n else if (isLength(token) || isLengthPercentage(token)) {\r\n if (!Array.isArray(size)) {\r\n size = [];\r\n }\r\n size.push(token);\r\n return false;\r\n }\r\n return acc;\r\n }, isColorStop);\r\n }\r\n if (isColorStop) {\r\n var colorStop = parseColorStop(arg);\r\n stops.push(colorStop);\r\n }\r\n });\r\n return { size: size, shape: shape, stops: stops, position: position, type: CSSImageType.RADIAL_GRADIENT };\r\n };\n\n var CSSImageType;\r\n (function (CSSImageType) {\r\n CSSImageType[CSSImageType[\"URL\"] = 0] = \"URL\";\r\n CSSImageType[CSSImageType[\"LINEAR_GRADIENT\"] = 1] = \"LINEAR_GRADIENT\";\r\n CSSImageType[CSSImageType[\"RADIAL_GRADIENT\"] = 2] = \"RADIAL_GRADIENT\";\r\n })(CSSImageType || (CSSImageType = {}));\r\n var isLinearGradient = function (background) {\r\n return background.type === CSSImageType.LINEAR_GRADIENT;\r\n };\r\n var isRadialGradient = function (background) {\r\n return background.type === CSSImageType.RADIAL_GRADIENT;\r\n };\r\n var CSSRadialShape;\r\n (function (CSSRadialShape) {\r\n CSSRadialShape[CSSRadialShape[\"CIRCLE\"] = 0] = \"CIRCLE\";\r\n CSSRadialShape[CSSRadialShape[\"ELLIPSE\"] = 1] = \"ELLIPSE\";\r\n })(CSSRadialShape || (CSSRadialShape = {}));\r\n var CSSRadialExtent;\r\n (function (CSSRadialExtent) {\r\n CSSRadialExtent[CSSRadialExtent[\"CLOSEST_SIDE\"] = 0] = \"CLOSEST_SIDE\";\r\n CSSRadialExtent[CSSRadialExtent[\"FARTHEST_SIDE\"] = 1] = \"FARTHEST_SIDE\";\r\n CSSRadialExtent[CSSRadialExtent[\"CLOSEST_CORNER\"] = 2] = \"CLOSEST_CORNER\";\r\n CSSRadialExtent[CSSRadialExtent[\"FARTHEST_CORNER\"] = 3] = \"FARTHEST_CORNER\";\r\n })(CSSRadialExtent || (CSSRadialExtent = {}));\r\n var image = {\r\n name: 'image',\r\n parse: function (value) {\r\n if (value.type === TokenType.URL_TOKEN) {\r\n var image_1 = { url: value.value, type: CSSImageType.URL };\r\n CacheStorage.getInstance().addImage(value.value);\r\n return image_1;\r\n }\r\n if (value.type === TokenType.FUNCTION) {\r\n var imageFunction = SUPPORTED_IMAGE_FUNCTIONS[value.name];\r\n if (typeof imageFunction === 'undefined') {\r\n throw new Error(\"Attempting to parse an unsupported image function \\\"\" + value.name + \"\\\"\");\r\n }\r\n return imageFunction(value.values);\r\n }\r\n throw new Error(\"Unsupported image type\");\r\n }\r\n };\r\n function isSupportedImage(value) {\r\n return value.type !== TokenType.FUNCTION || SUPPORTED_IMAGE_FUNCTIONS[value.name];\r\n }\r\n var SUPPORTED_IMAGE_FUNCTIONS = {\r\n 'linear-gradient': linearGradient,\r\n '-moz-linear-gradient': prefixLinearGradient,\r\n '-ms-linear-gradient': prefixLinearGradient,\r\n '-o-linear-gradient': prefixLinearGradient,\r\n '-webkit-linear-gradient': prefixLinearGradient,\r\n 'radial-gradient': radialGradient,\r\n '-moz-radial-gradient': prefixRadialGradient,\r\n '-ms-radial-gradient': prefixRadialGradient,\r\n '-o-radial-gradient': prefixRadialGradient,\r\n '-webkit-radial-gradient': prefixRadialGradient,\r\n '-webkit-gradient': webkitGradient\r\n };\n\n var backgroundImage = {\r\n name: 'background-image',\r\n initialValue: 'none',\r\n type: PropertyDescriptorParsingType.LIST,\r\n prefix: false,\r\n parse: function (tokens) {\r\n if (tokens.length === 0) {\r\n return [];\r\n }\r\n var first = tokens[0];\r\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\r\n return [];\r\n }\r\n return tokens.filter(function (value) { return nonFunctionArgSeparator(value) && isSupportedImage(value); }).map(image.parse);\r\n }\r\n };\n\n var backgroundOrigin = {\r\n name: 'background-origin',\r\n initialValue: 'border-box',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return tokens.map(function (token) {\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case 'padding-box':\r\n return 1 /* PADDING_BOX */;\r\n case 'content-box':\r\n return 2 /* CONTENT_BOX */;\r\n }\r\n }\r\n return 0 /* BORDER_BOX */;\r\n });\r\n }\r\n };\n\n var backgroundPosition = {\r\n name: 'background-position',\r\n initialValue: '0% 0%',\r\n type: PropertyDescriptorParsingType.LIST,\r\n prefix: false,\r\n parse: function (tokens) {\r\n return parseFunctionArgs(tokens)\r\n .map(function (values) { return values.filter(isLengthPercentage); })\r\n .map(parseLengthPercentageTuple);\r\n }\r\n };\n\n var BACKGROUND_REPEAT;\r\n (function (BACKGROUND_REPEAT) {\r\n BACKGROUND_REPEAT[BACKGROUND_REPEAT[\"REPEAT\"] = 0] = \"REPEAT\";\r\n BACKGROUND_REPEAT[BACKGROUND_REPEAT[\"NO_REPEAT\"] = 1] = \"NO_REPEAT\";\r\n BACKGROUND_REPEAT[BACKGROUND_REPEAT[\"REPEAT_X\"] = 2] = \"REPEAT_X\";\r\n BACKGROUND_REPEAT[BACKGROUND_REPEAT[\"REPEAT_Y\"] = 3] = \"REPEAT_Y\";\r\n })(BACKGROUND_REPEAT || (BACKGROUND_REPEAT = {}));\r\n var backgroundRepeat = {\r\n name: 'background-repeat',\r\n initialValue: 'repeat',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return parseFunctionArgs(tokens)\r\n .map(function (values) {\r\n return values\r\n .filter(isIdentToken)\r\n .map(function (token) { return token.value; })\r\n .join(' ');\r\n })\r\n .map(parseBackgroundRepeat);\r\n }\r\n };\r\n var parseBackgroundRepeat = function (value) {\r\n switch (value) {\r\n case 'no-repeat':\r\n return BACKGROUND_REPEAT.NO_REPEAT;\r\n case 'repeat-x':\r\n case 'repeat no-repeat':\r\n return BACKGROUND_REPEAT.REPEAT_X;\r\n case 'repeat-y':\r\n case 'no-repeat repeat':\r\n return BACKGROUND_REPEAT.REPEAT_Y;\r\n case 'repeat':\r\n default:\r\n return BACKGROUND_REPEAT.REPEAT;\r\n }\r\n };\n\n var BACKGROUND_SIZE;\r\n (function (BACKGROUND_SIZE) {\r\n BACKGROUND_SIZE[\"AUTO\"] = \"auto\";\r\n BACKGROUND_SIZE[\"CONTAIN\"] = \"contain\";\r\n BACKGROUND_SIZE[\"COVER\"] = \"cover\";\r\n })(BACKGROUND_SIZE || (BACKGROUND_SIZE = {}));\r\n var backgroundSize = {\r\n name: 'background-size',\r\n initialValue: '0',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return parseFunctionArgs(tokens).map(function (values) { return values.filter(isBackgroundSizeInfoToken); });\r\n }\r\n };\r\n var isBackgroundSizeInfoToken = function (value) {\r\n return isIdentToken(value) || isLengthPercentage(value);\r\n };\n\n var borderColorForSide = function (side) { return ({\r\n name: \"border-\" + side + \"-color\",\r\n initialValue: 'transparent',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TYPE_VALUE,\r\n format: 'color'\r\n }); };\r\n var borderTopColor = borderColorForSide('top');\r\n var borderRightColor = borderColorForSide('right');\r\n var borderBottomColor = borderColorForSide('bottom');\r\n var borderLeftColor = borderColorForSide('left');\n\n var borderRadiusForSide = function (side) { return ({\r\n name: \"border-radius-\" + side,\r\n initialValue: '0 0',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) { return parseLengthPercentageTuple(tokens.filter(isLengthPercentage)); }\r\n }); };\r\n var borderTopLeftRadius = borderRadiusForSide('top-left');\r\n var borderTopRightRadius = borderRadiusForSide('top-right');\r\n var borderBottomRightRadius = borderRadiusForSide('bottom-right');\r\n var borderBottomLeftRadius = borderRadiusForSide('bottom-left');\n\n var BORDER_STYLE;\r\n (function (BORDER_STYLE) {\r\n BORDER_STYLE[BORDER_STYLE[\"NONE\"] = 0] = \"NONE\";\r\n BORDER_STYLE[BORDER_STYLE[\"SOLID\"] = 1] = \"SOLID\";\r\n })(BORDER_STYLE || (BORDER_STYLE = {}));\r\n var borderStyleForSide = function (side) { return ({\r\n name: \"border-\" + side + \"-style\",\r\n initialValue: 'solid',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (style) {\r\n switch (style) {\r\n case 'none':\r\n return BORDER_STYLE.NONE;\r\n }\r\n return BORDER_STYLE.SOLID;\r\n }\r\n }); };\r\n var borderTopStyle = borderStyleForSide('top');\r\n var borderRightStyle = borderStyleForSide('right');\r\n var borderBottomStyle = borderStyleForSide('bottom');\r\n var borderLeftStyle = borderStyleForSide('left');\n\n var borderWidthForSide = function (side) { return ({\r\n name: \"border-\" + side + \"-width\",\r\n initialValue: '0',\r\n type: PropertyDescriptorParsingType.VALUE,\r\n prefix: false,\r\n parse: function (token) {\r\n if (isDimensionToken(token)) {\r\n return token.number;\r\n }\r\n return 0;\r\n }\r\n }); };\r\n var borderTopWidth = borderWidthForSide('top');\r\n var borderRightWidth = borderWidthForSide('right');\r\n var borderBottomWidth = borderWidthForSide('bottom');\r\n var borderLeftWidth = borderWidthForSide('left');\n\n var color$1 = {\r\n name: \"color\",\r\n initialValue: 'transparent',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TYPE_VALUE,\r\n format: 'color'\r\n };\n\n var display = {\r\n name: 'display',\r\n initialValue: 'inline-block',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return tokens.filter(isIdentToken).reduce(function (bit, token) {\r\n return bit | parseDisplayValue(token.value);\r\n }, 0 /* NONE */);\r\n }\r\n };\r\n var parseDisplayValue = function (display) {\r\n switch (display) {\r\n case 'block':\r\n return 2 /* BLOCK */;\r\n case 'inline':\r\n return 4 /* INLINE */;\r\n case 'run-in':\r\n return 8 /* RUN_IN */;\r\n case 'flow':\r\n return 16 /* FLOW */;\r\n case 'flow-root':\r\n return 32 /* FLOW_ROOT */;\r\n case 'table':\r\n return 64 /* TABLE */;\r\n case 'flex':\r\n case '-webkit-flex':\r\n return 128 /* FLEX */;\r\n case 'grid':\r\n case '-ms-grid':\r\n return 256 /* GRID */;\r\n case 'ruby':\r\n return 512 /* RUBY */;\r\n case 'subgrid':\r\n return 1024 /* SUBGRID */;\r\n case 'list-item':\r\n return 2048 /* LIST_ITEM */;\r\n case 'table-row-group':\r\n return 4096 /* TABLE_ROW_GROUP */;\r\n case 'table-header-group':\r\n return 8192 /* TABLE_HEADER_GROUP */;\r\n case 'table-footer-group':\r\n return 16384 /* TABLE_FOOTER_GROUP */;\r\n case 'table-row':\r\n return 32768 /* TABLE_ROW */;\r\n case 'table-cell':\r\n return 65536 /* TABLE_CELL */;\r\n case 'table-column-group':\r\n return 131072 /* TABLE_COLUMN_GROUP */;\r\n case 'table-column':\r\n return 262144 /* TABLE_COLUMN */;\r\n case 'table-caption':\r\n return 524288 /* TABLE_CAPTION */;\r\n case 'ruby-base':\r\n return 1048576 /* RUBY_BASE */;\r\n case 'ruby-text':\r\n return 2097152 /* RUBY_TEXT */;\r\n case 'ruby-base-container':\r\n return 4194304 /* RUBY_BASE_CONTAINER */;\r\n case 'ruby-text-container':\r\n return 8388608 /* RUBY_TEXT_CONTAINER */;\r\n case 'contents':\r\n return 16777216 /* CONTENTS */;\r\n case 'inline-block':\r\n return 33554432 /* INLINE_BLOCK */;\r\n case 'inline-list-item':\r\n return 67108864 /* INLINE_LIST_ITEM */;\r\n case 'inline-table':\r\n return 134217728 /* INLINE_TABLE */;\r\n case 'inline-flex':\r\n return 268435456 /* INLINE_FLEX */;\r\n case 'inline-grid':\r\n return 536870912 /* INLINE_GRID */;\r\n }\r\n return 0 /* NONE */;\r\n };\n\n var FLOAT;\r\n (function (FLOAT) {\r\n FLOAT[FLOAT[\"NONE\"] = 0] = \"NONE\";\r\n FLOAT[FLOAT[\"LEFT\"] = 1] = \"LEFT\";\r\n FLOAT[FLOAT[\"RIGHT\"] = 2] = \"RIGHT\";\r\n FLOAT[FLOAT[\"INLINE_START\"] = 3] = \"INLINE_START\";\r\n FLOAT[FLOAT[\"INLINE_END\"] = 4] = \"INLINE_END\";\r\n })(FLOAT || (FLOAT = {}));\r\n var float = {\r\n name: 'float',\r\n initialValue: 'none',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (float) {\r\n switch (float) {\r\n case 'left':\r\n return FLOAT.LEFT;\r\n case 'right':\r\n return FLOAT.RIGHT;\r\n case 'inline-start':\r\n return FLOAT.INLINE_START;\r\n case 'inline-end':\r\n return FLOAT.INLINE_END;\r\n }\r\n return FLOAT.NONE;\r\n }\r\n };\n\n var letterSpacing = {\r\n name: 'letter-spacing',\r\n initialValue: '0',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.VALUE,\r\n parse: function (token) {\r\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'normal') {\r\n return 0;\r\n }\r\n if (token.type === TokenType.NUMBER_TOKEN) {\r\n return token.number;\r\n }\r\n if (token.type === TokenType.DIMENSION_TOKEN) {\r\n return token.number;\r\n }\r\n return 0;\r\n }\r\n };\n\n var LINE_BREAK;\r\n (function (LINE_BREAK) {\r\n LINE_BREAK[\"NORMAL\"] = \"normal\";\r\n LINE_BREAK[\"STRICT\"] = \"strict\";\r\n })(LINE_BREAK || (LINE_BREAK = {}));\r\n var lineBreak = {\r\n name: 'line-break',\r\n initialValue: 'normal',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (lineBreak) {\r\n switch (lineBreak) {\r\n case 'strict':\r\n return LINE_BREAK.STRICT;\r\n case 'normal':\r\n default:\r\n return LINE_BREAK.NORMAL;\r\n }\r\n }\r\n };\n\n var lineHeight = {\r\n name: 'line-height',\r\n initialValue: 'normal',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TOKEN_VALUE\r\n };\r\n var computeLineHeight = function (token, fontSize) {\r\n if (isIdentToken(token) && token.value === 'normal') {\r\n return 1.2 * fontSize;\r\n }\r\n else if (token.type === TokenType.NUMBER_TOKEN) {\r\n return fontSize * token.number;\r\n }\r\n else if (isLengthPercentage(token)) {\r\n return getAbsoluteValue(token, fontSize);\r\n }\r\n return fontSize;\r\n };\n\n var listStyleImage = {\r\n name: 'list-style-image',\r\n initialValue: 'none',\r\n type: PropertyDescriptorParsingType.VALUE,\r\n prefix: false,\r\n parse: function (token) {\r\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') {\r\n return null;\r\n }\r\n return image.parse(token);\r\n }\r\n };\n\n var LIST_STYLE_POSITION;\r\n (function (LIST_STYLE_POSITION) {\r\n LIST_STYLE_POSITION[LIST_STYLE_POSITION[\"INSIDE\"] = 0] = \"INSIDE\";\r\n LIST_STYLE_POSITION[LIST_STYLE_POSITION[\"OUTSIDE\"] = 1] = \"OUTSIDE\";\r\n })(LIST_STYLE_POSITION || (LIST_STYLE_POSITION = {}));\r\n var listStylePosition = {\r\n name: 'list-style-position',\r\n initialValue: 'outside',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (position) {\r\n switch (position) {\r\n case 'inside':\r\n return LIST_STYLE_POSITION.INSIDE;\r\n case 'outside':\r\n default:\r\n return LIST_STYLE_POSITION.OUTSIDE;\r\n }\r\n }\r\n };\n\n var LIST_STYLE_TYPE;\r\n (function (LIST_STYLE_TYPE) {\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"NONE\"] = -1] = \"NONE\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"DISC\"] = 0] = \"DISC\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"CIRCLE\"] = 1] = \"CIRCLE\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"SQUARE\"] = 2] = \"SQUARE\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"DECIMAL\"] = 3] = \"DECIMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"CJK_DECIMAL\"] = 4] = \"CJK_DECIMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"DECIMAL_LEADING_ZERO\"] = 5] = \"DECIMAL_LEADING_ZERO\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"LOWER_ROMAN\"] = 6] = \"LOWER_ROMAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"UPPER_ROMAN\"] = 7] = \"UPPER_ROMAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"LOWER_GREEK\"] = 8] = \"LOWER_GREEK\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"LOWER_ALPHA\"] = 9] = \"LOWER_ALPHA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"UPPER_ALPHA\"] = 10] = \"UPPER_ALPHA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"ARABIC_INDIC\"] = 11] = \"ARABIC_INDIC\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"ARMENIAN\"] = 12] = \"ARMENIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"BENGALI\"] = 13] = \"BENGALI\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"CAMBODIAN\"] = 14] = \"CAMBODIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"CJK_EARTHLY_BRANCH\"] = 15] = \"CJK_EARTHLY_BRANCH\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"CJK_HEAVENLY_STEM\"] = 16] = \"CJK_HEAVENLY_STEM\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"CJK_IDEOGRAPHIC\"] = 17] = \"CJK_IDEOGRAPHIC\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"DEVANAGARI\"] = 18] = \"DEVANAGARI\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"ETHIOPIC_NUMERIC\"] = 19] = \"ETHIOPIC_NUMERIC\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"GEORGIAN\"] = 20] = \"GEORGIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"GUJARATI\"] = 21] = \"GUJARATI\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"GURMUKHI\"] = 22] = \"GURMUKHI\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"HEBREW\"] = 22] = \"HEBREW\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"HIRAGANA\"] = 23] = \"HIRAGANA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"HIRAGANA_IROHA\"] = 24] = \"HIRAGANA_IROHA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"JAPANESE_FORMAL\"] = 25] = \"JAPANESE_FORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"JAPANESE_INFORMAL\"] = 26] = \"JAPANESE_INFORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KANNADA\"] = 27] = \"KANNADA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KATAKANA\"] = 28] = \"KATAKANA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KATAKANA_IROHA\"] = 29] = \"KATAKANA_IROHA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KHMER\"] = 30] = \"KHMER\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KOREAN_HANGUL_FORMAL\"] = 31] = \"KOREAN_HANGUL_FORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KOREAN_HANJA_FORMAL\"] = 32] = \"KOREAN_HANJA_FORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KOREAN_HANJA_INFORMAL\"] = 33] = \"KOREAN_HANJA_INFORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"LAO\"] = 34] = \"LAO\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"LOWER_ARMENIAN\"] = 35] = \"LOWER_ARMENIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"MALAYALAM\"] = 36] = \"MALAYALAM\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"MONGOLIAN\"] = 37] = \"MONGOLIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"MYANMAR\"] = 38] = \"MYANMAR\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"ORIYA\"] = 39] = \"ORIYA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"PERSIAN\"] = 40] = \"PERSIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"SIMP_CHINESE_FORMAL\"] = 41] = \"SIMP_CHINESE_FORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"SIMP_CHINESE_INFORMAL\"] = 42] = \"SIMP_CHINESE_INFORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"TAMIL\"] = 43] = \"TAMIL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"TELUGU\"] = 44] = \"TELUGU\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"THAI\"] = 45] = \"THAI\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"TIBETAN\"] = 46] = \"TIBETAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"TRAD_CHINESE_FORMAL\"] = 47] = \"TRAD_CHINESE_FORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"TRAD_CHINESE_INFORMAL\"] = 48] = \"TRAD_CHINESE_INFORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"UPPER_ARMENIAN\"] = 49] = \"UPPER_ARMENIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"DISCLOSURE_OPEN\"] = 50] = \"DISCLOSURE_OPEN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"DISCLOSURE_CLOSED\"] = 51] = \"DISCLOSURE_CLOSED\";\r\n })(LIST_STYLE_TYPE || (LIST_STYLE_TYPE = {}));\r\n var listStyleType = {\r\n name: 'list-style-type',\r\n initialValue: 'none',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (type) {\r\n switch (type) {\r\n case 'disc':\r\n return LIST_STYLE_TYPE.DISC;\r\n case 'circle':\r\n return LIST_STYLE_TYPE.CIRCLE;\r\n case 'square':\r\n return LIST_STYLE_TYPE.SQUARE;\r\n case 'decimal':\r\n return LIST_STYLE_TYPE.DECIMAL;\r\n case 'cjk-decimal':\r\n return LIST_STYLE_TYPE.CJK_DECIMAL;\r\n case 'decimal-leading-zero':\r\n return LIST_STYLE_TYPE.DECIMAL_LEADING_ZERO;\r\n case 'lower-roman':\r\n return LIST_STYLE_TYPE.LOWER_ROMAN;\r\n case 'upper-roman':\r\n return LIST_STYLE_TYPE.UPPER_ROMAN;\r\n case 'lower-greek':\r\n return LIST_STYLE_TYPE.LOWER_GREEK;\r\n case 'lower-alpha':\r\n return LIST_STYLE_TYPE.LOWER_ALPHA;\r\n case 'upper-alpha':\r\n return LIST_STYLE_TYPE.UPPER_ALPHA;\r\n case 'arabic-indic':\r\n return LIST_STYLE_TYPE.ARABIC_INDIC;\r\n case 'armenian':\r\n return LIST_STYLE_TYPE.ARMENIAN;\r\n case 'bengali':\r\n return LIST_STYLE_TYPE.BENGALI;\r\n case 'cambodian':\r\n return LIST_STYLE_TYPE.CAMBODIAN;\r\n case 'cjk-earthly-branch':\r\n return LIST_STYLE_TYPE.CJK_EARTHLY_BRANCH;\r\n case 'cjk-heavenly-stem':\r\n return LIST_STYLE_TYPE.CJK_HEAVENLY_STEM;\r\n case 'cjk-ideographic':\r\n return LIST_STYLE_TYPE.CJK_IDEOGRAPHIC;\r\n case 'devanagari':\r\n return LIST_STYLE_TYPE.DEVANAGARI;\r\n case 'ethiopic-numeric':\r\n return LIST_STYLE_TYPE.ETHIOPIC_NUMERIC;\r\n case 'georgian':\r\n return LIST_STYLE_TYPE.GEORGIAN;\r\n case 'gujarati':\r\n return LIST_STYLE_TYPE.GUJARATI;\r\n case 'gurmukhi':\r\n return LIST_STYLE_TYPE.GURMUKHI;\r\n case 'hebrew':\r\n return LIST_STYLE_TYPE.HEBREW;\r\n case 'hiragana':\r\n return LIST_STYLE_TYPE.HIRAGANA;\r\n case 'hiragana-iroha':\r\n return LIST_STYLE_TYPE.HIRAGANA_IROHA;\r\n case 'japanese-formal':\r\n return LIST_STYLE_TYPE.JAPANESE_FORMAL;\r\n case 'japanese-informal':\r\n return LIST_STYLE_TYPE.JAPANESE_INFORMAL;\r\n case 'kannada':\r\n return LIST_STYLE_TYPE.KANNADA;\r\n case 'katakana':\r\n return LIST_STYLE_TYPE.KATAKANA;\r\n case 'katakana-iroha':\r\n return LIST_STYLE_TYPE.KATAKANA_IROHA;\r\n case 'khmer':\r\n return LIST_STYLE_TYPE.KHMER;\r\n case 'korean-hangul-formal':\r\n return LIST_STYLE_TYPE.KOREAN_HANGUL_FORMAL;\r\n case 'korean-hanja-formal':\r\n return LIST_STYLE_TYPE.KOREAN_HANJA_FORMAL;\r\n case 'korean-hanja-informal':\r\n return LIST_STYLE_TYPE.KOREAN_HANJA_INFORMAL;\r\n case 'lao':\r\n return LIST_STYLE_TYPE.LAO;\r\n case 'lower-armenian':\r\n return LIST_STYLE_TYPE.LOWER_ARMENIAN;\r\n case 'malayalam':\r\n return LIST_STYLE_TYPE.MALAYALAM;\r\n case 'mongolian':\r\n return LIST_STYLE_TYPE.MONGOLIAN;\r\n case 'myanmar':\r\n return LIST_STYLE_TYPE.MYANMAR;\r\n case 'oriya':\r\n return LIST_STYLE_TYPE.ORIYA;\r\n case 'persian':\r\n return LIST_STYLE_TYPE.PERSIAN;\r\n case 'simp-chinese-formal':\r\n return LIST_STYLE_TYPE.SIMP_CHINESE_FORMAL;\r\n case 'simp-chinese-informal':\r\n return LIST_STYLE_TYPE.SIMP_CHINESE_INFORMAL;\r\n case 'tamil':\r\n return LIST_STYLE_TYPE.TAMIL;\r\n case 'telugu':\r\n return LIST_STYLE_TYPE.TELUGU;\r\n case 'thai':\r\n return LIST_STYLE_TYPE.THAI;\r\n case 'tibetan':\r\n return LIST_STYLE_TYPE.TIBETAN;\r\n case 'trad-chinese-formal':\r\n return LIST_STYLE_TYPE.TRAD_CHINESE_FORMAL;\r\n case 'trad-chinese-informal':\r\n return LIST_STYLE_TYPE.TRAD_CHINESE_INFORMAL;\r\n case 'upper-armenian':\r\n return LIST_STYLE_TYPE.UPPER_ARMENIAN;\r\n case 'disclosure-open':\r\n return LIST_STYLE_TYPE.DISCLOSURE_OPEN;\r\n case 'disclosure-closed':\r\n return LIST_STYLE_TYPE.DISCLOSURE_CLOSED;\r\n case 'none':\r\n default:\r\n return LIST_STYLE_TYPE.NONE;\r\n }\r\n }\r\n };\n\n var marginForSide = function (side) { return ({\r\n name: \"margin-\" + side,\r\n initialValue: '0',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TOKEN_VALUE\r\n }); };\r\n var marginTop = marginForSide('top');\r\n var marginRight = marginForSide('right');\r\n var marginBottom = marginForSide('bottom');\r\n var marginLeft = marginForSide('left');\n\n var OVERFLOW;\r\n (function (OVERFLOW) {\r\n OVERFLOW[OVERFLOW[\"VISIBLE\"] = 0] = \"VISIBLE\";\r\n OVERFLOW[OVERFLOW[\"HIDDEN\"] = 1] = \"HIDDEN\";\r\n OVERFLOW[OVERFLOW[\"SCROLL\"] = 2] = \"SCROLL\";\r\n OVERFLOW[OVERFLOW[\"AUTO\"] = 3] = \"AUTO\";\r\n })(OVERFLOW || (OVERFLOW = {}));\r\n var overflow = {\r\n name: 'overflow',\r\n initialValue: 'visible',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return tokens.filter(isIdentToken).map(function (overflow) {\r\n switch (overflow.value) {\r\n case 'hidden':\r\n return OVERFLOW.HIDDEN;\r\n case 'scroll':\r\n return OVERFLOW.SCROLL;\r\n case 'auto':\r\n return OVERFLOW.AUTO;\r\n case 'visible':\r\n default:\r\n return OVERFLOW.VISIBLE;\r\n }\r\n });\r\n }\r\n };\n\n var OVERFLOW_WRAP;\r\n (function (OVERFLOW_WRAP) {\r\n OVERFLOW_WRAP[\"NORMAL\"] = \"normal\";\r\n OVERFLOW_WRAP[\"BREAK_WORD\"] = \"break-word\";\r\n })(OVERFLOW_WRAP || (OVERFLOW_WRAP = {}));\r\n var overflowWrap = {\r\n name: 'overflow-wrap',\r\n initialValue: 'normal',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (overflow) {\r\n switch (overflow) {\r\n case 'break-word':\r\n return OVERFLOW_WRAP.BREAK_WORD;\r\n case 'normal':\r\n default:\r\n return OVERFLOW_WRAP.NORMAL;\r\n }\r\n }\r\n };\n\n var paddingForSide = function (side) { return ({\r\n name: \"padding-\" + side,\r\n initialValue: '0',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TYPE_VALUE,\r\n format: 'length-percentage'\r\n }); };\r\n var paddingTop = paddingForSide('top');\r\n var paddingRight = paddingForSide('right');\r\n var paddingBottom = paddingForSide('bottom');\r\n var paddingLeft = paddingForSide('left');\n\n var TEXT_ALIGN;\r\n (function (TEXT_ALIGN) {\r\n TEXT_ALIGN[TEXT_ALIGN[\"LEFT\"] = 0] = \"LEFT\";\r\n TEXT_ALIGN[TEXT_ALIGN[\"CENTER\"] = 1] = \"CENTER\";\r\n TEXT_ALIGN[TEXT_ALIGN[\"RIGHT\"] = 2] = \"RIGHT\";\r\n })(TEXT_ALIGN || (TEXT_ALIGN = {}));\r\n var textAlign = {\r\n name: 'text-align',\r\n initialValue: 'left',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (textAlign) {\r\n switch (textAlign) {\r\n case 'right':\r\n return TEXT_ALIGN.RIGHT;\r\n case 'center':\r\n case 'justify':\r\n return TEXT_ALIGN.CENTER;\r\n case 'left':\r\n default:\r\n return TEXT_ALIGN.LEFT;\r\n }\r\n }\r\n };\n\n var POSITION;\r\n (function (POSITION) {\r\n POSITION[POSITION[\"STATIC\"] = 0] = \"STATIC\";\r\n POSITION[POSITION[\"RELATIVE\"] = 1] = \"RELATIVE\";\r\n POSITION[POSITION[\"ABSOLUTE\"] = 2] = \"ABSOLUTE\";\r\n POSITION[POSITION[\"FIXED\"] = 3] = \"FIXED\";\r\n POSITION[POSITION[\"STICKY\"] = 4] = \"STICKY\";\r\n })(POSITION || (POSITION = {}));\r\n var position = {\r\n name: 'position',\r\n initialValue: 'static',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (position) {\r\n switch (position) {\r\n case 'relative':\r\n return POSITION.RELATIVE;\r\n case 'absolute':\r\n return POSITION.ABSOLUTE;\r\n case 'fixed':\r\n return POSITION.FIXED;\r\n case 'sticky':\r\n return POSITION.STICKY;\r\n }\r\n return POSITION.STATIC;\r\n }\r\n };\n\n var textShadow = {\r\n name: 'text-shadow',\r\n initialValue: 'none',\r\n type: PropertyDescriptorParsingType.LIST,\r\n prefix: false,\r\n parse: function (tokens) {\r\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\r\n return [];\r\n }\r\n return parseFunctionArgs(tokens).map(function (values) {\r\n var shadow = {\r\n color: COLORS.TRANSPARENT,\r\n offsetX: ZERO_LENGTH,\r\n offsetY: ZERO_LENGTH,\r\n blur: ZERO_LENGTH\r\n };\r\n var c = 0;\r\n for (var i = 0; i < values.length; i++) {\r\n var token = values[i];\r\n if (isLength(token)) {\r\n if (c === 0) {\r\n shadow.offsetX = token;\r\n }\r\n else if (c === 1) {\r\n shadow.offsetY = token;\r\n }\r\n else {\r\n shadow.blur = token;\r\n }\r\n c++;\r\n }\r\n else {\r\n shadow.color = color.parse(token);\r\n }\r\n }\r\n return shadow;\r\n });\r\n }\r\n };\n\n var TEXT_TRANSFORM;\r\n (function (TEXT_TRANSFORM) {\r\n TEXT_TRANSFORM[TEXT_TRANSFORM[\"NONE\"] = 0] = \"NONE\";\r\n TEXT_TRANSFORM[TEXT_TRANSFORM[\"LOWERCASE\"] = 1] = \"LOWERCASE\";\r\n TEXT_TRANSFORM[TEXT_TRANSFORM[\"UPPERCASE\"] = 2] = \"UPPERCASE\";\r\n TEXT_TRANSFORM[TEXT_TRANSFORM[\"CAPITALIZE\"] = 3] = \"CAPITALIZE\";\r\n })(TEXT_TRANSFORM || (TEXT_TRANSFORM = {}));\r\n var textTransform = {\r\n name: 'text-transform',\r\n initialValue: 'none',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (textTransform) {\r\n switch (textTransform) {\r\n case 'uppercase':\r\n return TEXT_TRANSFORM.UPPERCASE;\r\n case 'lowercase':\r\n return TEXT_TRANSFORM.LOWERCASE;\r\n case 'capitalize':\r\n return TEXT_TRANSFORM.CAPITALIZE;\r\n }\r\n return TEXT_TRANSFORM.NONE;\r\n }\r\n };\n\n var transform = {\r\n name: 'transform',\r\n initialValue: 'none',\r\n prefix: true,\r\n type: PropertyDescriptorParsingType.VALUE,\r\n parse: function (token) {\r\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') {\r\n return null;\r\n }\r\n if (token.type === TokenType.FUNCTION) {\r\n var transformFunction = SUPPORTED_TRANSFORM_FUNCTIONS[token.name];\r\n if (typeof transformFunction === 'undefined') {\r\n throw new Error(\"Attempting to parse an unsupported transform function \\\"\" + token.name + \"\\\"\");\r\n }\r\n return transformFunction(token.values);\r\n }\r\n return null;\r\n }\r\n };\r\n var matrix = function (args) {\r\n var values = args.filter(function (arg) { return arg.type === TokenType.NUMBER_TOKEN; }).map(function (arg) { return arg.number; });\r\n return values.length === 6 ? values : null;\r\n };\r\n // doesn't support 3D transforms at the moment\r\n var matrix3d = function (args) {\r\n var values = args.filter(function (arg) { return arg.type === TokenType.NUMBER_TOKEN; }).map(function (arg) { return arg.number; });\r\n var a1 = values[0], b1 = values[1], _a = values[2], _b = values[3], a2 = values[4], b2 = values[5], _c = values[6], _d = values[7], _e = values[8], _f = values[9], _g = values[10], _h = values[11], a4 = values[12], b4 = values[13], _j = values[14], _k = values[15];\r\n return values.length === 16 ? [a1, b1, a2, b2, a4, b4] : null;\r\n };\r\n var SUPPORTED_TRANSFORM_FUNCTIONS = {\r\n matrix: matrix,\r\n matrix3d: matrix3d\r\n };\n\n var DEFAULT_VALUE = {\r\n type: TokenType.PERCENTAGE_TOKEN,\r\n number: 50,\r\n flags: FLAG_INTEGER\r\n };\r\n var DEFAULT = [DEFAULT_VALUE, DEFAULT_VALUE];\r\n var transformOrigin = {\r\n name: 'transform-origin',\r\n initialValue: '50% 50%',\r\n prefix: true,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n var origins = tokens.filter(isLengthPercentage);\r\n if (origins.length !== 2) {\r\n return DEFAULT;\r\n }\r\n return [origins[0], origins[1]];\r\n }\r\n };\n\n var VISIBILITY;\r\n (function (VISIBILITY) {\r\n VISIBILITY[VISIBILITY[\"VISIBLE\"] = 0] = \"VISIBLE\";\r\n VISIBILITY[VISIBILITY[\"HIDDEN\"] = 1] = \"HIDDEN\";\r\n VISIBILITY[VISIBILITY[\"COLLAPSE\"] = 2] = \"COLLAPSE\";\r\n })(VISIBILITY || (VISIBILITY = {}));\r\n var visibility = {\r\n name: 'visible',\r\n initialValue: 'none',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (visibility) {\r\n switch (visibility) {\r\n case 'hidden':\r\n return VISIBILITY.HIDDEN;\r\n case 'collapse':\r\n return VISIBILITY.COLLAPSE;\r\n case 'visible':\r\n default:\r\n return VISIBILITY.VISIBLE;\r\n }\r\n }\r\n };\n\n var WORD_BREAK;\r\n (function (WORD_BREAK) {\r\n WORD_BREAK[\"NORMAL\"] = \"normal\";\r\n WORD_BREAK[\"BREAK_ALL\"] = \"break-all\";\r\n WORD_BREAK[\"KEEP_ALL\"] = \"keep-all\";\r\n })(WORD_BREAK || (WORD_BREAK = {}));\r\n var wordBreak = {\r\n name: 'word-break',\r\n initialValue: 'normal',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (wordBreak) {\r\n switch (wordBreak) {\r\n case 'break-all':\r\n return WORD_BREAK.BREAK_ALL;\r\n case 'keep-all':\r\n return WORD_BREAK.KEEP_ALL;\r\n case 'normal':\r\n default:\r\n return WORD_BREAK.NORMAL;\r\n }\r\n }\r\n };\n\n var zIndex = {\r\n name: 'z-index',\r\n initialValue: 'auto',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.VALUE,\r\n parse: function (token) {\r\n if (token.type === TokenType.IDENT_TOKEN) {\r\n return { auto: true, order: 0 };\r\n }\r\n if (isNumberToken(token)) {\r\n return { auto: false, order: token.number };\r\n }\r\n throw new Error(\"Invalid z-index number parsed\");\r\n }\r\n };\n\n var opacity = {\r\n name: 'opacity',\r\n initialValue: '1',\r\n type: PropertyDescriptorParsingType.VALUE,\r\n prefix: false,\r\n parse: function (token) {\r\n if (isNumberToken(token)) {\r\n return token.number;\r\n }\r\n return 1;\r\n }\r\n };\n\n var textDecorationColor = {\r\n name: \"text-decoration-color\",\r\n initialValue: 'transparent',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TYPE_VALUE,\r\n format: 'color'\r\n };\n\n var textDecorationLine = {\r\n name: 'text-decoration-line',\r\n initialValue: 'none',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return tokens\r\n .filter(isIdentToken)\r\n .map(function (token) {\r\n switch (token.value) {\r\n case 'underline':\r\n return 1 /* UNDERLINE */;\r\n case 'overline':\r\n return 2 /* OVERLINE */;\r\n case 'line-through':\r\n return 3 /* LINE_THROUGH */;\r\n case 'none':\r\n return 4 /* BLINK */;\r\n }\r\n return 0 /* NONE */;\r\n })\r\n .filter(function (line) { return line !== 0 /* NONE */; });\r\n }\r\n };\n\n var fontFamily = {\r\n name: \"font-family\",\r\n initialValue: '',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n var accumulator = [];\r\n var results = [];\r\n tokens.forEach(function (token) {\r\n switch (token.type) {\r\n case TokenType.IDENT_TOKEN:\r\n case TokenType.STRING_TOKEN:\r\n accumulator.push(token.value);\r\n break;\r\n case TokenType.NUMBER_TOKEN:\r\n accumulator.push(token.number.toString());\r\n break;\r\n case TokenType.COMMA_TOKEN:\r\n results.push(accumulator.join(' '));\r\n accumulator.length = 0;\r\n break;\r\n }\r\n });\r\n if (accumulator.length) {\r\n results.push(accumulator.join(' '));\r\n }\r\n return results.map(function (result) { return (result.indexOf(' ') === -1 ? result : \"'\" + result + \"'\"); });\r\n }\r\n };\n\n var fontSize = {\r\n name: \"font-size\",\r\n initialValue: '0',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TYPE_VALUE,\r\n format: 'length'\r\n };\n\n var fontWeight = {\r\n name: 'font-weight',\r\n initialValue: 'normal',\r\n type: PropertyDescriptorParsingType.VALUE,\r\n prefix: false,\r\n parse: function (token) {\r\n if (isNumberToken(token)) {\r\n return token.number;\r\n }\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case 'bold':\r\n return 700;\r\n case 'normal':\r\n default:\r\n return 400;\r\n }\r\n }\r\n return 400;\r\n }\r\n };\n\n var fontVariant = {\r\n name: 'font-variant',\r\n initialValue: 'none',\r\n type: PropertyDescriptorParsingType.LIST,\r\n prefix: false,\r\n parse: function (tokens) {\r\n return tokens.filter(isIdentToken).map(function (token) { return token.value; });\r\n }\r\n };\n\n var FONT_STYLE;\r\n (function (FONT_STYLE) {\r\n FONT_STYLE[\"NORMAL\"] = \"normal\";\r\n FONT_STYLE[\"ITALIC\"] = \"italic\";\r\n FONT_STYLE[\"OBLIQUE\"] = \"oblique\";\r\n })(FONT_STYLE || (FONT_STYLE = {}));\r\n var fontStyle = {\r\n name: 'font-style',\r\n initialValue: 'normal',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (overflow) {\r\n switch (overflow) {\r\n case 'oblique':\r\n return FONT_STYLE.OBLIQUE;\r\n case 'italic':\r\n return FONT_STYLE.ITALIC;\r\n case 'normal':\r\n default:\r\n return FONT_STYLE.NORMAL;\r\n }\r\n }\r\n };\n\n var contains = function (bit, value) { return (bit & value) !== 0; };\n\n var content = {\r\n name: 'content',\r\n initialValue: 'none',\r\n type: PropertyDescriptorParsingType.LIST,\r\n prefix: false,\r\n parse: function (tokens) {\r\n if (tokens.length === 0) {\r\n return [];\r\n }\r\n var first = tokens[0];\r\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\r\n return [];\r\n }\r\n return tokens;\r\n }\r\n };\n\n var counterIncrement = {\r\n name: 'counter-increment',\r\n initialValue: 'none',\r\n prefix: true,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n if (tokens.length === 0) {\r\n return null;\r\n }\r\n var first = tokens[0];\r\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\r\n return null;\r\n }\r\n var increments = [];\r\n var filtered = tokens.filter(nonWhiteSpace);\r\n for (var i = 0; i < filtered.length; i++) {\r\n var counter = filtered[i];\r\n var next = filtered[i + 1];\r\n if (counter.type === TokenType.IDENT_TOKEN) {\r\n var increment = next && isNumberToken(next) ? next.number : 1;\r\n increments.push({ counter: counter.value, increment: increment });\r\n }\r\n }\r\n return increments;\r\n }\r\n };\n\n var counterReset = {\r\n name: 'counter-reset',\r\n initialValue: 'none',\r\n prefix: true,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n if (tokens.length === 0) {\r\n return [];\r\n }\r\n var resets = [];\r\n var filtered = tokens.filter(nonWhiteSpace);\r\n for (var i = 0; i < filtered.length; i++) {\r\n var counter = filtered[i];\r\n var next = filtered[i + 1];\r\n if (isIdentToken(counter) && counter.value !== 'none') {\r\n var reset = next && isNumberToken(next) ? next.number : 0;\r\n resets.push({ counter: counter.value, reset: reset });\r\n }\r\n }\r\n return resets;\r\n }\r\n };\n\n var quotes = {\r\n name: 'quotes',\r\n initialValue: 'none',\r\n prefix: true,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n if (tokens.length === 0) {\r\n return null;\r\n }\r\n var first = tokens[0];\r\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\r\n return null;\r\n }\r\n var quotes = [];\r\n var filtered = tokens.filter(isStringToken);\r\n if (filtered.length % 2 !== 0) {\r\n return null;\r\n }\r\n for (var i = 0; i < filtered.length; i += 2) {\r\n var open_1 = filtered[i].value;\r\n var close_1 = filtered[i + 1].value;\r\n quotes.push({ open: open_1, close: close_1 });\r\n }\r\n return quotes;\r\n }\r\n };\r\n var getQuote = function (quotes, depth, open) {\r\n if (!quotes) {\r\n return '';\r\n }\r\n var quote = quotes[Math.min(depth, quotes.length - 1)];\r\n if (!quote) {\r\n return '';\r\n }\r\n return open ? quote.open : quote.close;\r\n };\n\n var boxShadow = {\r\n name: 'box-shadow',\r\n initialValue: 'none',\r\n type: PropertyDescriptorParsingType.LIST,\r\n prefix: false,\r\n parse: function (tokens) {\r\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\r\n return [];\r\n }\r\n return parseFunctionArgs(tokens).map(function (values) {\r\n var shadow = {\r\n color: 0x000000ff,\r\n offsetX: ZERO_LENGTH,\r\n offsetY: ZERO_LENGTH,\r\n blur: ZERO_LENGTH,\r\n spread: ZERO_LENGTH,\r\n inset: false\r\n };\r\n var c = 0;\r\n for (var i = 0; i < values.length; i++) {\r\n var token = values[i];\r\n if (isIdentWithValue(token, 'inset')) {\r\n shadow.inset = true;\r\n }\r\n else if (isLength(token)) {\r\n if (c === 0) {\r\n shadow.offsetX = token;\r\n }\r\n else if (c === 1) {\r\n shadow.offsetY = token;\r\n }\r\n else if (c === 2) {\r\n shadow.blur = token;\r\n }\r\n else {\r\n shadow.spread = token;\r\n }\r\n c++;\r\n }\r\n else {\r\n shadow.color = color.parse(token);\r\n }\r\n }\r\n return shadow;\r\n });\r\n }\r\n };\n\n var CSSParsedDeclaration = /** @class */ (function () {\r\n function CSSParsedDeclaration(declaration) {\r\n this.backgroundClip = parse(backgroundClip, declaration.backgroundClip);\r\n this.backgroundColor = parse(backgroundColor, declaration.backgroundColor);\r\n this.backgroundImage = parse(backgroundImage, declaration.backgroundImage);\r\n this.backgroundOrigin = parse(backgroundOrigin, declaration.backgroundOrigin);\r\n this.backgroundPosition = parse(backgroundPosition, declaration.backgroundPosition);\r\n this.backgroundRepeat = parse(backgroundRepeat, declaration.backgroundRepeat);\r\n this.backgroundSize = parse(backgroundSize, declaration.backgroundSize);\r\n this.borderTopColor = parse(borderTopColor, declaration.borderTopColor);\r\n this.borderRightColor = parse(borderRightColor, declaration.borderRightColor);\r\n this.borderBottomColor = parse(borderBottomColor, declaration.borderBottomColor);\r\n this.borderLeftColor = parse(borderLeftColor, declaration.borderLeftColor);\r\n this.borderTopLeftRadius = parse(borderTopLeftRadius, declaration.borderTopLeftRadius);\r\n this.borderTopRightRadius = parse(borderTopRightRadius, declaration.borderTopRightRadius);\r\n this.borderBottomRightRadius = parse(borderBottomRightRadius, declaration.borderBottomRightRadius);\r\n this.borderBottomLeftRadius = parse(borderBottomLeftRadius, declaration.borderBottomLeftRadius);\r\n this.borderTopStyle = parse(borderTopStyle, declaration.borderTopStyle);\r\n this.borderRightStyle = parse(borderRightStyle, declaration.borderRightStyle);\r\n this.borderBottomStyle = parse(borderBottomStyle, declaration.borderBottomStyle);\r\n this.borderLeftStyle = parse(borderLeftStyle, declaration.borderLeftStyle);\r\n this.borderTopWidth = parse(borderTopWidth, declaration.borderTopWidth);\r\n this.borderRightWidth = parse(borderRightWidth, declaration.borderRightWidth);\r\n this.borderBottomWidth = parse(borderBottomWidth, declaration.borderBottomWidth);\r\n this.borderLeftWidth = parse(borderLeftWidth, declaration.borderLeftWidth);\r\n this.boxShadow = parse(boxShadow, declaration.boxShadow);\r\n this.color = parse(color$1, declaration.color);\r\n this.display = parse(display, declaration.display);\r\n this.float = parse(float, declaration.cssFloat);\r\n this.fontFamily = parse(fontFamily, declaration.fontFamily);\r\n this.fontSize = parse(fontSize, declaration.fontSize);\r\n this.fontStyle = parse(fontStyle, declaration.fontStyle);\r\n this.fontVariant = parse(fontVariant, declaration.fontVariant);\r\n this.fontWeight = parse(fontWeight, declaration.fontWeight);\r\n this.letterSpacing = parse(letterSpacing, declaration.letterSpacing);\r\n this.lineBreak = parse(lineBreak, declaration.lineBreak);\r\n this.lineHeight = parse(lineHeight, declaration.lineHeight);\r\n this.listStyleImage = parse(listStyleImage, declaration.listStyleImage);\r\n this.listStylePosition = parse(listStylePosition, declaration.listStylePosition);\r\n this.listStyleType = parse(listStyleType, declaration.listStyleType);\r\n this.marginTop = parse(marginTop, declaration.marginTop);\r\n this.marginRight = parse(marginRight, declaration.marginRight);\r\n this.marginBottom = parse(marginBottom, declaration.marginBottom);\r\n this.marginLeft = parse(marginLeft, declaration.marginLeft);\r\n this.opacity = parse(opacity, declaration.opacity);\r\n var overflowTuple = parse(overflow, declaration.overflow);\r\n this.overflowX = overflowTuple[0];\r\n this.overflowY = overflowTuple[overflowTuple.length > 1 ? 1 : 0];\r\n this.overflowWrap = parse(overflowWrap, declaration.overflowWrap);\r\n this.paddingTop = parse(paddingTop, declaration.paddingTop);\r\n this.paddingRight = parse(paddingRight, declaration.paddingRight);\r\n this.paddingBottom = parse(paddingBottom, declaration.paddingBottom);\r\n this.paddingLeft = parse(paddingLeft, declaration.paddingLeft);\r\n this.position = parse(position, declaration.position);\r\n this.textAlign = parse(textAlign, declaration.textAlign);\r\n this.textDecorationColor = parse(textDecorationColor, declaration.textDecorationColor || declaration.color);\r\n this.textDecorationLine = parse(textDecorationLine, declaration.textDecorationLine);\r\n this.textShadow = parse(textShadow, declaration.textShadow);\r\n this.textTransform = parse(textTransform, declaration.textTransform);\r\n this.transform = parse(transform, declaration.transform);\r\n this.transformOrigin = parse(transformOrigin, declaration.transformOrigin);\r\n this.visibility = parse(visibility, declaration.visibility);\r\n this.wordBreak = parse(wordBreak, declaration.wordBreak);\r\n this.zIndex = parse(zIndex, declaration.zIndex);\r\n }\r\n CSSParsedDeclaration.prototype.isVisible = function () {\r\n return this.display > 0 && this.opacity > 0 && this.visibility === VISIBILITY.VISIBLE;\r\n };\r\n CSSParsedDeclaration.prototype.isTransparent = function () {\r\n return isTransparent(this.backgroundColor);\r\n };\r\n CSSParsedDeclaration.prototype.isTransformed = function () {\r\n return this.transform !== null;\r\n };\r\n CSSParsedDeclaration.prototype.isPositioned = function () {\r\n return this.position !== POSITION.STATIC;\r\n };\r\n CSSParsedDeclaration.prototype.isPositionedWithZIndex = function () {\r\n return this.isPositioned() && !this.zIndex.auto;\r\n };\r\n CSSParsedDeclaration.prototype.isFloating = function () {\r\n return this.float !== FLOAT.NONE;\r\n };\r\n CSSParsedDeclaration.prototype.isInlineLevel = function () {\r\n return (contains(this.display, 4 /* INLINE */) ||\r\n contains(this.display, 33554432 /* INLINE_BLOCK */) ||\r\n contains(this.display, 268435456 /* INLINE_FLEX */) ||\r\n contains(this.display, 536870912 /* INLINE_GRID */) ||\r\n contains(this.display, 67108864 /* INLINE_LIST_ITEM */) ||\r\n contains(this.display, 134217728 /* INLINE_TABLE */));\r\n };\r\n return CSSParsedDeclaration;\r\n }());\r\n var CSSParsedPseudoDeclaration = /** @class */ (function () {\r\n function CSSParsedPseudoDeclaration(declaration) {\r\n this.content = parse(content, declaration.content);\r\n this.quotes = parse(quotes, declaration.quotes);\r\n }\r\n return CSSParsedPseudoDeclaration;\r\n }());\r\n var CSSParsedCounterDeclaration = /** @class */ (function () {\r\n function CSSParsedCounterDeclaration(declaration) {\r\n this.counterIncrement = parse(counterIncrement, declaration.counterIncrement);\r\n this.counterReset = parse(counterReset, declaration.counterReset);\r\n }\r\n return CSSParsedCounterDeclaration;\r\n }());\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n var parse = function (descriptor, style) {\r\n var tokenizer = new Tokenizer();\r\n var value = style !== null && typeof style !== 'undefined' ? style.toString() : descriptor.initialValue;\r\n tokenizer.write(value);\r\n var parser = new Parser(tokenizer.read());\r\n switch (descriptor.type) {\r\n case PropertyDescriptorParsingType.IDENT_VALUE:\r\n var token = parser.parseComponentValue();\r\n return descriptor.parse(isIdentToken(token) ? token.value : descriptor.initialValue);\r\n case PropertyDescriptorParsingType.VALUE:\r\n return descriptor.parse(parser.parseComponentValue());\r\n case PropertyDescriptorParsingType.LIST:\r\n return descriptor.parse(parser.parseComponentValues());\r\n case PropertyDescriptorParsingType.TOKEN_VALUE:\r\n return parser.parseComponentValue();\r\n case PropertyDescriptorParsingType.TYPE_VALUE:\r\n switch (descriptor.format) {\r\n case 'angle':\r\n return angle.parse(parser.parseComponentValue());\r\n case 'color':\r\n return color.parse(parser.parseComponentValue());\r\n case 'image':\r\n return image.parse(parser.parseComponentValue());\r\n case 'length':\r\n var length_1 = parser.parseComponentValue();\r\n return isLength(length_1) ? length_1 : ZERO_LENGTH;\r\n case 'length-percentage':\r\n var value_1 = parser.parseComponentValue();\r\n return isLengthPercentage(value_1) ? value_1 : ZERO_LENGTH;\r\n }\r\n }\r\n throw new Error(\"Attempting to parse unsupported css format type \" + descriptor.format);\r\n };\n\n var ElementContainer = /** @class */ (function () {\r\n function ElementContainer(element) {\r\n this.styles = new CSSParsedDeclaration(window.getComputedStyle(element, null));\r\n this.textNodes = [];\r\n this.elements = [];\r\n if (this.styles.transform !== null && isHTMLElementNode(element)) {\r\n // getBoundingClientRect takes transforms into account\r\n element.style.transform = 'none';\r\n }\r\n this.bounds = parseBounds(element);\r\n this.flags = 0;\r\n }\r\n return ElementContainer;\r\n }());\n\n var TextBounds = /** @class */ (function () {\r\n function TextBounds(text, bounds) {\r\n this.text = text;\r\n this.bounds = bounds;\r\n }\r\n return TextBounds;\r\n }());\r\n var parseTextBounds = function (value, styles, node) {\r\n var textList = breakText(value, styles);\r\n var textBounds = [];\r\n var offset = 0;\r\n textList.forEach(function (text) {\r\n if (styles.textDecorationLine.length || text.trim().length > 0) {\r\n if (FEATURES.SUPPORT_RANGE_BOUNDS) {\r\n textBounds.push(new TextBounds(text, getRangeBounds(node, offset, text.length)));\r\n }\r\n else {\r\n var replacementNode = node.splitText(text.length);\r\n textBounds.push(new TextBounds(text, getWrapperBounds(node)));\r\n node = replacementNode;\r\n }\r\n }\r\n else if (!FEATURES.SUPPORT_RANGE_BOUNDS) {\r\n node = node.splitText(text.length);\r\n }\r\n offset += text.length;\r\n });\r\n return textBounds;\r\n };\r\n var getWrapperBounds = function (node) {\r\n var ownerDocument = node.ownerDocument;\r\n if (ownerDocument) {\r\n var wrapper = ownerDocument.createElement('html2canvaswrapper');\r\n wrapper.appendChild(node.cloneNode(true));\r\n var parentNode = node.parentNode;\r\n if (parentNode) {\r\n parentNode.replaceChild(wrapper, node);\r\n var bounds = parseBounds(wrapper);\r\n if (wrapper.firstChild) {\r\n parentNode.replaceChild(wrapper.firstChild, wrapper);\r\n }\r\n return bounds;\r\n }\r\n }\r\n return new Bounds(0, 0, 0, 0);\r\n };\r\n var getRangeBounds = function (node, offset, length) {\r\n var ownerDocument = node.ownerDocument;\r\n if (!ownerDocument) {\r\n throw new Error('Node has no owner document');\r\n }\r\n var range = ownerDocument.createRange();\r\n range.setStart(node, offset);\r\n range.setEnd(node, offset + length);\r\n return Bounds.fromClientRect(range.getBoundingClientRect());\r\n };\r\n var breakText = function (value, styles) {\r\n return styles.letterSpacing !== 0 ? toCodePoints(value).map(function (i) { return fromCodePoint(i); }) : breakWords(value, styles);\r\n };\r\n var breakWords = function (str, styles) {\r\n var breaker = LineBreaker(str, {\r\n lineBreak: styles.lineBreak,\r\n wordBreak: styles.overflowWrap === OVERFLOW_WRAP.BREAK_WORD ? 'break-word' : styles.wordBreak\r\n });\r\n var words = [];\r\n var bk;\r\n while (!(bk = breaker.next()).done) {\r\n if (bk.value) {\r\n words.push(bk.value.slice());\r\n }\r\n }\r\n return words;\r\n };\n\n var TextContainer = /** @class */ (function () {\r\n function TextContainer(node, styles) {\r\n this.text = transform$1(node.data, styles.textTransform);\r\n this.textBounds = parseTextBounds(this.text, styles, node);\r\n }\r\n return TextContainer;\r\n }());\r\n var transform$1 = function (text, transform) {\r\n switch (transform) {\r\n case TEXT_TRANSFORM.LOWERCASE:\r\n return text.toLowerCase();\r\n case TEXT_TRANSFORM.CAPITALIZE:\r\n return text.replace(CAPITALIZE, capitalize);\r\n case TEXT_TRANSFORM.UPPERCASE:\r\n return text.toUpperCase();\r\n default:\r\n return text;\r\n }\r\n };\r\n var CAPITALIZE = /(^|\\s|:|-|\\(|\\))([a-z])/g;\r\n var capitalize = function (m, p1, p2) {\r\n if (m.length > 0) {\r\n return p1 + p2.toUpperCase();\r\n }\r\n return m;\r\n };\n\n var ImageElementContainer = /** @class */ (function (_super) {\r\n __extends(ImageElementContainer, _super);\r\n function ImageElementContainer(img) {\r\n var _this = _super.call(this, img) || this;\r\n _this.src = img.currentSrc || img.src;\r\n _this.intrinsicWidth = img.naturalWidth;\r\n _this.intrinsicHeight = img.naturalHeight;\r\n CacheStorage.getInstance().addImage(_this.src);\r\n return _this;\r\n }\r\n return ImageElementContainer;\r\n }(ElementContainer));\n\n var CanvasElementContainer = /** @class */ (function (_super) {\r\n __extends(CanvasElementContainer, _super);\r\n function CanvasElementContainer(canvas) {\r\n var _this = _super.call(this, canvas) || this;\r\n _this.canvas = canvas;\r\n _this.intrinsicWidth = canvas.width;\r\n _this.intrinsicHeight = canvas.height;\r\n return _this;\r\n }\r\n return CanvasElementContainer;\r\n }(ElementContainer));\n\n var SVGElementContainer = /** @class */ (function (_super) {\r\n __extends(SVGElementContainer, _super);\r\n function SVGElementContainer(img) {\r\n var _this = _super.call(this, img) || this;\r\n var s = new XMLSerializer();\r\n _this.svg = \"data:image/svg+xml,\" + encodeURIComponent(s.serializeToString(img));\r\n _this.intrinsicWidth = img.width.baseVal.value;\r\n _this.intrinsicHeight = img.height.baseVal.value;\r\n CacheStorage.getInstance().addImage(_this.svg);\r\n return _this;\r\n }\r\n return SVGElementContainer;\r\n }(ElementContainer));\n\n var LIElementContainer = /** @class */ (function (_super) {\r\n __extends(LIElementContainer, _super);\r\n function LIElementContainer(element) {\r\n var _this = _super.call(this, element) || this;\r\n _this.value = element.value;\r\n return _this;\r\n }\r\n return LIElementContainer;\r\n }(ElementContainer));\n\n var OLElementContainer = /** @class */ (function (_super) {\r\n __extends(OLElementContainer, _super);\r\n function OLElementContainer(element) {\r\n var _this = _super.call(this, element) || this;\r\n _this.start = element.start;\r\n _this.reversed = typeof element.reversed === 'boolean' && element.reversed === true;\r\n return _this;\r\n }\r\n return OLElementContainer;\r\n }(ElementContainer));\n\n var CHECKBOX_BORDER_RADIUS = [\r\n {\r\n type: TokenType.DIMENSION_TOKEN,\r\n flags: 0,\r\n unit: 'px',\r\n number: 3\r\n }\r\n ];\r\n var RADIO_BORDER_RADIUS = [\r\n {\r\n type: TokenType.PERCENTAGE_TOKEN,\r\n flags: 0,\r\n number: 50\r\n }\r\n ];\r\n var reformatInputBounds = function (bounds) {\r\n if (bounds.width > bounds.height) {\r\n return new Bounds(bounds.left + (bounds.width - bounds.height) / 2, bounds.top, bounds.height, bounds.height);\r\n }\r\n else if (bounds.width < bounds.height) {\r\n return new Bounds(bounds.left, bounds.top + (bounds.height - bounds.width) / 2, bounds.width, bounds.width);\r\n }\r\n return bounds;\r\n };\r\n var getInputValue = function (node) {\r\n var value = node.type === PASSWORD ? new Array(node.value.length + 1).join('\\u2022') : node.value;\r\n return value.length === 0 ? node.placeholder || '' : value;\r\n };\r\n var CHECKBOX = 'checkbox';\r\n var RADIO = 'radio';\r\n var PASSWORD = 'password';\r\n var INPUT_COLOR = 0x2a2a2aff;\r\n var InputElementContainer = /** @class */ (function (_super) {\r\n __extends(InputElementContainer, _super);\r\n function InputElementContainer(input) {\r\n var _this = _super.call(this, input) || this;\r\n _this.type = input.type.toLowerCase();\r\n _this.checked = input.checked;\r\n _this.value = getInputValue(input);\r\n if (_this.type === CHECKBOX || _this.type === RADIO) {\r\n _this.styles.backgroundColor = 0xdededeff;\r\n _this.styles.borderTopColor = _this.styles.borderRightColor = _this.styles.borderBottomColor = _this.styles.borderLeftColor = 0xa5a5a5ff;\r\n _this.styles.borderTopWidth = _this.styles.borderRightWidth = _this.styles.borderBottomWidth = _this.styles.borderLeftWidth = 1;\r\n _this.styles.borderTopStyle = _this.styles.borderRightStyle = _this.styles.borderBottomStyle = _this.styles.borderLeftStyle =\r\n BORDER_STYLE.SOLID;\r\n _this.styles.backgroundClip = [BACKGROUND_CLIP.BORDER_BOX];\r\n _this.styles.backgroundOrigin = [0 /* BORDER_BOX */];\r\n _this.bounds = reformatInputBounds(_this.bounds);\r\n }\r\n switch (_this.type) {\r\n case CHECKBOX:\r\n _this.styles.borderTopRightRadius = _this.styles.borderTopLeftRadius = _this.styles.borderBottomRightRadius = _this.styles.borderBottomLeftRadius = CHECKBOX_BORDER_RADIUS;\r\n break;\r\n case RADIO:\r\n _this.styles.borderTopRightRadius = _this.styles.borderTopLeftRadius = _this.styles.borderBottomRightRadius = _this.styles.borderBottomLeftRadius = RADIO_BORDER_RADIUS;\r\n break;\r\n }\r\n return _this;\r\n }\r\n return InputElementContainer;\r\n }(ElementContainer));\n\n var SelectElementContainer = /** @class */ (function (_super) {\r\n __extends(SelectElementContainer, _super);\r\n function SelectElementContainer(element) {\r\n var _this = _super.call(this, element) || this;\r\n var option = element.options[element.selectedIndex || 0];\r\n _this.value = option ? option.text || '' : '';\r\n return _this;\r\n }\r\n return SelectElementContainer;\r\n }(ElementContainer));\n\n var TextareaElementContainer = /** @class */ (function (_super) {\r\n __extends(TextareaElementContainer, _super);\r\n function TextareaElementContainer(element) {\r\n var _this = _super.call(this, element) || this;\r\n _this.value = element.value;\r\n return _this;\r\n }\r\n return TextareaElementContainer;\r\n }(ElementContainer));\n\n var parseColor = function (value) { return color.parse(Parser.create(value).parseComponentValue()); };\r\n var IFrameElementContainer = /** @class */ (function (_super) {\r\n __extends(IFrameElementContainer, _super);\r\n function IFrameElementContainer(iframe) {\r\n var _this = _super.call(this, iframe) || this;\r\n _this.src = iframe.src;\r\n _this.width = parseInt(iframe.width, 10) || 0;\r\n _this.height = parseInt(iframe.height, 10) || 0;\r\n _this.backgroundColor = _this.styles.backgroundColor;\r\n try {\r\n if (iframe.contentWindow &&\r\n iframe.contentWindow.document &&\r\n iframe.contentWindow.document.documentElement) {\r\n _this.tree = parseTree(iframe.contentWindow.document.documentElement);\r\n // http://www.w3.org/TR/css3-background/#special-backgrounds\r\n var documentBackgroundColor = iframe.contentWindow.document.documentElement\r\n ? parseColor(getComputedStyle(iframe.contentWindow.document.documentElement)\r\n .backgroundColor)\r\n : COLORS.TRANSPARENT;\r\n var bodyBackgroundColor = iframe.contentWindow.document.body\r\n ? parseColor(getComputedStyle(iframe.contentWindow.document.body).backgroundColor)\r\n : COLORS.TRANSPARENT;\r\n _this.backgroundColor = isTransparent(documentBackgroundColor)\r\n ? isTransparent(bodyBackgroundColor)\r\n ? _this.styles.backgroundColor\r\n : bodyBackgroundColor\r\n : documentBackgroundColor;\r\n }\r\n }\r\n catch (e) { }\r\n return _this;\r\n }\r\n return IFrameElementContainer;\r\n }(ElementContainer));\n\n var LIST_OWNERS = ['OL', 'UL', 'MENU'];\r\n var parseNodeTree = function (node, parent, root) {\r\n for (var childNode = node.firstChild, nextNode = void 0; childNode; childNode = nextNode) {\r\n nextNode = childNode.nextSibling;\r\n if (isTextNode(childNode) && childNode.data.trim().length > 0) {\r\n parent.textNodes.push(new TextContainer(childNode, parent.styles));\r\n }\r\n else if (isElementNode(childNode)) {\r\n var container = createContainer(childNode);\r\n if (container.styles.isVisible()) {\r\n if (createsRealStackingContext(childNode, container, root)) {\r\n container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */;\r\n }\r\n else if (createsStackingContext(container.styles)) {\r\n container.flags |= 2 /* CREATES_STACKING_CONTEXT */;\r\n }\r\n if (LIST_OWNERS.indexOf(childNode.tagName) !== -1) {\r\n container.flags |= 8 /* IS_LIST_OWNER */;\r\n }\r\n parent.elements.push(container);\r\n if (!isTextareaElement(childNode) && !isSVGElement(childNode) && !isSelectElement(childNode)) {\r\n parseNodeTree(childNode, container, root);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n var createContainer = function (element) {\r\n if (isImageElement(element)) {\r\n return new ImageElementContainer(element);\r\n }\r\n if (isCanvasElement(element)) {\r\n return new CanvasElementContainer(element);\r\n }\r\n if (isSVGElement(element)) {\r\n return new SVGElementContainer(element);\r\n }\r\n if (isLIElement(element)) {\r\n return new LIElementContainer(element);\r\n }\r\n if (isOLElement(element)) {\r\n return new OLElementContainer(element);\r\n }\r\n if (isInputElement(element)) {\r\n return new InputElementContainer(element);\r\n }\r\n if (isSelectElement(element)) {\r\n return new SelectElementContainer(element);\r\n }\r\n if (isTextareaElement(element)) {\r\n return new TextareaElementContainer(element);\r\n }\r\n if (isIFrameElement(element)) {\r\n return new IFrameElementContainer(element);\r\n }\r\n return new ElementContainer(element);\r\n };\r\n var parseTree = function (element) {\r\n var container = createContainer(element);\r\n container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */;\r\n parseNodeTree(element, container, container);\r\n return container;\r\n };\r\n var createsRealStackingContext = function (node, container, root) {\r\n return (container.styles.isPositionedWithZIndex() ||\r\n container.styles.opacity < 1 ||\r\n container.styles.isTransformed() ||\r\n (isBodyElement(node) && root.styles.isTransparent()));\r\n };\r\n var createsStackingContext = function (styles) { return styles.isPositioned() || styles.isFloating(); };\r\n var isTextNode = function (node) { return node.nodeType === Node.TEXT_NODE; };\r\n var isElementNode = function (node) { return node.nodeType === Node.ELEMENT_NODE; };\r\n var isHTMLElementNode = function (node) {\r\n return isElementNode(node) && typeof node.style !== 'undefined' && !isSVGElementNode(node);\r\n };\r\n var isSVGElementNode = function (element) {\r\n return typeof element.className === 'object';\r\n };\r\n var isLIElement = function (node) { return node.tagName === 'LI'; };\r\n var isOLElement = function (node) { return node.tagName === 'OL'; };\r\n var isInputElement = function (node) { return node.tagName === 'INPUT'; };\r\n var isHTMLElement = function (node) { return node.tagName === 'HTML'; };\r\n var isSVGElement = function (node) { return node.tagName === 'svg'; };\r\n var isBodyElement = function (node) { return node.tagName === 'BODY'; };\r\n var isCanvasElement = function (node) { return node.tagName === 'CANVAS'; };\r\n var isImageElement = function (node) { return node.tagName === 'IMG'; };\r\n var isIFrameElement = function (node) { return node.tagName === 'IFRAME'; };\r\n var isStyleElement = function (node) { return node.tagName === 'STYLE'; };\r\n var isScriptElement = function (node) { return node.tagName === 'SCRIPT'; };\r\n var isTextareaElement = function (node) { return node.tagName === 'TEXTAREA'; };\r\n var isSelectElement = function (node) { return node.tagName === 'SELECT'; };\n\n var CounterState = /** @class */ (function () {\r\n function CounterState() {\r\n this.counters = {};\r\n }\r\n CounterState.prototype.getCounterValue = function (name) {\r\n var counter = this.counters[name];\r\n if (counter && counter.length) {\r\n return counter[counter.length - 1];\r\n }\r\n return 1;\r\n };\r\n CounterState.prototype.getCounterValues = function (name) {\r\n var counter = this.counters[name];\r\n return counter ? counter : [];\r\n };\r\n CounterState.prototype.pop = function (counters) {\r\n var _this = this;\r\n counters.forEach(function (counter) { return _this.counters[counter].pop(); });\r\n };\r\n CounterState.prototype.parse = function (style) {\r\n var _this = this;\r\n var counterIncrement = style.counterIncrement;\r\n var counterReset = style.counterReset;\r\n var canReset = true;\r\n if (counterIncrement !== null) {\r\n counterIncrement.forEach(function (entry) {\r\n var counter = _this.counters[entry.counter];\r\n if (counter && entry.increment !== 0) {\r\n canReset = false;\r\n counter[Math.max(0, counter.length - 1)] += entry.increment;\r\n }\r\n });\r\n }\r\n var counterNames = [];\r\n if (canReset) {\r\n counterReset.forEach(function (entry) {\r\n var counter = _this.counters[entry.counter];\r\n counterNames.push(entry.counter);\r\n if (!counter) {\r\n counter = _this.counters[entry.counter] = [];\r\n }\r\n counter.push(entry.reset);\r\n });\r\n }\r\n return counterNames;\r\n };\r\n return CounterState;\r\n }());\r\n var ROMAN_UPPER = {\r\n integers: [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1],\r\n values: ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I']\r\n };\r\n var ARMENIAN = {\r\n integers: [\r\n 9000,\r\n 8000,\r\n 7000,\r\n 6000,\r\n 5000,\r\n 4000,\r\n 3000,\r\n 2000,\r\n 1000,\r\n 900,\r\n 800,\r\n 700,\r\n 600,\r\n 500,\r\n 400,\r\n 300,\r\n 200,\r\n 100,\r\n 90,\r\n 80,\r\n 70,\r\n 60,\r\n 50,\r\n 40,\r\n 30,\r\n 20,\r\n 10,\r\n 9,\r\n 8,\r\n 7,\r\n 6,\r\n 5,\r\n 4,\r\n 3,\r\n 2,\r\n 1\r\n ],\r\n values: [\r\n 'Ք',\r\n 'Փ',\r\n 'Ւ',\r\n 'Ց',\r\n 'Ր',\r\n 'Տ',\r\n 'Վ',\r\n 'Ս',\r\n 'Ռ',\r\n 'Ջ',\r\n 'Պ',\r\n 'Չ',\r\n 'Ո',\r\n 'Շ',\r\n 'Ն',\r\n 'Յ',\r\n 'Մ',\r\n 'Ճ',\r\n 'Ղ',\r\n 'Ձ',\r\n 'Հ',\r\n 'Կ',\r\n 'Ծ',\r\n 'Խ',\r\n 'Լ',\r\n 'Ի',\r\n 'Ժ',\r\n 'Թ',\r\n 'Ը',\r\n 'Է',\r\n 'Զ',\r\n 'Ե',\r\n 'Դ',\r\n 'Գ',\r\n 'Բ',\r\n 'Ա'\r\n ]\r\n };\r\n var HEBREW = {\r\n integers: [\r\n 10000,\r\n 9000,\r\n 8000,\r\n 7000,\r\n 6000,\r\n 5000,\r\n 4000,\r\n 3000,\r\n 2000,\r\n 1000,\r\n 400,\r\n 300,\r\n 200,\r\n 100,\r\n 90,\r\n 80,\r\n 70,\r\n 60,\r\n 50,\r\n 40,\r\n 30,\r\n 20,\r\n 19,\r\n 18,\r\n 17,\r\n 16,\r\n 15,\r\n 10,\r\n 9,\r\n 8,\r\n 7,\r\n 6,\r\n 5,\r\n 4,\r\n 3,\r\n 2,\r\n 1\r\n ],\r\n values: [\r\n 'י׳',\r\n 'ט׳',\r\n 'ח׳',\r\n 'ז׳',\r\n 'ו׳',\r\n 'ה׳',\r\n 'ד׳',\r\n 'ג׳',\r\n 'ב׳',\r\n 'א׳',\r\n 'ת',\r\n 'ש',\r\n 'ר',\r\n 'ק',\r\n 'צ',\r\n 'פ',\r\n 'ע',\r\n 'ס',\r\n 'נ',\r\n 'מ',\r\n 'ל',\r\n 'כ',\r\n 'יט',\r\n 'יח',\r\n 'יז',\r\n 'טז',\r\n 'טו',\r\n 'י',\r\n 'ט',\r\n 'ח',\r\n 'ז',\r\n 'ו',\r\n 'ה',\r\n 'ד',\r\n 'ג',\r\n 'ב',\r\n 'א'\r\n ]\r\n };\r\n var GEORGIAN = {\r\n integers: [\r\n 10000,\r\n 9000,\r\n 8000,\r\n 7000,\r\n 6000,\r\n 5000,\r\n 4000,\r\n 3000,\r\n 2000,\r\n 1000,\r\n 900,\r\n 800,\r\n 700,\r\n 600,\r\n 500,\r\n 400,\r\n 300,\r\n 200,\r\n 100,\r\n 90,\r\n 80,\r\n 70,\r\n 60,\r\n 50,\r\n 40,\r\n 30,\r\n 20,\r\n 10,\r\n 9,\r\n 8,\r\n 7,\r\n 6,\r\n 5,\r\n 4,\r\n 3,\r\n 2,\r\n 1\r\n ],\r\n values: [\r\n 'ჵ',\r\n 'ჰ',\r\n 'ჯ',\r\n 'ჴ',\r\n 'ხ',\r\n 'ჭ',\r\n 'წ',\r\n 'ძ',\r\n 'ც',\r\n 'ჩ',\r\n 'შ',\r\n 'ყ',\r\n 'ღ',\r\n 'ქ',\r\n 'ფ',\r\n 'ჳ',\r\n 'ტ',\r\n 'ს',\r\n 'რ',\r\n 'ჟ',\r\n 'პ',\r\n 'ო',\r\n 'ჲ',\r\n 'ნ',\r\n 'მ',\r\n 'ლ',\r\n 'კ',\r\n 'ი',\r\n 'თ',\r\n 'ჱ',\r\n 'ზ',\r\n 'ვ',\r\n 'ე',\r\n 'დ',\r\n 'გ',\r\n 'ბ',\r\n 'ა'\r\n ]\r\n };\r\n var createAdditiveCounter = function (value, min, max, symbols, fallback, suffix) {\r\n if (value < min || value > max) {\r\n return createCounterText(value, fallback, suffix.length > 0);\r\n }\r\n return (symbols.integers.reduce(function (string, integer, index) {\r\n while (value >= integer) {\r\n value -= integer;\r\n string += symbols.values[index];\r\n }\r\n return string;\r\n }, '') + suffix);\r\n };\r\n var createCounterStyleWithSymbolResolver = function (value, codePointRangeLength, isNumeric, resolver) {\r\n var string = '';\r\n do {\r\n if (!isNumeric) {\r\n value--;\r\n }\r\n string = resolver(value) + string;\r\n value /= codePointRangeLength;\r\n } while (value * codePointRangeLength >= codePointRangeLength);\r\n return string;\r\n };\r\n var createCounterStyleFromRange = function (value, codePointRangeStart, codePointRangeEnd, isNumeric, suffix) {\r\n var codePointRangeLength = codePointRangeEnd - codePointRangeStart + 1;\r\n return ((value < 0 ? '-' : '') +\r\n (createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, isNumeric, function (codePoint) {\r\n return fromCodePoint(Math.floor(codePoint % codePointRangeLength) + codePointRangeStart);\r\n }) +\r\n suffix));\r\n };\r\n var createCounterStyleFromSymbols = function (value, symbols, suffix) {\r\n if (suffix === void 0) { suffix = '. '; }\r\n var codePointRangeLength = symbols.length;\r\n return (createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, false, function (codePoint) { return symbols[Math.floor(codePoint % codePointRangeLength)]; }) + suffix);\r\n };\r\n var CJK_ZEROS = 1 << 0;\r\n var CJK_TEN_COEFFICIENTS = 1 << 1;\r\n var CJK_TEN_HIGH_COEFFICIENTS = 1 << 2;\r\n var CJK_HUNDRED_COEFFICIENTS = 1 << 3;\r\n var createCJKCounter = function (value, numbers, multipliers, negativeSign, suffix, flags) {\r\n if (value < -9999 || value > 9999) {\r\n return createCounterText(value, LIST_STYLE_TYPE.CJK_DECIMAL, suffix.length > 0);\r\n }\r\n var tmp = Math.abs(value);\r\n var string = suffix;\r\n if (tmp === 0) {\r\n return numbers[0] + string;\r\n }\r\n for (var digit = 0; tmp > 0 && digit <= 4; digit++) {\r\n var coefficient = tmp % 10;\r\n if (coefficient === 0 && contains(flags, CJK_ZEROS) && string !== '') {\r\n string = numbers[coefficient] + string;\r\n }\r\n else if (coefficient > 1 ||\r\n (coefficient === 1 && digit === 0) ||\r\n (coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_COEFFICIENTS)) ||\r\n (coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_HIGH_COEFFICIENTS) && value > 100) ||\r\n (coefficient === 1 && digit > 1 && contains(flags, CJK_HUNDRED_COEFFICIENTS))) {\r\n string = numbers[coefficient] + (digit > 0 ? multipliers[digit - 1] : '') + string;\r\n }\r\n else if (coefficient === 1 && digit > 0) {\r\n string = multipliers[digit - 1] + string;\r\n }\r\n tmp = Math.floor(tmp / 10);\r\n }\r\n return (value < 0 ? negativeSign : '') + string;\r\n };\r\n var CHINESE_INFORMAL_MULTIPLIERS = '十百千萬';\r\n var CHINESE_FORMAL_MULTIPLIERS = '拾佰仟萬';\r\n var JAPANESE_NEGATIVE = 'マイナス';\r\n var KOREAN_NEGATIVE = '마이너스';\r\n var createCounterText = function (value, type, appendSuffix) {\r\n var defaultSuffix = appendSuffix ? '. ' : '';\r\n var cjkSuffix = appendSuffix ? '、' : '';\r\n var koreanSuffix = appendSuffix ? ', ' : '';\r\n var spaceSuffix = appendSuffix ? ' ' : '';\r\n switch (type) {\r\n case LIST_STYLE_TYPE.DISC:\r\n return '•' + spaceSuffix;\r\n case LIST_STYLE_TYPE.CIRCLE:\r\n return '◦' + spaceSuffix;\r\n case LIST_STYLE_TYPE.SQUARE:\r\n return '◾' + spaceSuffix;\r\n case LIST_STYLE_TYPE.DECIMAL_LEADING_ZERO:\r\n var string = createCounterStyleFromRange(value, 48, 57, true, defaultSuffix);\r\n return string.length < 4 ? \"0\" + string : string;\r\n case LIST_STYLE_TYPE.CJK_DECIMAL:\r\n return createCounterStyleFromSymbols(value, '〇一二三四五六七八九', cjkSuffix);\r\n case LIST_STYLE_TYPE.LOWER_ROMAN:\r\n return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, LIST_STYLE_TYPE.DECIMAL, defaultSuffix).toLowerCase();\r\n case LIST_STYLE_TYPE.UPPER_ROMAN:\r\n return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, LIST_STYLE_TYPE.DECIMAL, defaultSuffix);\r\n case LIST_STYLE_TYPE.LOWER_GREEK:\r\n return createCounterStyleFromRange(value, 945, 969, false, defaultSuffix);\r\n case LIST_STYLE_TYPE.LOWER_ALPHA:\r\n return createCounterStyleFromRange(value, 97, 122, false, defaultSuffix);\r\n case LIST_STYLE_TYPE.UPPER_ALPHA:\r\n return createCounterStyleFromRange(value, 65, 90, false, defaultSuffix);\r\n case LIST_STYLE_TYPE.ARABIC_INDIC:\r\n return createCounterStyleFromRange(value, 1632, 1641, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.ARMENIAN:\r\n case LIST_STYLE_TYPE.UPPER_ARMENIAN:\r\n return createAdditiveCounter(value, 1, 9999, ARMENIAN, LIST_STYLE_TYPE.DECIMAL, defaultSuffix);\r\n case LIST_STYLE_TYPE.LOWER_ARMENIAN:\r\n return createAdditiveCounter(value, 1, 9999, ARMENIAN, LIST_STYLE_TYPE.DECIMAL, defaultSuffix).toLowerCase();\r\n case LIST_STYLE_TYPE.BENGALI:\r\n return createCounterStyleFromRange(value, 2534, 2543, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.CAMBODIAN:\r\n case LIST_STYLE_TYPE.KHMER:\r\n return createCounterStyleFromRange(value, 6112, 6121, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.CJK_EARTHLY_BRANCH:\r\n return createCounterStyleFromSymbols(value, '子丑寅卯辰巳午未申酉戌亥', cjkSuffix);\r\n case LIST_STYLE_TYPE.CJK_HEAVENLY_STEM:\r\n return createCounterStyleFromSymbols(value, '甲乙丙丁戊己庚辛壬癸', cjkSuffix);\r\n case LIST_STYLE_TYPE.CJK_IDEOGRAPHIC:\r\n case LIST_STYLE_TYPE.TRAD_CHINESE_INFORMAL:\r\n return createCJKCounter(value, '零一二三四五六七八九', CHINESE_INFORMAL_MULTIPLIERS, '負', cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.TRAD_CHINESE_FORMAL:\r\n return createCJKCounter(value, '零壹貳參肆伍陸柒捌玖', CHINESE_FORMAL_MULTIPLIERS, '負', cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.SIMP_CHINESE_INFORMAL:\r\n return createCJKCounter(value, '零一二三四五六七八九', CHINESE_INFORMAL_MULTIPLIERS, '负', cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.SIMP_CHINESE_FORMAL:\r\n return createCJKCounter(value, '零壹贰叁肆伍陆柒捌玖', CHINESE_FORMAL_MULTIPLIERS, '负', cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.JAPANESE_INFORMAL:\r\n return createCJKCounter(value, '〇一二三四五六七八九', '十百千万', JAPANESE_NEGATIVE, cjkSuffix, 0);\r\n case LIST_STYLE_TYPE.JAPANESE_FORMAL:\r\n return createCJKCounter(value, '零壱弐参四伍六七八九', '拾百千万', JAPANESE_NEGATIVE, cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.KOREAN_HANGUL_FORMAL:\r\n return createCJKCounter(value, '영일이삼사오육칠팔구', '십백천만', KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.KOREAN_HANJA_INFORMAL:\r\n return createCJKCounter(value, '零一二三四五六七八九', '十百千萬', KOREAN_NEGATIVE, koreanSuffix, 0);\r\n case LIST_STYLE_TYPE.KOREAN_HANJA_FORMAL:\r\n return createCJKCounter(value, '零壹貳參四五六七八九', '拾百千', KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.DEVANAGARI:\r\n return createCounterStyleFromRange(value, 0x966, 0x96f, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.GEORGIAN:\r\n return createAdditiveCounter(value, 1, 19999, GEORGIAN, LIST_STYLE_TYPE.DECIMAL, defaultSuffix);\r\n case LIST_STYLE_TYPE.GUJARATI:\r\n return createCounterStyleFromRange(value, 0xae6, 0xaef, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.GURMUKHI:\r\n return createCounterStyleFromRange(value, 0xa66, 0xa6f, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.HEBREW:\r\n return createAdditiveCounter(value, 1, 10999, HEBREW, LIST_STYLE_TYPE.DECIMAL, defaultSuffix);\r\n case LIST_STYLE_TYPE.HIRAGANA:\r\n return createCounterStyleFromSymbols(value, 'あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん');\r\n case LIST_STYLE_TYPE.HIRAGANA_IROHA:\r\n return createCounterStyleFromSymbols(value, 'いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす');\r\n case LIST_STYLE_TYPE.KANNADA:\r\n return createCounterStyleFromRange(value, 0xce6, 0xcef, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.KATAKANA:\r\n return createCounterStyleFromSymbols(value, 'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン', cjkSuffix);\r\n case LIST_STYLE_TYPE.KATAKANA_IROHA:\r\n return createCounterStyleFromSymbols(value, 'イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス', cjkSuffix);\r\n case LIST_STYLE_TYPE.LAO:\r\n return createCounterStyleFromRange(value, 0xed0, 0xed9, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.MONGOLIAN:\r\n return createCounterStyleFromRange(value, 0x1810, 0x1819, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.MYANMAR:\r\n return createCounterStyleFromRange(value, 0x1040, 0x1049, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.ORIYA:\r\n return createCounterStyleFromRange(value, 0xb66, 0xb6f, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.PERSIAN:\r\n return createCounterStyleFromRange(value, 0x6f0, 0x6f9, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.TAMIL:\r\n return createCounterStyleFromRange(value, 0xbe6, 0xbef, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.TELUGU:\r\n return createCounterStyleFromRange(value, 0xc66, 0xc6f, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.THAI:\r\n return createCounterStyleFromRange(value, 0xe50, 0xe59, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.TIBETAN:\r\n return createCounterStyleFromRange(value, 0xf20, 0xf29, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.DECIMAL:\r\n default:\r\n return createCounterStyleFromRange(value, 48, 57, true, defaultSuffix);\r\n }\r\n };\n\n var IGNORE_ATTRIBUTE = 'data-html2canvas-ignore';\r\n var DocumentCloner = /** @class */ (function () {\r\n function DocumentCloner(element, options) {\r\n this.options = options;\r\n this.scrolledElements = [];\r\n this.referenceElement = element;\r\n this.counters = new CounterState();\r\n this.quoteDepth = 0;\r\n if (!element.ownerDocument) {\r\n throw new Error('Cloned element does not have an owner document');\r\n }\r\n this.documentElement = this.cloneNode(element.ownerDocument.documentElement);\r\n }\r\n DocumentCloner.prototype.toIFrame = function (ownerDocument, windowSize) {\r\n var _this = this;\r\n var iframe = createIFrameContainer(ownerDocument, windowSize);\r\n if (!iframe.contentWindow) {\r\n return Promise.reject(\"Unable to find iframe window\");\r\n }\r\n var scrollX = ownerDocument.defaultView.pageXOffset;\r\n var scrollY = ownerDocument.defaultView.pageYOffset;\r\n var cloneWindow = iframe.contentWindow;\r\n var documentClone = cloneWindow.document;\r\n /* Chrome doesn't detect relative background-images assigned in inline