{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./packages/rax/lib/vdom/host.js","webpack:///./packages/rax/lib/vdom/instance.js","webpack:///./packages/rax/lib/component.js","webpack:///./packages/runtime-shared/lib/symbol.js","webpack:///./packages/rax/lib/vdom/instantiateComponent.js","webpack:///./packages/rax/lib/element.js","webpack:///./packages/rax/lib/unmountComponentAtNode.js","webpack:///./packages/rax/lib/vdom/shouldUpdateComponent.js","webpack:///./packages/rax/lib/render.js","webpack:///./packages/runtime-shared/lib/url-search-params.js","webpack:///./packages/rax/lib/debug/hook.js","webpack:///./packages/rax/lib/flattenChildren.js","webpack:///./packages/universal-env/lib/index.js","webpack:///./packages/rax/lib/proptypes.js","webpack:///./packages/rax/lib/vdom/native.js","webpack:///./packages/rax/lib/vdom/ref.js","webpack:///./packages/rax/lib/vdom/getElementKeyName.js","webpack:///./packages/style-unit/lib/index.js","webpack:///./packages/driver-weex/lib/parseProps.js","webpack:///./packages/rax/lib/findDOMNode.js","webpack:///./packages/web-rax-framework/src/index.js","webpack:///./packages/runtime-shared/lib/index.js","webpack:///./packages/runtime-shared/lib/promise.js","webpack:///./packages/runtime-shared/lib/map.js","webpack:///./packages/runtime-shared/lib/set.js","webpack:///./packages/runtime-shared/lib/weakmap.js","webpack:///./packages/runtime-shared/lib/weakset.js","webpack:///./packages/runtime-shared/lib/fontface.js","webpack:///./packages/runtime-shared/lib/url.js","webpack:///./packages/runtime-shared/lib/matchMedia.js","webpack:///./packages/web-rax-framework/src/number.js","webpack:///./packages/web-rax-framework/src/object.js","webpack:///./packages/web-rax-framework/src/array.js","webpack:///./packages/web-rax-framework/node_modules/whatwg-fetch/fetch.js","webpack:///./packages/web-rax-framework/node_modules/raf/polyfill.js","webpack:///./packages/web-rax-framework/node_modules/raf/index.js","webpack:///./packages/web-rax-framework/node_modules/performance-now/lib/performance-now.js","webpack:///./packages/web-rax-framework/src/require.js","webpack:///./packages/web-rax-framework/src/appear.js","webpack:///./packages/web-rax-framework/src/appearRegistry.js","webpack:///./packages/web-rax-framework/src/intersectionObserver.js","webpack:///./packages/rax/lib/index.js","webpack:///./packages/rax/lib/debug/devtools.js","webpack:///./packages/rax/lib/vdom/root.js","webpack:///./packages/rax/lib/purecomponent.js","webpack:///./packages/rax/lib/inject.js","webpack:///./packages/rax/lib/vdom/empty.js","webpack:///./packages/rax/lib/vdom/text.js","webpack:///./packages/rax/lib/vdom/composite.js","webpack:///./packages/rax/lib/vdom/stateless.js","webpack:///./packages/rax/lib/vdom/updater.js","webpack:///./packages/rax/lib/vdom/shallowEqual.js","webpack:///./packages/rax/lib/vdom/fragment.js","webpack:///./packages/driver-weex/lib/index.js","webpack:///./packages/driver-weex/lib/elements/index.js","webpack:///./packages/driver-weex/lib/elements/img.js","webpack:///./packages/driver-weex/lib/elements/video.js","webpack:///./packages/driver-weex/lib/elements/textarea.js","webpack:///./packages/driver-weex/lib/elements/span.js","webpack:///./packages/driver-weex/lib/elements/p.js","webpack:///./packages/driver-weex/lib/elements/button.js","webpack:///./packages/driver-weex/lib/elements/heading.js","webpack:///./packages/driver-weex/lib/elements/block.js","webpack:///./packages/driver-browser/lib/index.js","webpack:///./packages/driver-browser/lib/flexbox.js","webpack:///./packages/rax/lib/hydrate.js","webpack:///./packages/rax/lib/createPortal.js","webpack:///./packages/rax/lib/findComponentInstance.js","webpack:///./packages/rax/lib/setNativeProps.js","webpack:///./packages/rax/lib/version.js","webpack:///./packages/rax/lib/children.js","webpack:///./packages/rax/lib/createContext.js"],"names":["Object","defineProperty","exports","value","default","_default","component","mountID","sandbox","rootComponents","rootInstances","hook","driver","monitor","module","_host","_interopRequireDefault","_element","_unmountComponentAtNode","_instantiateComponent","_shouldUpdateComponent","_root","obj","__esModule","KEY","set","node","instance","rootID","_internal","get","remove","mount","element","container","parentInstance","beforeRender","createBody","parentContext","parentInternal","_processChildContext","_context","prevRootInstance","hasPrevRootInstance","isRootComponent","prevRenderedComponent","getRenderedComponent","prevElement","_currentElement","prevUnmaskedContext","updateComponent","Reconciler","unmountComponent","wrappedElement","createElement","renderedComponent","defaultContext","rootInstance","mountComponent","afterRender","Mount","_renderNewRootComponent","_classCallCheck","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","key","_createClass","protoProps","staticProps","prototype","Component","context","updater","refs","isComponentClass","setState","partialState","callback","forceUpdate","_typeof","Symbol","iterator","constructor","defineProperties","SymbolPolyfill","HiddenSymbol","globalSymbols","create","isSymbol","x","name","toStringTag","validateSymbol","generateName","created","desc","postfix","_Symbol","description","_Symbol2","symbol","undefined","String","__description__","__name__","for","keyFor","s","hasInstance","isConcatSpreadable","match","replace","search","species","split","toPrimitive","unscopables","toString","valueOf","instantiateComponent","EmptyComponent","Array","isArray","FragmentComponent","type","NativeComponent","CompositeComponent","TextComponent","Error","concat","keys","_mountIndex","createFactory","cloneElement","isValidElement","_flattenChildren","_universalEnv","RESERVED_PROPS","ref","getRenderErrorInfo","getName","Element","owner","isWeex","filterProps","_owner","flattenStyle","style","result","computedStyle","children","map","val","join","config","propName","childrenLength","arguments","childArray","defaultProps","factory","bind","assign","hasOwnProperty","_len","_key","object","unmountComponentAtNode","_instance","shouldUpdateComponent","nextElement","prevEmpty","nextEmpty","prevType","nextType","_inject","render","options","rootComponent","parent","componentInstance","getPublicInstance","call","find","plus","replacer","secret","encode","str","encodeURIComponent","decode","decodeURIComponent","URLSearchParams","query","charAt","slice","index","pairs","indexOf","append","dict","push","_delete","getAll","has","forEach","thisArg","getOwnPropertyNames","items","next","shift","done","values","entries","ComponentTree","getClosestInstanceFromNode","getNodeFromInstance","inst","_renderedComponent","_nativeNode","_instancesByReactRootID","receiveComponent","flattenChildren","traverseChildren","l","isReactNative","isNode","isWeb","navigator","appCodeName","product","process","versions","callNative","WXEnvironment","platform","__fbBatchedBridgeConfig","createChainableTypeChecker","validate","checkType","isRequired","componentName","location","propFullName","typeChecker","chainedCheckType","createTypeChecker","expectedType","array","bool","func","number","string","any","arrayOf","instanceOf","objectOf","oneOf","oneOfType","shape","_ref","_getElementKeyName","STYLE","CHILDREN","TREE","EVENT_PREFIX_REGEXP","childMounter","_parent","_parentInstance","_mountID","appendType","_prevStyleCopy","nativeNode","getNativeNode","appendChild","attach","mountChildren","_this","renderedChildren","_renderedChildren","renderedChildrenImage","renderedChild","mountImage","unmountChildren","notRemoveChild","detach","removeChild","removeAllEventListeners","prevContext","nextContext","update","prevProps","nextProps","updateProperties","updateChildren","propKey","styleName","styleUpdates","lastStyle","test","removeEventListener","toLowerCase","removeAttribute","nextProp","prevProp","eventName","addEventListener","payload","setAttribute","setStyles","nextChildrenElements","_this2","prevChildren","nextChildren","oldNodes","prevChild","oldNativeNode","firstPrevChild","delayRemoveFirstPrevChild","_name","_prevChild","shouldRemove","lastIndex","nextIndex","lastPlacedNode","nextNativeNode","_loop","_name2","nextChild","prevChildNativeNode","_i","insertAfter","Math","max","newChild","oldChild","lastNewChild","_i2","child","replaceChild","_i3","prevFirstNativeNode","_i4","_child","insertBefore","_ret","splice","prevRef","nextRef","ownerComponent","elementKey","hasKey","defaultName","keyName","keyUnique","console","warn","isRem","calcRem","getRem","setRem","isUnitNumber","convertUnit","UNITLESS_NUMBER_PROPS","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridColumn","fontWeight","lineClamp","opacity","order","orphans","tabSize","widows","zIndex","zoom","lines","IS_REM_REG","REM_REG","GLOBAL_REM_UNIT","global","window","remUnit","rem","parseFloat","prop","transformPropsAttrsToStyle","renamePropsAttr","attrs","attr","originalAttrName","newAttrName","findDOMNode","ownerDocument","nodeType","getElementById","internal","shared","Promise","Map","Set","WeakMap","WeakSet","FontFace","matchMedia","URL","document","fonts","add","fontFace","fontFaceRule","family","source","styleElement","innerHTML","head","define","req","noop","asap","setImmediate","fn","setTimeout","onUnhandledRejection","err","log","apply","_state","_handled","_value","_deferreds","doResolve","handle","self","deferred","cb","onFulfilled","onRejected","resolve","reject","promise","ret","e","newValue","then","finale","len","Handler","reason","ex","catch","prom","all","arr","args","remaining","res","race","_setImmediateFn","_setUnhandledRejectionFn","undefMarker","NaNMarker","ACCESSOR_SUPPORT","encodeKey","decodeKey","encodedKey","NaN","makeIterator","mapInst","getter","nextIdx","_keys","calcSize","size","hasProtoMethod","method","data","_values","item","idx","delete","clear","callbackFn","encodeVal","decodeVal","encodedData","setInst","counter","Date","now","random","entry","relative","ftp","file","gopher","http","https","ws","wss","relativePathDotMapping","isRelativeScheme","scheme","invalid","_isInvalid","IDNAToASCII","h","percentEscape","c","unicode","charCodeAt","percentEscapeQuery","EOF","ALPHA","ALPHANUMERIC","parse","input","stateOverride","base","message","errors","state","cursor","buffer","seenAt","seenBracket","loop","_scheme","_isRelative","_fragment","_schemeData","_port","_path","_query","_username","_password","nextC","nextNextC","pop","cp","tempC","temp","parseInt","tmp","url","_url","href","authority","protocol","host","pathname","hostname","port","searchParams","hash","origin","RE_MEDIA_QUERY","RE_MQ_EXPRESSION","RE_MQ_FEATURE","_matches","media","_parseQuery","some","inverse","typeMatch","expressionsMatch","expressions","every","expression","feature","modifier","expValue","trim","captures","SyntaxError","parsed","mql","matches","width","screen","height","Number","isNaN","sources","nextSource","descriptors","property","setPrototypeOf","magic","O","proto","getOwnPropertyDescriptor","__proto__","polyfill","is","y","from","toStr","isCallable","toInteger","isFinite","floor","abs","maxSafeInteger","pow","toLength","min","arrayLike","C","mapFn","T","A","k","kValue","modules","inGuard","def","id","deps","Function","isInitialized","hasError","originId","mod","requireImpl","ErrorUtils","returnValue","reportFatalError","require","existIntersection","appear","injectEventListenerHook","instances","Registry","createEvent","control","nativeAddEventListener","Node","nativeRemoveEventListener","eventHandler","useCapture","doNotWatch","lowerCaseEventName","isAppearEvent","check","__handle","appearWatchElements","offsetTop","appearEvt","disappearEvt","_appearDoms","AppearRegistry","initEvent","elements","current","wait","cls","once","onReset","onAppear","onDisappear","initConfig","opts","extend","getElements","bindEvent","el","offset","getBoundingClientRect","top","right","bottom","left","nodes","raf","calculate","containerOffset","getOffset","isOnce","ev","ele","_hasAppear","checkEveryDom","cacheAppearEvt","cacheDisappearEvt","pos","eleOffset","direction","getDirection","_eleOffset","isInView","inViewport","_appear","_hasDisAppear","dispatchEvent","throttle","beforeOffset","nowOffset","horizental","vertical","requestAnimationFrame","webkitRequestAnimationFrame","timeout","previous","later","clearTimeout","param","r","b","t","innerWidth","innerHeight","parentNode","pushElement","appended","Boolean","getAttribute","root","rootMargin","threshold","intersectionObserver","initIntersection","IntersectionObserver","handleIntersect","boundingClientRect","intersectionRatio","dataset","appeared","observerElement","observe","isExistIntersection","createIntersectionObserver","_component","_purecomponent","_proptypes","_render2","_hydrate2","_createPortal2","_findDOMNode2","_unmountComponentAtNode2","_findComponentInstance2","_setNativeProps2","_version2","_children","_createContext2","_hook","__REACT_DEVTOOLS_GLOBAL_HOOK__","inject","_possibleConstructorReturn","_assertThisInitialized","_getPrototypeOf","o","getPrototypeOf","_inherits","subClass","superClass","_setPrototypeOf","p","ReferenceError","_defineProperty","rootCounter","Root","_Component","_getPrototypeOf2","PureComponent","isPureComponentClass","_empty","_native","_text","_composite","_driverWeex","_driverBrowser","measurer","deviceWidth","viewportWidth","eventRegistry","bodyType","bodyProps","setDeviceWidth","setViewportWidth","createEmpty","_stringText","updateText","createText","_stateless","_updater","_shallowEqual","performInSandbox","handleError","error","boundary","componentDidCatch","measureLifeCycle","displayName","_updateCount","publicProps","isClass","isStatelessClass","publicContext","_processContext","renderedElement","initialState","errorCallback","componentWillMount","_processPendingState","componentDidMount","componentWillUnmount","_pendingStateQueue","_pendingForceUpdate","contextTypes","maskedContext","contextName","currentContext","childContext","getChildContext","queue","nextState","partial","nextUnmaskedContext","willReceive","hasReceived","componentWillReceiveProps","_pendingState","shouldUpdate","prevState","shouldComponentUpdate","componentWillUpdate","_updateRenderedComponent","componentDidUpdate","callbacks","_pendingCallbacks","runCallbacks","prevRenderedElement","nextRenderedElement","StatelessComponent","pureRender","enqueueCallback","callbackQueue","enqueueState","stateQueue","Updater","runUpdate","shallowEqual","objA","objB","keysA","keysB","_NativeComponent","fragment","isFragmentParent","_styleUnit","_elements","ID","TEXT","ARIA_PREFIX_REGEXP","nodeMaps","__weex_document__","Driver","getDeviceWidth","getViewportWidth","body","documentElement","createComment","content","text","htmlElement","events","originStyle","setNativeProps","previousSibling","nextSibling","after","before","params","addEvent","removeEvent","propValue","setAttr","m","p1","toUpperCase","styles","setStyle","open","listener","createFinish","close","skipSetStyles","_img","_video","_textarea","_span","_p","_button","_heading","_block","span","img","button","video","textarea","h1","h2","h3","h4","h5","h6","nav","article","section","footer","aside","main","_parseProps","_objectSpread","ownKeys","getOwnPropertySymbols","filter","sym","BASE_FONT_SIZE","defaultParagraphStyle","fontSize","marginTop","marginBottom","TypographyElements","u","textDecoration","fontStyle","del","em","strong","big","small","transformString","transformChild","nestedChildren","transformChildren","disabled","textStyle","textAlign","paddingTop","paddingRight","paddingBottom","paddingLeft","borderWidth","borderStyle","borderColor","backgroudColor","onClick","color","generateHeadingStyle","baseFontSize","fontMultiplier","marginMultiplier","HeadingElements","_flexbox","DANGEROUSLY_SET_INNER_HTML","CLASS_NAME","CLASS","SVG_NS","ADD_EVENT","REMOVE_EVENT","TEXT_CONTENT_ATTR","tagPrefix","DEVICE_WIDTH","VIEWPORT_WIDTH","setTagPrefix","prefix","clientWidth","createTextNode","isSVGMode","namespaceURI","createElementNS","__html","tranformedStyles","isFlexProp","_prop","transformValue","BOX_ALIGN","stretch","center","BOX_ORIENT","row","column","BOX_PACK","FLEX_PROPS","display","alignItems","alignSelf","flexDirection","justifyContent","flexWrap","Flexbox","webkitBoxFlex","webkitFlex","webkitFlexWrap","webkitBoxAlign","webkitAlignItems","webkitAlignSelf","webkitBoxOrient","webkitFlexDirection","webkitBoxPack","webkitJustifyContent","_render","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","arr2","hydrate","childNodes","rootChildNode","createPortal","Portal","renderPortal","findComponentInstance","_findDOMNode","convertChildrenToArray","Children","ctx","count","only","toArray","createContext","ValueEmitter","defaultValue","handlers","on","handler","off","emit","uniqueId","contextProp","Provider","emitter","Consumer","_Component2","_getPrototypeOf3","_len2","_key2","onUpdate","consumer"],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kDAA0C,gCAAgC;AAC1E;AACA;;AAEA;AACA;AACA;AACA,gEAAwD,kBAAkB;AAC1E;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAyC,iCAAiC;AAC1E,wHAAgH,mBAAmB,EAAE;AACrI;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;;AAGA;AACA;;;;;;;;AClFA;;AAEAA,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,OAAK,EAAE;AADoC,CAA7C;AAGAD,OAAO,CAACE,OAAR,GAAkB,KAAK,CAAvB;AAEA;;;;AAGA,IAAIC,QAAQ,GAAG;AACbC,WAAS,EAAE,IADE;AAEbC,SAAO,EAAE,CAFI;AAGbC,SAAO,EAAE,IAHI;AAIb;AACAC,gBAAc,EAAE,EALH;AAMbC,eAAa,EAAE,EANF;AAOb;AACAC,MAAI,EAAE,IARO;AASbC,QAAM,EAAE,IATK;AAUbC,SAAO,EAAE;AAVI,CAAf;AAYAX,OAAO,CAACE,OAAR,GAAkBC,QAAlB;AACAS,MAAM,CAACZ,OAAP,GAAiBA,OAAO,CAAC,SAAD,CAAxB,C;;;;;;;ACvBA;;AAEAF,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,OAAK,EAAE;AADoC,CAA7C;AAGAD,OAAO,CAACE,OAAR,GAAkB,KAAK,CAAvB;;AAEA,IAAIW,KAAK,GAAGC,sBAAsB,CAAC,mBAAO,CAAC,CAAD,CAAR,CAAlC;;AAEA,IAAIC,QAAQ,GAAG,mBAAO,CAAC,CAAD,CAAtB;;AAEA,IAAIC,uBAAuB,GAAGF,sBAAsB,CAAC,mBAAO,CAAC,CAAD,CAAR,CAApD;;AAEA,IAAIG,qBAAqB,GAAGH,sBAAsB,CAAC,mBAAO,CAAC,CAAD,CAAR,CAAlD;;AAEA,IAAII,sBAAsB,GAAGJ,sBAAsB,CAAC,mBAAO,CAAC,CAAD,CAAR,CAAnD;;AAEA,IAAIK,KAAK,GAAGL,sBAAsB,CAAC,mBAAO,CAAC,EAAD,CAAR,CAAlC;;AAEA,SAASA,sBAAT,CAAgCM,GAAhC,EAAqC;AAAE,SAAOA,GAAG,IAAIA,GAAG,CAACC,UAAX,GAAwBD,GAAxB,GAA8B;AAAElB,WAAO,EAAEkB;AAAX,GAArC;AAAwD;AAE/F;;;;;AAGA,IAAIE,GAAG,GAAG,YAAV;AACA,IAAInB,QAAQ,GAAG;AACboB,KAAG,EAAE,SAASA,GAAT,CAAaC,IAAb,EAAmBC,QAAnB,EAA6B;AAChC,QAAI,CAACD,IAAI,CAACF,GAAD,CAAT,EAAgB;AACdE,UAAI,CAACF,GAAD,CAAJ,GAAYG,QAAZ,CADc,CACQ;;AAEtB,UAAIA,QAAQ,CAACC,MAAb,EAAqB;AACnBb,aAAK,CAACX,OAAN,CAAcM,aAAd,CAA4BiB,QAAQ,CAACC,MAArC,IAA+CD,QAA/C;AACAZ,aAAK,CAACX,OAAN,CAAcK,cAAd,CAA6BkB,QAAQ,CAACC,MAAtC,IAAgDD,QAAQ,CAACE,SAAzD;AACD;AACF;AACF,GAVY;AAWbC,KAAG,EAAE,SAASA,GAAT,CAAaJ,IAAb,EAAmB;AACtB,WAAOA,IAAI,CAACF,GAAD,CAAX;AACD,GAbY;AAcbO,QAAM,EAAE,SAASA,MAAT,CAAgBL,IAAhB,EAAsB;AAC5B,QAAIC,QAAQ,GAAG,KAAKG,GAAL,CAASJ,IAAT,CAAf;;AAEA,QAAIC,QAAJ,EAAc;AACZD,UAAI,CAACF,GAAD,CAAJ,GAAY,IAAZ;;AAEA,UAAIG,QAAQ,CAACC,MAAb,EAAqB;AACnB,eAAOb,KAAK,CAACX,OAAN,CAAcK,cAAd,CAA6BkB,QAAQ,CAACC,MAAtC,CAAP;AACA,eAAOb,KAAK,CAACX,OAAN,CAAcM,aAAd,CAA4BiB,QAAQ,CAACC,MAArC,CAAP;AACD;AACF;AACF,GAzBY;AA0BbI,OAAK,EAAE,SAASA,KAAT,CAAeC,OAAf,EAAwBC,SAAxB,EAAmCC,cAAnC,EAAmD;AACxD,QAAI,KAAJ,EAA2C,EADa,CAGtD;;;AAGFpB,SAAK,CAACX,OAAN,CAAcQ,MAAd,CAAqBwB,YAArB,IAAqCrB,KAAK,CAACX,OAAN,CAAcQ,MAAd,CAAqBwB,YAArB,EAArC,CANwD,CAMkB;;AAE1E,QAAIF,SAAS,IAAI,IAAjB,EAAuB;AACrBA,eAAS,GAAGnB,KAAK,CAACX,OAAN,CAAcQ,MAAd,CAAqByB,UAArB,EAAZ;AACD,KAVuD,CAUtD;;;AAGF,QAAIC,aAAJ;;AAEA,QAAIH,cAAJ,EAAoB;AAClB,UAAII,cAAc,GAAGJ,cAAc,CAACN,SAApC;AACAS,mBAAa,GAAGC,cAAc,CAACC,oBAAf,CAAoCD,cAAc,CAACE,QAAnD,CAAhB;AACD;;AAED,QAAIC,gBAAgB,GAAG,KAAKZ,GAAL,CAASI,SAAT,CAAvB;AACA,QAAIS,mBAAmB,GAAGD,gBAAgB,IAAIA,gBAAgB,CAACE,eAA/D;;AAEA,QAAID,mBAAJ,EAAyB;AACvB,UAAIE,qBAAqB,GAAGH,gBAAgB,CAACI,oBAAjB,EAA5B;AACA,UAAIC,WAAW,GAAGF,qBAAqB,CAACG,eAAxC;;AAEA,UAAI,CAAC,GAAG5B,sBAAsB,CAAChB,OAA3B,EAAoC2C,WAApC,EAAiDd,OAAjD,CAAJ,EAA+D;AAC7D,YAAIgB,mBAAmB,GAAGJ,qBAAqB,CAACJ,QAAhD;AACAI,6BAAqB,CAACK,eAAtB,CAAsCH,WAAtC,EAAmDd,OAAnD,EAA4DgB,mBAA5D,EAAiFX,aAAa,IAAIW,mBAAlG;AACA,eAAOP,gBAAP;AACD,OAJD,MAIO;AACL3B,aAAK,CAACX,OAAN,CAAcO,IAAd,CAAmBwC,UAAnB,CAA8BC,gBAA9B,CAA+CV,gBAA/C;;AAEA,SAAC,GAAGxB,uBAAuB,CAACd,OAA5B,EAAqC8B,SAArC;AACD;AACF;;AAED,QAAImB,cAAc,GAAG,CAAC,GAAGpC,QAAQ,CAACqC,aAAb,EAA4BjC,KAAK,CAACjB,OAAlC,EAA2C,IAA3C,EAAiD6B,OAAjD,CAArB;AACA,QAAIsB,iBAAiB,GAAG,CAAC,GAAGpC,qBAAqB,CAACf,OAA1B,EAAmCiD,cAAnC,CAAxB;AACA,QAAIG,cAAc,GAAGlB,aAAa,IAAI,EAAtC;AACA,QAAImB,YAAY,GAAGF,iBAAiB,CAACG,cAAlB,CAAiCxB,SAAjC,EAA4C,IAA5C,EAAkDsB,cAAlD,CAAnB;AACA,SAAK/B,GAAL,CAASS,SAAT,EAAoBuB,YAApB,EA1CwD,CA0CrB;;AAEnC1C,SAAK,CAACX,OAAN,CAAcQ,MAAd,CAAqB+C,WAArB,IAAoC5C,KAAK,CAACX,OAAN,CAAcQ,MAAd,CAAqB+C,WAArB,CAAiCF,YAAjC,CAApC,CA5CwD,CA4C4B;;AAEpF1C,SAAK,CAACX,OAAN,CAAcO,IAAd,CAAmBiD,KAAnB,CAAyBC,uBAAzB,CAAiDJ,YAAY,CAAC5B,SAA9D;;AAEA,QAAI,KAAJ,EAA2C,EAE1C;;AAED,WAAO4B,YAAP;AACD;AA/EY,CAAf;AAiFAvD,OAAO,CAACE,OAAR,GAAkBC,QAAlB;AACAS,MAAM,CAACZ,OAAP,GAAiBA,OAAO,CAAC,SAAD,CAAxB,C;;;;;;;AC3GA;;AAEAF,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,OAAK,EAAE;AADoC,CAA7C;AAGAD,OAAO,CAACE,OAAR,GAAkB,KAAK,CAAvB;;AAEA,SAAS0D,eAAT,CAAyBnC,QAAzB,EAAmCoC,WAAnC,EAAgD;AAAE,MAAI,EAAEpC,QAAQ,YAAYoC,WAAtB,CAAJ,EAAwC;AAAE,UAAM,IAAIC,SAAJ,CAAc,mCAAd,CAAN;AAA2D;AAAE;;AAEzJ,SAASC,iBAAT,CAA2BC,MAA3B,EAAmCC,KAAnC,EAA0C;AAAE,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGD,KAAK,CAACE,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;AAAE,QAAIE,UAAU,GAAGH,KAAK,CAACC,CAAD,CAAtB;AAA2BE,cAAU,CAACC,UAAX,GAAwBD,UAAU,CAACC,UAAX,IAAyB,KAAjD;AAAwDD,cAAU,CAACE,YAAX,GAA0B,IAA1B;AAAgC,QAAI,WAAWF,UAAf,EAA2BA,UAAU,CAACG,QAAX,GAAsB,IAAtB;AAA4BzE,UAAM,CAACC,cAAP,CAAsBiE,MAAtB,EAA8BI,UAAU,CAACI,GAAzC,EAA8CJ,UAA9C;AAA4D;AAAE;;AAE7T,SAASK,YAAT,CAAsBZ,WAAtB,EAAmCa,UAAnC,EAA+CC,WAA/C,EAA4D;AAAE,MAAID,UAAJ,EAAgBX,iBAAiB,CAACF,WAAW,CAACe,SAAb,EAAwBF,UAAxB,CAAjB;AAAsD,MAAIC,WAAJ,EAAiBZ,iBAAiB,CAACF,WAAD,EAAcc,WAAd,CAAjB;AAA6C,SAAOd,WAAP;AAAqB;AAEvN;;;;;AAGA,IAAIgB,SAAS;AACb;AACA,YAAY;AACV,WAASA,SAAT,CAAmBZ,KAAnB,EAA0Ba,OAA1B,EAAmCC,OAAnC,EAA4C;AAC1CnB,mBAAe,CAAC,IAAD,EAAOiB,SAAP,CAAf;;AAEA,SAAKZ,KAAL,GAAaA,KAAb;AACA,SAAKa,OAAL,GAAeA,OAAf;AACA,SAAKE,IAAL,GAAY,EAAZ;AACA,SAAKD,OAAL,GAAeA,OAAf;AACD;;AAEDN,cAAY,CAACI,SAAD,EAAY,CAAC;AACvBL,OAAG,EAAE,kBADkB;AAEvBvE,SAAK,EAAE,SAASgF,gBAAT,GAA4B,CAAE;AAFd,GAAD,EAGrB;AACDT,OAAG,EAAE,UADJ;AAEDvE,SAAK,EAAE,SAASiF,QAAT,CAAkBC,YAAlB,EAAgCC,QAAhC,EAA0C;AAC/C,WAAKL,OAAL,CAAaG,QAAb,CAAsB,IAAtB,EAA4BC,YAA5B,EAA0CC,QAA1C;AACD;AAJA,GAHqB,EAQrB;AACDZ,OAAG,EAAE,aADJ;AAEDvE,SAAK,EAAE,SAASoF,WAAT,CAAqBD,QAArB,EAA+B;AACpC,WAAKL,OAAL,CAAaM,WAAb,CAAyB,IAAzB,EAA+BD,QAA/B;AACD;AAJA,GARqB,CAAZ,CAAZ;;AAeA,SAAOP,SAAP;AACD,CA1BD,EAFA;;AA8BA,IAAI1E,QAAQ,GAAG0E,SAAf;AACA7E,OAAO,CAACE,OAAR,GAAkBC,QAAlB;AACAS,MAAM,CAACZ,OAAP,GAAiBA,OAAO,CAAC,SAAD,CAAxB,C;;;;;;;AChDA;;;;AAEA,SAASsF,OAAT,CAAiBlE,GAAjB,EAAsB;AAAE,MAAI,OAAOmE,MAAP,KAAkB,UAAlB,IAAgC,SAAOA,MAAM,CAACC,QAAd,MAA2B,QAA/D,EAAyE;AAAEF,WAAO,GAAG,SAASA,OAAT,CAAiBlE,GAAjB,EAAsB;AAAE,sBAAcA,GAAd;AAAoB,KAAtD;AAAyD,GAApI,MAA0I;AAAEkE,WAAO,GAAG,SAASA,OAAT,CAAiBlE,GAAjB,EAAsB;AAAE,aAAOA,GAAG,IAAI,OAAOmE,MAAP,KAAkB,UAAzB,IAAuCnE,GAAG,CAACqE,WAAJ,KAAoBF,MAA3D,IAAqEnE,GAAG,KAAKmE,MAAM,CAACX,SAApF,GAAgG,QAAhG,YAAkHxD,GAAlH,CAAP;AAA+H,KAAjK;AAAoK;;AAAC,SAAOkE,OAAO,CAAClE,GAAD,CAAd;AAAsB;AAE/V;;;AACA,IAAIsE,gBAAgB,GAAG5F,MAAM,CAAC4F,gBAA9B;AAAA,IACI3F,cAAc,GAAGD,MAAM,CAACC,cAD5B;AAAA,IAEI4F,cAFJ;AAAA,IAGIC,YAHJ;AAAA,IAIIC,aAAa,GAAG/F,MAAM,CAACgG,MAAP,CAAc,IAAd,CAJpB;;AAMA,SAASC,QAAT,CAAkBC,CAAlB,EAAqB;AACnB,MAAI,CAACA,CAAL,EAAQ,OAAO,KAAP;AACR,MAAIV,OAAO,CAACU,CAAD,CAAP,KAAe,QAAnB,EAA6B,OAAO,IAAP;AAC7B,MAAI,CAACA,CAAC,CAACP,WAAP,EAAoB,OAAO,KAAP;AACpB,MAAIO,CAAC,CAACP,WAAF,CAAcQ,IAAd,KAAuB,QAA3B,EAAqC,OAAO,KAAP;AACrC,SAAOD,CAAC,CAACA,CAAC,CAACP,WAAF,CAAcS,WAAf,CAAD,KAAiC,QAAxC;AACD;;AAED,SAASC,cAAT,CAAwBlG,KAAxB,EAA+B;AAC7B,MAAI,CAAC8F,QAAQ,CAAC9F,KAAD,CAAb,EAAsB,MAAM,IAAI6D,SAAJ,CAAc7D,KAAK,GAAG,kBAAtB,CAAN;AACtB,SAAOA,KAAP;AACD;;AAED,IAAImG,YAAY,GAAG,YAAY;AAC7B,MAAIC,OAAO,GAAGvG,MAAM,CAACgG,MAAP,CAAc,IAAd,CAAd;AACA,SAAO,UAAUQ,IAAV,EAAgB;AACrB,QAAIC,OAAO,GAAG,CAAd;AAAA,QACIN,IADJ;;AAGA,WAAOI,OAAO,CAACC,IAAI,IAAIC,OAAO,IAAI,EAAf,CAAL,CAAd,EAAwC;AACtC,QAAEA,OAAF;AACD;;AAEDD,QAAI,IAAIC,OAAO,IAAI,EAAnB;AACAF,WAAO,CAACC,IAAD,CAAP,GAAgB,IAAhB;AACAL,QAAI,GAAG,OAAOK,IAAd;AACA,WAAOL,IAAP;AACD,GAZD;AAaD,CAfkB,EAAnB,C,CAeK;AACL;;;AAGAL,YAAY,GAAG,SAASY,OAAT,CAAiBC,WAAjB,EAA8B;AAC3C,MAAI,gBAAgBb,YAApB,EAAkC,MAAM,IAAI9B,SAAJ,CAAc,6BAAd,CAAN;AAClC,SAAO6B,cAAc,CAACc,WAAD,CAArB;AACD,CAHD,C,CAGG;AACH;;;AAGA7F,MAAM,CAACZ,OAAP,GAAiB2F,cAAc,GAAG,SAASe,QAAT,CAAkBD,WAAlB,EAA+B;AAC/D,MAAIE,MAAJ;AACA,MAAI,gBAAgBD,QAApB,EAA8B,MAAM,IAAI5C,SAAJ,CAAc,6BAAd,CAAN;AAC9B6C,QAAM,GAAG7G,MAAM,CAACgG,MAAP,CAAcF,YAAY,CAAChB,SAA3B,CAAT;AACA6B,aAAW,GAAGA,WAAW,KAAKG,SAAhB,GAA4B,EAA5B,GAAiCC,MAAM,CAACJ,WAAD,CAArD;AACA,SAAOf,gBAAgB,CAACiB,MAAD,EAAS;AAC9BG,mBAAe,EAAE;AACf7G,WAAK,EAAEwG;AADQ,KADa;AAI9BM,YAAQ,EAAE;AACR9G,WAAK,EAAEmG,YAAY,CAACK,WAAD;AADX;AAJoB,GAAT,CAAvB;AAQD,CAbD;;AAeAf,gBAAgB,CAACC,cAAD,EAAiB;AAC/BqB,KAAG,EAAE;AACH/G,SAAK,EAAE,SAASA,KAAT,CAAeuE,GAAf,EAAoB;AACzB,UAAIqB,aAAa,CAACrB,GAAD,CAAjB,EAAwB,OAAOqB,aAAa,CAACrB,GAAD,CAApB;AACxB,aAAOqB,aAAa,CAACrB,GAAD,CAAb,GAAqBmB,cAAc,CAACkB,MAAM,CAACrC,GAAD,CAAP,CAA1C;AACD;AAJE,GAD0B;AAO/ByC,QAAM,EAAE;AACNhH,SAAK,EAAE,SAASA,KAAT,CAAeiH,CAAf,EAAkB;AACvB,UAAI1C,GAAJ;AACA2B,oBAAc,CAACe,CAAD,CAAd;;AAEA,WAAK1C,GAAL,IAAYqB,aAAZ,EAA2B;AACzB,YAAIA,aAAa,CAACrB,GAAD,CAAb,KAAuB0C,CAA3B,EAA8B,OAAO1C,GAAP;AAC/B;AACF;AARK,GAPuB;AAiB/B;AACA;AACA2C,aAAW,EAAE;AACXlH,SAAK,EAAE0F,cAAc,CAAC,aAAD;AADV,GAnBkB;AAsB/ByB,oBAAkB,EAAE;AAClBnH,SAAK,EAAE0F,cAAc,CAAC,oBAAD;AADH,GAtBW;AAyB/BH,UAAQ,EAAE;AACRvF,SAAK,EAAE0F,cAAc,CAAC,UAAD;AADb,GAzBqB;AA4B/B0B,OAAK,EAAE;AACLpH,SAAK,EAAE0F,cAAc,CAAC,OAAD;AADhB,GA5BwB;AA+B/B2B,SAAO,EAAE;AACPrH,SAAK,EAAE0F,cAAc,CAAC,SAAD;AADd,GA/BsB;AAkC/B4B,QAAM,EAAE;AACNtH,SAAK,EAAE0F,cAAc,CAAC,QAAD;AADf,GAlCuB;AAqC/B6B,SAAO,EAAE;AACPvH,SAAK,EAAE0F,cAAc,CAAC,SAAD;AADd,GArCsB;AAwC/B8B,OAAK,EAAE;AACLxH,SAAK,EAAE0F,cAAc,CAAC,OAAD;AADhB,GAxCwB;AA2C/B+B,aAAW,EAAE;AACXzH,SAAK,EAAE0F,cAAc,CAAC,aAAD;AADV,GA3CkB;AA8C/BO,aAAW,EAAE;AACXjG,SAAK,EAAE0F,cAAc,CAAC,aAAD;AADV,GA9CkB;AAiD/BgC,aAAW,EAAE;AACX1H,SAAK,EAAE0F,cAAc,CAAC,aAAD;AADV;AAjDkB,CAAjB,CAAhB,C,CAoDI;;AAEJD,gBAAgB,CAACE,YAAY,CAAChB,SAAd,EAAyB;AACvCa,aAAW,EAAE;AACXxF,SAAK,EAAE0F;AADI,GAD0B;AAIvCiC,UAAQ,EAAE;AACR3H,SAAK,EAAE,SAASA,KAAT,GAAiB;AACtB,aAAO,KAAK8G,QAAZ;AACD;AAHO;AAJ6B,CAAzB,CAAhB,C,CASI;AACJ;;AAEArB,gBAAgB,CAACC,cAAc,CAACf,SAAhB,EAA2B;AACzCgD,UAAQ,EAAE;AACR3H,SAAK,EAAE,SAASA,KAAT,GAAiB;AACtB,aAAO,aAAakG,cAAc,CAAC,IAAD,CAAd,CAAqBW,eAAlC,GAAoD,GAA3D;AACD;AAHO,GAD+B;AAMzCe,SAAO,EAAE;AACP5H,SAAK,EAAE,SAASA,KAAT,GAAiB;AACtB,aAAOkG,cAAc,CAAC,IAAD,CAArB;AACD;AAHM;AANgC,CAA3B,CAAhB;AAYApG,cAAc,CAAC4F,cAAc,CAACf,SAAhB,EAA2Be,cAAc,CAAC+B,WAA1C,EAAuD;AACnEzH,OAAK,EAAE,SAASA,KAAT,GAAiB;AACtB,QAAI0G,MAAM,GAAGR,cAAc,CAAC,IAAD,CAA3B;AACA,QAAIb,OAAO,CAACqB,MAAD,CAAP,KAAoB,QAAxB,EAAkC,OAAOA,MAAP;AAClC,WAAOA,MAAM,CAACiB,QAAP,EAAP;AACD;AALkE,CAAvD,CAAd;AAOA7H,cAAc,CAAC4F,cAAc,CAACf,SAAhB,EAA2Be,cAAc,CAACO,WAA1C,EAAuD;AACnEjG,OAAK,EAAE;AAD4D,CAAvD,CAAd,C,CAEI;;AAEJF,cAAc,CAAC6F,YAAY,CAAChB,SAAd,EAAyBe,cAAc,CAACO,WAAxC,EAAqD;AACjEjG,OAAK,EAAE0F,cAAc,CAACf,SAAf,CAAyBe,cAAc,CAACO,WAAxC;AAD0D,CAArD,CAAd,C,CAEI;AACJ;AACA;AACA;;AAEAnG,cAAc,CAAC6F,YAAY,CAAChB,SAAd,EAAyBe,cAAc,CAAC+B,WAAxC,EAAqD;AACjEzH,OAAK,EAAE0F,cAAc,CAACf,SAAf,CAAyBe,cAAc,CAAC+B,WAAxC;AAD0D,CAArD,CAAd,C;;;;;;;ACjKA;;;;AAEA5H,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,OAAK,EAAE;AADoC,CAA7C;AAGAD,OAAO,CAACE,OAAR,GAAkB,KAAK,CAAvB;;AAEA,IAAIW,KAAK,GAAGC,sBAAsB,CAAC,mBAAO,CAAC,CAAD,CAAR,CAAlC;;AAEA,SAASA,sBAAT,CAAgCM,GAAhC,EAAqC;AAAE,SAAOA,GAAG,IAAIA,GAAG,CAACC,UAAX,GAAwBD,GAAxB,GAA8B;AAAElB,WAAO,EAAEkB;AAAX,GAArC;AAAwD;;AAE/F,SAASkE,OAAT,CAAiBlE,GAAjB,EAAsB;AAAE,MAAI,OAAOmE,MAAP,KAAkB,UAAlB,IAAgC,SAAOA,MAAM,CAACC,QAAd,MAA2B,QAA/D,EAAyE;AAAEF,WAAO,GAAG,SAASA,OAAT,CAAiBlE,GAAjB,EAAsB;AAAE,sBAAcA,GAAd;AAAoB,KAAtD;AAAyD,GAApI,MAA0I;AAAEkE,WAAO,GAAG,SAASA,OAAT,CAAiBlE,GAAjB,EAAsB;AAAE,aAAOA,GAAG,IAAI,OAAOmE,MAAP,KAAkB,UAAzB,IAAuCnE,GAAG,CAACqE,WAAJ,KAAoBF,MAA3D,IAAqEnE,GAAG,KAAKmE,MAAM,CAACX,SAApF,GAAgG,QAAhG,YAAkHxD,GAAlH,CAAP;AAA+H,KAAjK;AAAoK;;AAAC,SAAOkE,OAAO,CAAClE,GAAD,CAAd;AAAsB;;AAE/V,SAAS0G,oBAAT,CAA8B/F,OAA9B,EAAuC;AACrC,MAAIN,QAAJ;;AAEA,MAAIM,OAAO,KAAK6E,SAAZ,IAAyB7E,OAAO,KAAK,IAArC,IAA6CA,OAAO,KAAK,KAAzD,IAAkEA,OAAO,KAAK,IAAlF,EAAwF;AACtFN,YAAQ,GAAG,IAAIZ,KAAK,CAACX,OAAN,CAAc6H,cAAlB,EAAX;AACD,GAFD,MAEO,IAAIC,KAAK,CAACC,OAAN,CAAclG,OAAd,CAAJ,EAA4B;AACjCN,YAAQ,GAAG,IAAIZ,KAAK,CAACX,OAAN,CAAcgI,iBAAlB,CAAoCnG,OAApC,CAAX;AACD,GAFM,MAEA,IAAIuD,OAAO,CAACvD,OAAD,CAAP,KAAqB,QAArB,IAAiCA,OAAO,CAACoG,IAA7C,EAAmD;AACxD;AACA,QAAI,OAAOpG,OAAO,CAACoG,IAAf,KAAwB,QAA5B,EAAsC;AACpC1G,cAAQ,GAAG,IAAIZ,KAAK,CAACX,OAAN,CAAckI,eAAlB,CAAkCrG,OAAlC,CAAX;AACD,KAFD,MAEO;AACLN,cAAQ,GAAG,IAAIZ,KAAK,CAACX,OAAN,CAAcmI,kBAAlB,CAAqCtG,OAArC,CAAX;AACD;AACF,GAPM,MAOA,IAAI,OAAOA,OAAP,KAAmB,QAAnB,IAA+B,OAAOA,OAAP,KAAmB,QAAtD,EAAgE;AACrEN,YAAQ,GAAG,IAAIZ,KAAK,CAACX,OAAN,CAAcoI,aAAlB,CAAgCvG,OAAhC,CAAX;AACD,GAFM,MAEA;AACL,UAAM,IAAIwG,KAAJ,CAAU,yBAAyBC,MAAzB,CAAgCzG,OAAhC,EAAyC,WAAzC,EAAsDyG,MAAtD,CAA6D1I,MAAM,CAAC2I,IAAP,CAAY1G,OAAZ,CAA7D,EAAmF,GAAnF,CAAV,CAAN;AACD;;AAEDN,UAAQ,CAACiH,WAAT,GAAuB,CAAvB;AACA,SAAOjH,QAAP;AACD;;AAED,IAAItB,QAAQ,GAAG2H,oBAAf;AACA9H,OAAO,CAACE,OAAR,GAAkBC,QAAlB;AACAS,MAAM,CAACZ,OAAP,GAAiBA,OAAO,CAAC,SAAD,CAAxB,C;;;;;;;ACvCA;;;;AAEAF,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,OAAK,EAAE;AADoC,CAA7C;AAGAD,OAAO,CAACoD,aAAR,GAAwBA,aAAxB;AACApD,OAAO,CAAC2I,aAAR,GAAwBA,aAAxB;AACA3I,OAAO,CAAC4I,YAAR,GAAuBA,YAAvB;AACA5I,OAAO,CAAC6I,cAAR,GAAyBA,cAAzB;AACA7I,OAAO,CAACE,OAAR,GAAkB,KAAK,CAAvB;;AAEA,IAAIW,KAAK,GAAGC,sBAAsB,CAAC,mBAAO,CAAC,CAAD,CAAR,CAAlC;;AAEA,IAAIgI,gBAAgB,GAAGhI,sBAAsB,CAAC,mBAAO,CAAC,EAAD,CAAR,CAA7C;;AAEA,IAAIiI,aAAa,GAAG,mBAAO,CAAC,EAAD,CAA3B;;AAEA,SAASjI,sBAAT,CAAgCM,GAAhC,EAAqC;AAAE,SAAOA,GAAG,IAAIA,GAAG,CAACC,UAAX,GAAwBD,GAAxB,GAA8B;AAAElB,WAAO,EAAEkB;AAAX,GAArC;AAAwD;;AAE/F,SAASkE,OAAT,CAAiBlE,GAAjB,EAAsB;AAAE,MAAI,OAAOmE,MAAP,KAAkB,UAAlB,IAAgC,SAAOA,MAAM,CAACC,QAAd,MAA2B,QAA/D,EAAyE;AAAEF,WAAO,GAAG,SAASA,OAAT,CAAiBlE,GAAjB,EAAsB;AAAE,sBAAcA,GAAd;AAAoB,KAAtD;AAAyD,GAApI,MAA0I;AAAEkE,WAAO,GAAG,SAASA,OAAT,CAAiBlE,GAAjB,EAAsB;AAAE,aAAOA,GAAG,IAAI,OAAOmE,MAAP,KAAkB,UAAzB,IAAuCnE,GAAG,CAACqE,WAAJ,KAAoBF,MAA3D,IAAqEnE,GAAG,KAAKmE,MAAM,CAACX,SAApF,GAAgG,QAAhG,YAAkHxD,GAAlH,CAAP;AAA+H,KAAjK;AAAoK;;AAAC,SAAOkE,OAAO,CAAClE,GAAD,CAAd;AAAsB;;AAE/V,IAAI4H,cAAc,GAAG;AACnBxE,KAAG,EAAE,IADc;AAEnByE,KAAG,EAAE;AAFc,CAArB;;AAKA,SAASC,kBAAT,GAA8B;AAC5B,MAAIrI,KAAK,CAACX,OAAN,CAAcE,SAAlB,EAA6B;AAC3B,QAAI6F,IAAI,GAAGpF,KAAK,CAACX,OAAN,CAAcE,SAAd,CAAwB+I,OAAxB,EAAX;;AAEA,QAAIlD,IAAJ,EAAU;AACR,aAAO,kCAAkCA,IAAlC,GAAyC,IAAhD;AACD;AACF;;AAED,SAAO,EAAP;AACD;;AAED,SAASmD,OAAT,CAAiBjB,IAAjB,EAAuB3D,GAAvB,EAA4ByE,GAA5B,EAAiChF,KAAjC,EAAwCoF,KAAxC,EAA+C;AAC7C,MAAIN,aAAa,CAACO,MAAlB,EAA0B;AACxBrF,SAAK,GAAGsF,WAAW,CAACpB,IAAD,EAAOlE,KAAP,CAAnB;AACD;;AAED,SAAO;AACL;AACAkE,QAAI,EAAEA,IAFD;AAGL3D,OAAG,EAAEA,GAHA;AAILyE,OAAG,EAAEA,GAJA;AAKLhF,SAAK,EAAEA,KALF;AAML;AACAuF,UAAM,EAAEH;AAPH,GAAP;AASD;;AAED;AACA,IAAIlJ,QAAQ,GAAGiJ,OAAf;AACApJ,OAAO,CAACE,OAAR,GAAkBC,QAAlB;;AAEA,SAASsJ,YAAT,CAAsBC,KAAtB,EAA6B;AAC3B,MAAI,CAACA,KAAL,EAAY;AACV,WAAO9C,SAAP;AACD;;AAED,MAAI,CAACoB,KAAK,CAACC,OAAN,CAAcyB,KAAd,CAAL,EAA2B;AACzB,WAAOA,KAAP;AACD,GAFD,MAEO;AACL,QAAIC,MAAM,GAAG,EAAb;;AAEA,SAAK,IAAIzF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwF,KAAK,CAACvF,MAA1B,EAAkC,EAAED,CAApC,EAAuC;AACrC,UAAI0F,aAAa,GAAGH,YAAY,CAACC,KAAK,CAACxF,CAAD,CAAN,CAAhC;;AAEA,UAAI0F,aAAJ,EAAmB;AACjB,aAAK,IAAIpF,GAAT,IAAgBoF,aAAhB,EAA+B;AAC7BD,gBAAM,CAACnF,GAAD,CAAN,GAAcoF,aAAa,CAACpF,GAAD,CAA3B;AACD;AACF;AACF;;AAED,WAAOmF,MAAP;AACD;AACF,C,CAAC;;;AAGF,SAASJ,WAAT,CAAqBpB,IAArB,EAA2BlE,KAA3B,EAAkC;AAChC;AACA,MAAIkE,IAAI,KAAK,MAAb,EAAqB;AACnB,QAAI0B,QAAQ,GAAG5F,KAAK,CAAC4F,QAArB;AACA,QAAI5J,KAAK,GAAGgE,KAAK,CAAChE,KAAlB,CAFmB,CAEM;;AAEzB,QAAIA,KAAK,IAAI,IAAT,IAAiB4J,QAAQ,IAAI,IAAjC,EAAuC;AACrC,UAAI7B,KAAK,CAACC,OAAN,CAAc4B,QAAd,CAAJ,EAA6B;AAC3BA,gBAAQ,GAAGA,QAAQ,CAACC,GAAT,CAAa,UAAUC,GAAV,EAAe;AACrC,cAAI,OAAOA,GAAP,KAAe,QAAf,IAA2B,OAAOA,GAAP,KAAe,QAA9C,EAAwD;AACtD,mBAAOA,GAAP;AACD,WAFD,MAEO;AACL,mBAAO,EAAP;AACD;AACF,SANU,EAMRC,IANQ,CAMH,EANG,CAAX;AAOD,OARD,MAQO,IAAI,OAAOH,QAAP,KAAoB,QAApB,IAAgC,OAAOA,QAAP,KAAoB,QAAxD,EAAkE;AACvEA,gBAAQ,GAAG,EAAX;AACD;;AAED5F,WAAK,CAAChE,KAAN,GAAc4G,MAAM,CAACgD,QAAD,CAApB;AACD;;AAED5F,SAAK,CAAC4F,QAAN,GAAiB,IAAjB;AACD;;AAED,SAAO5F,KAAP;AACD;;AAED,SAASb,aAAT,CAAuB+E,IAAvB,EAA6B8B,MAA7B,EAAqCJ,QAArC,EAA+C;AAC7C,MAAI1B,IAAI,IAAI,IAAZ,EAAkB;AAChB,UAAMI,KAAK,CAAC,yDAAyDW,kBAAkB,EAA5E,CAAX;AACD,GAH4C,CAG3C;;;AAGF,MAAIjF,KAAK,GAAG,EAAZ;AACA,MAAIiG,QAAJ;AACA,MAAI1F,GAAG,GAAG,IAAV;AACA,MAAIyE,GAAG,GAAG,IAAV;;AAEA,MAAIgB,MAAM,IAAI,IAAd,EAAoB;AAClBhB,OAAG,GAAGgB,MAAM,CAAChB,GAAP,KAAerC,SAAf,GAA2B,IAA3B,GAAkCqD,MAAM,CAAChB,GAA/C;AACAzE,OAAG,GAAGyF,MAAM,CAACzF,GAAP,KAAeoC,SAAf,GAA2B,IAA3B,GAAkCC,MAAM,CAACoD,MAAM,CAACzF,GAAR,CAA9C,CAFkB,CAE0C;;AAE5D,SAAK0F,QAAL,IAAiBD,MAAjB,EAAyB;AACvB,UAAI,CAACjB,cAAc,CAACkB,QAAD,CAAnB,EAA+B;AAC7BjG,aAAK,CAACiG,QAAD,CAAL,GAAkBD,MAAM,CAACC,QAAD,CAAxB;AACD;AACF;AACF;;AAED,MAAIC,cAAc,GAAGC,SAAS,CAACjG,MAAV,GAAmB,CAAxC;;AAEA,MAAIgG,cAAc,GAAG,CAArB,EAAwB;AACtB,QAAIA,cAAc,KAAK,CAAnB,IAAwB,CAACnC,KAAK,CAACC,OAAN,CAAc4B,QAAd,CAA7B,EAAsD;AACpD5F,WAAK,CAAC4F,QAAN,GAAiBA,QAAjB;AACD,KAFD,MAEO;AACL,UAAIQ,UAAU,GAAGR,QAAjB;;AAEA,UAAIM,cAAc,GAAG,CAArB,EAAwB;AACtBE,kBAAU,GAAG,IAAIrC,KAAJ,CAAUmC,cAAV,CAAb;;AAEA,aAAK,IAAIjG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGiG,cAApB,EAAoCjG,CAAC,EAArC,EAAyC;AACvCmG,oBAAU,CAACnG,CAAD,CAAV,GAAgBkG,SAAS,CAAClG,CAAC,GAAG,CAAL,CAAzB;AACD;AACF;;AAEDD,WAAK,CAAC4F,QAAN,GAAiB,CAAC,GAAGf,gBAAgB,CAAC5I,OAArB,EAA8BmK,UAA9B,CAAjB;AACD;AACF,GAxC4C,CAwC3C;;;AAGF,MAAIlC,IAAI,IAAIA,IAAI,CAACmC,YAAjB,EAA+B;AAC7B,QAAIA,YAAY,GAAGnC,IAAI,CAACmC,YAAxB;;AAEA,SAAKJ,QAAL,IAAiBI,YAAjB,EAA+B;AAC7B,UAAIrG,KAAK,CAACiG,QAAD,CAAL,KAAoBtD,SAAxB,EAAmC;AACjC3C,aAAK,CAACiG,QAAD,CAAL,GAAkBI,YAAY,CAACJ,QAAD,CAA9B;AACD;AACF;AACF;;AAED,MAAIjG,KAAK,CAACyF,KAAN,KAAgB1B,KAAK,CAACC,OAAN,CAAchE,KAAK,CAACyF,KAApB,KAA8BpE,OAAO,CAACrB,KAAK,CAACyF,KAAP,CAAP,KAAyB,QAAvE,CAAJ,EAAsF;AACpFzF,SAAK,CAACyF,KAAN,GAAcD,YAAY,CAACxF,KAAK,CAACyF,KAAP,CAA1B;AACD;;AAED,SAAO,IAAIN,OAAJ,CAAYjB,IAAZ,EAAkB3D,GAAlB,EAAuByE,GAAvB,EAA4BhF,KAA5B,EAAmCpD,KAAK,CAACX,OAAN,CAAcE,SAAjD,CAAP;AACD;;AAED,SAASuI,aAAT,CAAuBR,IAAvB,EAA6B;AAC3B,MAAIoC,OAAO,GAAGnH,aAAa,CAACoH,IAAd,CAAmB,IAAnB,EAAyBrC,IAAzB,CAAd,CAD2B,CACmB;AAC9C;AACA;AACA;;AAEAoC,SAAO,CAACpC,IAAR,GAAeA,IAAf;AACA,SAAOoC,OAAP;AACD;;AAED,SAAS3B,YAAT,CAAsB7G,OAAtB,EAA+BkI,MAA/B,EAAuC;AACrC,MAAI,CAACpB,cAAc,CAAC9G,OAAD,CAAnB,EAA8B;AAC5B,UAAMwG,KAAK,CAAC,uCAAuCW,kBAAkB,EAA1D,CAAX;AACD,GAHoC,CAGnC;;;AAGF,MAAIjF,KAAK,GAAGnE,MAAM,CAAC2K,MAAP,CAAc,EAAd,EAAkB1I,OAAO,CAACkC,KAA1B,CAAZ,CANqC,CAMS;;AAE9C,MAAIO,GAAG,GAAGzC,OAAO,CAACyC,GAAlB;AACA,MAAIyE,GAAG,GAAGlH,OAAO,CAACkH,GAAlB,CATqC,CASd;;AAEvB,MAAII,KAAK,GAAGtH,OAAO,CAACyH,MAApB;;AAEA,MAAIS,MAAJ,EAAY;AACV;AACA,QAAIA,MAAM,CAAChB,GAAP,KAAerC,SAAnB,EAA8B;AAC5BqC,SAAG,GAAGgB,MAAM,CAAChB,GAAb;AACAI,WAAK,GAAGxI,KAAK,CAACX,OAAN,CAAcE,SAAtB;AACD;;AAED,QAAI6J,MAAM,CAACzF,GAAP,KAAeoC,SAAnB,EAA8B;AAC5BpC,SAAG,GAAGqC,MAAM,CAACoD,MAAM,CAACzF,GAAR,CAAZ;AACD,KATS,CASR;;;AAGF,QAAI8F,YAAJ;;AAEA,QAAIvI,OAAO,CAACoG,IAAR,IAAgBpG,OAAO,CAACoG,IAAR,CAAamC,YAAjC,EAA+C;AAC7CA,kBAAY,GAAGvI,OAAO,CAACoG,IAAR,CAAamC,YAA5B;AACD,KAhBS,CAgBR;;;AAGF,QAAIJ,QAAJ;;AAEA,SAAKA,QAAL,IAAiBD,MAAjB,EAAyB;AACvB,UAAIA,MAAM,CAACS,cAAP,CAAsBR,QAAtB,KAAmC,CAAClB,cAAc,CAAC0B,cAAf,CAA8BR,QAA9B,CAAxC,EAAiF;AAC/E,YAAID,MAAM,CAACC,QAAD,CAAN,KAAqBtD,SAArB,IAAkC0D,YAAY,KAAK1D,SAAvD,EAAkE;AAChE;AACA3C,eAAK,CAACiG,QAAD,CAAL,GAAkBI,YAAY,CAACJ,QAAD,CAA9B;AACD,SAHD,MAGO;AACLjG,eAAK,CAACiG,QAAD,CAAL,GAAkBD,MAAM,CAACC,QAAD,CAAxB;AACD;AACF;AACF;AACF;;AAED,OAAK,IAAIS,IAAI,GAAGP,SAAS,CAACjG,MAArB,EAA6B0F,QAAQ,GAAG,IAAI7B,KAAJ,CAAU2C,IAAI,GAAG,CAAP,GAAWA,IAAI,GAAG,CAAlB,GAAsB,CAAhC,CAAxC,EAA4EC,IAAI,GAAG,CAAxF,EAA2FA,IAAI,GAAGD,IAAlG,EAAwGC,IAAI,EAA5G,EAAgH;AAC9Gf,YAAQ,CAACe,IAAI,GAAG,CAAR,CAAR,GAAqBR,SAAS,CAACQ,IAAD,CAA9B;AACD;;AAED,MAAIf,QAAQ,CAAC1F,MAAb,EAAqB;AACnBF,SAAK,CAAC4F,QAAN,GAAiB,CAAC,GAAGf,gBAAgB,CAAC5I,OAArB,EAA8B2J,QAA9B,CAAjB;AACD;;AAED,SAAO,IAAIT,OAAJ,CAAYrH,OAAO,CAACoG,IAApB,EAA0B3D,GAA1B,EAA+ByE,GAA/B,EAAoChF,KAApC,EAA2CoF,KAA3C,CAAP;AACD;;AAED;;AAEA,SAASR,cAAT,CAAwBgC,MAAxB,EAAgC;AAC9B,SAAOvF,OAAO,CAACuF,MAAD,CAAP,KAAoB,QAApB,IAAgCA,MAAM,KAAK,IAA3C,IAAmDA,MAAM,CAAC1C,IAA1D,IAAkE0C,MAAM,CAAC5G,KAAhF;AACD,C;;;;;;;AClPD;;AAEAnE,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,OAAK,EAAE;AADoC,CAA7C;AAGAD,OAAO,CAACE,OAAR,GAAkB4K,sBAAlB;;AAEA,IAAIC,SAAS,GAAGjK,sBAAsB,CAAC,mBAAO,CAAC,CAAD,CAAR,CAAtC;;AAEA,SAASA,sBAAT,CAAgCM,GAAhC,EAAqC;AAAE,SAAOA,GAAG,IAAIA,GAAG,CAACC,UAAX,GAAwBD,GAAxB,GAA8B;AAAElB,WAAO,EAAEkB;AAAX,GAArC;AAAwD;;AAE/F,SAAS0J,sBAAT,CAAgCtJ,IAAhC,EAAsC;AACpC,MAAIpB,SAAS,GAAG2K,SAAS,CAAC7K,OAAV,CAAkB0B,GAAlB,CAAsBJ,IAAtB,CAAhB;;AAEA,MAAI,CAACpB,SAAL,EAAgB;AACd,WAAO,KAAP;AACD;;AAED2K,WAAS,CAAC7K,OAAV,CAAkB2B,MAAlB,CAAyBL,IAAzB;;AAEApB,WAAS,CAACuB,SAAV,CAAoBuB,gBAApB;;AAEA,SAAO,IAAP;AACD;;AAED;AACAtC,MAAM,CAACZ,OAAP,GAAiBA,OAAO,CAAC,SAAD,CAAxB,C;;;;;;;AC1BA;;;;AAEAF,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,OAAK,EAAE;AADoC,CAA7C;AAGAD,OAAO,CAACE,OAAR,GAAkB,KAAK,CAAvB;;AAEA,SAASoF,OAAT,CAAiBlE,GAAjB,EAAsB;AAAE,MAAI,OAAOmE,MAAP,KAAkB,UAAlB,IAAgC,SAAOA,MAAM,CAACC,QAAd,MAA2B,QAA/D,EAAyE;AAAEF,WAAO,GAAG,SAASA,OAAT,CAAiBlE,GAAjB,EAAsB;AAAE,sBAAcA,GAAd;AAAoB,KAAtD;AAAyD,GAApI,MAA0I;AAAEkE,WAAO,GAAG,SAASA,OAAT,CAAiBlE,GAAjB,EAAsB;AAAE,aAAOA,GAAG,IAAI,OAAOmE,MAAP,KAAkB,UAAzB,IAAuCnE,GAAG,CAACqE,WAAJ,KAAoBF,MAA3D,IAAqEnE,GAAG,KAAKmE,MAAM,CAACX,SAApF,GAAgG,QAAhG,YAAkHxD,GAAlH,CAAP;AAA+H,KAAjK;AAAoK;;AAAC,SAAOkE,OAAO,CAAClE,GAAD,CAAd;AAAsB;;AAE/V,SAAS4J,qBAAT,CAA+BnI,WAA/B,EAA4CoI,WAA5C,EAAyD;AACvD;AACA,MAAIC,SAAS,GAAGrI,WAAW,KAAK,IAAhC;AACA,MAAIsI,SAAS,GAAGF,WAAW,KAAK,IAAhC;;AAEA,MAAIC,SAAS,IAAIC,SAAjB,EAA4B;AAC1B,WAAOD,SAAS,KAAKC,SAArB;AACD;;AAED,MAAIC,QAAQ,GAAG9F,OAAO,CAACzC,WAAD,CAAtB;;AAEA,MAAIwI,QAAQ,GAAG/F,OAAO,CAAC2F,WAAD,CAAtB;;AAEA,MAAIG,QAAQ,KAAK,QAAb,IAAyBA,QAAQ,KAAK,QAA1C,EAAoD;AAClD,WAAOC,QAAQ,KAAK,QAAb,IAAyBA,QAAQ,KAAK,QAA7C;AACD,GAFD,MAEO;AACL,WAAOD,QAAQ,KAAK,QAAb,IAAyBC,QAAQ,KAAK,QAAtC,IAAkDxI,WAAW,CAACsF,IAAZ,KAAqB8C,WAAW,CAAC9C,IAAnF,IAA2FtF,WAAW,CAAC2B,GAAZ,KAAoByG,WAAW,CAACzG,GAAlI;AACD;AACF;;AAED,IAAIrE,QAAQ,GAAG6K,qBAAf;AACAhL,OAAO,CAACE,OAAR,GAAkBC,QAAlB;AACAS,MAAM,CAACZ,OAAP,GAAiBA,OAAO,CAAC,SAAD,CAAxB,C;;;;;;;AC/BA;;AAEAF,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,OAAK,EAAE;AADoC,CAA7C;AAGAD,OAAO,CAACE,OAAR,GAAkB,KAAK,CAAvB;;AAEA,IAAIoL,OAAO,GAAGxK,sBAAsB,CAAC,mBAAO,CAAC,EAAD,CAAR,CAApC;;AAEA,IAAIiK,SAAS,GAAGjK,sBAAsB,CAAC,mBAAO,CAAC,CAAD,CAAR,CAAtC;;AAEA,IAAID,KAAK,GAAGC,sBAAsB,CAAC,mBAAO,CAAC,CAAD,CAAR,CAAlC;;AAEA,SAASA,sBAAT,CAAgCM,GAAhC,EAAqC;AAAE,SAAOA,GAAG,IAAIA,GAAG,CAACC,UAAX,GAAwBD,GAAxB,GAA8B;AAAElB,WAAO,EAAEkB;AAAX,GAArC;AAAwD;;AAE/F,SAASmK,MAAT,CAAgBxJ,OAAhB,EAAyBC,SAAzB,EAAoCwJ,OAApC,EAA6CpG,QAA7C,EAAuD;AACrD;AACA,MAAI,OAAOoG,OAAP,KAAmB,UAAvB,EAAmC;AACjCpG,YAAQ,GAAGoG,OAAX;AACAA,WAAO,GAAG,IAAV;AACD;;AAEDA,SAAO,GAAGA,OAAO,IAAI,EAArB,CAPqD,CAO5B;;AAEzB,GAAC,GAAGF,OAAO,CAACpL,OAAZ,EAAqBsL,OAArB;;AAEA,MAAIC,aAAa,GAAGV,SAAS,CAAC7K,OAAV,CAAkB4B,KAAlB,CAAwBC,OAAxB,EAAiCC,SAAjC,EAA4CwJ,OAAO,CAACE,MAApD,CAApB;;AAEA,MAAIC,iBAAiB,GAAGF,aAAa,CAACG,iBAAd,EAAxB;;AAEA,MAAIxG,QAAJ,EAAc;AACZA,YAAQ,CAACyG,IAAT,CAAcF,iBAAd;AACD;;AAED,SAAOA,iBAAP;AACD;;AAED,IAAIxL,QAAQ,GAAGoL,MAAf;AACAvL,OAAO,CAACE,OAAR,GAAkBC,QAAlB;AACAS,MAAM,CAACZ,OAAP,GAAiBA,OAAO,CAAC,SAAD,CAAxB,C;;;;;;;ACvCA;;AAEA,SAAS4D,eAAT,CAAyBnC,QAAzB,EAAmCoC,WAAnC,EAAgD;AAAE,MAAI,EAAEpC,QAAQ,YAAYoC,WAAtB,CAAJ,EAAwC;AAAE,UAAM,IAAIC,SAAJ,CAAc,mCAAd,CAAN;AAA2D;AAAE;;AAEzJ,SAASC,iBAAT,CAA2BC,MAA3B,EAAmCC,KAAnC,EAA0C;AAAE,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGD,KAAK,CAACE,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;AAAE,QAAIE,UAAU,GAAGH,KAAK,CAACC,CAAD,CAAtB;AAA2BE,cAAU,CAACC,UAAX,GAAwBD,UAAU,CAACC,UAAX,IAAyB,KAAjD;AAAwDD,cAAU,CAACE,YAAX,GAA0B,IAA1B;AAAgC,QAAI,WAAWF,UAAf,EAA2BA,UAAU,CAACG,QAAX,GAAsB,IAAtB;AAA4BzE,UAAM,CAACC,cAAP,CAAsBiE,MAAtB,EAA8BI,UAAU,CAACI,GAAzC,EAA8CJ,UAA9C;AAA4D;AAAE;;AAE7T,SAASK,YAAT,CAAsBZ,WAAtB,EAAmCa,UAAnC,EAA+CC,WAA/C,EAA4D;AAAE,MAAID,UAAJ,EAAgBX,iBAAiB,CAACF,WAAW,CAACe,SAAb,EAAwBF,UAAxB,CAAjB;AAAsD,MAAIC,WAAJ,EAAiBZ,iBAAiB,CAACF,WAAD,EAAcc,WAAd,CAAjB;AAA6C,SAAOd,WAAP;AAAqB,C,CAEvN;;;AACA,IAAI2C,OAAO,GAAG,mBAAO,CAAC,CAAD,CAArB;;AAEA,IAAIsF,IAAI,GAAG,oBAAX;AACA,IAAIC,IAAI,GAAG,KAAX;AACA,IAAIzE,OAAO,GAAG;AACZ,OAAK,KADO;AAEZ,OAAK,KAFO;AAGZ,OAAK,KAHO;AAIZ,OAAK,KAJO;AAKZ,OAAK,KALO;AAMZ,SAAO,GANK;AAOZ,SAAO;AAPK,CAAd;;AAUA,IAAI0E,QAAQ,GAAG,SAASA,QAAT,CAAkB3E,KAAlB,EAAyB;AACtC,SAAOC,OAAO,CAACD,KAAD,CAAd;AACD,CAFD;;AAIA,IAAI4E,MAAM,GAAG,qBAAb;;AAEA,SAASC,MAAT,CAAgBC,GAAhB,EAAqB;AACnB,SAAOC,kBAAkB,CAACD,GAAD,CAAlB,CAAwB7E,OAAxB,CAAgCwE,IAAhC,EAAsCE,QAAtC,CAAP;AACD;;AAED,SAASK,MAAT,CAAgBF,GAAhB,EAAqB;AACnB,SAAOG,kBAAkB,CAACH,GAAG,CAAC7E,OAAJ,CAAYyE,IAAZ,EAAkB,GAAlB,CAAD,CAAzB;AACD;;AAED,IAAIQ,eAAe;AACnB;AACA,YAAY;AACV,WAASA,eAAT,CAAyBC,KAAzB,EAAgC;AAC9B5I,mBAAe,CAAC,IAAD,EAAO2I,eAAP,CAAf;;AAEA,SAAKN,MAAL,IAAenM,MAAM,CAACgG,MAAP,CAAc,IAAd,CAAf;AACA,QAAI,CAAC0G,KAAL,EAAY;;AAEZ,QAAIA,KAAK,CAACC,MAAN,CAAa,CAAb,MAAoB,GAAxB,EAA6B;AAC3BD,WAAK,GAAGA,KAAK,CAACE,KAAN,CAAY,CAAZ,CAAR;AACD;;AAED,SAAK,IAAIC,KAAJ,EAAW1M,KAAX,EAAkB2M,KAAK,GAAG,CAACJ,KAAK,IAAI,EAAV,EAAc/E,KAAd,CAAoB,GAApB,CAA1B,EAAoDvD,CAAC,GAAG,CAAxD,EAA2DC,MAAM,GAAGyI,KAAK,CAACzI,MAA/E,EAAuFD,CAAC,GAAGC,MAA3F,EAAmGD,CAAC,EAApG,EAAwG;AACtGjE,WAAK,GAAG2M,KAAK,CAAC1I,CAAD,CAAb;AACAyI,WAAK,GAAG1M,KAAK,CAAC4M,OAAN,CAAc,GAAd,CAAR;;AAEA,UAAI,CAAC,CAAD,GAAKF,KAAT,EAAgB;AACd,aAAKG,MAAL,CAAYT,MAAM,CAACpM,KAAK,CAACyM,KAAN,CAAY,CAAZ,EAAeC,KAAf,CAAD,CAAlB,EAA2CN,MAAM,CAACpM,KAAK,CAACyM,KAAN,CAAYC,KAAK,GAAG,CAApB,CAAD,CAAjD;AACD,OAFD,MAEO,IAAI1M,KAAK,CAACkE,MAAV,EAAkB;AACvB,aAAK2I,MAAL,CAAYT,MAAM,CAACpM,KAAD,CAAlB,EAA2B,EAA3B;AACD;AACF;AACF;;AAEDwE,cAAY,CAAC8H,eAAD,EAAkB,CAAC;AAC7B/H,OAAG,EAAE,QADwB;AAE7BvE,SAAK,EAAE,SAAS6M,MAAT,CAAgB7G,IAAhB,EAAsBhG,KAAtB,EAA6B;AAClC,UAAI8M,IAAI,GAAG,KAAKd,MAAL,CAAX;;AAEA,UAAIhG,IAAI,IAAI8G,IAAZ,EAAkB;AAChBA,YAAI,CAAC9G,IAAD,CAAJ,CAAW+G,IAAX,CAAgB,KAAK/M,KAArB;AACD,OAFD,MAEO;AACL8M,YAAI,CAAC9G,IAAD,CAAJ,GAAa,CAAC,KAAKhG,KAAN,CAAb;AACD;AACF;AAV4B,GAAD,EAW3B;AACDuE,OAAG,EAAE,QADJ;AAEDvE,SAAK,EAAE,SAASgN,OAAT,CAAiBhH,IAAjB,EAAuB;AAC5B,aAAO,KAAKgG,MAAL,EAAahG,IAAb,CAAP;AACD;AAJA,GAX2B,EAgB3B;AACDzB,OAAG,EAAE,KADJ;AAEDvE,SAAK,EAAE,SAAS2B,GAAT,CAAaqE,IAAb,EAAmB;AACxB,UAAI8G,IAAI,GAAG,KAAKd,MAAL,CAAX;AACA,aAAOhG,IAAI,IAAI8G,IAAR,GAAeA,IAAI,CAAC9G,IAAD,CAAJ,CAAW,CAAX,CAAf,GAA+B,IAAtC;AACD;AALA,GAhB2B,EAsB3B;AACDzB,OAAG,EAAE,QADJ;AAEDvE,SAAK,EAAE,SAASiN,MAAT,CAAgBjH,IAAhB,EAAsB;AAC3B,UAAI8G,IAAI,GAAG,KAAKd,MAAL,CAAX;AACA,aAAOhG,IAAI,IAAI8G,IAAR,GAAeA,IAAI,CAAC9G,IAAD,CAAJ,CAAWyG,KAAX,CAAiB,CAAjB,CAAf,GAAqC,EAA5C;AACD;AALA,GAtB2B,EA4B3B;AACDlI,OAAG,EAAE,KADJ;AAEDvE,SAAK,EAAE,SAASkN,GAAT,CAAalH,IAAb,EAAmB;AACxB,aAAOA,IAAI,IAAI,KAAKgG,MAAL,CAAf;AACD;AAJA,GA5B2B,EAiC3B;AACDzH,OAAG,EAAE,KADJ;AAEDvE,SAAK,EAAE,SAASsB,GAAT,CAAa0E,IAAb,EAAmBhG,KAAnB,EAA0B;AAC/B,WAAKgM,MAAL,EAAahG,IAAb,IAAqB,CAAC,KAAKhG,KAAN,CAArB;AACD;AAJA,GAjC2B,EAsC3B;AACDuE,OAAG,EAAE,SADJ;AAEDvE,SAAK,EAAE,SAASmN,OAAT,CAAiBhI,QAAjB,EAA2BiI,OAA3B,EAAoC;AACzC,UAAIN,IAAI,GAAG,KAAKd,MAAL,CAAX;AACAnM,YAAM,CAACwN,mBAAP,CAA2BP,IAA3B,EAAiCK,OAAjC,CAAyC,UAAUnH,IAAV,EAAgB;AACvD8G,YAAI,CAAC9G,IAAD,CAAJ,CAAWmH,OAAX,CAAmB,UAAUnN,KAAV,EAAiB;AAClCmF,kBAAQ,CAACyG,IAAT,CAAcwB,OAAd,EAAuBpN,KAAvB,EAA8BgG,IAA9B,EAAoC,IAApC;AACD,SAFD,EAEG,IAFH;AAGD,OAJD,EAIG,IAJH;AAKD;AATA,GAtC2B,EAgD3B;AACDzB,OAAG,EAAE,MADJ;AAEDvE,SAAK,EAAE,SAASwI,IAAT,GAAgB;AACrB,UAAI8E,KAAK,GAAG,EAAZ;AACA,WAAKH,OAAL,CAAa,UAAUnN,KAAV,EAAiBgG,IAAjB,EAAuB;AAClCsH,aAAK,CAACP,IAAN,CAAW/G,IAAX;AACD,OAFD;AAGA,UAAIT,QAAQ,GAAG;AACbgI,YAAI,EAAE,SAASA,IAAT,GAAgB;AACpB,cAAIvN,KAAK,GAAGsN,KAAK,CAACE,KAAN,EAAZ;AACA,iBAAO;AACLC,gBAAI,EAAEzN,KAAK,KAAK2G,SADX;AAEL3G,iBAAK,EAAEA;AAFF,WAAP;AAID;AAPY,OAAf;;AAUAuF,cAAQ,CAACgB,OAAO,CAAChB,QAAT,CAAR,GAA6B,YAAY;AACvC,eAAOA,QAAP;AACD,OAFD;;AAIA,aAAOA,QAAP;AACD;AAtBA,GAhD2B,EAuE3B;AACDhB,OAAG,EAAE,QADJ;AAEDvE,SAAK,EAAE,SAAS0N,MAAT,GAAkB;AACvB,UAAIJ,KAAK,GAAG,EAAZ;AACA,WAAKH,OAAL,CAAa,UAAUnN,KAAV,EAAiB;AAC5BsN,aAAK,CAACP,IAAN,CAAW/M,KAAX;AACD,OAFD;AAGA,UAAIuF,QAAQ,GAAG;AACbgI,YAAI,EAAE,SAASA,IAAT,GAAgB;AACpB,cAAIvN,KAAK,GAAGsN,KAAK,CAACE,KAAN,EAAZ;AACA,iBAAO;AACLC,gBAAI,EAAEzN,KAAK,KAAK2G,SADX;AAEL3G,iBAAK,EAAEA;AAFF,WAAP;AAID;AAPY,OAAf;;AAUAuF,cAAQ,CAACgB,OAAO,CAAChB,QAAT,CAAR,GAA6B,YAAY;AACvC,eAAOA,QAAP;AACD,OAFD;;AAIA,aAAOA,QAAP;AACD;AAtBA,GAvE2B,EA8F3B;AACDhB,OAAG,EAAE,SADJ;AAEDvE,SAAK,EAAE,SAAS2N,OAAT,GAAmB;AACxB,UAAIL,KAAK,GAAG,EAAZ;AACA,WAAKH,OAAL,CAAa,UAAUnN,KAAV,EAAiBgG,IAAjB,EAAuB;AAClCsH,aAAK,CAACP,IAAN,CAAW,CAAC/G,IAAD,EAAOhG,KAAP,CAAX;AACD,OAFD;AAGA,UAAIuF,QAAQ,GAAG;AACbgI,YAAI,EAAE,SAASA,IAAT,GAAgB;AACpB,cAAIvN,KAAK,GAAGsN,KAAK,CAACE,KAAN,EAAZ;AACA,iBAAO;AACLC,gBAAI,EAAEzN,KAAK,KAAK2G,SADX;AAEL3G,iBAAK,EAAEA;AAFF,WAAP;AAID;AAPY,OAAf;;AAUAuF,cAAQ,CAACgB,OAAO,CAAChB,QAAT,CAAR,GAA6B,YAAY;AACvC,eAAOA,QAAP;AACD,OAFD;;AAIA,aAAOA,QAAP;AACD;AAtBA,GA9F2B,EAqH3B;AACDhB,OAAG,EAAE,UADJ;AAEDvE,SAAK,EAAE,SAAS2H,QAAT,GAAoB;AACzB,UAAImF,IAAI,GAAG,KAAKd,MAAL,CAAX;AAAA,UACIO,KAAK,GAAG,EADZ;AAAA,UAEItI,CAFJ;AAAA,UAGIM,GAHJ;AAAA,UAIIyB,IAJJ;AAAA,UAKIhG,KALJ;;AAOA,WAAKuE,GAAL,IAAYuI,IAAZ,EAAkB;AAChB9G,YAAI,GAAGiG,MAAM,CAAC1H,GAAD,CAAb;;AAEA,aAAKN,CAAC,GAAG,CAAJ,EAAOjE,KAAK,GAAG8M,IAAI,CAACvI,GAAD,CAAxB,EAA+BN,CAAC,GAAGjE,KAAK,CAACkE,MAAzC,EAAiDD,CAAC,EAAlD,EAAsD;AACpDsI,eAAK,CAACQ,IAAN,CAAW/G,IAAI,GAAG,GAAP,GAAaiG,MAAM,CAACjM,KAAK,CAACiE,CAAD,CAAN,CAA9B;AACD;AACF;;AAED,aAAOsI,KAAK,CAACxC,IAAN,CAAW,GAAX,CAAP;AACD;AAnBA,GArH2B,CAAlB,CAAZ;;AA2IA,SAAOuC,eAAP;AACD,CAnKD,EAFA;;AAuKAA,eAAe,CAAC3H,SAAhB,CAA0B4B,OAAO,CAAChB,QAAlC,IAA8C+G,eAAe,CAAC3H,SAAhB,CAA0BgJ,OAAxE;AACAhN,MAAM,CAACZ,OAAP,GAAiBuM,eAAjB,C;;;;;;;AC7MA;;AAEAzM,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,OAAK,EAAE;AADoC,CAA7C;AAGAD,OAAO,CAACE,OAAR,GAAkB,KAAK,CAAvB;;AAEA,IAAI6K,SAAS,GAAGjK,sBAAsB,CAAC,mBAAO,CAAC,CAAD,CAAR,CAAtC;;AAEA,IAAID,KAAK,GAAGC,sBAAsB,CAAC,mBAAO,CAAC,CAAD,CAAR,CAAlC;;AAEA,SAASA,sBAAT,CAAgCM,GAAhC,EAAqC;AAAE,SAAOA,GAAG,IAAIA,GAAG,CAACC,UAAX,GAAwBD,GAAxB,GAA8B;AAAElB,WAAO,EAAEkB;AAAX,GAArC;AAAwD;;AAE/F,IAAIjB,QAAQ,GAAG;AACb0N,eAAa,EAAE;AACbC,8BAA0B,EAAE,SAASA,0BAAT,CAAoCtM,IAApC,EAA0C;AACpE,aAAOuJ,SAAS,CAAC7K,OAAV,CAAkB0B,GAAlB,CAAsBJ,IAAtB,CAAP;AACD,KAHY;AAIbuM,uBAAmB,EAAE,SAASA,mBAAT,CAA6BC,IAA7B,EAAmC;AACtD;AACA,aAAOA,IAAI,CAACC,kBAAZ,EAAgC;AAC9BD,YAAI,GAAGA,IAAI,CAACC,kBAAZ;AACD;;AAED,UAAID,IAAJ,EAAU;AACR,eAAOA,IAAI,CAACE,WAAZ;AACD,OAFD,MAEO;AACL,eAAO,IAAP;AACD;AACF;AAfY,GADF;AAkBbxK,OAAK,EAAE;AACLyK,2BAAuB,EAAEtN,KAAK,CAACX,OAAN,CAAcK,cADlC;AAEL;AACA;AACAoD,2BAAuB,EAAE,SAASA,uBAAT,GAAmC,CAAE;AAJzD,GAlBM;AAwBbV,YAAU,EAAE;AACV;AACA;AACA;AACAO,kBAAc,EAAE,SAASA,cAAT,GAA0B,CAAE,CAJlC;AAKV4K,oBAAgB,EAAE,SAASA,gBAAT,GAA4B,CAAE,CALtC;AAMVlL,oBAAgB,EAAE,SAASA,gBAAT,GAA4B,CAAE;AANtC,GAxBC;AAgCb;AACAvC,SAAO,EAAE;AAjCI,CAAf;AAmCAX,OAAO,CAACE,OAAR,GAAkBC,QAAlB;AACAS,MAAM,CAACZ,OAAP,GAAiBA,OAAO,CAAC,SAAD,CAAxB,C;;;;;;;ACjDA;;AAEAF,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,OAAK,EAAE;AADoC,CAA7C;AAGAD,OAAO,CAACE,OAAR,GAAkBmO,eAAlB;;AAEA,SAASC,gBAAT,CAA0BzE,QAA1B,EAAoCF,MAApC,EAA4C;AAC1C,MAAI3B,KAAK,CAACC,OAAN,CAAc4B,QAAd,CAAJ,EAA6B;AAC3B,SAAK,IAAI3F,CAAC,GAAG,CAAR,EAAWqK,CAAC,GAAG1E,QAAQ,CAAC1F,MAA7B,EAAqCD,CAAC,GAAGqK,CAAzC,EAA4CrK,CAAC,EAA7C,EAAiD;AAC/CoK,sBAAgB,CAACzE,QAAQ,CAAC3F,CAAD,CAAT,EAAcyF,MAAd,CAAhB;AACD;AACF,GAJD,MAIO;AACLA,UAAM,CAACqD,IAAP,CAAYnD,QAAZ;AACD;AACF;;AAED,SAASwE,eAAT,CAAyBxE,QAAzB,EAAmC;AACjC,MAAIA,QAAQ,IAAI,IAAhB,EAAsB;AACpB,WAAOA,QAAP;AACD;;AAED,MAAIF,MAAM,GAAG,EAAb;AACA2E,kBAAgB,CAACzE,QAAD,EAAWF,MAAX,CAAhB;;AAEA,MAAIA,MAAM,CAACxF,MAAP,KAAkB,CAAtB,EAAyB;AACvBwF,UAAM,GAAGA,MAAM,CAAC,CAAD,CAAf;AACD;;AAED,SAAOA,MAAP;AACD;;AAED/I,MAAM,CAACZ,OAAP,GAAiBA,OAAO,CAAC,SAAD,CAAxB,C;;;;;;;AChCA;;;;AAEAF,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,OAAK,EAAE;AADoC,CAA7C;AAGAD,OAAO,CAACE,OAAR,GAAkBF,OAAO,CAACwO,aAAR,GAAwBxO,OAAO,CAACsJ,MAAR,GAAiBtJ,OAAO,CAACyO,MAAR,GAAiBzO,OAAO,CAAC0O,KAAR,GAAgB,KAAK,CAAjG;;AAEA,SAASpJ,OAAT,CAAiBlE,GAAjB,EAAsB;AAAE,MAAI,OAAOmE,MAAP,KAAkB,UAAlB,IAAgC,SAAOA,MAAM,CAACC,QAAd,MAA2B,QAA/D,EAAyE;AAAEF,WAAO,GAAG,SAASA,OAAT,CAAiBlE,GAAjB,EAAsB;AAAE,sBAAcA,GAAd;AAAoB,KAAtD;AAAyD,GAApI,MAA0I;AAAEkE,WAAO,GAAG,SAASA,OAAT,CAAiBlE,GAAjB,EAAsB;AAAE,aAAOA,GAAG,IAAI,OAAOmE,MAAP,KAAkB,UAAzB,IAAuCnE,GAAG,CAACqE,WAAJ,KAAoBF,MAA3D,IAAqEnE,GAAG,KAAKmE,MAAM,CAACX,SAApF,GAAgG,QAAhG,YAAkHxD,GAAlH,CAAP;AAA+H,KAAjK;AAAoK;;AAAC,SAAOkE,OAAO,CAAClE,GAAD,CAAd;AAAsB,C,CAE/V;;;AACA,IAAIsN,KAAK,GAAG,CAAC,OAAOC,SAAP,KAAqB,WAArB,GAAmC,WAAnC,GAAiDrJ,OAAO,CAACqJ,SAAD,CAAzD,MAA0E,QAA1E,KAAuFA,SAAS,CAACC,WAAV,KAA0B,SAA1B,IAAuCD,SAAS,CAACE,OAAV,KAAsB,OAApJ,CAAZ;AACA7O,OAAO,CAAC0O,KAAR,GAAgBA,KAAhB;AACA,IAAID,MAAM,GAAG,OAAOK,OAAP,KAAmB,WAAnB,IAAkC,CAAC,EAAEA,OAAO,CAACC,QAAR,IAAoBD,OAAO,CAACC,QAAR,CAAiBvN,IAAvC,CAAhD;AACAxB,OAAO,CAACyO,MAAR,GAAiBA,MAAjB;AACA,IAAInF,MAAM,GAAG,OAAO0F,UAAP,KAAsB,UAAtB,IAAoC,CAAC,OAAOC,aAAP,KAAyB,WAAzB,GAAuC,WAAvC,GAAqD3J,OAAO,CAAC2J,aAAD,CAA7D,MAAkF,QAAlF,IAA8FA,aAAa,CAACC,QAAd,KAA2B,KAA1K;AACAlP,OAAO,CAACsJ,MAAR,GAAiBA,MAAjB;AACA,IAAIkF,aAAa,GAAG,OAAOW,uBAAP,KAAmC,WAAvD;AACAnP,OAAO,CAACwO,aAAR,GAAwBA,aAAxB;AACAxO,OAAO,CAAC,SAAD,CAAP,GAAqBY,MAAM,CAACZ,OAA5B;AACA,IAAIG,QAAQ,GAAGS,MAAM,CAACZ,OAAtB;AACAA,OAAO,CAACE,OAAR,GAAkBC,QAAlB,C;;;;;;;ACpBA;;AAEAL,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,OAAK,EAAE;AADoC,CAA7C;AAGAD,OAAO,CAACE,OAAR,GAAkB,KAAK,CAAvB;AAEA;;;;AAGA,SAASkP,0BAAT,CAAoCC,QAApC,EAA8C;AAC5C,WAASC,SAAT,CAAmBC,UAAnB,EAA+BtL,KAA/B,EAAsCiG,QAAtC,EAAgDsF,aAAhD,EAA+DC,QAA/D,EAAyEC,YAAzE,EAAuF;AACrF,WAAOC,WAAP;AACD;;AAED,MAAIC,gBAAgB,GAAGN,SAAS,CAAC9E,IAAV,CAAe,IAAf,EAAqB,KAArB,CAAvB;AACAoF,kBAAgB,CAACL,UAAjB,GAA8BD,SAAS,CAAC9E,IAAV,CAAe,IAAf,EAAqB,IAArB,CAA9B;AACA,SAAOoF,gBAAP;AACD;;AAED,SAASC,iBAAT,CAA2BC,YAA3B,EAAyC;AACvC,WAAST,QAAT,CAAkBpL,KAAlB,EAAyBiG,QAAzB,EAAmCsF,aAAnC,EAAkDC,QAAlD,EAA4DC,YAA5D,EAA0E,CAAC;AAC1E;;AAED,SAAON,0BAA0B,CAACC,QAAD,CAAjC;AACD;;AAED,IAAIM,WAAW,GAAGE,iBAAiB,EAAnC;AACA,IAAI1P,QAAQ,GAAG;AACb4P,OAAK,EAAEJ,WADM;AAEbK,MAAI,EAAEL,WAFO;AAGbM,MAAI,EAAEN,WAHO;AAIbO,QAAM,EAAEP,WAJK;AAKb9E,QAAM,EAAE8E,WALK;AAMbQ,QAAM,EAAER,WANK;AAObhJ,QAAM,EAAEgJ,WAPK;AAQb5N,SAAO,EAAE4N,WARI;AASbnO,MAAI,EAAEmO,WATO;AAUbS,KAAG,EAAET,WAVQ;AAWbU,SAAO,EAAEV,WAXI;AAYbW,YAAU,EAAEX,WAZC;AAabY,UAAQ,EAAEZ,WAbG;AAcba,OAAK,EAAEb,WAdM;AAebc,WAAS,EAAEd,WAfE;AAgBbe,OAAK,EAAEf;AAhBM,CAAf;AAkBA3P,OAAO,CAACE,OAAR,GAAkBC,QAAlB;AACAS,MAAM,CAACZ,OAAP,GAAiBA,OAAO,CAAC,SAAD,CAAxB,C;;;;;;;AC/CA;;AAEAF,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,OAAK,EAAE;AADoC,CAA7C;AAGAD,OAAO,CAACE,OAAR,GAAkB,KAAK,CAAvB;;AAEA,IAAIW,KAAK,GAAGC,sBAAsB,CAAC,mBAAO,CAAC,CAAD,CAAR,CAAlC;;AAEA,IAAI6P,IAAI,GAAG7P,sBAAsB,CAAC,mBAAO,CAAC,EAAD,CAAR,CAAjC;;AAEA,IAAIG,qBAAqB,GAAGH,sBAAsB,CAAC,mBAAO,CAAC,CAAD,CAAR,CAAlD;;AAEA,IAAII,sBAAsB,GAAGJ,sBAAsB,CAAC,mBAAO,CAAC,CAAD,CAAR,CAAnD;;AAEA,IAAI8P,kBAAkB,GAAG9P,sBAAsB,CAAC,mBAAO,CAAC,EAAD,CAAR,CAA/C;;AAEA,IAAIiK,SAAS,GAAGjK,sBAAsB,CAAC,mBAAO,CAAC,CAAD,CAAR,CAAtC;;AAEA,SAASA,sBAAT,CAAgCM,GAAhC,EAAqC;AAAE,SAAOA,GAAG,IAAIA,GAAG,CAACC,UAAX,GAAwBD,GAAxB,GAA8B;AAAElB,WAAO,EAAEkB;AAAX,GAArC;AAAwD;;AAE/F,SAASwC,eAAT,CAAyBnC,QAAzB,EAAmCoC,WAAnC,EAAgD;AAAE,MAAI,EAAEpC,QAAQ,YAAYoC,WAAtB,CAAJ,EAAwC;AAAE,UAAM,IAAIC,SAAJ,CAAc,mCAAd,CAAN;AAA2D;AAAE;;AAEzJ,SAASC,iBAAT,CAA2BC,MAA3B,EAAmCC,KAAnC,EAA0C;AAAE,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGD,KAAK,CAACE,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;AAAE,QAAIE,UAAU,GAAGH,KAAK,CAACC,CAAD,CAAtB;AAA2BE,cAAU,CAACC,UAAX,GAAwBD,UAAU,CAACC,UAAX,IAAyB,KAAjD;AAAwDD,cAAU,CAACE,YAAX,GAA0B,IAA1B;AAAgC,QAAI,WAAWF,UAAf,EAA2BA,UAAU,CAACG,QAAX,GAAsB,IAAtB;AAA4BzE,UAAM,CAACC,cAAP,CAAsBiE,MAAtB,EAA8BI,UAAU,CAACI,GAAzC,EAA8CJ,UAA9C;AAA4D;AAAE;;AAE7T,SAASK,YAAT,CAAsBZ,WAAtB,EAAmCa,UAAnC,EAA+CC,WAA/C,EAA4D;AAAE,MAAID,UAAJ,EAAgBX,iBAAiB,CAACF,WAAW,CAACe,SAAb,EAAwBF,UAAxB,CAAjB;AAAsD,MAAIC,WAAJ,EAAiBZ,iBAAiB,CAACF,WAAD,EAAcc,WAAd,CAAjB;AAA6C,SAAOd,WAAP;AAAqB;;AAEvN,IAAIgN,KAAK,GAAG,OAAZ;AACA,IAAIC,QAAQ,GAAG,UAAf;AACA,IAAIC,IAAI,GAAG,MAAX;AACA,IAAIC,mBAAmB,GAAG,UAA1B;AACA;;;;AAIA,IAAI5I,eAAe;AACnB;AACA,YAAY;AACV,WAASA,eAAT,CAAyBrG,OAAzB,EAAkC;AAChC6B,mBAAe,CAAC,IAAD,EAAOwE,eAAP,CAAf;;AAEA,SAAKtF,eAAL,GAAuBf,OAAvB;AACD;;AAED0C,cAAY,CAAC2D,eAAD,EAAkB,CAAC;AAC7B5D,OAAG,EAAE,gBADwB;AAE7BvE,SAAK,EAAE,SAASuD,cAAT,CAAwBkI,MAAxB,EAAgCzJ,cAAhC,EAAgD6C,OAAhD,EAAyDmM,YAAzD,EAAuE;AAC5E;AACA,WAAKC,OAAL,GAAexF,MAAf;AACA,WAAKyF,eAAL,GAAuBlP,cAAvB;AACA,WAAKM,QAAL,GAAgBuC,OAAhB;AACA,WAAKsM,QAAL,GAAgBvQ,KAAK,CAACX,OAAN,CAAcG,OAAd,EAAhB;AACA,UAAI4D,KAAK,GAAG,KAAKnB,eAAL,CAAqBmB,KAAjC;AACA,UAAIkE,IAAI,GAAG,KAAKrF,eAAL,CAAqBqF,IAAhC;AACA,UAAI1G,QAAQ,GAAG;AACbE,iBAAS,EAAE,IADE;AAEbwG,YAAI,EAAEA,IAFO;AAGblE,aAAK,EAAEA;AAHM,OAAf;AAKA,UAAIoN,UAAU,GAAGpN,KAAK,CAAC6I,MAAvB,CAb4E,CAa7C;;AAE/B,WAAK/B,SAAL,GAAiBtJ,QAAjB,CAf4E,CAejD;;AAE3B,WAAK6P,cAAL,GAAsBxR,MAAM,CAAC2K,MAAP,CAAc,EAAd,EAAkBxG,KAAK,CAACyF,KAAxB,CAAtB;AACA,UAAI6H,UAAU,GAAG,KAAKC,aAAL,EAAjB;;AAEA,UAAIH,UAAU,KAAKN,IAAnB,EAAyB;AACvB,YAAIE,YAAJ,EAAkB;AAChBA,sBAAY,CAACM,UAAD,EAAa7F,MAAb,CAAZ;AACD,SAFD,MAEO;AACL7K,eAAK,CAACX,OAAN,CAAcQ,MAAd,CAAqB+Q,WAArB,CAAiCF,UAAjC,EAA6C7F,MAA7C;AACD;AACF;;AAED,UAAI,KAAK5I,eAAL,IAAwB,KAAKA,eAAL,CAAqBmG,GAAjD,EAAsD;AACpD0H,YAAI,CAACzQ,OAAL,CAAawR,MAAb,CAAoB,KAAK5O,eAAL,CAAqB0G,MAAzC,EAAiD,KAAK1G,eAAL,CAAqBmG,GAAtE,EAA2E,IAA3E;AACD,OA9B2E,CA8B1E;;;AAGF,UAAIY,QAAQ,GAAG5F,KAAK,CAAC4F,QAArB;;AAEA,UAAIA,QAAQ,IAAI,IAAhB,EAAsB;AACpB,aAAK8H,aAAL,CAAmB9H,QAAnB,EAA6B/E,OAA7B;AACD;;AAED,UAAIuM,UAAU,KAAKN,IAAnB,EAAyB;AACvB,YAAIE,YAAJ,EAAkB;AAChBA,sBAAY,CAACM,UAAD,EAAa7F,MAAb,CAAZ;AACD,SAFD,MAEO;AACL7K,eAAK,CAACX,OAAN,CAAcQ,MAAd,CAAqB+Q,WAArB,CAAiCF,UAAjC,EAA6C7F,MAA7C;AACD;AACF;;AAED7K,WAAK,CAACX,OAAN,CAAcO,IAAd,CAAmBwC,UAAnB,CAA8BO,cAA9B,CAA6C,IAA7C;;AAEA,aAAO/B,QAAP;AACD;AApD4B,GAAD,EAqD3B;AACD+C,OAAG,EAAE,eADJ;AAEDvE,SAAK,EAAE,SAAS0R,aAAT,CAAuB9H,QAAvB,EAAiC/E,OAAjC,EAA0C;AAC/C,UAAI8M,KAAK,GAAG,IAAZ;;AAEA,UAAI,CAAC5J,KAAK,CAACC,OAAN,CAAc4B,QAAd,CAAL,EAA8B;AAC5BA,gBAAQ,GAAG,CAACA,QAAD,CAAX;AACD;;AAED,UAAIgI,gBAAgB,GAAG,KAAKC,iBAAL,GAAyB,EAAhD;AACA,UAAIC,qBAAqB,GAAGlI,QAAQ,CAACC,GAAT,CAAa,UAAU/H,OAAV,EAAmB4K,KAAnB,EAA0B;AACjE,YAAIqF,aAAa,GAAG,CAAC,GAAG/Q,qBAAqB,CAACf,OAA1B,EAAmC6B,OAAnC,CAApB;AACA,YAAIkE,IAAI,GAAG,CAAC,GAAG2K,kBAAkB,CAAC1Q,OAAvB,EAAgC2R,gBAAhC,EAAkD9P,OAAlD,EAA2D4K,KAA3D,CAAX;AACAkF,wBAAgB,CAAC5L,IAAD,CAAhB,GAAyB+L,aAAzB;AACAA,qBAAa,CAACtJ,WAAd,GAA4BiE,KAA5B,CAJiE,CAI9B;;AAEnC,YAAIsF,UAAU,GAAGD,aAAa,CAACxO,cAAd,CAA6BoO,KAAK,CAACJ,aAAN,EAA7B,EAAoDI,KAAK,CAAC7G,SAA1D,EAAqEjG,OAArE,EAA8E,IAA9E,CAAjB;AACA,eAAOmN,UAAP;AACD,OAR2B,CAA5B;AASA,aAAOF,qBAAP;AACD;AApBA,GArD2B,EA0E3B;AACDvN,OAAG,EAAE,iBADJ;AAEDvE,SAAK,EAAE,SAASiS,eAAT,CAAyBC,cAAzB,EAAyC;AAC9C,UAAIN,gBAAgB,GAAG,KAAKC,iBAA5B;;AAEA,UAAID,gBAAJ,EAAsB;AACpB,aAAK,IAAI5L,IAAT,IAAiB4L,gBAAjB,EAAmC;AACjC,cAAIG,aAAa,GAAGH,gBAAgB,CAAC5L,IAAD,CAApC;AACA+L,uBAAa,CAAC9O,gBAAd,CAA+BiP,cAA/B;AACD;;AAED,aAAKL,iBAAL,GAAyB,IAAzB;AACD;AACF;AAbA,GA1E2B,EAwF3B;AACDtN,OAAG,EAAE,kBADJ;AAEDvE,SAAK,EAAE,SAASiD,gBAAT,CAA0BiP,cAA1B,EAA0C;AAC/C,UAAI,KAAKjE,WAAT,EAAsB;AACpB,YAAIjF,GAAG,GAAG,KAAKnG,eAAL,CAAqBmG,GAA/B;;AAEA,YAAIA,GAAJ,EAAS;AACP0H,cAAI,CAACzQ,OAAL,CAAakS,MAAb,CAAoB,KAAKtP,eAAL,CAAqB0G,MAAzC,EAAiDP,GAAjD,EAAsD,IAAtD;AACD;;AAED8B,iBAAS,CAAC7K,OAAV,CAAkB2B,MAAlB,CAAyB,KAAKqM,WAA9B;;AAEA,YAAI,CAACiE,cAAL,EAAqB;AACnBtR,eAAK,CAACX,OAAN,CAAcQ,MAAd,CAAqB2R,WAArB,CAAiC,KAAKnE,WAAtC,EAAmD,KAAKgD,OAAxD;AACD;;AAEDrQ,aAAK,CAACX,OAAN,CAAcQ,MAAd,CAAqB4R,uBAArB,CAA6C,KAAKpE,WAAlD;AACD;;AAED,WAAKgE,eAAL,CAAqBC,cAArB;;AAEAtR,WAAK,CAACX,OAAN,CAAcO,IAAd,CAAmBwC,UAAnB,CAA8BC,gBAA9B,CAA+C,IAA/C;;AAEA,WAAKJ,eAAL,GAAuB,IAAvB;AACA,WAAKoL,WAAL,GAAmB,IAAnB;AACA,WAAKgD,OAAL,GAAe,IAAf;AACA,WAAKC,eAAL,GAAuB,IAAvB;AACA,WAAK5O,QAAL,GAAgB,IAAhB;AACA,WAAKwI,SAAL,GAAiB,IAAjB;AACA,WAAKuG,cAAL,GAAsB,IAAtB;AACD;AA9BA,GAxF2B,EAuH3B;AACD9M,OAAG,EAAE,iBADJ;AAEDvE,SAAK,EAAE,SAAS+C,eAAT,CAAyBH,WAAzB,EAAsCoI,WAAtC,EAAmDsH,WAAnD,EAAgEC,WAAhE,EAA6E;AAClF;AACA,WAAK1P,eAAL,GAAuBmI,WAAvB;;AAEA0F,UAAI,CAACzQ,OAAL,CAAauS,MAAb,CAAoB5P,WAApB,EAAiCoI,WAAjC,EAA8C,IAA9C;;AAEA,UAAIyH,SAAS,GAAG7P,WAAW,CAACoB,KAA5B;AACA,UAAI0O,SAAS,GAAG1H,WAAW,CAAChH,KAA5B;AACA,WAAK2O,gBAAL,CAAsBF,SAAtB,EAAiCC,SAAjC;AACA,WAAKE,cAAL,CAAoBF,SAAS,CAAC9I,QAA9B,EAAwC2I,WAAxC;;AAEA3R,WAAK,CAACX,OAAN,CAAcO,IAAd,CAAmBwC,UAAnB,CAA8BmL,gBAA9B,CAA+C,IAA/C;AACD;AAdA,GAvH2B,EAsI3B;AACD5J,OAAG,EAAE,kBADJ;AAEDvE,SAAK,EAAE,SAAS2S,gBAAT,CAA0BF,SAA1B,EAAqCC,SAArC,EAAgD;AACrD,UAAIG,OAAJ;AACA,UAAIC,SAAJ;AACA,UAAIC,YAAJ;;AAEA,WAAKF,OAAL,IAAgBJ,SAAhB,EAA2B;AACzB,YAAII,OAAO,KAAKhC,QAAZ,IAAwB6B,SAAS,CAACjI,cAAV,CAAyBoI,OAAzB,CAAxB,IAA6D,CAACJ,SAAS,CAAChI,cAAV,CAAyBoI,OAAzB,CAA9D,IAAmGJ,SAAS,CAACI,OAAD,CAAT,IAAsB,IAA7H,EAAmI;AACjI;AACD;;AAED,YAAIA,OAAO,KAAKjC,KAAhB,EAAuB;AACrB,cAAIoC,SAAS,GAAG,KAAK3B,cAArB;;AAEA,eAAKyB,SAAL,IAAkBE,SAAlB,EAA6B;AAC3B,gBAAIA,SAAS,CAACvI,cAAV,CAAyBqI,SAAzB,CAAJ,EAAyC;AACvCC,0BAAY,GAAGA,YAAY,IAAI,EAA/B;AACAA,0BAAY,CAACD,SAAD,CAAZ,GAA0B,EAA1B;AACD;AACF;;AAED,eAAKzB,cAAL,GAAsB,IAAtB;AACD,SAXD,MAWO,IAAIN,mBAAmB,CAACkC,IAApB,CAAyBJ,OAAzB,CAAJ,EAAuC;AAC5C,cAAI,OAAOJ,SAAS,CAACI,OAAD,CAAhB,KAA8B,UAAlC,EAA8C;AAC5CjS,iBAAK,CAACX,OAAN,CAAcQ,MAAd,CAAqByS,mBAArB,CAAyC,KAAK3B,aAAL,EAAzC,EAA+DsB,OAAO,CAACpG,KAAR,CAAc,CAAd,EAAiB0G,WAAjB,EAA/D,EAA+FV,SAAS,CAACI,OAAD,CAAxG;AACD;AACF,SAJM,MAIA;AACLjS,eAAK,CAACX,OAAN,CAAcQ,MAAd,CAAqB2S,eAArB,CAAqC,KAAK7B,aAAL,EAArC,EAA2DsB,OAA3D,EAAoEJ,SAAS,CAACI,OAAD,CAA7E;AACD;AACF;;AAED,WAAKA,OAAL,IAAgBH,SAAhB,EAA2B;AACzB,YAAIW,QAAQ,GAAGX,SAAS,CAACG,OAAD,CAAxB;AACA,YAAIS,QAAQ,GAAGT,OAAO,KAAKjC,KAAZ,GAAoB,KAAKS,cAAzB,GAA0CoB,SAAS,IAAI,IAAb,GAAoBA,SAAS,CAACI,OAAD,CAA7B,GAAyClM,SAAlG;;AAEA,YAAIkM,OAAO,KAAKhC,QAAZ,IAAwB,CAAC6B,SAAS,CAACjI,cAAV,CAAyBoI,OAAzB,CAAzB,IAA8DQ,QAAQ,KAAKC,QAA3E,IAAuFD,QAAQ,IAAI,IAAZ,IAAoBC,QAAQ,IAAI,IAA3H,EAAiI;AAC/H;AACD,SANwB,CAMvB;;;AAGF,YAAIT,OAAO,KAAKjC,KAAhB,EAAuB;AACrB,cAAIyC,QAAJ,EAAc;AACZ;AACAA,oBAAQ,GAAG,KAAKhC,cAAL,GAAsBxR,MAAM,CAAC2K,MAAP,CAAc,EAAd,EAAkB6I,QAAlB,CAAjC;AACD,WAHD,MAGO;AACL,iBAAKhC,cAAL,GAAsB,IAAtB;AACD;;AAED,cAAIiC,QAAQ,IAAI,IAAhB,EAAsB;AACpB;AACA,iBAAKR,SAAL,IAAkBQ,QAAlB,EAA4B;AAC1B,kBAAIA,QAAQ,CAAC7I,cAAT,CAAwBqI,SAAxB,MAAuC,CAACO,QAAD,IAAa,CAACA,QAAQ,CAAC5I,cAAT,CAAwBqI,SAAxB,CAArD,CAAJ,EAA8F;AAC5FC,4BAAY,GAAGA,YAAY,IAAI,EAA/B;AACAA,4BAAY,CAACD,SAAD,CAAZ,GAA0B,EAA1B;AACD;AACF,aAPmB,CAOlB;;;AAGF,iBAAKA,SAAL,IAAkBO,QAAlB,EAA4B;AAC1B,kBAAIA,QAAQ,CAAC5I,cAAT,CAAwBqI,SAAxB,KAAsCQ,QAAQ,CAACR,SAAD,CAAR,KAAwBO,QAAQ,CAACP,SAAD,CAA1E,EAAuF;AACrFC,4BAAY,GAAGA,YAAY,IAAI,EAA/B;AACAA,4BAAY,CAACD,SAAD,CAAZ,GAA0BO,QAAQ,CAACP,SAAD,CAAlC;AACD;AACF;AACF,WAhBD,MAgBO;AACL;AACAC,wBAAY,GAAGM,QAAf;AACD;AACF,SA5BD,MA4BO,IAAItC,mBAAmB,CAACkC,IAApB,CAAyBJ,OAAzB,CAAJ,EAAuC;AAC5C;AACA,cAAIU,SAAS,GAAGV,OAAO,CAACpG,KAAR,CAAc,CAAd,EAAiB0G,WAAjB,EAAhB;;AAEA,cAAI,OAAOG,QAAP,KAAoB,UAAxB,EAAoC;AAClC1S,iBAAK,CAACX,OAAN,CAAcQ,MAAd,CAAqByS,mBAArB,CAAyC,KAAK3B,aAAL,EAAzC,EAA+DgC,SAA/D,EAA0ED,QAA1E,EAAoFZ,SAApF;AACD;;AAED,cAAI,OAAOW,QAAP,KAAoB,UAAxB,EAAoC;AAClCzS,iBAAK,CAACX,OAAN,CAAcQ,MAAd,CAAqB+S,gBAArB,CAAsC,KAAKjC,aAAL,EAAtC,EAA4DgC,SAA5D,EAAuEF,QAAvE,EAAiFX,SAAjF;AACD;AACF,SAXM,MAWA;AACL;AACA,cAAIe,OAAO,GAAG,EAAd;AACAA,iBAAO,CAACZ,OAAD,CAAP,GAAmBQ,QAAnB;;AAEA,cAAIA,QAAQ,IAAI,IAAhB,EAAsB;AACpBzS,iBAAK,CAACX,OAAN,CAAcQ,MAAd,CAAqBiT,YAArB,CAAkC,KAAKnC,aAAL,EAAlC,EAAwDsB,OAAxD,EAAiEQ,QAAjE;AACD,WAFD,MAEO;AACLzS,iBAAK,CAACX,OAAN,CAAcQ,MAAd,CAAqB2S,eAArB,CAAqC,KAAK7B,aAAL,EAArC,EAA2DsB,OAA3D,EAAoEJ,SAAS,CAACI,OAAD,CAA7E;AACD;;AAED,cAAI,KAAJ,EAA2C,EAM1C;AACF;AACF;;AAED,UAAIE,YAAJ,EAAkB;AAChB,YAAI,KAAJ,EAA2C,EAM1C;;AAEDnS,aAAK,CAACX,OAAN,CAAcQ,MAAd,CAAqBkT,SAArB,CAA+B,KAAKpC,aAAL,EAA/B,EAAqDwB,YAArD;AACD;AACF;AAhHA,GAtI2B,EAuP3B;AACDxO,OAAG,EAAE,gBADJ;AAEDvE,SAAK,EAAE,SAAS4S,cAAT,CAAwBgB,oBAAxB,EAA8C/O,OAA9C,EAAuD;AAC5D,UAAIgP,MAAM,GAAG,IAAb,CAD4D,CAG5D;;;AACA,UAAIC,YAAY,GAAG,KAAKjC,iBAAxB;;AAEA,UAAI+B,oBAAoB,IAAI,IAAxB,IAAgCE,YAAY,IAAI,IAApD,EAA0D;AACxD;AACD;;AAED,UAAIC,YAAY,GAAG,EAAnB;AACA,UAAIC,QAAQ,GAAG,EAAf;;AAEA,UAAIJ,oBAAoB,IAAI,IAA5B,EAAkC;AAChC,YAAI,CAAC7L,KAAK,CAACC,OAAN,CAAc4L,oBAAd,CAAL,EAA0C;AACxCA,8BAAoB,GAAG,CAACA,oBAAD,CAAvB;AACD,SAH+B,CAG9B;;;AAGF,aAAK,IAAIlH,KAAK,GAAG,CAAZ,EAAexI,MAAM,GAAG0P,oBAAoB,CAAC1P,MAAlD,EAA0DwI,KAAK,GAAGxI,MAAlE,EAA0EwI,KAAK,EAA/E,EAAmF;AACjF,cAAI1B,WAAW,GAAG4I,oBAAoB,CAAClH,KAAD,CAAtC;AACA,cAAI1G,IAAI,GAAG,CAAC,GAAG2K,kBAAkB,CAAC1Q,OAAvB,EAAgC8T,YAAhC,EAA8C/I,WAA9C,EAA2D0B,KAA3D,CAAX;AACA,cAAIuH,SAAS,GAAGH,YAAY,IAAIA,YAAY,CAAC9N,IAAD,CAA5C;AACA,cAAIpD,WAAW,GAAGqR,SAAS,IAAIA,SAAS,CAACpR,eAAzC;;AAEA,cAAIoR,SAAS,IAAI,IAAb,IAAqB,CAAC,GAAGhT,sBAAsB,CAAChB,OAA3B,EAAoC2C,WAApC,EAAiDoI,WAAjD,CAAzB,EAAwF;AACtF;AACAiJ,qBAAS,CAAClR,eAAV,CAA0BH,WAA1B,EAAuCoI,WAAvC,EAAoDnG,OAApD,EAA6DA,OAA7D;AACAkP,wBAAY,CAAC/N,IAAD,CAAZ,GAAqBiO,SAArB;AACD,WAJD,MAIO;AACL;AACA,gBAAIA,SAAJ,EAAe;AACb,kBAAIC,aAAa,GAAGD,SAAS,CAAC1C,aAAV,EAApB,CADa,CACkC;;AAE/C0C,uBAAS,CAAChR,gBAAV,CAA2B,IAA3B;AACA+Q,sBAAQ,CAAChO,IAAD,CAAR,GAAiBkO,aAAjB;AACD,aAPI,CAOH;;;AAGFH,wBAAY,CAAC/N,IAAD,CAAZ,GAAqB,CAAC,GAAGhF,qBAAqB,CAACf,OAA1B,EAAmC+K,WAAnC,CAArB;AACD;AACF;AACF;;AAED,UAAImJ,cAAJ;AACA,UAAIC,yBAAJ,CA7C4D,CA6C7B;;AAE/B,UAAIN,YAAY,IAAI,IAApB,EAA0B;AACxB,aAAK,IAAIO,KAAT,IAAkBP,YAAlB,EAAgC;AAC9B,cAAI,CAACA,YAAY,CAACrJ,cAAb,CAA4B4J,KAA5B,CAAL,EAAyC;AACvC;AACD;;AAED,cAAIC,UAAU,GAAGR,YAAY,CAACO,KAAD,CAA7B;AACA,cAAIE,YAAY,GAAG,CAACR,YAAY,CAACM,KAAD,CAAhC,CAN8B,CAMW;;AAEzC,cAAI,CAACF,cAAL,EAAqB;AACnBA,0BAAc,GAAGG,UAAjB;AACAF,qCAAyB,GAAGG,YAA5B;AACD,WAHD,MAGO,IAAIA,YAAJ,EAAkB;AACvBD,sBAAU,CAACrR,gBAAX;AACD;AACF;AACF;;AAED,UAAI8Q,YAAY,IAAI,IAApB,EAA0B;AACxB,SAAC,YAAY;AACX;AACA;AACA,cAAIS,SAAS,GAAG,CAAhB;AACA,cAAIC,SAAS,GAAG,CAAhB;AACA,cAAIC,cAAc,GAAG,IAArB;AACA,cAAIC,cAAc,GAAG,EAArB;;AAEA,cAAIC,KAAK,GAAG,SAASA,KAAT,CAAeC,MAAf,EAAuB;AACjC,gBAAI,CAACd,YAAY,CAACtJ,cAAb,CAA4BoK,MAA5B,CAAL,EAA0C;AACxC,qBAAO,UAAP;AACD;;AAED,gBAAIC,SAAS,GAAGf,YAAY,CAACc,MAAD,CAA5B;AACA,gBAAIZ,SAAS,GAAGH,YAAY,IAAIA,YAAY,CAACe,MAAD,CAA5C;;AAEA,gBAAIZ,SAAS,KAAKa,SAAlB,EAA6B;AAC3B,kBAAIC,mBAAmB,GAAGd,SAAS,CAAC1C,aAAV,EAA1B,CAD2B,CAC0B;;AAErD,kBAAI,CAACxJ,KAAK,CAACC,OAAN,CAAc+M,mBAAd,CAAL,EAAyC;AACvCA,mCAAmB,GAAG,CAACA,mBAAD,CAAtB;AACD,eAL0B,CAKzB;AACF;AACA;;;AAGA,kBAAId,SAAS,CAACxL,WAAV,GAAwB+L,SAA5B,EAAuC;AACrC;AACA,oBAAIzM,KAAK,CAACC,OAAN,CAAc0M,cAAd,CAAJ,EAAmC;AACjCA,gCAAc,GAAGA,cAAc,CAACA,cAAc,CAACxQ,MAAf,GAAwB,CAAzB,CAA/B;AACD;;AAED,qBAAK,IAAI8Q,EAAE,GAAGD,mBAAmB,CAAC7Q,MAApB,GAA6B,CAA3C,EAA8C8Q,EAAE,IAAI,CAApD,EAAuDA,EAAE,EAAzD,EAA6D;AAC3DpU,uBAAK,CAACX,OAAN,CAAcQ,MAAd,CAAqBwU,WAArB,CAAiCF,mBAAmB,CAACC,EAAD,CAApD,EAA0DN,cAA1D;AACD;AACF;;AAEDC,4BAAc,GAAGA,cAAc,CAACpM,MAAf,CAAsBwM,mBAAtB,CAAjB;AACAP,uBAAS,GAAGU,IAAI,CAACC,GAAL,CAASlB,SAAS,CAACxL,WAAnB,EAAgC+L,SAAhC,CAAZ;AACAP,uBAAS,CAACxL,WAAV,GAAwBgM,SAAxB;AACD,aAxBD,MAwBO;AACL,kBAAIR,SAAS,IAAI,IAAjB,EAAuB;AACrB;AACAO,yBAAS,GAAGU,IAAI,CAACC,GAAL,CAASlB,SAAS,CAACxL,WAAnB,EAAgC+L,SAAhC,CAAZ;AACD;;AAED,kBAAI/I,MAAM,GAAGoI,MAAM,CAACtC,aAAP,EAAb,CANK,CAMgC;;;AAGrC,kBAAIxJ,KAAK,CAACC,OAAN,CAAcyD,MAAd,CAAJ,EAA2B;AACzBA,sBAAM,GAAGoI,MAAM,CAAC5C,OAAhB;AACD;;AAED6D,uBAAS,CAACvR,cAAV,CAAyBkI,MAAzB,EAAiCoI,MAAM,CAAC/I,SAAxC,EAAmDjG,OAAnD,EAA4D,UAAUuQ,QAAV,EAAoB3J,MAApB,EAA4B;AACtF;AACA,oBAAI4J,QAAQ,GAAGrB,QAAQ,CAACa,MAAD,CAAvB;;AAEA,oBAAI,CAAC9M,KAAK,CAACC,OAAN,CAAcoN,QAAd,CAAL,EAA8B;AAC5BA,0BAAQ,GAAG,CAACA,QAAD,CAAX;AACD;;AAED,oBAAIC,QAAJ,EAAc;AACZ;AACA,sBAAI,CAACtN,KAAK,CAACC,OAAN,CAAcqN,QAAd,CAAL,EAA8B;AAC5BA,4BAAQ,GAAG,CAACA,QAAD,CAAX;AACD,mBAJW,CAIV;;;AAGF,sBAAIC,YAAJ;;AAEA,uBAAK,IAAIC,GAAG,GAAG,CAAf,EAAkBA,GAAG,GAAGH,QAAQ,CAAClR,MAAjC,EAAyCqR,GAAG,EAA5C,EAAgD;AAC9C,wBAAIC,KAAK,GAAGJ,QAAQ,CAACG,GAAD,CAApB;;AAEA,wBAAIF,QAAQ,CAACE,GAAD,CAAZ,EAAmB;AACjB3U,2BAAK,CAACX,OAAN,CAAcQ,MAAd,CAAqBgV,YAArB,CAAkCD,KAAlC,EAAyCH,QAAQ,CAACE,GAAD,CAAjD;AACD,qBAFD,MAEO;AACL3U,2BAAK,CAACX,OAAN,CAAcQ,MAAd,CAAqBwU,WAArB,CAAiCO,KAAjC,EAAwCF,YAAxC;AACD;;AAEDA,gCAAY,GAAGE,KAAf;AACD,mBAnBW,CAmBV;;;AAGF,sBAAIJ,QAAQ,CAAClR,MAAT,GAAkBmR,QAAQ,CAACnR,MAA/B,EAAuC;AACrC,yBAAK,IAAIwR,GAAG,GAAGN,QAAQ,CAAClR,MAAxB,EAAgCwR,GAAG,GAAGL,QAAQ,CAACnR,MAA/C,EAAuDwR,GAAG,EAA1D,EAA8D;AAC5D9U,2BAAK,CAACX,OAAN,CAAcQ,MAAd,CAAqB2R,WAArB,CAAiCiD,QAAQ,CAACK,GAAD,CAAzC;AACD;AACF;AACF,iBA3BD,MA2BO;AACL;AACA;AACA,sBAAI3N,KAAK,CAACC,OAAN,CAAc0M,cAAd,CAAJ,EAAmC;AACjCA,kCAAc,GAAGA,cAAc,CAACA,cAAc,CAACxQ,MAAf,GAAwB,CAAzB,CAA/B;AACD;;AAED,sBAAIyR,mBAAJ;;AAEA,sBAAIxB,cAAc,IAAI,CAACO,cAAvB,EAAuC;AACrCiB,uCAAmB,GAAGxB,cAAc,CAAC5C,aAAf,EAAtB;;AAEA,wBAAIxJ,KAAK,CAACC,OAAN,CAAc2N,mBAAd,CAAJ,EAAwC;AACtCA,yCAAmB,GAAGA,mBAAmB,CAAC,CAAD,CAAzC;AACD;AACF;;AAED,uBAAK,IAAIC,GAAG,GAAGR,QAAQ,CAAClR,MAAT,GAAkB,CAAjC,EAAoC0R,GAAG,IAAI,CAA3C,EAA8CA,GAAG,EAAjD,EAAqD;AACnD,wBAAIC,MAAM,GAAGT,QAAQ,CAACQ,GAAD,CAArB;;AAEA,wBAAIlB,cAAJ,EAAoB;AAClB9T,2BAAK,CAACX,OAAN,CAAcQ,MAAd,CAAqBwU,WAArB,CAAiCY,MAAjC,EAAyCnB,cAAzC;AACD,qBAFD,MAEO,IAAIiB,mBAAJ,EAAyB;AAC9B/U,2BAAK,CAACX,OAAN,CAAcQ,MAAd,CAAqBqV,YAArB,CAAkCD,MAAlC,EAA0CF,mBAA1C;AACD,qBAFM,MAEA;AACL/U,2BAAK,CAACX,OAAN,CAAcQ,MAAd,CAAqB+Q,WAArB,CAAiCqE,MAAjC,EAAyCpK,MAAzC;AACD;AACF;AACF;;AAEDkJ,8BAAc,GAAGA,cAAc,CAACpM,MAAf,CAAsB6M,QAAtB,CAAjB;AACD,eAlED;AAmEAN,uBAAS,CAACrM,WAAV,GAAwBgM,SAAxB;AACD;;AAEDA,qBAAS;AACTC,0BAAc,GAAGI,SAAS,CAACvD,aAAV,EAAjB;AACD,WArHD;;AAuHA,eAAK,IAAIsD,MAAT,IAAmBd,YAAnB,EAAiC;AAC/B,gBAAIgC,IAAI,GAAGnB,KAAK,CAACC,MAAD,CAAhB;;AAEA,gBAAIkB,IAAI,KAAK,UAAb,EAAyB;AAC1B,WAnIU,CAmIT;;;AAGF,cAAIhO,KAAK,CAACC,OAAN,CAAc6L,MAAM,CAAC5F,WAArB,CAAJ,EAAuC;AACrC;AACA4F,kBAAM,CAAC5F,WAAP,CAAmB+H,MAAnB,CAA0B,CAA1B,EAA6BnC,MAAM,CAAC5F,WAAP,CAAmB/J,MAAhD;;AAEA,iBAAK,IAAID,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0Q,cAAc,CAACzQ,MAAnC,EAA2CD,CAAC,EAA5C,EAAgD;AAC9C4P,oBAAM,CAAC5F,WAAP,CAAmBlB,IAAnB,CAAwB4H,cAAc,CAAC1Q,CAAD,CAAtC;AACD;AACF;AACF,SA9ID;AA+ID;;AAED,UAAImQ,yBAAJ,EAA+B;AAC7BD,sBAAc,CAAClR,gBAAf;AACD;;AAED,WAAK4O,iBAAL,GAAyBkC,YAAzB;AACD;AA1NA,GAvP2B,EAkd3B;AACDxP,OAAG,EAAE,eADJ;AAEDvE,SAAK,EAAE,SAASuR,aAAT,GAAyB;AAC9B,UAAI,KAAKtD,WAAL,IAAoB,IAAxB,EAA8B;AAC5B,aAAKA,WAAL,GAAmBrN,KAAK,CAACX,OAAN,CAAcQ,MAAd,CAAqB0C,aAArB,CAAmC,KAAK2H,SAAxC,CAAnB;;AAEAA,iBAAS,CAAC7K,OAAV,CAAkBqB,GAAlB,CAAsB,KAAK2M,WAA3B,EAAwC,KAAKnD,SAA7C;AACD;;AAED,aAAO,KAAKmD,WAAZ;AACD;AAVA,GAld2B,EA6d3B;AACD1J,OAAG,EAAE,mBADJ;AAEDvE,SAAK,EAAE,SAAS2L,iBAAT,GAA6B;AAClC,aAAO,KAAK4F,aAAL,EAAP;AACD;AAJA,GA7d2B,EAke3B;AACDhN,OAAG,EAAE,SADJ;AAEDvE,SAAK,EAAE,SAASkJ,OAAT,GAAmB;AACxB,aAAO,KAAKrG,eAAL,CAAqBqF,IAA5B;AACD;AAJA,GAle2B,CAAlB,CAAZ;;AAyeA,SAAOC,eAAP;AACD,CAjfD,EAFA;;AAqfA,IAAIjI,QAAQ,GAAGiI,eAAf;AACApI,OAAO,CAACE,OAAR,GAAkBC,QAAlB;AACAS,MAAM,CAACZ,OAAP,GAAiBA,OAAO,CAAC,SAAD,CAAxB,C;;;;;;;AC1hBA;;AAEAF,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,OAAK,EAAE;AADoC,CAA7C;AAGAD,OAAO,CAACE,OAAR,GAAkB,KAAK,CAAvB;AAEA;;;;AAGA,IAAIC,QAAQ,GAAG;AACbsS,QAAM,EAAE,SAASA,MAAT,CAAgB5P,WAAhB,EAA6BoI,WAA7B,EAA0C7K,SAA1C,EAAqD;AAC3D,QAAI8V,OAAO,GAAGrT,WAAW,IAAI,IAAf,IAAuBA,WAAW,CAACoG,GAAjD;AACA,QAAIkN,OAAO,GAAGlL,WAAW,IAAI,IAAf,IAAuBA,WAAW,CAAChC,GAAjD,CAF2D,CAEL;;AAEtD,QAAIiN,OAAO,KAAKC,OAAhB,EAAyB;AACvB;AACAD,aAAO,IAAI,IAAX,IAAmB,KAAK9D,MAAL,CAAYvP,WAAW,CAAC2G,MAAxB,EAAgC0M,OAAhC,EAAyC9V,SAAzC,CAAnB,CAFuB,CAEiD;;AAExE+V,aAAO,IAAI,IAAX,IAAmB,KAAKzE,MAAL,CAAYzG,WAAW,CAACzB,MAAxB,EAAgC2M,OAAhC,EAAyC/V,SAAzC,CAAnB;AACD;AACF,GAXY;AAYbsR,QAAM,EAAE,SAASA,MAAT,CAAgB0E,cAAhB,EAAgCnN,GAAhC,EAAqC7I,SAArC,EAAgD;AACtD,QAAI,CAACgW,cAAL,EAAqB;AACnB,YAAM,IAAI7N,KAAJ,CAAU,yFAAyF,6DAAnG,CAAN;AACD;;AAED,QAAI9G,QAAQ,GAAGrB,SAAS,CAACwL,iBAAV,EAAf;;AAEA,QAAI,OAAO3C,GAAP,KAAe,UAAnB,EAA+B;AAC7BA,SAAG,CAACxH,QAAD,CAAH;AACD,KAFD,MAEO;AACL2U,oBAAc,CAACrL,SAAf,CAAyB/F,IAAzB,CAA8BiE,GAA9B,IAAqCxH,QAArC;AACD;AACF,GAxBY;AAyBb2Q,QAAM,EAAE,SAASA,MAAT,CAAgBgE,cAAhB,EAAgCnN,GAAhC,EAAqC7I,SAArC,EAAgD;AACtD,QAAI,OAAO6I,GAAP,KAAe,UAAnB,EAA+B;AAC7B;AACAA,SAAG,CAAC,IAAD,CAAH;AACD,KAHD,MAGO;AACL;AACA,UAAIxH,QAAQ,GAAGrB,SAAS,CAACwL,iBAAV,EAAf;;AAEA,UAAIwK,cAAc,CAACrL,SAAf,CAAyB/F,IAAzB,CAA8BiE,GAA9B,MAAuCxH,QAA3C,EAAqD;AACnD,eAAO2U,cAAc,CAACrL,SAAf,CAAyB/F,IAAzB,CAA8BiE,GAA9B,CAAP;AACD;AACF;AACF;AArCY,CAAf;AAuCAjJ,OAAO,CAACE,OAAR,GAAkBC,QAAlB;AACAS,MAAM,CAACZ,OAAP,GAAiBA,OAAO,CAAC,SAAD,CAAxB,C;;;;;;;AClDA;;AAEAF,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,OAAK,EAAE;AADoC,CAA7C;AAGAD,OAAO,CAACE,OAAR,GAAkB,KAAK,CAAvB;;AAEA,IAAIC,QAAQ,GAAG,SAASA,QAAT,CAAkB0J,QAAlB,EAA4B9H,OAA5B,EAAqC4K,KAArC,EAA4C;AACzD,MAAI0J,UAAU,GAAGtU,OAAO,IAAIA,OAAO,CAACyC,GAApC;AACA,MAAI8R,MAAM,GAAG,OAAOD,UAAP,KAAsB,QAAnC;AACA,MAAIE,WAAW,GAAG,MAAM5J,KAAK,CAAC/E,QAAN,CAAe,EAAf,CAAxB;;AAEA,MAAI0O,MAAJ,EAAY;AACV,QAAIE,OAAO,GAAG,MAAMH,UAApB,CADU,CACsB;;AAEhC,QAAII,SAAS,GAAG5M,QAAQ,CAAC2M,OAAD,CAAR,KAAsB5P,SAAtC,CAHU,CAGuC;;AAEjD,QAAI,CAAC6P,SAAL,EAAgBC,OAAO,CAACC,IAAR,CAAa,gDAAgDnO,MAAhD,CAAuD6N,UAAvD,EAAmE,KAAnE,CAAb;AAChB,WAAOI,SAAS,GAAGD,OAAH,GAAaD,WAA7B;AACD,GAPD,MAOO;AACL,WAAOA,WAAP;AACD;AACF,CAfD;;AAiBAvW,OAAO,CAACE,OAAR,GAAkBC,QAAlB;AACAS,MAAM,CAACZ,OAAP,GAAiBA,OAAO,CAAC,SAAD,CAAxB,C;;;;;;;ACzBA;;;;AAEAF,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,OAAK,EAAE;AADoC,CAA7C;AAGAD,OAAO,CAAC4W,KAAR,GAAgBA,KAAhB;AACA5W,OAAO,CAAC6W,OAAR,GAAkBA,OAAlB;AACA7W,OAAO,CAAC8W,MAAR,GAAiBA,MAAjB;AACA9W,OAAO,CAAC+W,MAAR,GAAiBA,MAAjB;AACA/W,OAAO,CAACgX,YAAR,GAAuBA,YAAvB;AACAhX,OAAO,CAACiX,WAAR,GAAsBA,WAAtB;AACAjX,OAAO,CAACE,OAAR,GAAkB,KAAK,CAAvB;;AAEA,SAASoF,OAAT,CAAiBlE,GAAjB,EAAsB;AAAE,MAAI,OAAOmE,MAAP,KAAkB,UAAlB,IAAgC,SAAOA,MAAM,CAACC,QAAd,MAA2B,QAA/D,EAAyE;AAAEF,WAAO,GAAG,SAASA,OAAT,CAAiBlE,GAAjB,EAAsB;AAAE,sBAAcA,GAAd;AAAoB,KAAtD;AAAyD,GAApI,MAA0I;AAAEkE,WAAO,GAAG,SAASA,OAAT,CAAiBlE,GAAjB,EAAsB;AAAE,aAAOA,GAAG,IAAI,OAAOmE,MAAP,KAAkB,UAAzB,IAAuCnE,GAAG,CAACqE,WAAJ,KAAoBF,MAA3D,IAAqEnE,GAAG,KAAKmE,MAAM,CAACX,SAApF,GAAgG,QAAhG,YAAkHxD,GAAlH,CAAP;AAA+H,KAAjK;AAAoK;;AAAC,SAAOkE,OAAO,CAAClE,GAAD,CAAd;AAAsB;AAE/V;;;;;AAGA,IAAI8V,qBAAqB,GAAG;AAC1BC,yBAAuB,EAAE,IADC;AAE1BC,mBAAiB,EAAE,IAFO;AAG1BC,kBAAgB,EAAE,IAHQ;AAI1BC,kBAAgB,EAAE,IAJQ;AAK1BC,SAAO,EAAE,IALiB;AAM1BC,cAAY,EAAE,IANY;AAO1BC,iBAAe,EAAE,IAPS;AAQ1BC,aAAW,EAAE,IARa;AAS1BC,MAAI,EAAE,IAToB;AAU1BC,UAAQ,EAAE,IAVgB;AAW1BC,cAAY,EAAE,IAXY;AAY1BC,YAAU,EAAE,IAZc;AAa1BC,cAAY,EAAE,IAbY;AAc1BC,WAAS,EAAE,IAde;AAe1BC,SAAO,EAAE,IAfiB;AAgB1BC,YAAU,EAAE,IAhBc;AAiB1BC,YAAU,EAAE,IAjBc;AAkB1BC,WAAS,EAAE,IAlBe;AAmB1B;AACA;AACAC,SAAO,EAAE,IArBiB;AAsB1BC,OAAK,EAAE,IAtBmB;AAuB1BC,SAAO,EAAE,IAvBiB;AAwB1BC,SAAO,EAAE,IAxBiB;AAyB1BC,QAAM,EAAE,IAzBkB;AA0B1BC,QAAM,EAAE,IA1BkB;AA2B1BC,MAAI,EAAE,IA3BoB;AA4B1B;AACAC,OAAK,EAAE;AA7BmB,CAA5B;AA+BA,IAAIC,UAAU,GAAG,cAAjB;AACA,IAAIC,OAAO,GAAG,0BAAd;AACA,IAAIC,eAAe,GAAG,qBAAtB;AACA,IAAIC,MAAM,GAAG,CAAC,OAAOC,MAAP,KAAkB,WAAlB,GAAgC,WAAhC,GAA8C3T,OAAO,CAAC2T,MAAD,CAAtD,MAAoE,QAApE,GAA+EA,MAA/E,GAAwF3T,OAAO,CAAC0T,MAAD,CAAP,KAAoB,QAApB,GAA+BA,MAA/B,GAAwC,EAA7I,C,CAAiJ;;AAEjJ,IAAIlC,MAAM,OAAOlQ,SAAjB,EAA4B;AAC1BmQ,QAAM,CAAC,CAAD,CAAN;AACD;AACD;;;;;;;;AAQA,SAASH,KAAT,CAAezK,GAAf,EAAoB;AAClB,SAAO0M,UAAU,CAAC3F,IAAX,CAAgB/G,GAAhB,CAAP;AACD;AACD;;;;;;;;AAQA,SAAS0K,OAAT,CAAiB1K,GAAjB,EAAsB;AACpB,MAAI+M,OAAO,GAAG9O,SAAS,CAACjG,MAAV,GAAmB,CAAnB,IAAwBiG,SAAS,CAAC,CAAD,CAAT,KAAiBxD,SAAzC,GAAqDwD,SAAS,CAAC,CAAD,CAA9D,GAAoE0M,MAAM,EAAxF;AACA,SAAO3K,GAAG,CAAC7E,OAAJ,CAAYwR,OAAZ,EAAqB,UAAUK,GAAV,EAAe;AACzC,WAAOC,UAAU,CAACD,GAAD,CAAV,GAAkBD,OAAlB,GAA4B,IAAnC;AACD,GAFM,CAAP;AAGD;;AAED,SAASpC,MAAT,GAAkB;AAChB,SAAOkC,MAAM,CAACD,eAAD,CAAb;AACD;;AAED,SAAShC,MAAT,CAAgBoC,GAAhB,EAAqB;AACnBH,QAAM,CAACD,eAAD,CAAN,GAA0BI,GAA1B;AACD;;AAED,SAASnC,YAAT,CAAsBjN,GAAtB,EAA2BsP,IAA3B,EAAiC;AAC/B,SAAO,OAAOtP,GAAP,KAAe,QAAf,IAA2B,CAACmN,qBAAqB,CAACmC,IAAD,CAAxD;AACD;;AAED,SAASpC,WAAT,CAAqBlN,GAArB,EAA0BsP,IAA1B,EAAgC;AAC9B,MAAIH,OAAO,GAAG9O,SAAS,CAACjG,MAAV,GAAmB,CAAnB,IAAwBiG,SAAS,CAAC,CAAD,CAAT,KAAiBxD,SAAzC,GAAqDwD,SAAS,CAAC,CAAD,CAA9D,GAAoE0M,MAAM,EAAxF;;AAEA,MAAIuC,IAAI,IAAIrC,YAAY,CAACjN,GAAD,EAAMsP,IAAN,CAAxB,EAAqC;AACnC,WAAOtP,GAAG,GAAGmP,OAAN,GAAgB,IAAvB;AACD,GAFD,MAEO,IAAItC,KAAK,CAAC7M,GAAD,CAAT,EAAgB;AACrB,WAAO8M,OAAO,CAAC9M,GAAD,EAAMmP,OAAN,CAAd;AACD;;AAED,SAAOnP,GAAP;AACD;;AAED/J,OAAO,CAAC,SAAD,CAAP,GAAqBY,MAAM,CAACZ,OAA5B;AACA,IAAIG,QAAQ,GAAGS,MAAM,CAACZ,OAAtB;AACAA,OAAO,CAACE,OAAR,GAAkBC,QAAlB,C;;;;;;;AC7GA;;AAEAL,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,OAAK,EAAE;AADoC,CAA7C;AAGAD,OAAO,CAACsZ,0BAAR,GAAqCA,0BAArC;AACAtZ,OAAO,CAACuZ,eAAR,GAA0BA,eAA1B;AACAvZ,OAAO,CAACE,OAAR,GAAkB,KAAK,CAAvB;AAEA;;;;;;;AAMA,SAASoZ,0BAAT,CAAoCrV,KAApC,EAA2CuV,KAA3C,EAAkD;AAChDvV,OAAK,CAACyF,KAAN,GAAczF,KAAK,CAACyF,KAAN,IAAe,EAA7B;AACA8P,OAAK,CAACpM,OAAN,CAAc,UAAUqM,IAAV,EAAgB;AAC5B,QAAIxV,KAAK,CAACwV,IAAD,CAAL,IAAe,CAACxV,KAAK,CAACyF,KAAN,CAAY+P,IAAZ,CAApB,EAAuC;AACrCxV,WAAK,CAACyF,KAAN,CAAY+P,IAAZ,IAAoBxV,KAAK,CAACwV,IAAD,CAAzB;AACA,aAAOxV,KAAK,CAACwV,IAAD,CAAZ;AACD;AACF,GALD;AAMA,SAAOxV,KAAP;AACD;;AAED;AACA;;;;;;;;AAQA,SAASsV,eAAT,CAAyBtV,KAAzB,EAAgCyV,gBAAhC,EAAkDC,WAAlD,EAA+D;AAC7D,MAAI1V,KAAK,CAACyV,gBAAD,CAAL,IAA2B,CAACzV,KAAK,CAAC0V,WAAD,CAArC,EAAoD;AAClD1V,SAAK,CAAC0V,WAAD,CAAL,GAAqB1V,KAAK,CAACyV,gBAAD,CAA1B;AACA,WAAOzV,KAAK,CAACyV,gBAAD,CAAZ;AACD;;AAED,SAAOzV,KAAP;AACD;;AAEDjE,OAAO,CAAC,SAAD,CAAP,GAAqBY,MAAM,CAACZ,OAA5B;AACA,IAAIG,QAAQ,GAAGS,MAAM,CAACZ,OAAtB;AACAA,OAAO,CAACE,OAAR,GAAkBC,QAAlB,C;;;;;;;AC9CA;;AAEAL,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAC3CC,OAAK,EAAE;AADoC,CAA7C;AAGAD,OAAO,CAACE,OAAR,GAAkB,KAAK,CAAvB;;AAEA,IAAIW,KAAK,GAAGC,sBAAsB,CAAC,mBAAO,CAAC,CAAD,CAAR,CAAlC;;AAEA,SAASA,sBAAT,CAAgCM,GAAhC,EAAqC;AAAE,SAAOA,GAAG,IAAIA,GAAG,CAACC,UAAX,GAAwBD,GAAxB,GAA8B;AAAElB,WAAO,EAAEkB;AAAX,GAArC;AAAwD;;AAE/F,SAASwY,WAAT,CAAqBnY,QAArB,EAA+B;AAC7B,MAAIA,QAAQ,IAAI,IAAhB,EAAsB;AACpB,WAAO,IAAP;AACD,GAH4B,CAG3B;;;AAGF,MAAIA,QAAQ,CAACoY,aAAT,IAA0BpY,QAAQ,CAACqY,QAAvC,EAAiD;AAC/C,WAAOrY,QAAP;AACD,GAR4B,CAQ3B;;;AAGF,MAAIA,QAAQ,CAACyM,WAAb,EAA0B;AACxB,WAAOzM,QAAQ,CAACyM,WAAhB;AACD;;AAED,MAAI,OAAOzM,QAAP,IAAmB,QAAvB,EAAiC;AAC/B,WAAOZ,KAAK,CAACX,OAAN,CAAcQ,MAAd,CAAqBqZ,cAArB,CAAoCtY,QAApC,CAAP;AACD;;AAED,MAAI,OAAOA,QAAQ,CAAC8J,MAAhB,KAA2B,UAA/B,EAA2C;AACzC,UAAM,IAAIhD,KAAJ,CAAU,sDAAV,CAAN;AACD,GArB4B,CAqB3B;;;AAGF,MAAIyR,QAAQ,GAAGvY,QAAQ,CAACE,SAAxB;;AAEA,MAAIqY,QAAJ,EAAc;AACZ,WAAO,CAACA,QAAQ,CAAC9L,WAAjB,EAA8B;AAC5B8L,cAAQ,GAAGA,QAAQ,CAAC/L,kBAApB,CAD4B,CACY;;AAExC,UAAI+L,QAAQ,IAAI,IAAhB,EAAsB;AACpB,eAAO,IAAP;AACD;AACF;;AAED,WAAOA,QAAQ,CAAC9L,WAAhB;AACD,GAVD,MAUO;AACL,UAAM,IAAI3F,KAAJ,CAAU,8CAAV,CAAN;AACD;AACF;;AAED,IAAIpI,QAAQ,GAAGyZ,WAAf;AACA5Z,OAAO,CAACE,OAAR,GAAkBC,QAAlB;AACAS,MAAM,CAACZ,OAAP,GAAiBA,OAAO,CAAC,SAAD,CAAxB,C;;;;;;;;;ACtDA,IAAMgZ,MAAM,GAAGC,MAAf;;AAEA,IAAMgB,MAAM,GAAG,mBAAO,CAAC,EAAD,CAAtB,C,CAEA;;;AACA,mBAAO,CAAC,EAAD,CAAP;;AACA,mBAAO,CAAC,EAAD,CAAP;;AACA,mBAAO,CAAC,EAAD,CAAP;;AAEA,IAAI,CAACjB,MAAM,CAACkB,OAAZ,EAAqB;AACnBlB,QAAM,CAACkB,OAAP,GAAiBD,MAAM,CAACC,OAAxB;AACD;;AAED,IAAI,CAAClB,MAAM,CAACzT,MAAZ,EAAoB;AAClByT,QAAM,CAACzT,MAAP,GAAgB0U,MAAM,CAAC1U,MAAvB;AACD;;AAED,IAAI,CAACyT,MAAM,CAACmB,GAAZ,EAAiB;AACfnB,QAAM,CAACmB,GAAP,GAAaF,MAAM,CAACE,GAApB;AACD;;AAED,IAAI,CAACnB,MAAM,CAACoB,GAAZ,EAAiB;AACfpB,QAAM,CAACoB,GAAP,GAAaH,MAAM,CAACG,GAApB;AACD;;AAED,IAAI,CAACpB,MAAM,CAACqB,OAAZ,EAAqB;AACnBrB,QAAM,CAACqB,OAAP,GAAiBJ,MAAM,CAACI,OAAxB;AACD;;AAED,IAAI,CAACrB,MAAM,CAACsB,OAAZ,EAAqB;AACnBtB,QAAM,CAACsB,OAAP,GAAiBL,MAAM,CAACK,OAAxB;AACD,C,CAED;;;AACA,mBAAO,CAAC,EAAD,CAAP;;AACA,mBAAO,CAAC,EAAD,CAAP;;AAEA,IAAI,CAACtB,MAAM,CAACuB,QAAZ,EAAsB;AACpBvB,QAAM,CAACuB,QAAP,GAAkBN,MAAM,CAACM,QAAzB;AACD;;AAED,IAAI,CAACvB,MAAM,CAACwB,UAAZ,EAAwB;AACtBxB,QAAM,CAACwB,UAAP,GAAoBP,MAAM,CAACO,UAA3B;AACD;;AAED,IAAI,CAACxB,MAAM,CAACyB,GAAZ,EAAiB;AACfzB,QAAM,CAACyB,GAAP,GAAaR,MAAM,CAACQ,GAApB;AACD;;AAED,IAAI,CAACzB,MAAM,CAACzM,eAAZ,EAA6B;AAC3ByM,QAAM,CAACzM,eAAP,GAAyB0N,MAAM,CAAC1N,eAAhC;AACD;;AAED,IAAI,CAACmO,QAAQ,CAACC,KAAd,EAAqB;AACnBD,UAAQ,CAACC,KAAT,GAAiB;AACfC,OAAG,EAAE,aAASC,QAAT,EAAmB;AACtB,UAAIC,YAAY,gDACCD,QAAQ,CAACE,MADV,6BAEPF,QAAQ,CAACG,MAFF,cAAhB;AAKA,UAAIC,YAAY,GAAGP,QAAQ,CAACtX,aAAT,CAAuB,OAAvB,CAAnB;AACA6X,kBAAY,CAACC,SAAb,GAAyBJ,YAAzB;AACAJ,cAAQ,CAACS,IAAT,CAAc1J,WAAd,CAA0BwJ,YAA1B;AACD;AAVc,GAAjB;AAYD,C,CAED;;;AACA,mBAAO,CAAC,EAAD,CAAP,C,CAEA;;;AACA,mBAAO,CAAC,EAAD,CAAP,C,CAEA;;;AACAjC,MAAM,CAACoC,MAAP,CAAc,KAAd,EAAqB,UAASC,GAAT,EAAcrb,OAAd,EAAuBY,MAAvB,EAA+B;AAClDA,QAAM,CAACZ,OAAP,GAAiB,mBAAO,CAAC,EAAD,CAAxB;AACD,CAFD,E;;;;;;;AC3EA;;AAEAY,MAAM,CAACZ,OAAP,GAAiB;AACf,MAAIka,OAAJ,GAAc;AACZ,WAAO,mBAAO,CAAC,EAAD,CAAd;AACD,GAHc;;AAKf,MAAI3U,MAAJ,GAAa;AACX,WAAO,mBAAO,CAAC,CAAD,CAAd;AACD,GAPc;;AASf,MAAI4U,GAAJ,GAAU;AACR,WAAO,mBAAO,CAAC,EAAD,CAAd;AACD,GAXc;;AAaf,MAAIC,GAAJ,GAAU;AACR,WAAO,mBAAO,CAAC,EAAD,CAAd;AACD,GAfc;;AAiBf,MAAIC,OAAJ,GAAc;AACZ,WAAO,mBAAO,CAAC,EAAD,CAAd;AACD,GAnBc;;AAqBf,MAAIC,OAAJ,GAAc;AACZ,WAAO,mBAAO,CAAC,EAAD,CAAd;AACD,GAvBc;;AAyBf,MAAIC,QAAJ,GAAe;AACb,WAAO,mBAAO,CAAC,EAAD,CAAd;AACD,GA3Bc;;AA6Bf,MAAIE,GAAJ,GAAU;AACR,WAAO,mBAAO,CAAC,EAAD,CAAd;AACD,GA/Bc;;AAiCf,MAAIlO,eAAJ,GAAsB;AACpB,WAAO,mBAAO,CAAC,CAAD,CAAd;AACD,GAnCc;;AAqCf,MAAIiO,UAAJ,GAAiB;AACf,WAAO,mBAAO,CAAC,EAAD,CAAd;AACD;;AAvCc,CAAjB,C;;;;;;;ACFA;;;;AAEA,SAASlV,OAAT,CAAiBlE,GAAjB,EAAsB;AAAE,MAAI,OAAOmE,MAAP,KAAkB,UAAlB,IAAgC,SAAOA,MAAM,CAACC,QAAd,MAA2B,QAA/D,EAAyE;AAAEF,WAAO,GAAG,SAASA,OAAT,CAAiBlE,GAAjB,EAAsB;AAAE,sBAAcA,GAAd;AAAoB,KAAtD;AAAyD,GAApI,MAA0I;AAAEkE,WAAO,GAAG,SAASA,OAAT,CAAiBlE,GAAjB,EAAsB;AAAE,aAAOA,GAAG,IAAI,OAAOmE,MAAP,KAAkB,UAAzB,IAAuCnE,GAAG,CAACqE,WAAJ,KAAoBF,MAA3D,IAAqEnE,GAAG,KAAKmE,MAAM,CAACX,SAApF,GAAgG,QAAhG,YAAkHxD,GAAlH,CAAP;AAA+H,KAAjK;AAAoK;;AAAC,SAAOkE,OAAO,CAAClE,GAAD,CAAd;AAAsB;AAE/V;;;AACA,SAASka,IAAT,GAAgB,CAAE,C,CAAC;;;AAGnB,IAAIC,IAAI,GAAG,OAAOC,YAAP,KAAwB,UAAxB,IAAsCA,YAAtC,IAAsD,UAAUC,EAAV,EAAc;AAC7E,MAAI,OAAOC,UAAP,KAAsB,UAA1B,EAAsC;AACpCA,cAAU,CAACD,EAAD,EAAK,CAAL,CAAV;AACD,GAFD,MAEO;AACLA,MAAE;AACH;AACF,CAND;;AAQA,IAAIE,oBAAoB,GAAG,SAASA,oBAAT,CAA8BC,GAA9B,EAAmC;AAC5D,MAAI,OAAOlF,OAAP,KAAmB,WAAnB,IAAkCA,OAAtC,EAA+C;AAC7CA,WAAO,CAACmF,GAAR,CAAY,uCAAZ,EAAqDD,GAArD,EAD6C,CACc;AAC5D;AACF,CAJD,C,CAIG;;;AAGH,SAASpR,IAAT,CAAciR,EAAd,EAAkBpO,OAAlB,EAA2B;AACzB,SAAO,YAAY;AACjBoO,MAAE,CAACK,KAAH,CAASzO,OAAT,EAAkBjD,SAAlB;AACD,GAFD;AAGD;;AAED,SAAS8P,OAAT,CAAiBuB,EAAjB,EAAqB;AACnB,MAAInW,OAAO,CAAC,IAAD,CAAP,KAAkB,QAAtB,EAAgC,MAAM,IAAIxB,SAAJ,CAAc,sCAAd,CAAN;AAChC,MAAI,OAAO2X,EAAP,KAAc,UAAlB,EAA8B,MAAM,IAAI3X,SAAJ,CAAc,oCAAd,CAAN;AAC9B,OAAKiY,MAAL,GAAc,CAAd;AACA,OAAKC,QAAL,GAAgB,KAAhB;AACA,OAAKC,MAAL,GAAcrV,SAAd;AACA,OAAKsV,UAAL,GAAkB,EAAlB;AACAC,WAAS,CAACV,EAAD,EAAK,IAAL,CAAT;AACD;;AAED,SAASW,MAAT,CAAgBC,IAAhB,EAAsBC,QAAtB,EAAgC;AAC9B,SAAOD,IAAI,CAACN,MAAL,KAAgB,CAAvB,EAA0B;AACxBM,QAAI,GAAGA,IAAI,CAACJ,MAAZ;AACD;;AAED,MAAII,IAAI,CAACN,MAAL,KAAgB,CAApB,EAAuB;AACrBM,QAAI,CAACH,UAAL,CAAgBlP,IAAhB,CAAqBsP,QAArB;;AAEA;AACD;;AAEDD,MAAI,CAACL,QAAL,GAAgB,IAAhB;AACAT,MAAI,CAAC,YAAY;AACf,QAAIgB,EAAE,GAAGF,IAAI,CAACN,MAAL,KAAgB,CAAhB,GAAoBO,QAAQ,CAACE,WAA7B,GAA2CF,QAAQ,CAACG,UAA7D;;AAEA,QAAIF,EAAE,KAAK,IAAX,EAAiB;AACf,OAACF,IAAI,CAACN,MAAL,KAAgB,CAAhB,GAAoBW,OAApB,GAA8BC,MAA/B,EAAuCL,QAAQ,CAACM,OAAhD,EAAyDP,IAAI,CAACJ,MAA9D;AACA;AACD;;AAED,QAAIY,GAAJ;;AAEA,QAAI;AACFA,SAAG,GAAGN,EAAE,CAACF,IAAI,CAACJ,MAAN,CAAR;AACD,KAFD,CAEE,OAAOa,CAAP,EAAU;AACVH,YAAM,CAACL,QAAQ,CAACM,OAAV,EAAmBE,CAAnB,CAAN;AACA;AACD;;AAEDJ,WAAO,CAACJ,QAAQ,CAACM,OAAV,EAAmBC,GAAnB,CAAP;AACD,GAlBG,CAAJ;AAmBD;;AAED,SAASH,OAAT,CAAiBL,IAAjB,EAAuBU,QAAvB,EAAiC;AAC/B,MAAI;AACF;AACA,QAAIA,QAAQ,KAAKV,IAAjB,EAAuB,MAAM,IAAIvY,SAAJ,CAAc,2CAAd,CAAN;;AAEvB,QAAIiZ,QAAQ,KAAKzX,OAAO,CAACyX,QAAD,CAAP,KAAsB,QAAtB,IAAkC,OAAOA,QAAP,KAAoB,UAA3D,CAAZ,EAAoF;AAClF,UAAIC,IAAI,GAAGD,QAAQ,CAACC,IAApB;;AAEA,UAAID,QAAQ,YAAY7C,OAAxB,EAAiC;AAC/BmC,YAAI,CAACN,MAAL,GAAc,CAAd;AACAM,YAAI,CAACJ,MAAL,GAAcc,QAAd;AACAE,cAAM,CAACZ,IAAD,CAAN;AACA;AACD,OALD,MAKO,IAAI,OAAOW,IAAP,KAAgB,UAApB,EAAgC;AACrCb,iBAAS,CAAC3R,IAAI,CAACwS,IAAD,EAAOD,QAAP,CAAL,EAAuBV,IAAvB,CAAT;AACA;AACD;AACF;;AAEDA,QAAI,CAACN,MAAL,GAAc,CAAd;AACAM,QAAI,CAACJ,MAAL,GAAcc,QAAd;AACAE,UAAM,CAACZ,IAAD,CAAN;AACD,GArBD,CAqBE,OAAOS,CAAP,EAAU;AACVH,UAAM,CAACN,IAAD,EAAOS,CAAP,CAAN;AACD;AACF;;AAED,SAASH,MAAT,CAAgBN,IAAhB,EAAsBU,QAAtB,EAAgC;AAC9BV,MAAI,CAACN,MAAL,GAAc,CAAd;AACAM,MAAI,CAACJ,MAAL,GAAcc,QAAd;AACAE,QAAM,CAACZ,IAAD,CAAN;AACD;;AAED,SAASY,MAAT,CAAgBZ,IAAhB,EAAsB;AACpB,MAAIA,IAAI,CAACN,MAAL,KAAgB,CAAhB,IAAqBM,IAAI,CAACH,UAAL,CAAgB/X,MAAhB,KAA2B,CAApD,EAAuD;AACrDoX,QAAI,CAAC,YAAY;AACf,UAAI,CAACc,IAAI,CAACL,QAAV,EAAoB;AAClBL,4BAAoB,CAACU,IAAI,CAACJ,MAAN,CAApB;AACD;AACF,KAJG,CAAJ;AAKD;;AAED,OAAK,IAAI/X,CAAC,GAAG,CAAR,EAAWgZ,GAAG,GAAGb,IAAI,CAACH,UAAL,CAAgB/X,MAAtC,EAA8CD,CAAC,GAAGgZ,GAAlD,EAAuDhZ,CAAC,EAAxD,EAA4D;AAC1DkY,UAAM,CAACC,IAAD,EAAOA,IAAI,CAACH,UAAL,CAAgBhY,CAAhB,CAAP,CAAN;AACD;;AAEDmY,MAAI,CAACH,UAAL,GAAkB,IAAlB;AACD;;AAED,SAASiB,OAAT,CAAiBX,WAAjB,EAA8BC,UAA9B,EAA0CG,OAA1C,EAAmD;AACjD,OAAKJ,WAAL,GAAmB,OAAOA,WAAP,KAAuB,UAAvB,GAAoCA,WAApC,GAAkD,IAArE;AACA,OAAKC,UAAL,GAAkB,OAAOA,UAAP,KAAsB,UAAtB,GAAmCA,UAAnC,GAAgD,IAAlE;AACA,OAAKG,OAAL,GAAeA,OAAf;AACD;AACD;;;;;;;;AAQA,SAAST,SAAT,CAAmBV,EAAnB,EAAuBY,IAAvB,EAA6B;AAC3B,MAAI3O,IAAI,GAAG,KAAX;;AAEA,MAAI;AACF+N,MAAE,CAAC,UAAUxb,KAAV,EAAiB;AAClB,UAAIyN,IAAJ,EAAU;AACVA,UAAI,GAAG,IAAP;AACAgP,aAAO,CAACL,IAAD,EAAOpc,KAAP,CAAP;AACD,KAJC,EAIC,UAAUmd,MAAV,EAAkB;AACnB,UAAI1P,IAAJ,EAAU;AACVA,UAAI,GAAG,IAAP;AACAiP,YAAM,CAACN,IAAD,EAAOe,MAAP,CAAN;AACD,KARC,CAAF;AASD,GAVD,CAUE,OAAOC,EAAP,EAAW;AACX,QAAI3P,IAAJ,EAAU;AACVA,QAAI,GAAG,IAAP;AACAiP,UAAM,CAACN,IAAD,EAAOgB,EAAP,CAAN;AACD;AACF;;AAEDnD,OAAO,CAACtV,SAAR,CAAkB0Y,KAAlB,GAA0B,UAAUb,UAAV,EAAsB;AAC9C,SAAO,KAAKO,IAAL,CAAU,IAAV,EAAgBP,UAAhB,CAAP;AACD,CAFD;;AAIAvC,OAAO,CAACtV,SAAR,CAAkBoY,IAAlB,GAAyB,UAAUR,WAAV,EAAuBC,UAAvB,EAAmC;AAC1D,MAAIc,IAAI,GAAG,IAAI,KAAK9X,WAAT,CAAqB6V,IAArB,CAAX;AACAc,QAAM,CAAC,IAAD,EAAO,IAAIe,OAAJ,CAAYX,WAAZ,EAAyBC,UAAzB,EAAqCc,IAArC,CAAP,CAAN;AACA,SAAOA,IAAP;AACD,CAJD;;AAMArD,OAAO,CAACsD,GAAR,GAAc,UAAUC,GAAV,EAAe;AAC3B,MAAIC,IAAI,GAAG1V,KAAK,CAACpD,SAAN,CAAgB8H,KAAhB,CAAsBb,IAAtB,CAA2B4R,GAA3B,CAAX;AACA,SAAO,IAAIvD,OAAJ,CAAY,UAAUwC,OAAV,EAAmBC,MAAnB,EAA2B;AAC5C,QAAIe,IAAI,CAACvZ,MAAL,KAAgB,CAApB,EAAuB,OAAOuY,OAAO,CAAC,EAAD,CAAd;AACvB,QAAIiB,SAAS,GAAGD,IAAI,CAACvZ,MAArB;;AAEA,aAASyZ,GAAT,CAAa1Z,CAAb,EAAgB6F,GAAhB,EAAqB;AACnB,UAAI;AACF,YAAIA,GAAG,KAAKzE,OAAO,CAACyE,GAAD,CAAP,KAAiB,QAAjB,IAA6B,OAAOA,GAAP,KAAe,UAAjD,CAAP,EAAqE;AACnE,cAAIiT,IAAI,GAAGjT,GAAG,CAACiT,IAAf;;AAEA,cAAI,OAAOA,IAAP,KAAgB,UAApB,EAAgC;AAC9BA,gBAAI,CAACnR,IAAL,CAAU9B,GAAV,EAAe,UAAUA,GAAV,EAAe;AAC5B6T,iBAAG,CAAC1Z,CAAD,EAAI6F,GAAJ,CAAH;AACD,aAFD,EAEG4S,MAFH;AAGA;AACD;AACF;;AAEDe,YAAI,CAACxZ,CAAD,CAAJ,GAAU6F,GAAV;;AAEA,YAAI,EAAE4T,SAAF,KAAgB,CAApB,EAAuB;AACrBjB,iBAAO,CAACgB,IAAD,CAAP;AACD;AACF,OAjBD,CAiBE,OAAOL,EAAP,EAAW;AACXV,cAAM,CAACU,EAAD,CAAN;AACD;AACF;;AAED,SAAK,IAAInZ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwZ,IAAI,CAACvZ,MAAzB,EAAiCD,CAAC,EAAlC,EAAsC;AACpC0Z,SAAG,CAAC1Z,CAAD,EAAIwZ,IAAI,CAACxZ,CAAD,CAAR,CAAH;AACD;AACF,GA9BM,CAAP;AA+BD,CAjCD;;AAmCAgW,OAAO,CAACwC,OAAR,GAAkB,UAAUzc,KAAV,EAAiB;AACjC,MAAIA,KAAK,IAAIqF,OAAO,CAACrF,KAAD,CAAP,KAAmB,QAA5B,IAAwCA,KAAK,CAACwF,WAAN,KAAsByU,OAAlE,EAA2E;AACzE,WAAOja,KAAP;AACD;;AAED,SAAO,IAAIia,OAAJ,CAAY,UAAUwC,OAAV,EAAmB;AACpCA,WAAO,CAACzc,KAAD,CAAP;AACD,GAFM,CAAP;AAGD,CARD;;AAUAia,OAAO,CAACyC,MAAR,GAAiB,UAAU1c,KAAV,EAAiB;AAChC,SAAO,IAAIia,OAAJ,CAAY,UAAUwC,OAAV,EAAmBC,MAAnB,EAA2B;AAC5CA,UAAM,CAAC1c,KAAD,CAAN;AACD,GAFM,CAAP;AAGD,CAJD;;AAMAia,OAAO,CAAC2D,IAAR,GAAe,UAAUlQ,MAAV,EAAkB;AAC/B,SAAO,IAAIuM,OAAJ,CAAY,UAAUwC,OAAV,EAAmBC,MAAnB,EAA2B;AAC5C,SAAK,IAAIzY,CAAC,GAAG,CAAR,EAAWgZ,GAAG,GAAGvP,MAAM,CAACxJ,MAA7B,EAAqCD,CAAC,GAAGgZ,GAAzC,EAA8ChZ,CAAC,EAA/C,EAAmD;AACjDyJ,YAAM,CAACzJ,CAAD,CAAN,CAAU8Y,IAAV,CAAeN,OAAf,EAAwBC,MAAxB;AACD;AACF,GAJM,CAAP;AAKD,CAND;AAOA;;;;;;;AAOAzC,OAAO,CAAC4D,eAAR,GAA0B,SAASA,eAAT,CAAyBrC,EAAzB,EAA6B;AACrDF,MAAI,GAAGE,EAAP;AACD,CAFD;;AAIAvB,OAAO,CAAC6D,wBAAR,GAAmC,SAASA,wBAAT,CAAkCtC,EAAlC,EAAsC;AACvEE,sBAAoB,GAAGF,EAAvB;AACD,CAFD;;AAIA7a,MAAM,CAACZ,OAAP,GAAiBka,OAAjB,C;;;;;;;AC7OA;AAEA;;AACA,IAAI1T,OAAO,GAAG,mBAAO,CAAC,CAAD,CAArB,C,CAAmC;;;AAGnC,IAAIwX,WAAW,GAAGxX,OAAO,CAAC,OAAD,CAAzB,C,CAAoC;;;AAGpC,IAAIyX,SAAS,GAAGzX,OAAO,CAAC,KAAD,CAAvB;;AAEA,IAAI0X,gBAAgB,GAAG,IAAvB;;AAEA,SAASC,SAAT,CAAmB3Z,GAAnB,EAAwB;AACtB;AACA,SAAOA,GAAG,KAAKA,GAAR,GAAcyZ,SAAd,GAA0BzZ,GAAjC;AACD;;AAED,SAAS4Z,SAAT,CAAmBC,UAAnB,EAA+B;AAC7B,SAAOA,UAAU,KAAKJ,SAAf,GAA2BK,GAA3B,GAAiCD,UAAxC;AACD;;AAED,SAASE,YAAT,CAAsBC,OAAtB,EAA+BC,MAA/B,EAAuC;AACrC,MAAIC,OAAO,GAAG,CAAd;AACA,MAAIhR,IAAI,GAAG,KAAX;AACA,SAAO;AACLF,QAAI,EAAE,SAASA,IAAT,GAAgB;AACpB,UAAIkR,OAAO,KAAKF,OAAO,CAACG,KAAR,CAAcxa,MAA9B,EAAsCuJ,IAAI,GAAG,IAAP;;AAEtC,UAAI,CAACA,IAAL,EAAW;AACT,eAAO8Q,OAAO,CAACG,KAAR,CAAcD,OAAd,MAA2BV,WAAlC,EAA+C;AAC7CU,iBAAO;AACR;;AAED,eAAO;AACLze,eAAK,EAAEwe,MAAM,CAAC5S,IAAP,CAAY2S,OAAZ,EAAqBE,OAAO,EAA5B,CADF;AAELhR,cAAI,EAAE;AAFD,SAAP;AAID,OATD,MASO;AACL,eAAO;AACLzN,eAAK,EAAE,KAAK,CADP;AAELyN,cAAI,EAAE;AAFD,SAAP;AAID;AACF;AAnBI,GAAP;AAqBD;;AAED,SAASkR,QAAT,CAAkBJ,OAAlB,EAA2B;AACzB,MAAIK,IAAI,GAAG,CAAX;;AAEA,OAAK,IAAI3a,CAAC,GAAG,CAAR,EAAWgD,CAAC,GAAGsX,OAAO,CAACG,KAAR,CAAcxa,MAAlC,EAA0CD,CAAC,GAAGgD,CAA9C,EAAiDhD,CAAC,EAAlD,EAAsD;AACpD,QAAIsa,OAAO,CAACG,KAAR,CAAcza,CAAd,MAAqB8Z,WAAzB,EAAsCa,IAAI;AAC3C;;AAED,SAAOA,IAAP;AACD;;AAED,SAASC,cAAT,CAAwBrd,QAAxB,EAAkCsd,MAAlC,EAA0C;AACxC,SAAO,OAAOtd,QAAQ,CAACsd,MAAD,CAAf,KAA4B,UAAnC;AACD;;AAED,IAAI5E,GAAG,GAAG,SAASA,GAAT,CAAa6E,IAAb,EAAmB;AAC3B,OAAKL,KAAL,GAAa,EAAb;AACA,OAAKM,OAAL,GAAe,EAAf,CAF2B,CAER;;AAEnB,MAAID,IAAI,IAAIF,cAAc,CAACE,IAAD,EAAO,SAAP,CAA1B,EAA6C;AAC3C;AACA,QAAIA,IAAI,YAAY7E,GAAhB,IAAuB;AAC3B;AACA2E,kBAAc,CAACE,IAAD,EAAO,OAAP,CAAd,IAAiCF,cAAc,CAACE,IAAD,EAAO,QAAP,CAA/C,IAAmEF,cAAc,CAACE,IAAD,EAAO,SAAP,CAAjF,IAAsGF,cAAc,CAACE,IAAD,EAAO,SAAP,CAApH,IAAyIF,cAAc,CAACE,IAAD,EAAO,KAAP,CAAvJ,IAAwKF,cAAc,CAACE,IAAD,EAAO,KAAP,CAAtL,IAAuMF,cAAc,CAACE,IAAD,EAAO,MAAP,CAArN,IAAuOF,cAAc,CAACE,IAAD,EAAO,KAAP,CAArP,IAAsQF,cAAc,CAACE,IAAD,EAAO,QAAP,CAFpR,EAEsS;AACpSA,UAAI,CAAC5R,OAAL,CAAa,UAAUnN,KAAV,EAAiBuE,GAAjB,EAAsB;AACjC,aAAKjD,GAAL,CAASua,KAAT,CAAe,IAAf,EAAqB,CAACtX,GAAD,EAAMvE,KAAN,CAArB;AACD,OAFD,EAEG,IAFH;AAGD,KAND,MAMO;AACL+e,UAAI,CAAC5R,OAAL,CAAa,UAAU8R,IAAV,EAAgB;AAC3B,aAAK3d,GAAL,CAASua,KAAT,CAAe,IAAf,EAAqBoD,IAArB;AACD,OAFD,EAEG,IAFH;AAGD;AACF;;AAED,MAAI,CAAChB,gBAAL,EAAuB,KAAKW,IAAL,GAAYD,QAAQ,CAAC,IAAD,CAApB;AACxB,CApBD;;AAsBAzE,GAAG,CAACvV,SAAJ,GAAgB,EAAhB,C,CAAoB;;AAEpB,IAAI;AACF9E,QAAM,CAACC,cAAP,CAAsBoa,GAAG,CAACvV,SAA1B,EAAqC,MAArC,EAA6C;AAC3ChD,OAAG,EAAE,SAASA,GAAT,GAAe;AAClB,aAAOgd,QAAQ,CAAC,IAAD,CAAf;AACD;AAH0C,GAA7C;AAKD,CAND,CAME,OAAO9B,CAAP,EAAU;AACVoB,kBAAgB,GAAG,KAAnB;AACD;;AAED/D,GAAG,CAACvV,SAAJ,CAAchD,GAAd,GAAoB,UAAU4C,GAAV,EAAe;AACjC,MAAI2a,GAAG,GAAG,KAAKR,KAAL,CAAW9R,OAAX,CAAmBsR,SAAS,CAAC3Z,GAAD,CAA5B,CAAV;;AAEA,SAAO2a,GAAG,KAAK,CAAC,CAAT,GAAa,KAAKF,OAAL,CAAaE,GAAb,CAAb,GAAiCvY,SAAxC;AACD,CAJD;;AAMAuT,GAAG,CAACvV,SAAJ,CAAcrD,GAAd,GAAoB,UAAUiD,GAAV,EAAevE,KAAf,EAAsB;AACxC,MAAIkf,GAAG,GAAG,KAAKR,KAAL,CAAW9R,OAAX,CAAmBsR,SAAS,CAAC3Z,GAAD,CAA5B,CAAV;;AAEA,MAAI2a,GAAG,KAAK,CAAC,CAAb,EAAgB;AACd,SAAKF,OAAL,CAAaE,GAAb,IAAoBlf,KAApB;AACD,GAFD,MAEO;AACL,SAAK0e,KAAL,CAAW3R,IAAX,CAAgBmR,SAAS,CAAC3Z,GAAD,CAAzB;;AAEA,SAAKya,OAAL,CAAajS,IAAb,CAAkB/M,KAAlB;;AAEA,QAAI,CAACie,gBAAL,EAAuB,KAAKW,IAAL,GAAYD,QAAQ,CAAC,IAAD,CAApB;AACxB;;AAED,SAAO,IAAP;AACD,CAdD;;AAgBAzE,GAAG,CAACvV,SAAJ,CAAcuI,GAAd,GAAoB,UAAU3I,GAAV,EAAe;AACjC,SAAO,KAAKma,KAAL,CAAW9R,OAAX,CAAmBsR,SAAS,CAAC3Z,GAAD,CAA5B,MAAuC,CAAC,CAA/C;AACD,CAFD;;AAIA2V,GAAG,CAACvV,SAAJ,CAAcwa,MAAd,GAAuB,UAAU5a,GAAV,EAAe;AACpC,MAAI2a,GAAG,GAAG,KAAKR,KAAL,CAAW9R,OAAX,CAAmBsR,SAAS,CAAC3Z,GAAD,CAA5B,CAAV;;AAEA,MAAI2a,GAAG,KAAK,CAAC,CAAb,EAAgB,OAAO,KAAP;AAChB,OAAKR,KAAL,CAAWQ,GAAX,IAAkBnB,WAAlB;AACA,OAAKiB,OAAL,CAAaE,GAAb,IAAoBnB,WAApB;AACA,MAAI,CAACE,gBAAL,EAAuB,KAAKW,IAAL,GAAYD,QAAQ,CAAC,IAAD,CAApB;AACvB,SAAO,IAAP;AACD,CARD;;AAUAzE,GAAG,CAACvV,SAAJ,CAAcya,KAAd,GAAsB,YAAY;AAChC,OAAKV,KAAL,GAAa,KAAKM,OAAL,GAAe,EAA5B;AACA,MAAI,CAACf,gBAAL,EAAuB,KAAKW,IAAL,GAAY,CAAZ;AACxB,CAHD;;AAKA1E,GAAG,CAACvV,SAAJ,CAAc+I,MAAd,GAAuB,YAAY;AACjC,SAAO4Q,YAAY,CAAC,IAAD,EAAO,UAAUra,CAAV,EAAa;AACrC,WAAO,KAAK+a,OAAL,CAAa/a,CAAb,CAAP;AACD,GAFkB,CAAnB;AAGD,CAJD;;AAMAiW,GAAG,CAACvV,SAAJ,CAAc6D,IAAd,GAAqB,YAAY;AAC/B,SAAO8V,YAAY,CAAC,IAAD,EAAO,UAAUra,CAAV,EAAa;AACrC,WAAOka,SAAS,CAAC,KAAKO,KAAL,CAAWza,CAAX,CAAD,CAAhB;AACD,GAFkB,CAAnB;AAGD,CAJD;;AAMAiW,GAAG,CAACvV,SAAJ,CAAcgJ,OAAd,GAAwBuM,GAAG,CAACvV,SAAJ,CAAc4B,OAAO,CAAChB,QAAtB,IAAkC,YAAY;AACpE,SAAO+Y,YAAY,CAAC,IAAD,EAAO,UAAUra,CAAV,EAAa;AACrC,WAAO,CAACka,SAAS,CAAC,KAAKO,KAAL,CAAWza,CAAX,CAAD,CAAV,EAA2B,KAAK+a,OAAL,CAAa/a,CAAb,CAA3B,CAAP;AACD,GAFkB,CAAnB;AAGD,CAJD;;AAMAiW,GAAG,CAACvV,SAAJ,CAAcwI,OAAd,GAAwB,UAAUkS,UAAV,EAAsBjS,OAAtB,EAA+B;AACrDA,SAAO,GAAGA,OAAO,IAAI2L,MAArB;AACA,MAAIxT,QAAQ,GAAG,KAAKoI,OAAL,EAAf;AACA,MAAIjE,MAAM,GAAGnE,QAAQ,CAACgI,IAAT,EAAb;;AAEA,SAAO7D,MAAM,CAAC+D,IAAP,KAAgB,KAAvB,EAA8B;AAC5B4R,cAAU,CAACzT,IAAX,CAAgBwB,OAAhB,EAAyB1D,MAAM,CAAC1J,KAAP,CAAa,CAAb,CAAzB,EAA0C0J,MAAM,CAAC1J,KAAP,CAAa,CAAb,CAA1C,EAA2D,IAA3D;AACA0J,UAAM,GAAGnE,QAAQ,CAACgI,IAAT,EAAT;AACD;AACF,CATD;;AAWA2M,GAAG,CAACvV,SAAJ,CAAc4B,OAAO,CAACgB,OAAtB,IAAiC2S,GAAjC;AACAra,MAAM,CAACC,cAAP,CAAsBoa,GAAtB,EAA2B,aAA3B,EAA0C;AACxCla,OAAK,EAAEka;AADiC,CAA1C;;AAIA,IAAI;AACFra,QAAM,CAACC,cAAP,CAAsBoa,GAAtB,EAA2B,QAA3B,EAAqC;AACnCla,SAAK,EAAE;AAD4B,GAArC;AAGD,CAJD,CAIE,OAAO6c,CAAP,EAAU,CAAE;;AAEdlc,MAAM,CAACZ,OAAP,GAAiBma,GAAjB,C;;;;;;;ACjLA;AAEA;;AACA,IAAI3T,OAAO,GAAG,mBAAO,CAAC,CAAD,CAArB,C,CAAmC;;;AAGnC,IAAIwX,WAAW,GAAGxX,OAAO,CAAC,OAAD,CAAzB,C,CAAoC;;;AAGpC,IAAIyX,SAAS,GAAGzX,OAAO,CAAC,KAAD,CAAvB;;AAEA,IAAI0X,gBAAgB,GAAG,IAAvB;;AAEA,SAASqB,SAAT,CAAmBP,IAAnB,EAAyB;AACvB;AACA,SAAOA,IAAI,KAAKA,IAAT,GAAgBf,SAAhB,GAA4Be,IAAnC;AACD;;AAED,SAASQ,SAAT,CAAmBC,WAAnB,EAAgC;AAC9B,SAAOA,WAAW,KAAKxB,SAAhB,GAA4BK,GAA5B,GAAkCmB,WAAzC;AACD;;AAED,SAASlB,YAAT,CAAsBmB,OAAtB,EAA+BjB,MAA/B,EAAuC;AACrC,MAAIC,OAAO,GAAG,CAAd;AACA,SAAO;AACLlR,QAAI,EAAE,SAASA,IAAT,GAAgB;AACpB,aAAOkS,OAAO,CAACT,OAAR,CAAgBP,OAAhB,MAA6BV,WAApC,EAAiD;AAC/CU,eAAO;AACR;;AAED,UAAIA,OAAO,KAAKgB,OAAO,CAACT,OAAR,CAAgB9a,MAAhC,EAAwC;AACtC,eAAO;AACLlE,eAAK,EAAE,KAAK,CADP;AAELyN,cAAI,EAAE;AAFD,SAAP;AAID,OALD,MAKO;AACL,eAAO;AACLzN,eAAK,EAAEwe,MAAM,CAAC5S,IAAP,CAAY6T,OAAZ,EAAqBhB,OAAO,EAA5B,CADF;AAELhR,cAAI,EAAE;AAFD,SAAP;AAID;AACF;AAjBI,GAAP;AAmBD;;AAED,SAASkR,QAAT,CAAkBc,OAAlB,EAA2B;AACzB,MAAIb,IAAI,GAAG,CAAX;;AAEA,OAAK,IAAI3a,CAAC,GAAG,CAAR,EAAWgD,CAAC,GAAGwY,OAAO,CAACT,OAAR,CAAgB9a,MAApC,EAA4CD,CAAC,GAAGgD,CAAhD,EAAmDhD,CAAC,EAApD,EAAwD;AACtD,QAAIwb,OAAO,CAACT,OAAR,CAAgB/a,CAAhB,MAAuB8Z,WAA3B,EAAwCa,IAAI;AAC7C;;AAED,SAAOA,IAAP;AACD;;AAED,IAAIzE,GAAG,GAAG,SAASA,GAAT,CAAa4E,IAAb,EAAmB;AAC3B,OAAKC,OAAL,GAAe,EAAf,CAD2B,CACR;;AAEnBD,MAAI,IAAI,OAAOA,IAAI,CAAC5R,OAAZ,KAAwB,UAAhC,IAA8C4R,IAAI,CAAC5R,OAAL,CAAa,UAAU8R,IAAV,EAAgB;AACzE,SAAKtE,GAAL,CAAS/O,IAAT,CAAc,IAAd,EAAoBqT,IAApB;AACD,GAF6C,EAE3C,IAF2C,CAA9C;AAGA,MAAI,CAAChB,gBAAL,EAAuB,KAAKW,IAAL,GAAYD,QAAQ,CAAC,IAAD,CAApB;AACxB,CAPD,C,CAOG;;;AAGH,IAAI;AACF9e,QAAM,CAACC,cAAP,CAAsBqa,GAAG,CAACxV,SAA1B,EAAqC,MAArC,EAA6C;AAC3ChD,OAAG,EAAE,SAASA,GAAT,GAAe;AAClB,aAAOgd,QAAQ,CAAC,IAAD,CAAf;AACD;AAH0C,GAA7C;AAKD,CAND,CAME,OAAO9B,CAAP,EAAU;AACVoB,kBAAgB,GAAG,KAAnB;AACD;;AAED9D,GAAG,CAACxV,SAAJ,CAAcgW,GAAd,GAAoB,UAAU3a,KAAV,EAAiB;AACnCA,OAAK,GAAGsf,SAAS,CAACtf,KAAD,CAAjB;;AAEA,MAAI,KAAKgf,OAAL,CAAapS,OAAb,CAAqB5M,KAArB,MAAgC,CAAC,CAArC,EAAwC;AACtC,SAAKgf,OAAL,CAAajS,IAAb,CAAkB/M,KAAlB;;AAEA,QAAI,CAACie,gBAAL,EAAuB,KAAKW,IAAL,GAAYD,QAAQ,CAAC,IAAD,CAApB;AACxB;;AAED,SAAO,IAAP;AACD,CAVD;;AAYAxE,GAAG,CAACxV,SAAJ,CAAcuI,GAAd,GAAoB,UAAUlN,KAAV,EAAiB;AACnC,SAAO,KAAKgf,OAAL,CAAapS,OAAb,CAAqB0S,SAAS,CAACtf,KAAD,CAA9B,MAA2C,CAAC,CAAnD;AACD,CAFD;;AAIAma,GAAG,CAACxV,SAAJ,CAAcwa,MAAd,GAAuB,UAAUnf,KAAV,EAAiB;AACtC,MAAIkf,GAAG,GAAG,KAAKF,OAAL,CAAapS,OAAb,CAAqB0S,SAAS,CAACtf,KAAD,CAA9B,CAAV;;AAEA,MAAIkf,GAAG,KAAK,CAAC,CAAb,EAAgB,OAAO,KAAP;AAChB,OAAKF,OAAL,CAAaE,GAAb,IAAoBnB,WAApB;AACA,MAAI,CAACE,gBAAL,EAAuB,KAAKW,IAAL,GAAYD,QAAQ,CAAC,IAAD,CAApB;AACvB,SAAO,IAAP;AACD,CAPD;;AASAxE,GAAG,CAACxV,SAAJ,CAAcya,KAAd,GAAsB,YAAY;AAChC,OAAKJ,OAAL,GAAe,EAAf;AACA,MAAI,CAACf,gBAAL,EAAuB,KAAKW,IAAL,GAAY,CAAZ;AACxB,CAHD;;AAKAzE,GAAG,CAACxV,SAAJ,CAAc+I,MAAd,GAAuByM,GAAG,CAACxV,SAAJ,CAAc6D,IAAd,GAAqB,YAAY;AACtD,SAAO8V,YAAY,CAAC,IAAD,EAAO,UAAUra,CAAV,EAAa;AACrC,WAAOsb,SAAS,CAAC,KAAKP,OAAL,CAAa/a,CAAb,CAAD,CAAhB;AACD,GAFkB,CAAnB;AAGD,CAJD;;AAMAkW,GAAG,CAACxV,SAAJ,CAAcgJ,OAAd,GAAwBwM,GAAG,CAACxV,SAAJ,CAAc4B,OAAO,CAAChB,QAAtB,IAAkC,YAAY;AACpE,SAAO+Y,YAAY,CAAC,IAAD,EAAO,UAAUra,CAAV,EAAa;AACrC,WAAO,CAACsb,SAAS,CAAC,KAAKP,OAAL,CAAa/a,CAAb,CAAD,CAAV,EAA6Bsb,SAAS,CAAC,KAAKP,OAAL,CAAa/a,CAAb,CAAD,CAAtC,CAAP;AACD,GAFkB,CAAnB;AAGD,CAJD;;AAMAkW,GAAG,CAACxV,SAAJ,CAAcwI,OAAd,GAAwB,UAAUkS,UAAV,EAAsBjS,OAAtB,EAA+B;AACrDA,SAAO,GAAGA,OAAO,IAAI2L,MAArB;AACA,MAAIxT,QAAQ,GAAG,KAAKoI,OAAL,EAAf;AACA,MAAIjE,MAAM,GAAGnE,QAAQ,CAACgI,IAAT,EAAb;;AAEA,SAAO7D,MAAM,CAAC+D,IAAP,KAAgB,KAAvB,EAA8B;AAC5B4R,cAAU,CAACzT,IAAX,CAAgBwB,OAAhB,EAAyB1D,MAAM,CAAC1J,KAAP,CAAa,CAAb,CAAzB,EAA0C0J,MAAM,CAAC1J,KAAP,CAAa,CAAb,CAA1C,EAA2D,IAA3D;AACA0J,UAAM,GAAGnE,QAAQ,CAACgI,IAAT,EAAT;AACD;AACF,CATD;;AAWA4M,GAAG,CAACxV,SAAJ,CAAc4B,OAAO,CAACgB,OAAtB,IAAiC4S,GAAjC;AACAta,MAAM,CAACC,cAAP,CAAsBqa,GAAtB,EAA2B,aAA3B,EAA0C;AACxCna,OAAK,EAAEma;AADiC,CAA1C;;AAIA,IAAI;AACFta,QAAM,CAACC,cAAP,CAAsBqa,GAAtB,EAA2B,QAA3B,EAAqC;AACnCna,SAAK,EAAE;AAD4B,GAArC;AAGD,CAJD,CAIE,OAAO6c,CAAP,EAAU,CAAE;;AAEdlc,MAAM,CAACZ,OAAP,GAAiBoa,GAAjB,C;;;;;;;AC3IA;;;;AAEA,SAAS9U,OAAT,CAAiBlE,GAAjB,EAAsB;AAAE,MAAI,OAAOmE,MAAP,KAAkB,UAAlB,IAAgC,SAAOA,MAAM,CAACC,QAAd,MAA2B,QAA/D,EAAyE;AAAEF,WAAO,GAAG,SAASA,OAAT,CAAiBlE,GAAjB,EAAsB;AAAE,sBAAcA,GAAd;AAAoB,KAAtD;AAAyD,GAApI,MAA0I;AAAEkE,WAAO,GAAG,SAASA,OAAT,CAAiBlE,GAAjB,EAAsB;AAAE,aAAOA,GAAG,IAAI,OAAOmE,MAAP,KAAkB,UAAzB,IAAuCnE,GAAG,CAACqE,WAAJ,KAAoBF,MAA3D,IAAqEnE,GAAG,KAAKmE,MAAM,CAACX,SAApF,GAAgG,QAAhG,YAAkHxD,GAAlH,CAAP;AAA+H,KAAjK;AAAoK;;AAAC,SAAOkE,OAAO,CAAClE,GAAD,CAAd;AAAsB;AAE/V;;;AACA,IAAIrB,cAAc,GAAGD,MAAM,CAACC,cAA5B;AACA,IAAI4f,OAAO,GAAGC,IAAI,CAACC,GAAL,KAAa,GAA3B;;AAEA,IAAIxF,OAAO,GAAG,SAASA,OAAT,CAAiB2E,IAAjB,EAAuB;AACnC,OAAK/Y,IAAL,GAAY,UAAUkP,IAAI,CAAC2K,MAAL,KAAgB,GAAhB,KAAwB,CAAlC,KAAwCH,OAAO,KAAK,IAApD,CAAZ,CADmC,CACoC;;AAEvEX,MAAI,IAAIA,IAAI,CAAC5R,OAAb,IAAwB4R,IAAI,CAAC5R,OAAL,CAAa,UAAU8R,IAAV,EAAgB;AACnD,SAAK3d,GAAL,CAASua,KAAT,CAAe,IAAf,EAAqBoD,IAArB;AACD,GAFuB,EAErB,IAFqB,CAAxB;AAGD,CAND;;AAQA7E,OAAO,CAACzV,SAAR,CAAkBrD,GAAlB,GAAwB,UAAUiD,GAAV,EAAevE,KAAf,EAAsB;AAC5C,MAAIqF,OAAO,CAACd,GAAD,CAAP,KAAiB,QAAjB,IAA6B,OAAOA,GAAP,KAAe,UAAhD,EAA4D,MAAM,IAAIV,SAAJ,CAAc,oCAAd,CAAN;AAC5D,MAAIic,KAAK,GAAGvb,GAAG,CAAC,KAAKyB,IAAN,CAAf;AACA,MAAI8Z,KAAK,IAAIA,KAAK,CAAC,CAAD,CAAL,KAAavb,GAA1B,EAA+Bub,KAAK,CAAC,CAAD,CAAL,GAAW9f,KAAX,CAA/B,KAAqDF,cAAc,CAACyE,GAAD,EAAM,KAAKyB,IAAX,EAAiB;AAClFhG,SAAK,EAAE,CAACuE,GAAD,EAAMvE,KAAN,CAD2E;AAElFsE,YAAQ,EAAE;AAFwE,GAAjB,CAAd;AAIrD,SAAO,IAAP;AACD,CARD;;AAUA8V,OAAO,CAACzV,SAAR,CAAkBhD,GAAlB,GAAwB,UAAU4C,GAAV,EAAe;AACrC,MAAIub,KAAJ;AACA,SAAO,CAACA,KAAK,GAAGvb,GAAG,CAAC,KAAKyB,IAAN,CAAZ,KAA4B8Z,KAAK,CAAC,CAAD,CAAL,KAAavb,GAAzC,GAA+Cub,KAAK,CAAC,CAAD,CAApD,GAA0DnZ,SAAjE;AACD,CAHD;;AAKAyT,OAAO,CAACzV,SAAR,CAAkBwa,MAAlB,GAA2B,UAAU5a,GAAV,EAAe;AACxC,MAAIub,KAAK,GAAGvb,GAAG,CAAC,KAAKyB,IAAN,CAAf;AACA,MAAI,CAAC8Z,KAAD,IAAUA,KAAK,CAAC,CAAD,CAAL,KAAavb,GAA3B,EAAgC,OAAO,KAAP;AAChCub,OAAK,CAAC,CAAD,CAAL,GAAWA,KAAK,CAAC,CAAD,CAAL,GAAWnZ,SAAtB;AACA,SAAO,IAAP;AACD,CALD;;AAOAyT,OAAO,CAACzV,SAAR,CAAkBuI,GAAlB,GAAwB,UAAU3I,GAAV,EAAe;AACrC,MAAIub,KAAK,GAAGvb,GAAG,CAAC,KAAKyB,IAAN,CAAf;AACA,MAAI,CAAC8Z,KAAL,EAAY,OAAO,KAAP;AACZ,SAAOA,KAAK,CAAC,CAAD,CAAL,KAAavb,GAApB;AACD,CAJD;;AAMA5D,MAAM,CAACZ,OAAP,GAAiBqa,OAAjB,C;;;;;;;AC5CA;AAEA;;AACA,IAAIsF,OAAO,GAAGC,IAAI,CAACC,GAAL,KAAa,GAA3B;;AAEA,IAAIvF,OAAO,GAAG,SAASA,OAAT,CAAiB0E,IAAjB,EAAuB;AACnC,OAAK/Y,IAAL,GAAY,UAAUkP,IAAI,CAAC2K,MAAL,KAAgB,GAAhB,KAAwB,CAAlC,KAAwCH,OAAO,KAAK,IAApD,CAAZ;AACAX,MAAI,IAAIA,IAAI,CAAC5R,OAAb,IAAwB4R,IAAI,CAAC5R,OAAL,CAAa,KAAKwN,GAAlB,EAAuB,IAAvB,CAAxB;AACD,CAHD;;AAKAN,OAAO,CAAC1V,SAAR,CAAkBgW,GAAlB,GAAwB,UAAUxZ,GAAV,EAAe;AACrC,MAAI6E,IAAI,GAAG,KAAKA,IAAhB;AACA,MAAI,CAAC7E,GAAG,CAAC6E,IAAD,CAAR,EAAgBnG,MAAM,CAACC,cAAP,CAAsBqB,GAAtB,EAA2B6E,IAA3B,EAAiC;AAC/ChG,SAAK,EAAE,IADwC;AAE/CsE,YAAQ,EAAE;AAFqC,GAAjC;AAIhB,SAAO,IAAP;AACD,CAPD;;AASA+V,OAAO,CAAC1V,SAAR,CAAkBwa,MAAlB,GAA2B,UAAUhe,GAAV,EAAe;AACxC,MAAI,CAACA,GAAG,CAAC,KAAK6E,IAAN,CAAR,EAAqB,OAAO,KAAP;AACrB7E,KAAG,CAAC,KAAK6E,IAAN,CAAH,GAAiBW,SAAjB;AACA,SAAO,IAAP;AACD,CAJD;;AAMA0T,OAAO,CAAC1V,SAAR,CAAkBuI,GAAlB,GAAwB,UAAU/L,GAAV,EAAe;AACrC,SAAO,CAAC,CAACA,GAAG,CAAC,KAAK6E,IAAN,CAAZ;AACD,CAFD;;AAIArF,MAAM,CAACZ,OAAP,GAAiBsa,OAAjB,C;;;;;;;AC7BA;;AAEA,SAAS1W,eAAT,CAAyBnC,QAAzB,EAAmCoC,WAAnC,EAAgD;AAAE,MAAI,EAAEpC,QAAQ,YAAYoC,WAAtB,CAAJ,EAAwC;AAAE,UAAM,IAAIC,SAAJ,CAAc,mCAAd,CAAN;AAA2D;AAAE;;AAEzJ,IAAIyW,QAAQ,GAAG,SAASA,QAAT,CAAkBQ,MAAlB,EAA0BC,MAA1B,EAAkC;AAC/CpX,iBAAe,CAAC,IAAD,EAAO2W,QAAP,CAAf;;AAEA,OAAKQ,MAAL,GAAcA,MAAd;AACA,OAAKC,MAAL,GAAcA,MAAd;AACD,CALD;;AAOApa,MAAM,CAACZ,OAAP,GAAiBua,QAAjB,C;;;;;;;CCTA;;AACA,IAAIhO,eAAe,GAAG,mBAAO,CAAC,CAAD,CAA7B;;AAEA,IAAIyT,QAAQ,GAAGlgB,MAAM,CAACgG,MAAP,CAAc,IAAd,CAAf;AACAka,QAAQ,CAACC,GAAT,GAAe,EAAf;AACAD,QAAQ,CAACE,IAAT,GAAgB,CAAhB;AACAF,QAAQ,CAACG,MAAT,GAAkB,EAAlB;AACAH,QAAQ,CAACI,IAAT,GAAgB,EAAhB;AACAJ,QAAQ,CAACK,KAAT,GAAiB,GAAjB;AACAL,QAAQ,CAACM,EAAT,GAAc,EAAd;AACAN,QAAQ,CAACO,GAAT,GAAe,GAAf;AACA,IAAIC,sBAAsB,GAAG1gB,MAAM,CAACgG,MAAP,CAAc,IAAd,CAA7B;AACA0a,sBAAsB,CAAC,KAAD,CAAtB,GAAgC,GAAhC;AACAA,sBAAsB,CAAC,MAAD,CAAtB,GAAiC,IAAjC;AACAA,sBAAsB,CAAC,MAAD,CAAtB,GAAiC,IAAjC;AACAA,sBAAsB,CAAC,QAAD,CAAtB,GAAmC,IAAnC;;AAEA,SAASC,gBAAT,CAA0BC,MAA1B,EAAkC;AAChC,SAAOV,QAAQ,CAACU,MAAD,CAAR,KAAqB9Z,SAA5B;AACD;;AAED,SAAS+Z,OAAT,GAAmB;AACjBtB,OAAK,CAACxT,IAAN,CAAW,IAAX;AACA,OAAK+U,UAAL,GAAkB,IAAlB;AACD;;AAED,SAASC,WAAT,CAAqBC,CAArB,EAAwB;AACtB,MAAI,MAAMA,CAAV,EAAa;AACXH,WAAO,CAAC9U,IAAR,CAAa,IAAb;AACD,GAHqB,CAGpB;;;AAGF,SAAOiV,CAAC,CAAC1N,WAAF,EAAP;AACD;;AAED,SAAS2N,aAAT,CAAuBC,CAAvB,EAA0B;AACxB,MAAIC,OAAO,GAAGD,CAAC,CAACE,UAAF,CAAa,CAAb,CAAd;;AAEA,MAAID,OAAO,GAAG,IAAV,IAAkBA,OAAO,GAAG,IAA5B,IAAoC;AACxC,GAAC,IAAD,EAAO,IAAP,EAAa,IAAb,EAAmB,IAAnB,EAAyB,IAAzB,EAA+B,IAA/B,EAAqCpU,OAArC,CAA6CoU,OAA7C,KAAyD,CAAC,CAD1D,EAC6D;AAC3D,WAAOD,CAAP;AACD;;AAED,SAAO5U,kBAAkB,CAAC4U,CAAD,CAAzB;AACD;;AAED,SAASG,kBAAT,CAA4BH,CAA5B,EAA+B;AAC7B;AACA;AACA,MAAIC,OAAO,GAAGD,CAAC,CAACE,UAAF,CAAa,CAAb,CAAd;;AAEA,MAAID,OAAO,GAAG,IAAV,IAAkBA,OAAO,GAAG,IAA5B,IAAoC;AACxC,GAAC,IAAD,EAAO,IAAP,EAAa,IAAb,EAAmB,IAAnB,EAAyB,IAAzB,EAA+BpU,OAA/B,CAAuCoU,OAAvC,KAAmD,CAAC,CADpD,EACuD;AACrD,WAAOD,CAAP;AACD;;AAED,SAAO5U,kBAAkB,CAAC4U,CAAD,CAAzB;AACD;;AAED,IAAII,GAAG,GAAGxa,SAAV;AAAA,IACIya,KAAK,GAAG,UADZ;AAAA,IAEIC,YAAY,GAAG,mBAFnB;;AAIA,SAASC,KAAT,CAAeC,KAAf,EAAsBC,aAAtB,EAAqCC,IAArC,EAA2C;AACzC,WAAS9F,GAAT,CAAa+F,OAAb,EAAsB;AACpBC,UAAM,CAAC5U,IAAP,CAAY2U,OAAZ;AACD;;AAED,MAAIE,KAAK,GAAGJ,aAAa,IAAI,cAA7B;AAAA,MACIK,MAAM,GAAG,CADb;AAAA,MAEIC,MAAM,GAAG,EAFb;AAAA,MAGIC,MAAM,GAAG,KAHb;AAAA,MAIIC,WAAW,GAAG,KAJlB;AAAA,MAKIL,MAAM,GAAG,EALb;;AAOAM,MAAI,EAAE,OAAO,CAACV,KAAK,CAACM,MAAM,GAAG,CAAV,CAAL,IAAqBV,GAArB,IAA4BU,MAAM,IAAI,CAAvC,KAA6C,CAAC,KAAKlB,UAA1D,EAAsE;AAC1E,QAAII,CAAC,GAAGQ,KAAK,CAACM,MAAD,CAAb;;AAEA,YAAQD,KAAR;AACE,WAAK,cAAL;AACE,YAAIb,CAAC,IAAIK,KAAK,CAACnO,IAAN,CAAW8N,CAAX,CAAT,EAAwB;AACtBe,gBAAM,IAAIf,CAAC,CAAC5N,WAAF,EAAV,CADsB,CACK;;AAE3ByO,eAAK,GAAG,QAAR;AACD,SAJD,MAIO,IAAI,CAACJ,aAAL,EAAoB;AACzBM,gBAAM,GAAG,EAAT;AACAF,eAAK,GAAG,WAAR;AACA;AACD,SAJM,MAIA;AACLjG,aAAG,CAAC,iBAAD,CAAH;AACA,gBAAMsG,IAAN;AACD;;AAED;;AAEF,WAAK,QAAL;AACE,YAAIlB,CAAC,IAAIM,YAAY,CAACpO,IAAb,CAAkB8N,CAAlB,CAAT,EAA+B;AAC7Be,gBAAM,IAAIf,CAAC,CAAC5N,WAAF,EAAV,CAD6B,CACF;AAC5B,SAFD,MAEO,IAAI,OAAO4N,CAAX,EAAc;AACnB,eAAKmB,OAAL,GAAeJ,MAAf;AACAA,gBAAM,GAAG,EAAT;;AAEA,cAAIN,aAAJ,EAAmB;AACjB,kBAAMS,IAAN;AACD;;AAED,cAAIzB,gBAAgB,CAAC,KAAK0B,OAAN,CAApB,EAAoC;AAClC,iBAAKC,WAAL,GAAmB,IAAnB;AACD;;AAED,cAAI,UAAU,KAAKD,OAAnB,EAA4B;AAC1BN,iBAAK,GAAG,UAAR;AACD,WAFD,MAEO,IAAI,KAAKO,WAAL,IAAoBV,IAApB,IAA4BA,IAAI,CAACS,OAAL,IAAgB,KAAKA,OAArD,EAA8D;AACnEN,iBAAK,GAAG,uBAAR;AACD,WAFM,MAEA,IAAI,KAAKO,WAAT,EAAsB;AAC3BP,iBAAK,GAAG,uBAAR;AACD,WAFM,MAEA;AACLA,iBAAK,GAAG,aAAR;AACD;AACF,SArBM,MAqBA,IAAI,CAACJ,aAAL,EAAoB;AACzBM,gBAAM,GAAG,EAAT;AACAD,gBAAM,GAAG,CAAT;AACAD,eAAK,GAAG,WAAR;AACA;AACD,SALM,MAKA,IAAIT,GAAG,IAAIJ,CAAX,EAAc;AACnB,gBAAMkB,IAAN;AACD,SAFM,MAEA;AACLtG,aAAG,CAAC,uCAAuCoF,CAAxC,CAAH;AACA,gBAAMkB,IAAN;AACD;;AAED;;AAEF,WAAK,aAAL;AACE,YAAI,OAAOlB,CAAX,EAAc;AACZa,eAAK,GAAG,OAAR;AACD,SAFD,MAEO,IAAI,OAAOb,CAAX,EAAc;AACnB,eAAKqB,SAAL,GAAiB,GAAjB;AACAR,eAAK,GAAG,UAAR;AACD,SAHM,MAGA;AACL;AACA,cAAIT,GAAG,IAAIJ,CAAP,IAAY,QAAQA,CAApB,IAAyB,QAAQA,CAAjC,IAAsC,QAAQA,CAAlD,EAAqD;AACnD,iBAAKsB,WAAL,IAAoBvB,aAAa,CAACC,CAAD,CAAjC;AACD;AACF;;AAED;;AAEF,WAAK,WAAL;AACE,YAAI,CAACU,IAAD,IAAS,CAACjB,gBAAgB,CAACiB,IAAI,CAACS,OAAN,CAA9B,EAA8C;AAC5CvG,aAAG,CAAC,iBAAD,CAAH;AACA+E,iBAAO,CAAC9U,IAAR,CAAa,IAAb;AACD,SAHD,MAGO;AACLgW,eAAK,GAAG,UAAR;AACA;AACD;;AAED;;AAEF,WAAK,uBAAL;AACE,YAAI,OAAOb,CAAP,IAAY,OAAOQ,KAAK,CAACM,MAAM,GAAG,CAAV,CAA5B,EAA0C;AACxCD,eAAK,GAAG,0BAAR;AACD,SAFD,MAEO;AACLjG,aAAG,CAAC,sBAAsBoF,CAAvB,CAAH;AACAa,eAAK,GAAG,UAAR;AACA;AACD;;AAED;;AAEF,WAAK,UAAL;AACE,aAAKO,WAAL,GAAmB,IAAnB;AACA,YAAI,UAAU,KAAKD,OAAnB,EAA4B,KAAKA,OAAL,GAAeT,IAAI,CAACS,OAApB;;AAE5B,YAAIf,GAAG,IAAIJ,CAAX,EAAc;AACZ,eAAKngB,KAAL,GAAa6gB,IAAI,CAAC7gB,KAAlB;AACA,eAAK0hB,KAAL,GAAab,IAAI,CAACa,KAAlB;AACA,eAAKC,KAAL,GAAad,IAAI,CAACc,KAAL,CAAW9V,KAAX,EAAb;AACA,eAAK+V,MAAL,GAAcf,IAAI,CAACe,MAAnB;AACA,eAAKC,SAAL,GAAiBhB,IAAI,CAACgB,SAAtB;AACA,eAAKC,SAAL,GAAiBjB,IAAI,CAACiB,SAAtB;AACA,gBAAMT,IAAN;AACD,SARD,MAQO,IAAI,OAAOlB,CAAP,IAAY,QAAQA,CAAxB,EAA2B;AAChC,cAAI,QAAQA,CAAZ,EAAepF,GAAG,CAAC,8BAAD,CAAH;AACfiG,eAAK,GAAG,gBAAR;AACD,SAHM,MAGA,IAAI,OAAOb,CAAX,EAAc;AACnB,eAAKngB,KAAL,GAAa6gB,IAAI,CAAC7gB,KAAlB;AACA,eAAK0hB,KAAL,GAAab,IAAI,CAACa,KAAlB;AACA,eAAKC,KAAL,GAAad,IAAI,CAACc,KAAL,CAAW9V,KAAX,EAAb;AACA,eAAK+V,MAAL,GAAc,GAAd;AACA,eAAKC,SAAL,GAAiBhB,IAAI,CAACgB,SAAtB;AACA,eAAKC,SAAL,GAAiBjB,IAAI,CAACiB,SAAtB;AACAd,eAAK,GAAG,OAAR;AACD,SARM,MAQA,IAAI,OAAOb,CAAX,EAAc;AACnB,eAAKngB,KAAL,GAAa6gB,IAAI,CAAC7gB,KAAlB;AACA,eAAK0hB,KAAL,GAAab,IAAI,CAACa,KAAlB;AACA,eAAKC,KAAL,GAAad,IAAI,CAACc,KAAL,CAAW9V,KAAX,EAAb;AACA,eAAK+V,MAAL,GAAcf,IAAI,CAACe,MAAnB;AACA,eAAKJ,SAAL,GAAiB,GAAjB;AACA,eAAKK,SAAL,GAAiBhB,IAAI,CAACgB,SAAtB;AACA,eAAKC,SAAL,GAAiBjB,IAAI,CAACiB,SAAtB;AACAd,eAAK,GAAG,UAAR;AACD,SATM,MASA;AACL,cAAIe,KAAK,GAAGpB,KAAK,CAACM,MAAM,GAAG,CAAV,CAAjB;AACA,cAAIe,SAAS,GAAGrB,KAAK,CAACM,MAAM,GAAG,CAAV,CAArB;;AAEA,cAAI,UAAU,KAAKK,OAAf,IAA0B,CAACd,KAAK,CAACnO,IAAN,CAAW8N,CAAX,CAA3B,IAA4C4B,KAAK,IAAI,GAAT,IAAgBA,KAAK,IAAI,GAArE,IAA4ExB,GAAG,IAAIyB,SAAP,IAAoB,OAAOA,SAA3B,IAAwC,QAAQA,SAAhD,IAA6D,OAAOA,SAApE,IAAiF,OAAOA,SAAxK,EAAmL;AACjL,iBAAKhiB,KAAL,GAAa6gB,IAAI,CAAC7gB,KAAlB;AACA,iBAAK0hB,KAAL,GAAab,IAAI,CAACa,KAAlB;AACA,iBAAKG,SAAL,GAAiBhB,IAAI,CAACgB,SAAtB;AACA,iBAAKC,SAAL,GAAiBjB,IAAI,CAACiB,SAAtB;AACA,iBAAKH,KAAL,GAAad,IAAI,CAACc,KAAL,CAAW9V,KAAX,EAAb;;AAEA,iBAAK8V,KAAL,CAAWM,GAAX;AACD;;AAEDjB,eAAK,GAAG,eAAR;AACA;AACD;;AAED;;AAEF,WAAK,gBAAL;AACE,YAAI,OAAOb,CAAP,IAAY,QAAQA,CAAxB,EAA2B;AACzB,cAAI,QAAQA,CAAZ,EAAe;AACbpF,eAAG,CAAC,8BAAD,CAAH;AACD;;AAED,cAAI,UAAU,KAAKuG,OAAnB,EAA4B;AAC1BN,iBAAK,GAAG,WAAR;AACD,WAFD,MAEO;AACLA,iBAAK,GAAG,0BAAR;AACD;AACF,SAVD,MAUO;AACL,cAAI,UAAU,KAAKM,OAAnB,EAA4B;AAC1B,iBAAKthB,KAAL,GAAa6gB,IAAI,CAAC7gB,KAAlB;AACA,iBAAK0hB,KAAL,GAAab,IAAI,CAACa,KAAlB;AACA,iBAAKG,SAAL,GAAiBhB,IAAI,CAACgB,SAAtB;AACA,iBAAKC,SAAL,GAAiBjB,IAAI,CAACiB,SAAtB;AACD;;AAEDd,eAAK,GAAG,eAAR;AACA;AACD;;AAED;;AAEF,WAAK,uBAAL;AACE,YAAI,OAAOb,CAAX,EAAc;AACZa,eAAK,GAAG,wBAAR;AACD,SAFD,MAEO;AACLjG,aAAG,CAAC,wBAAwBoF,CAAzB,CAAH;AACAa,eAAK,GAAG,0BAAR;AACA;AACD;;AAED;;AAEF,WAAK,wBAAL;AACEA,aAAK,GAAG,0BAAR;;AAEA,YAAI,OAAOb,CAAX,EAAc;AACZpF,aAAG,CAAC,wBAAwBoF,CAAzB,CAAH;AACA;AACD;;AAED;;AAEF,WAAK,0BAAL;AACE,YAAI,OAAOA,CAAP,IAAY,QAAQA,CAAxB,EAA2B;AACzBa,eAAK,GAAG,WAAR;AACA;AACD,SAHD,MAGO;AACLjG,aAAG,CAAC,8BAA8BoF,CAA/B,CAAH;AACD;;AAED;;AAEF,WAAK,WAAL;AACE,YAAI,OAAOA,CAAX,EAAc;AACZ,cAAIgB,MAAJ,EAAY;AACVpG,eAAG,CAAC,iBAAD,CAAH;AACAmG,kBAAM,IAAI,KAAV;AACD;;AAEDC,gBAAM,GAAG,IAAT;;AAEA,eAAK,IAAI9d,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6d,MAAM,CAAC5d,MAA3B,EAAmCD,CAAC,EAApC,EAAwC;AACtC,gBAAI6e,EAAE,GAAGhB,MAAM,CAAC7d,CAAD,CAAf;;AAEA,gBAAI,QAAQ6e,EAAR,IAAc,QAAQA,EAAtB,IAA4B,QAAQA,EAAxC,EAA4C;AAC1CnH,iBAAG,CAAC,kCAAD,CAAH;AACA;AACD,aANqC,CAMpC;;;AAGF,gBAAI,OAAOmH,EAAP,IAAa,SAAS,KAAKJ,SAA/B,EAA0C;AACxC,mBAAKA,SAAL,GAAiB,EAAjB;AACA;AACD;;AAED,gBAAIK,KAAK,GAAGjC,aAAa,CAACgC,EAAD,CAAzB;AACA,qBAAS,KAAKJ,SAAd,GAA0B,KAAKA,SAAL,IAAkBK,KAA5C,GAAoD,KAAKN,SAAL,IAAkBM,KAAtE;AACD;;AAEDjB,gBAAM,GAAG,EAAT;AACD,SA3BD,MA2BO,IAAIX,GAAG,IAAIJ,CAAP,IAAY,OAAOA,CAAnB,IAAwB,QAAQA,CAAhC,IAAqC,OAAOA,CAA5C,IAAiD,OAAOA,CAA5D,EAA+D;AACpEc,gBAAM,IAAIC,MAAM,CAAC5d,MAAjB;AACA4d,gBAAM,GAAG,EAAT;AACAF,eAAK,GAAG,MAAR;AACA;AACD,SALM,MAKA;AACLE,gBAAM,IAAIf,CAAV;AACD;;AAED;;AAEF,WAAK,WAAL;AACE,YAAII,GAAG,IAAIJ,CAAP,IAAY,OAAOA,CAAnB,IAAwB,QAAQA,CAAhC,IAAqC,OAAOA,CAA5C,IAAiD,OAAOA,CAA5D,EAA+D;AAC7D,cAAIe,MAAM,CAAC5d,MAAP,IAAiB,CAAjB,IAAsBkd,KAAK,CAACnO,IAAN,CAAW6O,MAAM,CAAC,CAAD,CAAjB,CAAtB,KAAgDA,MAAM,CAAC,CAAD,CAAN,IAAa,GAAb,IAAoBA,MAAM,CAAC,CAAD,CAAN,IAAa,GAAjF,CAAJ,EAA2F;AACzFF,iBAAK,GAAG,eAAR;AACD,WAFD,MAEO,IAAIE,MAAM,CAAC5d,MAAP,IAAiB,CAArB,EAAwB;AAC7B0d,iBAAK,GAAG,qBAAR;AACD,WAFM,MAEA;AACL,iBAAKhhB,KAAL,GAAaggB,WAAW,CAAChV,IAAZ,CAAiB,IAAjB,EAAuBkW,MAAvB,CAAb;AACAA,kBAAM,GAAG,EAAT;AACAF,iBAAK,GAAG,qBAAR;AACD;;AAED;AACD,SAZD,MAYO,IAAI,QAAQb,CAAR,IAAa,QAAQA,CAArB,IAA0B,QAAQA,CAAtC,EAAyC;AAC9CpF,aAAG,CAAC,kCAAD,CAAH;AACD,SAFM,MAEA;AACLmG,gBAAM,IAAIf,CAAV;AACD;;AAED;;AAEF,WAAK,MAAL;AACA,WAAK,UAAL;AACE,YAAI,OAAOA,CAAP,IAAY,CAACiB,WAAjB,EAA8B;AAC5B;AACA,eAAKphB,KAAL,GAAaggB,WAAW,CAAChV,IAAZ,CAAiB,IAAjB,EAAuBkW,MAAvB,CAAb;AACAA,gBAAM,GAAG,EAAT;AACAF,eAAK,GAAG,MAAR;;AAEA,cAAI,cAAcJ,aAAlB,EAAiC;AAC/B,kBAAMS,IAAN;AACD;AACF,SATD,MASO,IAAId,GAAG,IAAIJ,CAAP,IAAY,OAAOA,CAAnB,IAAwB,QAAQA,CAAhC,IAAqC,OAAOA,CAA5C,IAAiD,OAAOA,CAA5D,EAA+D;AACpE,eAAKngB,KAAL,GAAaggB,WAAW,CAAChV,IAAZ,CAAiB,IAAjB,EAAuBkW,MAAvB,CAAb;AACAA,gBAAM,GAAG,EAAT;AACAF,eAAK,GAAG,qBAAR;;AAEA,cAAIJ,aAAJ,EAAmB;AACjB,kBAAMS,IAAN;AACD;;AAED;AACD,SAVM,MAUA,IAAI,QAAQlB,CAAR,IAAa,QAAQA,CAArB,IAA0B,QAAQA,CAAtC,EAAyC;AAC9C,cAAI,OAAOA,CAAX,EAAc;AACZiB,uBAAW,GAAG,IAAd;AACD,WAFD,MAEO,IAAI,OAAOjB,CAAX,EAAc;AACnBiB,uBAAW,GAAG,KAAd;AACD;;AAEDF,gBAAM,IAAIf,CAAV;AACD,SARM,MAQA;AACLpF,aAAG,CAAC,0CAA0CoF,CAA3C,CAAH;AACD;;AAED;;AAEF,WAAK,MAAL;AACE,YAAI,QAAQ9N,IAAR,CAAa8N,CAAb,CAAJ,EAAqB;AACnBe,gBAAM,IAAIf,CAAV;AACD,SAFD,MAEO,IAAII,GAAG,IAAIJ,CAAP,IAAY,OAAOA,CAAnB,IAAwB,QAAQA,CAAhC,IAAqC,OAAOA,CAA5C,IAAiD,OAAOA,CAAxD,IAA6DS,aAAjE,EAAgF;AACrF,cAAI,MAAMM,MAAV,EAAkB;AAChB,gBAAIkB,IAAI,GAAGC,QAAQ,CAACnB,MAAD,EAAS,EAAT,CAAnB;;AAEA,gBAAIkB,IAAI,IAAIjD,QAAQ,CAAC,KAAKmC,OAAN,CAApB,EAAoC;AAClC,mBAAKI,KAAL,GAAaU,IAAI,GAAG,EAApB;AACD;;AAEDlB,kBAAM,GAAG,EAAT;AACD;;AAED,cAAIN,aAAJ,EAAmB;AACjB,kBAAMS,IAAN;AACD;;AAEDL,eAAK,GAAG,qBAAR;AACA;AACD,SAjBM,MAiBA,IAAI,QAAQb,CAAR,IAAa,QAAQA,CAArB,IAA0B,QAAQA,CAAtC,EAAyC;AAC9CpF,aAAG,CAAC,iCAAiCoF,CAAlC,CAAH;AACD,SAFM,MAEA;AACLL,iBAAO,CAAC9U,IAAR,CAAa,IAAb;AACD;;AAED;;AAEF,WAAK,qBAAL;AACE,YAAI,QAAQmV,CAAZ,EAAepF,GAAG,CAAC,2BAAD,CAAH;AACfiG,aAAK,GAAG,eAAR;;AAEA,YAAI,OAAOb,CAAP,IAAY,QAAQA,CAAxB,EAA2B;AACzB;AACD;;AAED;;AAEF,WAAK,eAAL;AACE,YAAII,GAAG,IAAIJ,CAAP,IAAY,OAAOA,CAAnB,IAAwB,QAAQA,CAAhC,IAAqC,CAACS,aAAD,KAAmB,OAAOT,CAAP,IAAY,OAAOA,CAAtC,CAAzC,EAAmF;AACjF,cAAI,QAAQA,CAAZ,EAAe;AACbpF,eAAG,CAAC,kCAAD,CAAH;AACD;;AAED,cAAIuH,GAAJ;;AAEA,cAAIA,GAAG,GAAG3C,sBAAsB,CAACuB,MAAM,CAAC3O,WAAP,EAAD,CAAhC,EAAwD;AACtD2O,kBAAM,GAAGoB,GAAT;AACD;;AAED,cAAI,QAAQpB,MAAZ,EAAoB;AAClB,iBAAKS,KAAL,CAAWM,GAAX;;AAEA,gBAAI,OAAO9B,CAAP,IAAY,QAAQA,CAAxB,EAA2B;AACzB,mBAAKwB,KAAL,CAAWxV,IAAX,CAAgB,EAAhB;AACD;AACF,WAND,MAMO,IAAI,OAAO+U,MAAP,IAAiB,OAAOf,CAAxB,IAA6B,QAAQA,CAAzC,EAA4C;AACjD,iBAAKwB,KAAL,CAAWxV,IAAX,CAAgB,EAAhB;AACD,WAFM,MAEA,IAAI,OAAO+U,MAAX,EAAmB;AACxB,gBAAI,UAAU,KAAKI,OAAf,IAA0B,KAAKK,KAAL,CAAWre,MAAX,IAAqB,CAA/C,IAAoD4d,MAAM,CAAC5d,MAAP,IAAiB,CAArE,IAA0Ekd,KAAK,CAACnO,IAAN,CAAW6O,MAAM,CAAC,CAAD,CAAjB,CAA1E,IAAmGA,MAAM,CAAC,CAAD,CAAN,IAAa,GAApH,EAAyH;AACvHA,oBAAM,GAAGA,MAAM,CAAC,CAAD,CAAN,GAAY,GAArB;AACD;;AAED,iBAAKS,KAAL,CAAWxV,IAAX,CAAgB+U,MAAhB;AACD;;AAEDA,gBAAM,GAAG,EAAT;;AAEA,cAAI,OAAOf,CAAX,EAAc;AACZ,iBAAKyB,MAAL,GAAc,GAAd;AACAZ,iBAAK,GAAG,OAAR;AACD,WAHD,MAGO,IAAI,OAAOb,CAAX,EAAc;AACnB,iBAAKqB,SAAL,GAAiB,GAAjB;AACAR,iBAAK,GAAG,UAAR;AACD;AACF,SApCD,MAoCO,IAAI,QAAQb,CAAR,IAAa,QAAQA,CAArB,IAA0B,QAAQA,CAAtC,EAAyC;AAC9Ce,gBAAM,IAAIhB,aAAa,CAACC,CAAD,CAAvB;AACD;;AAED;;AAEF,WAAK,OAAL;AACE,YAAI,CAACS,aAAD,IAAkB,OAAOT,CAA7B,EAAgC;AAC9B,eAAKqB,SAAL,GAAiB,GAAjB;AACAR,eAAK,GAAG,UAAR;AACD,SAHD,MAGO,IAAIT,GAAG,IAAIJ,CAAP,IAAY,QAAQA,CAApB,IAAyB,QAAQA,CAAjC,IAAsC,QAAQA,CAAlD,EAAqD;AAC1D,eAAKyB,MAAL,IAAetB,kBAAkB,CAACH,CAAD,CAAjC;AACD;;AAED;;AAEF,WAAK,UAAL;AACE,YAAII,GAAG,IAAIJ,CAAP,IAAY,QAAQA,CAApB,IAAyB,QAAQA,CAAjC,IAAsC,QAAQA,CAAlD,EAAqD;AACnD,eAAKqB,SAAL,IAAkBrB,CAAlB;AACD;;AAED;AAvYJ;;AA0YAc,UAAM;AACP;AACF;;AAED,SAASzC,KAAT,GAAiB;AACf,OAAK8C,OAAL,GAAe,EAAf;AACA,OAAKG,WAAL,GAAmB,EAAnB;AACA,OAAKI,SAAL,GAAiB,EAAjB;AACA,OAAKC,SAAL,GAAiB,IAAjB;AACA,OAAK9hB,KAAL,GAAa,EAAb;AACA,OAAK0hB,KAAL,GAAa,EAAb;AACA,OAAKC,KAAL,GAAa,EAAb;AACA,OAAKC,MAAL,GAAc,EAAd;AACA,OAAKJ,SAAL,GAAiB,EAAjB;AACA,OAAKzB,UAAL,GAAkB,KAAlB;AACA,OAAKwB,WAAL,GAAmB,KAAnB;AACD,C,CAAC;AACF;;;AAGA,SAAS3H,GAAT,CAAa2I,GAAb,EAAkB1B;AAClB;AADA,EAEE;AACA,MAAIA,IAAI,KAAK9a,SAAT,IAAsB,EAAE8a,IAAI,YAAYjH,GAAlB,CAA1B,EAAkDiH,IAAI,GAAG,IAAIjH,GAAJ,CAAQ5T,MAAM,CAAC6a,IAAD,CAAd,CAAP;AAClD,OAAK2B,IAAL,GAAYD,GAAZ;AACA/D,OAAK,CAACxT,IAAN,CAAW,IAAX;AACA,MAAI2V,KAAK,GAAG4B,GAAG,CAAC9b,OAAJ,CAAY,8BAAZ,EAA4C,EAA5C,CAAZ,CAJA,CAI6D;;AAE7Dia,OAAK,CAAC1V,IAAN,CAAW,IAAX,EAAiB2V,KAAjB,EAAwB,IAAxB,EAA8BE,IAA9B;AACD;;AAEDjH,GAAG,CAAC7V,SAAJ,GAAgB;AACdgD,UAAQ,EAAE,SAASA,QAAT,GAAoB;AAC5B,WAAO,KAAK0b,IAAZ;AACD,GAHa;;AAKd,MAAIA,IAAJ,GAAW;AACT,QAAI,KAAK1C,UAAT,EAAqB,OAAO,KAAKyC,IAAZ;AACrB,QAAIE,SAAS,GAAG,EAAhB;;AAEA,QAAI,MAAM,KAAKb,SAAX,IAAwB,QAAQ,KAAKC,SAAzC,EAAoD;AAClDY,eAAS,GAAG,KAAKb,SAAL,IAAkB,QAAQ,KAAKC,SAAb,GAAyB,MAAM,KAAKA,SAApC,GAAgD,EAAlE,IAAwE,GAApF;AACD;;AAED,WAAO,KAAKa,QAAL,IAAiB,KAAKpB,WAAL,GAAmB,OAAOmB,SAAP,GAAmB,KAAKE,IAA3C,GAAkD,EAAnE,IAAyE,KAAKC,QAA9E,GAAyF,KAAKjB,MAA9F,GAAuG,KAAKJ,SAAnH;AACD,GAda;;AAgBd,MAAIiB,IAAJ,CAASA,IAAT,EAAe;AACbjE,SAAK,CAACxT,IAAN,CAAW,IAAX;AACA0V,SAAK,CAAC1V,IAAN,CAAW,IAAX,EAAiByX,IAAjB;AACD,GAnBa;;AAqBd,MAAIE,QAAJ,GAAe;AACb,WAAO,KAAKrB,OAAL,GAAe,GAAtB;AACD,GAvBa;;AAyBd,MAAIqB,QAAJ,CAAaA,QAAb,EAAuB;AACrB,QAAI,KAAK5C,UAAT,EAAqB;AACrBW,SAAK,CAAC1V,IAAN,CAAW,IAAX,EAAiB2X,QAAQ,GAAG,GAA5B,EAAiC,cAAjC;AACD,GA5Ba;;AA8Bd,MAAIC,IAAJ,GAAW;AACT,WAAO,KAAK7C,UAAL,GAAkB,EAAlB,GAAuB,KAAK2B,KAAL,GAAa,KAAK1hB,KAAL,GAAa,GAAb,GAAmB,KAAK0hB,KAArC,GAA6C,KAAK1hB,KAAhF;AACD,GAhCa;;AAkCd,MAAI4iB,IAAJ,CAASA,IAAT,EAAe;AACb,QAAI,KAAK7C,UAAL,IAAmB,CAAC,KAAKwB,WAA7B,EAA0C;AAC1Cb,SAAK,CAAC1V,IAAN,CAAW,IAAX,EAAiB4X,IAAjB,EAAuB,MAAvB;AACD,GArCa;;AAuCd,MAAIE,QAAJ,GAAe;AACb,WAAO,KAAK9iB,KAAZ;AACD,GAzCa;;AA2Cd,MAAI8iB,QAAJ,CAAaA,QAAb,EAAuB;AACrB,QAAI,KAAK/C,UAAL,IAAmB,CAAC,KAAKwB,WAA7B,EAA0C;AAC1Cb,SAAK,CAAC1V,IAAN,CAAW,IAAX,EAAiB8X,QAAjB,EAA2B,UAA3B;AACD,GA9Ca;;AAgDd,MAAIC,IAAJ,GAAW;AACT,WAAO,KAAKrB,KAAZ;AACD,GAlDa;;AAoDd,MAAIqB,IAAJ,CAASA,IAAT,EAAe;AACb,QAAI,KAAKhD,UAAL,IAAmB,CAAC,KAAKwB,WAA7B,EAA0C;AAC1Cb,SAAK,CAAC1V,IAAN,CAAW,IAAX,EAAiB+X,IAAjB,EAAuB,MAAvB;AACD,GAvDa;;AAyDd,MAAIF,QAAJ,GAAe;AACb,WAAO,KAAK9C,UAAL,GAAkB,EAAlB,GAAuB,KAAKwB,WAAL,GAAmB,MAAM,KAAKI,KAAL,CAAWxY,IAAX,CAAgB,GAAhB,CAAzB,GAAgD,KAAKsY,WAAnF;AACD,GA3Da;;AA6Dd,MAAIoB,QAAJ,CAAaA,QAAb,EAAuB;AACrB,QAAI,KAAK9C,UAAL,IAAmB,CAAC,KAAKwB,WAA7B,EAA0C;AAC1C,SAAKI,KAAL,GAAa,EAAb;AACAjB,SAAK,CAAC1V,IAAN,CAAW,IAAX,EAAiB6X,QAAjB,EAA2B,qBAA3B;AACD,GAjEa;;AAmEd,MAAInc,MAAJ,GAAa;AACX,WAAO,KAAKqZ,UAAL,IAAmB,CAAC,KAAK6B,MAAzB,IAAmC,OAAO,KAAKA,MAA/C,GAAwD,EAAxD,GAA6D,KAAKA,MAAzE;AACD,GArEa;;AAuEd,MAAIlb,MAAJ,CAAWA,MAAX,EAAmB;AACjB,QAAI,KAAKqZ,UAAL,IAAmB,CAAC,KAAKwB,WAA7B,EAA0C;AAC1C,SAAKK,MAAL,GAAc,GAAd;AACA,QAAI,OAAOlb,MAAM,CAAC,CAAD,CAAjB,EAAsBA,MAAM,GAAGA,MAAM,CAACmF,KAAP,CAAa,CAAb,CAAT;AACtB6U,SAAK,CAAC1V,IAAN,CAAW,IAAX,EAAiBtE,MAAjB,EAAyB,OAAzB;AACD,GA5Ea;;AA8Ed,MAAIsc,YAAJ,GAAmB;AACjB,WAAO,IAAItX,eAAJ,CAAoB,KAAKhF,MAAzB,CAAP;AACD,GAhFa;;AAkFd,MAAIuc,IAAJ,GAAW;AACT,WAAO,KAAKlD,UAAL,IAAmB,CAAC,KAAKyB,SAAzB,IAAsC,OAAO,KAAKA,SAAlD,GAA8D,EAA9D,GAAmE,KAAKA,SAA/E;AACD,GApFa;;AAsFd,MAAIyB,IAAJ,CAASA,IAAT,EAAe;AACb,QAAI,KAAKlD,UAAT,EAAqB;AACrB,SAAKyB,SAAL,GAAiB,GAAjB;AACA,QAAI,OAAOyB,IAAI,CAAC,CAAD,CAAf,EAAoBA,IAAI,GAAGA,IAAI,CAACpX,KAAL,CAAW,CAAX,CAAP;AACpB6U,SAAK,CAAC1V,IAAN,CAAW,IAAX,EAAiBiY,IAAjB,EAAuB,UAAvB;AACD,GA3Fa;;AA6Fd,MAAIC,MAAJ,GAAa;AACX,QAAIN,IAAJ;;AAEA,QAAI,KAAK7C,UAAL,IAAmB,CAAC,KAAKuB,OAA7B,EAAsC;AACpC,aAAO,EAAP;AACD,KALU,CAKT;AACF;AACA;AACA;AACA;;;AAGA,YAAQ,KAAKA,OAAb;AACE,WAAK,MAAL;AACA,WAAK,MAAL;AACA,WAAK,YAAL;AACA,WAAK,QAAL;AACE,eAAO,MAAP;AALJ;;AAQAsB,QAAI,GAAG,KAAKA,IAAZ;;AAEA,QAAI,CAACA,IAAL,EAAW;AACT,aAAO,EAAP;AACD;;AAED,WAAO,KAAKtB,OAAL,GAAe,KAAf,GAAuBsB,IAA9B;AACD;;AAxHa,CAAhB;AA2HA7iB,MAAM,CAACZ,OAAP,GAAiBya,GAAjB,C;;;;;;;CClnBA;;AACA,IAAIuJ,cAAc,GAAG,yEAArB;AAAA,IACIC,gBAAgB,GAAG,uDADvB;AAAA,IAEIC,aAAa,GAAG,sBAFpB;;AAIA,SAASC,QAAT,CAAkBC,KAAlB,EAAyBzW,MAAzB,EAAiC;AAC/B,SAAO0W,WAAW,CAACD,KAAD,CAAX,CAAmBE,IAAnB,CAAwB,UAAU9X,KAAV,EAAiB;AAC9C,QAAI+X,OAAO,GAAG/X,KAAK,CAAC+X,OAApB;AACA,QAAIC,SAAS,GAAGhY,KAAK,CAACrE,IAAN,KAAe,KAAf,IAAwBwF,MAAM,CAACxF,IAAP,KAAgBqE,KAAK,CAACrE,IAA9D;;AAEA,QAAIqc,SAAS,IAAID,OAAb,IAAwB,EAAEC,SAAS,IAAID,OAAf,CAA5B,EAAqD;AACnD,aAAO,KAAP;AACD;;AAED,QAAIE,gBAAgB,GAAGjY,KAAK,CAACkY,WAAN,CAAkBC,KAAlB,CAAwB,UAAUC,UAAV,EAAsB;AACnE,UAAIC,OAAO,GAAGD,UAAU,CAACC,OAAzB;AAAA,UACIC,QAAQ,GAAGF,UAAU,CAACE,QAD1B;AAAA,UAEIC,QAAQ,GAAGH,UAAU,CAAC3kB,KAF1B;AAAA,UAGIA,KAAK,GAAG0N,MAAM,CAACkX,OAAD,CAHlB;;AAKA,UAAI,CAAC5kB,KAAL,EAAY;AACV,eAAO,KAAP;AACD;;AAED,cAAQ4kB,OAAR;AACE,aAAK,OAAL;AACA,aAAK,QAAL;AACEE,kBAAQ,GAAG3L,UAAU,CAAC2L,QAAD,CAArB;AACA9kB,eAAK,GAAGmZ,UAAU,CAACnZ,KAAD,CAAlB;AACA;AALJ;;AAQA,cAAQ6kB,QAAR;AACE,aAAK,KAAL;AACE,iBAAO7kB,KAAK,IAAI8kB,QAAhB;;AAEF,aAAK,KAAL;AACE,iBAAO9kB,KAAK,IAAI8kB,QAAhB;;AAEF;AACE,iBAAO9kB,KAAK,KAAK8kB,QAAjB;AARJ;AAUD,KA5BsB,CAAvB;AA6BA,WAAON,gBAAgB,IAAI,CAACF,OAArB,IAAgC,CAACE,gBAAD,IAAqBF,OAA5D;AACD,GAtCM,CAAP;AAuCD;;AAED;;AAEA,SAASF,WAAT,CAAqBD,KAArB,EAA4B;AAC1B,SAAOA,KAAK,CAAC3c,KAAN,CAAY,GAAZ,EAAiBqC,GAAjB,CAAqB,UAAU0C,KAAV,EAAiB;AAC3CA,SAAK,GAAGA,KAAK,CAACwY,IAAN,EAAR;AACA,QAAIC,QAAQ,GAAGzY,KAAK,CAACnF,KAAN,CAAY2c,cAAZ,CAAf;;AAEA,QAAI,CAACiB,QAAL,EAAe;AACb,YAAM,IAAIC,WAAJ,CAAgB,8BAA8B1c,MAA9B,CAAqCgE,KAArC,EAA4C,IAA5C,CAAhB,CAAN;AACD;;AAED,QAAIsY,QAAQ,GAAGG,QAAQ,CAAC,CAAD,CAAvB;AAAA,QACI9c,IAAI,GAAG8c,QAAQ,CAAC,CAAD,CADnB;AAAA,QAEIP,WAAW,GAAG,CAAC,CAACO,QAAQ,CAAC,CAAD,CAAR,IAAe,EAAhB,KAAuBA,QAAQ,CAAC,CAAD,CAAR,IAAe,EAAtC,CAAD,EAA4CD,IAA5C,EAFlB;AAAA,QAGIG,MAAM,GAAG,EAHb;AAIAA,UAAM,CAACZ,OAAP,GAAiB,CAAC,CAACO,QAAF,IAAcA,QAAQ,CAAC1R,WAAT,OAA2B,KAA1D;AACA+R,UAAM,CAAChd,IAAP,GAAcA,IAAI,GAAGA,IAAI,CAACiL,WAAL,EAAH,GAAwB,KAA1C;;AAEA,QAAI,CAACsR,WAAL,EAAkB;AAChBS,YAAM,CAACT,WAAP,GAAqB,EAArB;AACA,aAAOS,MAAP;AACD;;AAEDT,eAAW,GAAGA,WAAW,CAACrd,KAAZ,CAAkB,aAAlB,CAAd;;AAEA,QAAI,CAACqd,WAAL,EAAkB;AAChB,YAAM,IAAIQ,WAAJ,CAAgB,8BAA8B1c,MAA9B,CAAqCgE,KAArC,EAA4C,IAA5C,CAAhB,CAAN;AACD;;AAED2Y,UAAM,CAACT,WAAP,GAAqBA,WAAW,CAAC5a,GAAZ,CAAgB,UAAU8a,UAAV,EAAsB;AACzD,UAAIK,QAAQ,GAAGL,UAAU,CAACvd,KAAX,CAAiB4c,gBAAjB,CAAf;;AAEA,UAAI,CAACgB,QAAL,EAAe;AACb,cAAM,IAAIC,WAAJ,CAAgB,8BAA8B1c,MAA9B,CAAqCgE,KAArC,EAA4C,IAA5C,CAAhB,CAAN;AACD;;AAED,UAAIqY,OAAO,GAAGI,QAAQ,CAAC,CAAD,CAAR,CAAY7R,WAAZ,GAA0B/L,KAA1B,CAAgC6c,aAAhC,CAAd;AACA,aAAO;AACLY,gBAAQ,EAAED,OAAO,CAAC,CAAD,CADZ;AAELA,eAAO,EAAEA,OAAO,CAAC,CAAD,CAFX;AAGL5kB,aAAK,EAAEglB,QAAQ,CAAC,CAAD;AAHV,OAAP;AAKD,KAboB,CAArB;AAcA,WAAOE,MAAP;AACD,GAzCM,CAAP;AA0CD;;AAED;;AAEA,SAAS3K,UAAT,CAAoB4J,KAApB,EAA2B;AACzB,MAAIgB,GAAG,GAAG;AACRC,WAAO,EAAE,KADD;AAERjB,SAAK,EAAEA;AAFC,GAAV;;AAKA,MAAIA,KAAK,KAAK,EAAd,EAAkB;AAChBgB,OAAG,CAACC,OAAJ,GAAc,IAAd;AACA,WAAOD,GAAP;AACD;;AAEDA,KAAG,CAACC,OAAJ,GAAclB,QAAQ,CAACC,KAAD,EAAQ;AAC5Bjc,QAAI,EAAE,QADsB;AAE5Bmd,SAAK,EAAErM,MAAM,CAACsM,MAAP,CAAcD,KAFO;AAG5BE,UAAM,EAAEvM,MAAM,CAACsM,MAAP,CAAcC;AAHM,GAAR,CAAtB;AAKA,SAAOJ,GAAP;AACD;;AAEDxkB,MAAM,CAACZ,OAAP,GAAiBwa,UAAjB,C;;;;;;;;;ACrHA,IAAI,CAACiL,MAAM,CAACC,KAAZ,EAAmB;AACjB;AACAD,QAAM,CAACC,KAAP,GAAe,SAASA,KAAT,CAAezlB,KAAf,EAAsB;AACnC,WAAOA,KAAK,KAAKA,KAAjB;AACD,GAFD;AAGD,C;;;;;;;;;ACLD;AACA;;AACA;AACA,IAAI,CAACH,MAAM,CAAC2K,MAAZ,EAAoB;AAClB3K,QAAM,CAAC2K,MAAP,GAAgB,UAASzG,MAAT,EAAiB2hB,OAAjB,EAA0B;AACxC,SAAK,IAAIjR,SAAS,GAAG,CAArB,EAAwBA,SAAS,GAAGtK,SAAS,CAACjG,MAA9C,EAAsDuQ,SAAS,EAA/D,EAAmE;AACjE,UAAIkR,UAAU,GAAGxb,SAAS,CAACsK,SAAD,CAA1B;;AACA,UAAIkR,UAAU,IAAI,IAAlB,EAAwB;AACtB;AACD,OAJgE,CAMjE;AACA;AACA;;;AACA,WAAK,IAAIphB,GAAT,IAAgBohB,UAAhB,EAA4B;AAC1B5hB,cAAM,CAACQ,GAAD,CAAN,GAAcohB,UAAU,CAACphB,GAAD,CAAxB;AACD;AACF;;AAED,WAAOR,MAAP;AACD,GAhBD;AAiBD;;AAED,IAAM0G,cAAc,GAAG5K,MAAM,CAAC8E,SAAP,CAAiB8F,cAAxC;AAEA;;;;;;AAKA,IAAI,CAAC5K,MAAM,CAAC8N,OAAZ,EAAqB;AACnB9N,QAAM,CAAC8N,OAAP,GAAiB,UAAS/C,MAAT,EAAiB;AAChC;AACA,QAAIA,MAAM,IAAI,IAAd,EAAoB;AAClB,YAAM,IAAI/G,SAAJ,CAAc,qCAAd,CAAN;AACD;;AAED,QAAI8J,OAAO,GAAG,EAAd;;AACA,SAAK,IAAIpJ,GAAT,IAAgBqG,MAAhB,EAAwB;AACtB,UAAIH,cAAc,CAACmB,IAAf,CAAoBhB,MAApB,EAA4BrG,GAA5B,CAAJ,EAAsC;AACpCoJ,eAAO,CAACZ,IAAR,CAAa,CAACxI,GAAD,EAAMqG,MAAM,CAACrG,GAAD,CAAZ,CAAb;AACD;AACF;;AACD,WAAOoJ,OAAP;AACD,GAbD;AAcD;AAGD;;;;;;;AAKA,IAAI,CAAC9N,MAAM,CAAC6N,MAAZ,EAAoB;AAClB7N,QAAM,CAAC6N,MAAP,GAAgB,UAAS9C,MAAT,EAAiB;AAC/B;AACA,QAAIA,MAAM,IAAI,IAAd,EAAoB;AAClB,YAAM,IAAI/G,SAAJ,CAAc,oCAAd,CAAN;AACD;;AAED,QAAI6J,MAAM,GAAG,EAAb;;AACA,SAAK,IAAInJ,GAAT,IAAgBqG,MAAhB,EAAwB;AACtB,UAAIH,cAAc,CAACmB,IAAf,CAAoBhB,MAApB,EAA4BrG,GAA5B,CAAJ,EAAsC;AACpCmJ,cAAM,CAACX,IAAP,CAAYnC,MAAM,CAACrG,GAAD,CAAlB;AACD;AACF;;AACD,WAAOmJ,MAAP;AACD,GAbD;AAcD;;AAED,IAAI,CAAC7N,MAAM,CAAC4F,gBAAZ,EAA8B;AAC5B5F,QAAM,CAAC4F,gBAAP,GAA0B,UAASmF,MAAT,EAAiBgb,WAAjB,EAA8B;AACtD,SAAK,IAAIC,QAAT,IAAqBD,WAArB,EAAkC;AAChC/lB,YAAM,CAACC,cAAP,CAAsB8K,MAAtB,EAA8Bib,QAA9B,EAAwCD,WAAW,CAACC,QAAD,CAAnD;AACD;;AACD,WAAOjb,MAAP;AACD,GALD;AAMD,C,CAED;;;AACA,IAAI,CAAC/K,MAAM,CAACimB,cAAZ,EAA4B;AAC1BjmB,QAAM,CAACimB,cAAP,GAAyB,UAASjmB,MAAT,EAAiBkmB,KAAjB,EAAwB;AAC/C,QAAIzkB,GAAJ;;AACA,aAASwkB,cAAT,CAAwBE,CAAxB,EAA2BC,KAA3B,EAAkC;AAChC3kB,SAAG,CAACsK,IAAJ,CAASoa,CAAT,EAAYC,KAAZ;AACA,aAAOD,CAAP;AACD;;AACD,QAAI;AACF;AACA1kB,SAAG,GAAGzB,MAAM,CAACqmB,wBAAP,CAAgCrmB,MAAM,CAAC8E,SAAvC,EAAkDohB,KAAlD,EAAyDzkB,GAA/D;AACAA,SAAG,CAACsK,IAAJ,CAAS,EAAT,EAAa,IAAb;AACD,KAJD,CAIE,OAAOiR,CAAP,EAAU;AACV,WACE;AACAhd,YAAM,CAAC8E,SAAP,KAAqB,GAAGohB,KAAH,CAArB,IACA;AACA;AACA;AACA;AAACI,iBAAS,EAAE;AAAZ,QAAkBA,SAAlB,KAAgC,KAAK,CANvC,CAOE;AACA;AACA;AATF,QAUE;AACA;AACD,SAbS,CAcV;AACA;;;AACA7kB,SAAG,GAAG,aAAS2kB,KAAT,EAAgB;AACpB,aAAKF,KAAL,IAAcE,KAAd;AACD,OAFD,CAhBU,CAmBV;AACA;AACA;AACA;AACA;;;AACAH,oBAAc,CAACM,QAAf,GAA0BN,cAAc,CACtCA,cAAc,CAAC,EAAD,EAAK,IAAL,CADwB,EAEtCjmB,MAAM,CAAC8E,SAF+B,CAAd,YAGb9E,MAHb,CAxBU,CA4BV;AACA;AACA;AACA;AACA;AACA;AACA;AACD;;AACD,WAAOimB,cAAP;AACD,GA/CwB,CA+CvBjmB,MA/CuB,EA+Cf,WA/Ce,CAAzB;AAgDD;;AAED,IAAI,CAACA,MAAM,CAACwmB,EAAZ,EAAgB;AACdxmB,QAAM,CAACwmB,EAAP,GAAY,UAAStgB,CAAT,EAAYugB,CAAZ,EAAe;AACzB,QAAIvgB,CAAC,KAAKugB,CAAV,EAAa;AACX;AACA,aAAOvgB,CAAC,KAAK,CAAN,IAAW,IAAIA,CAAJ,KAAU,IAAIugB,CAAhC;AACD,KAJwB,CAMzB;AACA;AACA;AACA;AACA;;;AACA,WAAOvgB,CAAC,KAAKA,CAAN,IAAWugB,CAAC,KAAKA,CAAxB;AACD,GAZD;AAaD,C;;;;;;;;;ACjJD;AACA;AACA,IAAI,CAACve,KAAK,CAACwe,IAAX,EAAiB;AACfxe,OAAK,CAACwe,IAAN,GAAc,YAAW;AACvB,QAAIC,KAAK,GAAG3mB,MAAM,CAAC8E,SAAP,CAAiBgD,QAA7B;;AACA,QAAI8e,UAAU,GAAG,SAAbA,UAAa,CAASjL,EAAT,EAAa;AAC5B,aAAO,OAAOA,EAAP,KAAc,UAAd,IAA4BgL,KAAK,CAAC5a,IAAN,CAAW4P,EAAX,MAAmB,mBAAtD;AACD,KAFD;;AAGA,QAAIkL,SAAS,GAAG,SAAZA,SAAY,CAAS1mB,KAAT,EAAgB;AAC9B,UAAIiQ,MAAM,GAAGuV,MAAM,CAACxlB,KAAD,CAAnB;;AACA,UAAIylB,KAAK,CAACxV,MAAD,CAAT,EAAmB;AACjB,eAAO,CAAP;AACD;;AACD,UAAIA,MAAM,KAAK,CAAX,IAAgB,CAAC0W,QAAQ,CAAC1W,MAAD,CAA7B,EAAuC;AACrC,eAAOA,MAAP;AACD;;AACD,aAAO,CAACA,MAAM,GAAG,CAAT,GAAa,CAAb,GAAiB,CAAC,CAAnB,IAAwBiF,IAAI,CAAC0R,KAAL,CAAW1R,IAAI,CAAC2R,GAAL,CAAS5W,MAAT,CAAX,CAA/B;AACD,KATD;;AAUA,QAAI6W,cAAc,GAAG5R,IAAI,CAAC6R,GAAL,CAAS,CAAT,EAAY,EAAZ,IAAkB,CAAvC;;AACA,QAAIC,QAAQ,GAAG,SAAXA,QAAW,CAAShnB,KAAT,EAAgB;AAC7B,UAAIid,GAAG,GAAGyJ,SAAS,CAAC1mB,KAAD,CAAnB;AACA,aAAOkV,IAAI,CAAC+R,GAAL,CAAS/R,IAAI,CAACC,GAAL,CAAS8H,GAAT,EAAc,CAAd,CAAT,EAA2B6J,cAA3B,CAAP;AACD,KAHD,CAhBuB,CAqBvB;;;AACA,WAAO,SAASP,IAAT,CAAcW;AAAS;AAAvB,MAA+C;AACpD;AACA,UAAIC,CAAC,GAAG,IAAR,CAFoD,CAIpD;;AACA,UAAI7Z,KAAK,GAAGzN,MAAM,CAACqnB,SAAD,CAAlB,CALoD,CAOpD;;AACA,UAAIA,SAAS,IAAI,IAAjB,EAAuB;AACrB,cAAM,IAAIrjB,SAAJ,CAAc,kEAAd,CAAN;AACD,OAVmD,CAYpD;;;AACA,UAAIujB,KAAK,GAAGjd,SAAS,CAACjG,MAAV,GAAmB,CAAnB,GAAuBiG,SAAS,CAAC,CAAD,CAAhC,GAAsC,KAAKxD,SAAvD;AACA,UAAI0gB,CAAJ;;AACA,UAAI,OAAOD,KAAP,KAAiB,WAArB,EAAkC;AAChC;AACA;AACA,YAAI,CAACX,UAAU,CAACW,KAAD,CAAf,EAAwB;AACtB,gBAAM,IAAIvjB,SAAJ,CAAc,mEAAd,CAAN;AACD,SAL+B,CAOhC;;;AACA,YAAIsG,SAAS,CAACjG,MAAV,GAAmB,CAAvB,EAA0B;AACxBmjB,WAAC,GAAGld,SAAS,CAAC,CAAD,CAAb;AACD;AACF,OA1BmD,CA4BpD;AACA;;;AACA,UAAI8S,GAAG,GAAG+J,QAAQ,CAAC1Z,KAAK,CAACpJ,MAAP,CAAlB,CA9BoD,CAgCpD;AACA;AACA;;AACA,UAAIojB,CAAC,GAAGb,UAAU,CAACU,CAAD,CAAV,GAAgBtnB,MAAM,CAAC,IAAIsnB,CAAJ,CAAMlK,GAAN,CAAD,CAAtB,GAAqC,IAAIlV,KAAJ,CAAUkV,GAAV,CAA7C,CAnCoD,CAqCpD;;AACA,UAAIsK,CAAC,GAAG,CAAR,CAtCoD,CAuCpD;;AACA,UAAIC,MAAJ;;AACA,aAAOD,CAAC,GAAGtK,GAAX,EAAgB;AACduK,cAAM,GAAGla,KAAK,CAACia,CAAD,CAAd;;AACA,YAAIH,KAAJ,EAAW;AACTE,WAAC,CAACC,CAAD,CAAD,GAAO,OAAOF,CAAP,KAAa,WAAb,GAA2BD,KAAK,CAACI,MAAD,EAASD,CAAT,CAAhC,GAA8CH,KAAK,CAACxb,IAAN,CAAWyb,CAAX,EAAcG,MAAd,EAAsBD,CAAtB,CAArD;AACD,SAFD,MAEO;AACLD,WAAC,CAACC,CAAD,CAAD,GAAOC,MAAP;AACD;;AACDD,SAAC,IAAI,CAAL;AACD,OAjDmD,CAkDpD;;;AACAD,OAAC,CAACpjB,MAAF,GAAW+Y,GAAX,CAnDoD,CAoDpD;;AACA,aAAOqK,CAAP;AACD,KAtDD;AAuDD,GA7Ea,EAAd;AA8ED,C;;;;;;ACjFD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,mBAAmB;AAC3D;AACA;;AAEA;AACA;AACA,kCAAkC,oBAAoB;AACtD;AACA;;AAEA;AACA;AACA,wCAAwC,4BAA4B;AACpE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,uDAAuD;AACvD,SAAS;AACT;AACA,SAAS;AACT,8EAA8E;AAC9E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,uBAAuB;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,uCAAuC,0BAA0B;AACjE;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,+BAA+B,0BAA0B,eAAe;AACxE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA,KAAK;AACL;AACA;AACA,CAAC;;;;;;;ACjdD;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,4BAA4B;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA,aAAa;AACb,qCAAqC,UAAU;AAC/C;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1EA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;;;;;;;;;;;;ACnCA,CAAC,UAASvO,MAAT,EAAiB;AAChB,MAAIA,MAAM,CAACoC,MAAX,EAAmB;AACjB;AACD;AAED;;;AACA,MAAIsM,OAAO,GAAG,EAAd;AACA,MAAIC,OAAO,GAAG,KAAd;;AAEA,WAASC,GAAT,CAAaC,EAAb,EAAiBC,IAAjB,EAAuBvd,OAAvB,EAAgC;AAC9B,QAAIud,IAAI,YAAYC,QAApB,EAA8B;AAC5Bxd,aAAO,GAAGud,IAAV;AACAA,UAAI,GAAG,EAAP;AACD;;AAEDJ,WAAO,CAACG,EAAD,CAAP,GAAc;AACZtd,aAAO,EAAEA,OADG;AAEZud,UAAI,EAAEA,IAFM;AAGZlnB,YAAM,EAAE;AAACZ,eAAO,EAAE;AAAV,OAHI;AAIZgoB,mBAAa,EAAE,KAJH;AAKZC,cAAQ,EAAE;AALE,KAAd;AAOD;;AAED,WAAS5M,GAAT,CAAawM,EAAb,EAAiB;AACf;AACA,QAAIA,EAAE,CAAChb,OAAH,CAAW,cAAX,MAA+B,CAAnC,EAAsC;A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","file":"framework.web.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 20);\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\n/*\n * Stateful things in runtime\n */\nvar _default = {\n  component: null,\n  mountID: 1,\n  sandbox: true,\n  // Roots\n  rootComponents: {},\n  rootInstances: {},\n  // Inject\n  hook: null,\n  driver: null,\n  monitor: null\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _host = _interopRequireDefault(require(\"./host\"));\n\nvar _element = require(\"../element\");\n\nvar _unmountComponentAtNode = _interopRequireDefault(require(\"../unmountComponentAtNode\"));\n\nvar _instantiateComponent = _interopRequireDefault(require(\"./instantiateComponent\"));\n\nvar _shouldUpdateComponent = _interopRequireDefault(require(\"./shouldUpdateComponent\"));\n\nvar _root = _interopRequireDefault(require(\"./root\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Instance manager\n */\nvar KEY = '$$instance';\nvar _default = {\n  set: function set(node, instance) {\n    if (!node[KEY]) {\n      node[KEY] = instance; // Record root instance to roots map\n\n      if (instance.rootID) {\n        _host.default.rootInstances[instance.rootID] = instance;\n        _host.default.rootComponents[instance.rootID] = instance._internal;\n      }\n    }\n  },\n  get: function get(node) {\n    return node[KEY];\n  },\n  remove: function remove(node) {\n    var instance = this.get(node);\n\n    if (instance) {\n      node[KEY] = null;\n\n      if (instance.rootID) {\n        delete _host.default.rootComponents[instance.rootID];\n        delete _host.default.rootInstances[instance.rootID];\n      }\n    }\n  },\n  mount: function mount(element, container, parentInstance) {\n    if (process.env.NODE_ENV !== 'production') {\n      _host.default.measurer && _host.default.measurer.beforeRender();\n    } // Before render callback\n\n\n    _host.default.driver.beforeRender && _host.default.driver.beforeRender(); // Real native root node is body\n\n    if (container == null) {\n      container = _host.default.driver.createBody();\n    } // Get the context from the conceptual parent component.\n\n\n    var parentContext;\n\n    if (parentInstance) {\n      var parentInternal = parentInstance._internal;\n      parentContext = parentInternal._processChildContext(parentInternal._context);\n    }\n\n    var prevRootInstance = this.get(container);\n    var hasPrevRootInstance = prevRootInstance && prevRootInstance.isRootComponent;\n\n    if (hasPrevRootInstance) {\n      var prevRenderedComponent = prevRootInstance.getRenderedComponent();\n      var prevElement = prevRenderedComponent._currentElement;\n\n      if ((0, _shouldUpdateComponent.default)(prevElement, element)) {\n        var prevUnmaskedContext = prevRenderedComponent._context;\n        prevRenderedComponent.updateComponent(prevElement, element, prevUnmaskedContext, parentContext || prevUnmaskedContext);\n        return prevRootInstance;\n      } else {\n        _host.default.hook.Reconciler.unmountComponent(prevRootInstance);\n\n        (0, _unmountComponentAtNode.default)(container);\n      }\n    }\n\n    var wrappedElement = (0, _element.createElement)(_root.default, null, element);\n    var renderedComponent = (0, _instantiateComponent.default)(wrappedElement);\n    var defaultContext = parentContext || {};\n    var rootInstance = renderedComponent.mountComponent(container, null, defaultContext);\n    this.set(container, rootInstance); // After render callback\n\n    _host.default.driver.afterRender && _host.default.driver.afterRender(rootInstance); // Devtool render new root hook\n\n    _host.default.hook.Mount._renderNewRootComponent(rootInstance._internal);\n\n    if (process.env.NODE_ENV !== 'production') {\n      _host.default.measurer && _host.default.measurer.afterRender();\n    }\n\n    return rootInstance;\n  }\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * Base component class.\n */\nvar Component =\n/*#__PURE__*/\nfunction () {\n  function Component(props, context, updater) {\n    _classCallCheck(this, Component);\n\n    this.props = props;\n    this.context = context;\n    this.refs = {};\n    this.updater = updater;\n  }\n\n  _createClass(Component, [{\n    key: \"isComponentClass\",\n    value: function isComponentClass() {}\n  }, {\n    key: \"setState\",\n    value: function setState(partialState, callback) {\n      this.updater.setState(this, partialState, callback);\n    }\n  }, {\n    key: \"forceUpdate\",\n    value: function forceUpdate(callback) {\n      this.updater.forceUpdate(this, callback);\n    }\n  }]);\n\n  return Component;\n}();\n\nvar _default = Component;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint no-extend-native: \"off\", new-cap: \"off\" */\nvar defineProperties = Object.defineProperties,\n    defineProperty = Object.defineProperty,\n    SymbolPolyfill,\n    HiddenSymbol,\n    globalSymbols = Object.create(null);\n\nfunction isSymbol(x) {\n  if (!x) return false;\n  if (_typeof(x) === 'symbol') return true;\n  if (!x.constructor) return false;\n  if (x.constructor.name !== 'Symbol') return false;\n  return x[x.constructor.toStringTag] === 'Symbol';\n}\n\nfunction validateSymbol(value) {\n  if (!isSymbol(value)) throw new TypeError(value + ' is not a symbol');\n  return value;\n}\n\nvar generateName = function () {\n  var created = Object.create(null);\n  return function (desc) {\n    var postfix = 0,\n        name;\n\n    while (created[desc + (postfix || '')]) {\n      ++postfix;\n    }\n\n    desc += postfix || '';\n    created[desc] = true;\n    name = '@@' + desc;\n    return name;\n  };\n}(); // Internal constructor (not one exposed) for creating Symbol instances.\n// This one is used to ensure that `someSymbol instanceof Symbol` always return false\n\n\nHiddenSymbol = function _Symbol(description) {\n  if (this instanceof HiddenSymbol) throw new TypeError('Symbol is not a constructor');\n  return SymbolPolyfill(description);\n}; // Exposed `Symbol` constructor\n// (returns instances of HiddenSymbol)\n\n\nmodule.exports = SymbolPolyfill = function _Symbol2(description) {\n  var symbol;\n  if (this instanceof _Symbol2) throw new TypeError('Symbol is not a constructor');\n  symbol = Object.create(HiddenSymbol.prototype);\n  description = description === undefined ? '' : String(description);\n  return defineProperties(symbol, {\n    __description__: {\n      value: description\n    },\n    __name__: {\n      value: generateName(description)\n    }\n  });\n};\n\ndefineProperties(SymbolPolyfill, {\n  for: {\n    value: function value(key) {\n      if (globalSymbols[key]) return globalSymbols[key];\n      return globalSymbols[key] = SymbolPolyfill(String(key));\n    }\n  },\n  keyFor: {\n    value: function value(s) {\n      var key;\n      validateSymbol(s);\n\n      for (key in globalSymbols) {\n        if (globalSymbols[key] === s) return key;\n      }\n    }\n  },\n  // To ensure proper interoperability with other native functions (e.g. Array.from)\n  // fallback to eventual native implementation of given symbol\n  hasInstance: {\n    value: SymbolPolyfill('hasInstance')\n  },\n  isConcatSpreadable: {\n    value: SymbolPolyfill('isConcatSpreadable')\n  },\n  iterator: {\n    value: SymbolPolyfill('iterator')\n  },\n  match: {\n    value: SymbolPolyfill('match')\n  },\n  replace: {\n    value: SymbolPolyfill('replace')\n  },\n  search: {\n    value: SymbolPolyfill('search')\n  },\n  species: {\n    value: SymbolPolyfill('species')\n  },\n  split: {\n    value: SymbolPolyfill('split')\n  },\n  toPrimitive: {\n    value: SymbolPolyfill('toPrimitive')\n  },\n  toStringTag: {\n    value: SymbolPolyfill('toStringTag')\n  },\n  unscopables: {\n    value: SymbolPolyfill('unscopables')\n  }\n}); // Internal tweaks for real symbol producer\n\ndefineProperties(HiddenSymbol.prototype, {\n  constructor: {\n    value: SymbolPolyfill\n  },\n  toString: {\n    value: function value() {\n      return this.__name__;\n    }\n  }\n}); // Proper implementation of methods exposed on Symbol.prototype\n// They won't be accessible on produced symbol instances as they derive from HiddenSymbol.prototype\n\ndefineProperties(SymbolPolyfill.prototype, {\n  toString: {\n    value: function value() {\n      return 'Symbol (' + validateSymbol(this).__description__ + ')';\n    }\n  },\n  valueOf: {\n    value: function value() {\n      return validateSymbol(this);\n    }\n  }\n});\ndefineProperty(SymbolPolyfill.prototype, SymbolPolyfill.toPrimitive, {\n  value: function value() {\n    var symbol = validateSymbol(this);\n    if (_typeof(symbol) === 'symbol') return symbol;\n    return symbol.toString();\n  }\n});\ndefineProperty(SymbolPolyfill.prototype, SymbolPolyfill.toStringTag, {\n  value: 'Symbol'\n}); // Proper implementaton of toPrimitive and toStringTag for returned symbol instances\n\ndefineProperty(HiddenSymbol.prototype, SymbolPolyfill.toStringTag, {\n  value: SymbolPolyfill.prototype[SymbolPolyfill.toStringTag]\n}); // Note: It's important to define `toPrimitive` as last one, as some implementations\n// implement `toPrimitive` natively without implementing `toStringTag` (or other specified symbols)\n// And that may invoke error in definition flow:\n// See: https://github.com/medikoo/es6-symbol/issues/13#issuecomment-164146149\n\ndefineProperty(HiddenSymbol.prototype, SymbolPolyfill.toPrimitive, {\n  value: SymbolPolyfill.prototype[SymbolPolyfill.toPrimitive]\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _host = _interopRequireDefault(require(\"./host\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction instantiateComponent(element) {\n  var instance;\n\n  if (element === undefined || element === null || element === false || element === true) {\n    instance = new _host.default.EmptyComponent();\n  } else if (Array.isArray(element)) {\n    instance = new _host.default.FragmentComponent(element);\n  } else if (_typeof(element) === 'object' && element.type) {\n    // Special case string values\n    if (typeof element.type === 'string') {\n      instance = new _host.default.NativeComponent(element);\n    } else {\n      instance = new _host.default.CompositeComponent(element);\n    }\n  } else if (typeof element === 'string' || typeof element === 'number') {\n    instance = new _host.default.TextComponent(element);\n  } else {\n    throw new Error(\"Invalid element type: \".concat(element, \". (keys: \").concat(Object.keys(element), \")\"));\n  }\n\n  instance._mountIndex = 0;\n  return instance;\n}\n\nvar _default = instantiateComponent;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.createElement = createElement;\nexports.createFactory = createFactory;\nexports.cloneElement = cloneElement;\nexports.isValidElement = isValidElement;\nexports.default = void 0;\n\nvar _host = _interopRequireDefault(require(\"./vdom/host\"));\n\nvar _flattenChildren = _interopRequireDefault(require(\"./flattenChildren\"));\n\nvar _universalEnv = require(\"universal-env\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar RESERVED_PROPS = {\n  key: true,\n  ref: true\n};\n\nfunction getRenderErrorInfo() {\n  if (_host.default.component) {\n    var name = _host.default.component.getName();\n\n    if (name) {\n      return ' Check the render method of `' + name + '`.';\n    }\n  }\n\n  return '';\n}\n\nfunction Element(type, key, ref, props, owner) {\n  if (_universalEnv.isWeex) {\n    props = filterProps(type, props);\n  }\n\n  return {\n    // Built-in properties that belong on the element\n    type: type,\n    key: key,\n    ref: ref,\n    props: props,\n    // Record the component responsible for creating this element.\n    _owner: owner\n  };\n}\n\n;\nvar _default = Element;\nexports.default = _default;\n\nfunction flattenStyle(style) {\n  if (!style) {\n    return undefined;\n  }\n\n  if (!Array.isArray(style)) {\n    return style;\n  } else {\n    var result = {};\n\n    for (var i = 0; i < style.length; ++i) {\n      var computedStyle = flattenStyle(style[i]);\n\n      if (computedStyle) {\n        for (var key in computedStyle) {\n          result[key] = computedStyle[key];\n        }\n      }\n    }\n\n    return result;\n  }\n} // TODO: move to weex-drvier\n\n\nfunction filterProps(type, props) {\n  // Only for weex text\n  if (type === 'text') {\n    var children = props.children;\n    var value = props.value; // Value is first\n\n    if (value == null && children != null) {\n      if (Array.isArray(children)) {\n        children = children.map(function (val) {\n          if (typeof val === 'number' || typeof val === 'string') {\n            return val;\n          } else {\n            return '';\n          }\n        }).join('');\n      } else if (typeof children !== 'number' && typeof children !== 'string') {\n        children = '';\n      }\n\n      props.value = String(children);\n    }\n\n    props.children = null;\n  }\n\n  return props;\n}\n\nfunction createElement(type, config, children) {\n  if (type == null) {\n    throw Error('createElement: type should not be null or undefined.' + getRenderErrorInfo());\n  } // Reserved names are extracted\n\n\n  var props = {};\n  var propName;\n  var key = null;\n  var ref = null;\n\n  if (config != null) {\n    ref = config.ref === undefined ? null : config.ref;\n    key = config.key === undefined ? null : String(config.key); // Remaining properties are added to a new props object\n\n    for (propName in config) {\n      if (!RESERVED_PROPS[propName]) {\n        props[propName] = config[propName];\n      }\n    }\n  }\n\n  var childrenLength = arguments.length - 2;\n\n  if (childrenLength > 0) {\n    if (childrenLength === 1 && !Array.isArray(children)) {\n      props.children = children;\n    } else {\n      var childArray = children;\n\n      if (childrenLength > 1) {\n        childArray = new Array(childrenLength);\n\n        for (var i = 0; i < childrenLength; i++) {\n          childArray[i] = arguments[i + 2];\n        }\n      }\n\n      props.children = (0, _flattenChildren.default)(childArray);\n    }\n  } // Resolve default props\n\n\n  if (type && type.defaultProps) {\n    var defaultProps = type.defaultProps;\n\n    for (propName in defaultProps) {\n      if (props[propName] === undefined) {\n        props[propName] = defaultProps[propName];\n      }\n    }\n  }\n\n  if (props.style && (Array.isArray(props.style) || _typeof(props.style) === 'object')) {\n    props.style = flattenStyle(props.style);\n  }\n\n  return new Element(type, key, ref, props, _host.default.component);\n}\n\nfunction createFactory(type) {\n  var factory = createElement.bind(null, type); // Expose the type on the factory and the prototype so that it can be\n  // easily accessed on elements. E.g. `<Foo />.type === Foo`.\n  // This should not be named `constructor` since this may not be the function\n  // that created the element, and it may not even be a constructor.\n\n  factory.type = type;\n  return factory;\n}\n\nfunction cloneElement(element, config) {\n  if (!isValidElement(element)) {\n    throw Error('cloneElement: not a valid element.' + getRenderErrorInfo());\n  } // Original props are copied\n\n\n  var props = Object.assign({}, element.props); // Reserved names are extracted\n\n  var key = element.key;\n  var ref = element.ref; // Owner will be preserved, unless ref is overridden\n\n  var owner = element._owner;\n\n  if (config) {\n    // Should reset ref and owner if has a new ref\n    if (config.ref !== undefined) {\n      ref = config.ref;\n      owner = _host.default.component;\n    }\n\n    if (config.key !== undefined) {\n      key = String(config.key);\n    } // Resolve default props\n\n\n    var defaultProps;\n\n    if (element.type && element.type.defaultProps) {\n      defaultProps = element.type.defaultProps;\n    } // Remaining properties override existing props\n\n\n    var propName;\n\n    for (propName in config) {\n      if (config.hasOwnProperty(propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        if (config[propName] === undefined && defaultProps !== undefined) {\n          // Resolve default props\n          props[propName] = defaultProps[propName];\n        } else {\n          props[propName] = config[propName];\n        }\n      }\n    }\n  }\n\n  for (var _len = arguments.length, children = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n    children[_key - 2] = arguments[_key];\n  }\n\n  if (children.length) {\n    props.children = (0, _flattenChildren.default)(children);\n  }\n\n  return new Element(element.type, key, ref, props, owner);\n}\n\n;\n\nfunction isValidElement(object) {\n  return _typeof(object) === 'object' && object !== null && object.type && object.props;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = unmountComponentAtNode;\n\nvar _instance = _interopRequireDefault(require(\"./vdom/instance\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction unmountComponentAtNode(node) {\n  var component = _instance.default.get(node);\n\n  if (!component) {\n    return false;\n  }\n\n  _instance.default.remove(node);\n\n  component._internal.unmountComponent();\n\n  return true;\n}\n\n;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction shouldUpdateComponent(prevElement, nextElement) {\n  // TODO: prevElement and nextElement could be array\n  var prevEmpty = prevElement === null;\n  var nextEmpty = nextElement === null;\n\n  if (prevEmpty || nextEmpty) {\n    return prevEmpty === nextEmpty;\n  }\n\n  var prevType = _typeof(prevElement);\n\n  var nextType = _typeof(nextElement);\n\n  if (prevType === 'string' || prevType === 'number') {\n    return nextType === 'string' || nextType === 'number';\n  } else {\n    return prevType === 'object' && nextType === 'object' && prevElement.type === nextElement.type && prevElement.key === nextElement.key;\n  }\n}\n\nvar _default = shouldUpdateComponent;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _inject = _interopRequireDefault(require(\"./inject\"));\n\nvar _instance = _interopRequireDefault(require(\"./vdom/instance\"));\n\nvar _host = _interopRequireDefault(require(\"./vdom/host\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction render(element, container, options, callback) {\n  // Compatible with `render(element, container, callback)`\n  if (typeof options === 'function') {\n    callback = options;\n    options = null;\n  }\n\n  options = options || {}; // Init inject\n\n  (0, _inject.default)(options);\n\n  var rootComponent = _instance.default.mount(element, container, options.parent);\n\n  var componentInstance = rootComponent.getPublicInstance();\n\n  if (callback) {\n    callback.call(componentInstance);\n  }\n\n  return componentInstance;\n}\n\nvar _default = render;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// https://github.com/WebReflection/url-search-params\nvar _Symbol = require('./symbol');\n\nvar find = /[!'\\(\\)~]|%20|%00/g;\nvar plus = /\\+/g;\nvar replace = {\n  '!': '%21',\n  \"'\": '%27',\n  '(': '%28',\n  ')': '%29',\n  '~': '%7E',\n  '%20': '+',\n  '%00': '\\x00'\n};\n\nvar replacer = function replacer(match) {\n  return replace[match];\n};\n\nvar secret = '__URLSearchParams__';\n\nfunction encode(str) {\n  return encodeURIComponent(str).replace(find, replacer);\n}\n\nfunction decode(str) {\n  return decodeURIComponent(str.replace(plus, ' '));\n}\n\nvar URLSearchParams =\n/*#__PURE__*/\nfunction () {\n  function URLSearchParams(query) {\n    _classCallCheck(this, URLSearchParams);\n\n    this[secret] = Object.create(null);\n    if (!query) return;\n\n    if (query.charAt(0) === '?') {\n      query = query.slice(1);\n    }\n\n    for (var index, value, pairs = (query || '').split('&'), i = 0, length = pairs.length; i < length; i++) {\n      value = pairs[i];\n      index = value.indexOf('=');\n\n      if (-1 < index) {\n        this.append(decode(value.slice(0, index)), decode(value.slice(index + 1)));\n      } else if (value.length) {\n        this.append(decode(value), '');\n      }\n    }\n  }\n\n  _createClass(URLSearchParams, [{\n    key: \"append\",\n    value: function append(name, value) {\n      var dict = this[secret];\n\n      if (name in dict) {\n        dict[name].push('' + value);\n      } else {\n        dict[name] = ['' + value];\n      }\n    }\n  }, {\n    key: \"delete\",\n    value: function _delete(name) {\n      delete this[secret][name];\n    }\n  }, {\n    key: \"get\",\n    value: function get(name) {\n      var dict = this[secret];\n      return name in dict ? dict[name][0] : null;\n    }\n  }, {\n    key: \"getAll\",\n    value: function getAll(name) {\n      var dict = this[secret];\n      return name in dict ? dict[name].slice(0) : [];\n    }\n  }, {\n    key: \"has\",\n    value: function has(name) {\n      return name in this[secret];\n    }\n  }, {\n    key: \"set\",\n    value: function set(name, value) {\n      this[secret][name] = ['' + value];\n    }\n  }, {\n    key: \"forEach\",\n    value: function forEach(callback, thisArg) {\n      var dict = this[secret];\n      Object.getOwnPropertyNames(dict).forEach(function (name) {\n        dict[name].forEach(function (value) {\n          callback.call(thisArg, value, name, this);\n        }, this);\n      }, this);\n    }\n  }, {\n    key: \"keys\",\n    value: function keys() {\n      var items = [];\n      this.forEach(function (value, name) {\n        items.push(name);\n      });\n      var iterator = {\n        next: function next() {\n          var value = items.shift();\n          return {\n            done: value === undefined,\n            value: value\n          };\n        }\n      };\n\n      iterator[_Symbol.iterator] = function () {\n        return iterator;\n      };\n\n      return iterator;\n    }\n  }, {\n    key: \"values\",\n    value: function values() {\n      var items = [];\n      this.forEach(function (value) {\n        items.push(value);\n      });\n      var iterator = {\n        next: function next() {\n          var value = items.shift();\n          return {\n            done: value === undefined,\n            value: value\n          };\n        }\n      };\n\n      iterator[_Symbol.iterator] = function () {\n        return iterator;\n      };\n\n      return iterator;\n    }\n  }, {\n    key: \"entries\",\n    value: function entries() {\n      var items = [];\n      this.forEach(function (value, name) {\n        items.push([name, value]);\n      });\n      var iterator = {\n        next: function next() {\n          var value = items.shift();\n          return {\n            done: value === undefined,\n            value: value\n          };\n        }\n      };\n\n      iterator[_Symbol.iterator] = function () {\n        return iterator;\n      };\n\n      return iterator;\n    }\n  }, {\n    key: \"toString\",\n    value: function toString() {\n      var dict = this[secret],\n          query = [],\n          i,\n          key,\n          name,\n          value;\n\n      for (key in dict) {\n        name = encode(key);\n\n        for (i = 0, value = dict[key]; i < value.length; i++) {\n          query.push(name + '=' + encode(value[i]));\n        }\n      }\n\n      return query.join('&');\n    }\n  }]);\n\n  return URLSearchParams;\n}();\n\nURLSearchParams.prototype[_Symbol.iterator] = URLSearchParams.prototype.entries;\nmodule.exports = URLSearchParams;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _instance = _interopRequireDefault(require(\"../vdom/instance\"));\n\nvar _host = _interopRequireDefault(require(\"../vdom/host\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = {\n  ComponentTree: {\n    getClosestInstanceFromNode: function getClosestInstanceFromNode(node) {\n      return _instance.default.get(node);\n    },\n    getNodeFromInstance: function getNodeFromInstance(inst) {\n      // inst is an internal instance (but could be a composite)\n      while (inst._renderedComponent) {\n        inst = inst._renderedComponent;\n      }\n\n      if (inst) {\n        return inst._nativeNode;\n      } else {\n        return null;\n      }\n    }\n  },\n  Mount: {\n    _instancesByReactRootID: _host.default.rootComponents,\n    // Stub - React DevTools expects to find this method and replace it\n    // with a wrapper in order to observe new root components being added\n    _renderNewRootComponent: function _renderNewRootComponent() {}\n  },\n  Reconciler: {\n    // Stubs - React DevTools expects to find these methods and replace them\n    // with wrappers in order to observe components being mounted, updated and\n    // unmounted\n    mountComponent: function mountComponent() {},\n    receiveComponent: function receiveComponent() {},\n    unmountComponent: function unmountComponent() {}\n  },\n  // monitor the info of all components\n  monitor: null\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = flattenChildren;\n\nfunction traverseChildren(children, result) {\n  if (Array.isArray(children)) {\n    for (var i = 0, l = children.length; i < l; i++) {\n      traverseChildren(children[i], result);\n    }\n  } else {\n    result.push(children);\n  }\n}\n\nfunction flattenChildren(children) {\n  if (children == null) {\n    return children;\n  }\n\n  var result = [];\n  traverseChildren(children, result);\n\n  if (result.length === 1) {\n    result = result[0];\n  }\n\n  return result;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.isReactNative = exports.isWeex = exports.isNode = exports.isWeb = void 0;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n// https://www.w3.org/TR/html5/webappapis.html#dom-navigator-appcodename\nvar isWeb = (typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) === 'object' && (navigator.appCodeName === 'Mozilla' || navigator.product === 'Gecko');\nexports.isWeb = isWeb;\nvar isNode = typeof process !== 'undefined' && !!(process.versions && process.versions.node);\nexports.isNode = isNode;\nvar isWeex = typeof callNative === 'function' || (typeof WXEnvironment === \"undefined\" ? \"undefined\" : _typeof(WXEnvironment)) === 'object' && WXEnvironment.platform !== 'Web';\nexports.isWeex = isWeex;\nvar isReactNative = typeof __fbBatchedBridgeConfig !== 'undefined';\nexports.isReactNative = isReactNative;\nexports[\"default\"] = module.exports;\nvar _default = module.exports;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\n/*\n * Current PropTypes only export some api with react, not validate in runtime.\n */\nfunction createChainableTypeChecker(validate) {\n  function checkType(isRequired, props, propName, componentName, location, propFullName) {\n    return typeChecker;\n  }\n\n  var chainedCheckType = checkType.bind(null, false);\n  chainedCheckType.isRequired = checkType.bind(null, true);\n  return chainedCheckType;\n}\n\nfunction createTypeChecker(expectedType) {\n  function validate(props, propName, componentName, location, propFullName) {// Noop\n  }\n\n  return createChainableTypeChecker(validate);\n}\n\nvar typeChecker = createTypeChecker();\nvar _default = {\n  array: typeChecker,\n  bool: typeChecker,\n  func: typeChecker,\n  number: typeChecker,\n  object: typeChecker,\n  string: typeChecker,\n  symbol: typeChecker,\n  element: typeChecker,\n  node: typeChecker,\n  any: typeChecker,\n  arrayOf: typeChecker,\n  instanceOf: typeChecker,\n  objectOf: typeChecker,\n  oneOf: typeChecker,\n  oneOfType: typeChecker,\n  shape: typeChecker\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _host = _interopRequireDefault(require(\"./host\"));\n\nvar _ref = _interopRequireDefault(require(\"./ref\"));\n\nvar _instantiateComponent = _interopRequireDefault(require(\"./instantiateComponent\"));\n\nvar _shouldUpdateComponent = _interopRequireDefault(require(\"./shouldUpdateComponent\"));\n\nvar _getElementKeyName = _interopRequireDefault(require(\"./getElementKeyName\"));\n\nvar _instance = _interopRequireDefault(require(\"./instance\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar STYLE = 'style';\nvar CHILDREN = 'children';\nvar TREE = 'tree';\nvar EVENT_PREFIX_REGEXP = /^on[A-Z]/;\n/**\n * Native Component\n */\n\nvar NativeComponent =\n/*#__PURE__*/\nfunction () {\n  function NativeComponent(element) {\n    _classCallCheck(this, NativeComponent);\n\n    this._currentElement = element;\n  }\n\n  _createClass(NativeComponent, [{\n    key: \"mountComponent\",\n    value: function mountComponent(parent, parentInstance, context, childMounter) {\n      // Parent native element\n      this._parent = parent;\n      this._parentInstance = parentInstance;\n      this._context = context;\n      this._mountID = _host.default.mountID++;\n      var props = this._currentElement.props;\n      var type = this._currentElement.type;\n      var instance = {\n        _internal: this,\n        type: type,\n        props: props\n      };\n      var appendType = props.append; // Default is node\n\n      this._instance = instance; // Clone a copy for style diff\n\n      this._prevStyleCopy = Object.assign({}, props.style);\n      var nativeNode = this.getNativeNode();\n\n      if (appendType !== TREE) {\n        if (childMounter) {\n          childMounter(nativeNode, parent);\n        } else {\n          _host.default.driver.appendChild(nativeNode, parent);\n        }\n      }\n\n      if (this._currentElement && this._currentElement.ref) {\n        _ref.default.attach(this._currentElement._owner, this._currentElement.ref, this);\n      } // Process children\n\n\n      var children = props.children;\n\n      if (children != null) {\n        this.mountChildren(children, context);\n      }\n\n      if (appendType === TREE) {\n        if (childMounter) {\n          childMounter(nativeNode, parent);\n        } else {\n          _host.default.driver.appendChild(nativeNode, parent);\n        }\n      }\n\n      _host.default.hook.Reconciler.mountComponent(this);\n\n      return instance;\n    }\n  }, {\n    key: \"mountChildren\",\n    value: function mountChildren(children, context) {\n      var _this = this;\n\n      if (!Array.isArray(children)) {\n        children = [children];\n      }\n\n      var renderedChildren = this._renderedChildren = {};\n      var renderedChildrenImage = children.map(function (element, index) {\n        var renderedChild = (0, _instantiateComponent.default)(element);\n        var name = (0, _getElementKeyName.default)(renderedChildren, element, index);\n        renderedChildren[name] = renderedChild;\n        renderedChild._mountIndex = index; // Mount\n\n        var mountImage = renderedChild.mountComponent(_this.getNativeNode(), _this._instance, context, null);\n        return mountImage;\n      });\n      return renderedChildrenImage;\n    }\n  }, {\n    key: \"unmountChildren\",\n    value: function unmountChildren(notRemoveChild) {\n      var renderedChildren = this._renderedChildren;\n\n      if (renderedChildren) {\n        for (var name in renderedChildren) {\n          var renderedChild = renderedChildren[name];\n          renderedChild.unmountComponent(notRemoveChild);\n        }\n\n        this._renderedChildren = null;\n      }\n    }\n  }, {\n    key: \"unmountComponent\",\n    value: function unmountComponent(notRemoveChild) {\n      if (this._nativeNode) {\n        var ref = this._currentElement.ref;\n\n        if (ref) {\n          _ref.default.detach(this._currentElement._owner, ref, this);\n        }\n\n        _instance.default.remove(this._nativeNode);\n\n        if (!notRemoveChild) {\n          _host.default.driver.removeChild(this._nativeNode, this._parent);\n        }\n\n        _host.default.driver.removeAllEventListeners(this._nativeNode);\n      }\n\n      this.unmountChildren(notRemoveChild);\n\n      _host.default.hook.Reconciler.unmountComponent(this);\n\n      this._currentElement = null;\n      this._nativeNode = null;\n      this._parent = null;\n      this._parentInstance = null;\n      this._context = null;\n      this._instance = null;\n      this._prevStyleCopy = null;\n    }\n  }, {\n    key: \"updateComponent\",\n    value: function updateComponent(prevElement, nextElement, prevContext, nextContext) {\n      // Replace current element\n      this._currentElement = nextElement;\n\n      _ref.default.update(prevElement, nextElement, this);\n\n      var prevProps = prevElement.props;\n      var nextProps = nextElement.props;\n      this.updateProperties(prevProps, nextProps);\n      this.updateChildren(nextProps.children, nextContext);\n\n      _host.default.hook.Reconciler.receiveComponent(this);\n    }\n  }, {\n    key: \"updateProperties\",\n    value: function updateProperties(prevProps, nextProps) {\n      var propKey;\n      var styleName;\n      var styleUpdates;\n\n      for (propKey in prevProps) {\n        if (propKey === CHILDREN || nextProps.hasOwnProperty(propKey) || !prevProps.hasOwnProperty(propKey) || prevProps[propKey] == null) {\n          continue;\n        }\n\n        if (propKey === STYLE) {\n          var lastStyle = this._prevStyleCopy;\n\n          for (styleName in lastStyle) {\n            if (lastStyle.hasOwnProperty(styleName)) {\n              styleUpdates = styleUpdates || {};\n              styleUpdates[styleName] = '';\n            }\n          }\n\n          this._prevStyleCopy = null;\n        } else if (EVENT_PREFIX_REGEXP.test(propKey)) {\n          if (typeof prevProps[propKey] === 'function') {\n            _host.default.driver.removeEventListener(this.getNativeNode(), propKey.slice(2).toLowerCase(), prevProps[propKey]);\n          }\n        } else {\n          _host.default.driver.removeAttribute(this.getNativeNode(), propKey, prevProps[propKey]);\n        }\n      }\n\n      for (propKey in nextProps) {\n        var nextProp = nextProps[propKey];\n        var prevProp = propKey === STYLE ? this._prevStyleCopy : prevProps != null ? prevProps[propKey] : undefined;\n\n        if (propKey === CHILDREN || !nextProps.hasOwnProperty(propKey) || nextProp === prevProp || nextProp == null && prevProp == null) {\n          continue;\n        } // Update style\n\n\n        if (propKey === STYLE) {\n          if (nextProp) {\n            // Clone property\n            nextProp = this._prevStyleCopy = Object.assign({}, nextProp);\n          } else {\n            this._prevStyleCopy = null;\n          }\n\n          if (prevProp != null) {\n            // Unset styles on `prevProp` but not on `nextProp`.\n            for (styleName in prevProp) {\n              if (prevProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) {\n                styleUpdates = styleUpdates || {};\n                styleUpdates[styleName] = '';\n              }\n            } // Update styles that changed since `prevProp`.\n\n\n            for (styleName in nextProp) {\n              if (nextProp.hasOwnProperty(styleName) && prevProp[styleName] !== nextProp[styleName]) {\n                styleUpdates = styleUpdates || {};\n                styleUpdates[styleName] = nextProp[styleName];\n              }\n            }\n          } else {\n            // Assign next prop when prev style is null\n            styleUpdates = nextProp;\n          }\n        } else if (EVENT_PREFIX_REGEXP.test(propKey)) {\n          // Update event binding\n          var eventName = propKey.slice(2).toLowerCase();\n\n          if (typeof prevProp === 'function') {\n            _host.default.driver.removeEventListener(this.getNativeNode(), eventName, prevProp, nextProps);\n          }\n\n          if (typeof nextProp === 'function') {\n            _host.default.driver.addEventListener(this.getNativeNode(), eventName, nextProp, nextProps);\n          }\n        } else {\n          // Update other property\n          var payload = {};\n          payload[propKey] = nextProp;\n\n          if (nextProp != null) {\n            _host.default.driver.setAttribute(this.getNativeNode(), propKey, nextProp);\n          } else {\n            _host.default.driver.removeAttribute(this.getNativeNode(), propKey, prevProps[propKey]);\n          }\n\n          if (process.env.NODE_ENV !== 'production') {\n            _host.default.measurer && _host.default.measurer.recordOperation({\n              instanceID: this._mountID,\n              type: 'update attribute',\n              payload: payload\n            });\n          }\n        }\n      }\n\n      if (styleUpdates) {\n        if (process.env.NODE_ENV !== 'production') {\n          _host.default.measurer && _host.default.measurer.recordOperation({\n            instanceID: this._mountID,\n            type: 'update style',\n            payload: styleUpdates\n          });\n        }\n\n        _host.default.driver.setStyles(this.getNativeNode(), styleUpdates);\n      }\n    }\n  }, {\n    key: \"updateChildren\",\n    value: function updateChildren(nextChildrenElements, context) {\n      var _this2 = this;\n\n      // prev rendered children\n      var prevChildren = this._renderedChildren;\n\n      if (nextChildrenElements == null && prevChildren == null) {\n        return;\n      }\n\n      var nextChildren = {};\n      var oldNodes = {};\n\n      if (nextChildrenElements != null) {\n        if (!Array.isArray(nextChildrenElements)) {\n          nextChildrenElements = [nextChildrenElements];\n        } // Update next children elements\n\n\n        for (var index = 0, length = nextChildrenElements.length; index < length; index++) {\n          var nextElement = nextChildrenElements[index];\n          var name = (0, _getElementKeyName.default)(nextChildren, nextElement, index);\n          var prevChild = prevChildren && prevChildren[name];\n          var prevElement = prevChild && prevChild._currentElement;\n\n          if (prevChild != null && (0, _shouldUpdateComponent.default)(prevElement, nextElement)) {\n            // Pass the same context when updating chidren\n            prevChild.updateComponent(prevElement, nextElement, context, context);\n            nextChildren[name] = prevChild;\n          } else {\n            // Unmount the prevChild when nextChild is different element type.\n            if (prevChild) {\n              var oldNativeNode = prevChild.getNativeNode(); // Delay remove child\n\n              prevChild.unmountComponent(true);\n              oldNodes[name] = oldNativeNode;\n            } // The child must be instantiated before it's mounted.\n\n\n            nextChildren[name] = (0, _instantiateComponent.default)(nextElement);\n          }\n        }\n      }\n\n      var firstPrevChild;\n      var delayRemoveFirstPrevChild; // Unmount children that are no longer present.\n\n      if (prevChildren != null) {\n        for (var _name in prevChildren) {\n          if (!prevChildren.hasOwnProperty(_name)) {\n            continue;\n          }\n\n          var _prevChild = prevChildren[_name];\n          var shouldRemove = !nextChildren[_name]; // Store old first child ref for append node ahead and maybe delay remove it\n\n          if (!firstPrevChild) {\n            firstPrevChild = _prevChild;\n            delayRemoveFirstPrevChild = shouldRemove;\n          } else if (shouldRemove) {\n            _prevChild.unmountComponent();\n          }\n        }\n      }\n\n      if (nextChildren != null) {\n        (function () {\n          // `nextIndex` will increment for each child in `nextChildren`, but\n          // `lastIndex` will be the last index visited in `prevChildren`.\n          var lastIndex = 0;\n          var nextIndex = 0;\n          var lastPlacedNode = null;\n          var nextNativeNode = [];\n\n          var _loop = function _loop(_name2) {\n            if (!nextChildren.hasOwnProperty(_name2)) {\n              return \"continue\";\n            }\n\n            var nextChild = nextChildren[_name2];\n            var prevChild = prevChildren && prevChildren[_name2];\n\n            if (prevChild === nextChild) {\n              var prevChildNativeNode = prevChild.getNativeNode(); // Convert to array type\n\n              if (!Array.isArray(prevChildNativeNode)) {\n                prevChildNativeNode = [prevChildNativeNode];\n              } // If the index of `child` is less than `lastIndex`, then it needs to\n              // be moved. Otherwise, we do not need to move it because a child will be\n              // inserted or moved before `child`.\n\n\n              if (prevChild._mountIndex < lastIndex) {\n                // Get the last child\n                if (Array.isArray(lastPlacedNode)) {\n                  lastPlacedNode = lastPlacedNode[lastPlacedNode.length - 1];\n                }\n\n                for (var _i = prevChildNativeNode.length - 1; _i >= 0; _i--) {\n                  _host.default.driver.insertAfter(prevChildNativeNode[_i], lastPlacedNode);\n                }\n              }\n\n              nextNativeNode = nextNativeNode.concat(prevChildNativeNode);\n              lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n              prevChild._mountIndex = nextIndex;\n            } else {\n              if (prevChild != null) {\n                // Update `lastIndex` before `_mountIndex` gets unset by unmounting.\n                lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n              }\n\n              var parent = _this2.getNativeNode(); // Fragment extended native component, so if parent is fragment should get this._parent\n\n\n              if (Array.isArray(parent)) {\n                parent = _this2._parent;\n              }\n\n              nextChild.mountComponent(parent, _this2._instance, context, function (newChild, parent) {\n                // TODO: Rework the duplicate code\n                var oldChild = oldNodes[_name2];\n\n                if (!Array.isArray(newChild)) {\n                  newChild = [newChild];\n                }\n\n                if (oldChild) {\n                  // The oldChild or newChild all maybe fragment\n                  if (!Array.isArray(oldChild)) {\n                    oldChild = [oldChild];\n                  } // If newChild count large then oldChild\n\n\n                  var lastNewChild;\n\n                  for (var _i2 = 0; _i2 < newChild.length; _i2++) {\n                    var child = newChild[_i2];\n\n                    if (oldChild[_i2]) {\n                      _host.default.driver.replaceChild(child, oldChild[_i2]);\n                    } else {\n                      _host.default.driver.insertAfter(child, lastNewChild);\n                    }\n\n                    lastNewChild = child;\n                  } // If newChild count less then oldChild\n\n\n                  if (newChild.length < oldChild.length) {\n                    for (var _i3 = newChild.length; _i3 < oldChild.length; _i3++) {\n                      _host.default.driver.removeChild(oldChild[_i3]);\n                    }\n                  }\n                } else {\n                  // Insert child at a specific index\n                  // Get the last child\n                  if (Array.isArray(lastPlacedNode)) {\n                    lastPlacedNode = lastPlacedNode[lastPlacedNode.length - 1];\n                  }\n\n                  var prevFirstNativeNode;\n\n                  if (firstPrevChild && !lastPlacedNode) {\n                    prevFirstNativeNode = firstPrevChild.getNativeNode();\n\n                    if (Array.isArray(prevFirstNativeNode)) {\n                      prevFirstNativeNode = prevFirstNativeNode[0];\n                    }\n                  }\n\n                  for (var _i4 = newChild.length - 1; _i4 >= 0; _i4--) {\n                    var _child = newChild[_i4];\n\n                    if (lastPlacedNode) {\n                      _host.default.driver.insertAfter(_child, lastPlacedNode);\n                    } else if (prevFirstNativeNode) {\n                      _host.default.driver.insertBefore(_child, prevFirstNativeNode);\n                    } else {\n                      _host.default.driver.appendChild(_child, parent);\n                    }\n                  }\n                }\n\n                nextNativeNode = nextNativeNode.concat(newChild);\n              });\n              nextChild._mountIndex = nextIndex;\n            }\n\n            nextIndex++;\n            lastPlacedNode = nextChild.getNativeNode();\n          };\n\n          for (var _name2 in nextChildren) {\n            var _ret = _loop(_name2);\n\n            if (_ret === \"continue\") continue;\n          } // Sync update native refs\n\n\n          if (Array.isArray(_this2._nativeNode)) {\n            // Clear all and push the new array\n            _this2._nativeNode.splice(0, _this2._nativeNode.length);\n\n            for (var i = 0; i < nextNativeNode.length; i++) {\n              _this2._nativeNode.push(nextNativeNode[i]);\n            }\n          }\n        })();\n      }\n\n      if (delayRemoveFirstPrevChild) {\n        firstPrevChild.unmountComponent();\n      }\n\n      this._renderedChildren = nextChildren;\n    }\n  }, {\n    key: \"getNativeNode\",\n    value: function getNativeNode() {\n      if (this._nativeNode == null) {\n        this._nativeNode = _host.default.driver.createElement(this._instance);\n\n        _instance.default.set(this._nativeNode, this._instance);\n      }\n\n      return this._nativeNode;\n    }\n  }, {\n    key: \"getPublicInstance\",\n    value: function getPublicInstance() {\n      return this.getNativeNode();\n    }\n  }, {\n    key: \"getName\",\n    value: function getName() {\n      return this._currentElement.type;\n    }\n  }]);\n\n  return NativeComponent;\n}();\n\nvar _default = NativeComponent;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\n/*\n * Ref manager\n */\nvar _default = {\n  update: function update(prevElement, nextElement, component) {\n    var prevRef = prevElement != null && prevElement.ref;\n    var nextRef = nextElement != null && nextElement.ref; // Update refs in owner component\n\n    if (prevRef !== nextRef) {\n      // Detach prev RenderedElement's ref\n      prevRef != null && this.detach(prevElement._owner, prevRef, component); // Attach next RenderedElement's ref\n\n      nextRef != null && this.attach(nextElement._owner, nextRef, component);\n    }\n  },\n  attach: function attach(ownerComponent, ref, component) {\n    if (!ownerComponent) {\n      throw new Error('You might be adding a ref to a component that was not created inside a component\\'s ' + '`render` method, or you have multiple copies of Rax loaded.');\n    }\n\n    var instance = component.getPublicInstance();\n\n    if (typeof ref === 'function') {\n      ref(instance);\n    } else {\n      ownerComponent._instance.refs[ref] = instance;\n    }\n  },\n  detach: function detach(ownerComponent, ref, component) {\n    if (typeof ref === 'function') {\n      // When the referenced component is unmounted and whenever the ref changes, the old ref will be called with null as an argument.\n      ref(null);\n    } else {\n      // Must match component and ref could detach the ref on owner when A's before ref is B's current ref\n      var instance = component.getPublicInstance();\n\n      if (ownerComponent._instance.refs[ref] === instance) {\n        delete ownerComponent._instance.refs[ref];\n      }\n    }\n  }\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _default = function _default(children, element, index) {\n  var elementKey = element && element.key;\n  var hasKey = typeof elementKey === 'string';\n  var defaultName = '.' + index.toString(36);\n\n  if (hasKey) {\n    var keyName = '$' + elementKey; // Child keys must be unique.\n\n    var keyUnique = children[keyName] === undefined; // Only the first child will be used when encountered two children with the same key\n\n    if (!keyUnique) console.warn(\"Encountered two children with the same key \\\"\".concat(elementKey, \"\\\".\"));\n    return keyUnique ? keyName : defaultName;\n  } else {\n    return defaultName;\n  }\n};\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.isRem = isRem;\nexports.calcRem = calcRem;\nexports.getRem = getRem;\nexports.setRem = setRem;\nexports.isUnitNumber = isUnitNumber;\nexports.convertUnit = convertUnit;\nexports.default = void 0;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\nvar UNITLESS_NUMBER_PROPS = {\n  animationIterationCount: true,\n  borderImageOutset: true,\n  borderImageSlice: true,\n  borderImageWidth: true,\n  boxFlex: true,\n  boxFlexGroup: true,\n  boxOrdinalGroup: true,\n  columnCount: true,\n  flex: true,\n  flexGrow: true,\n  flexPositive: true,\n  flexShrink: true,\n  flexNegative: true,\n  flexOrder: true,\n  gridRow: true,\n  gridColumn: true,\n  fontWeight: true,\n  lineClamp: true,\n  // We make lineHeight default is px that is diff with w3c spec\n  // lineHeight: true,\n  opacity: true,\n  order: true,\n  orphans: true,\n  tabSize: true,\n  widows: true,\n  zIndex: true,\n  zoom: true,\n  // Weex only\n  lines: true\n};\nvar IS_REM_REG = /\\d+(rem|rpx)/;\nvar REM_REG = /[-+]?\\d*\\.?\\d+(rem|rpx)/g;\nvar GLOBAL_REM_UNIT = '__global_rem_unit__';\nvar global = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === 'object' ? window : _typeof(global) === 'object' ? global : {}; // Default 1 rem to 1 px\n\nif (getRem() === undefined) {\n  setRem(1);\n}\n/**\n * Is string contains rem\n * note: rpx is an alias to rem\n * @param {String} str\n * @returns {Boolean}\n */\n\n\nfunction isRem(str) {\n  return IS_REM_REG.test(str);\n}\n/**\n * Calculate rem to pixels: '1.2rem' => 1.2 * rem\n * @param {String} str\n * @param {Number} rem\n * @returns {number}\n */\n\n\nfunction calcRem(str) {\n  var remUnit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getRem();\n  return str.replace(REM_REG, function (rem) {\n    return parseFloat(rem) * remUnit + 'px';\n  });\n}\n\nfunction getRem() {\n  return global[GLOBAL_REM_UNIT];\n}\n\nfunction setRem(rem) {\n  global[GLOBAL_REM_UNIT] = rem;\n}\n\nfunction isUnitNumber(val, prop) {\n  return typeof val === 'number' && !UNITLESS_NUMBER_PROPS[prop];\n}\n\nfunction convertUnit(val, prop) {\n  var remUnit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : getRem();\n\n  if (prop && isUnitNumber(val, prop)) {\n    return val * remUnit + 'px';\n  } else if (isRem(val)) {\n    return calcRem(val, remUnit);\n  }\n\n  return val;\n}\n\nexports[\"default\"] = module.exports;\nvar _default = module.exports;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.transformPropsAttrsToStyle = transformPropsAttrsToStyle;\nexports.renamePropsAttr = renamePropsAttr;\nexports.default = void 0;\n\n/**\n * transformPropAttrsToStyle\n *\n * @param {Object} props\n * @param {Array} attrs\n */\nfunction transformPropsAttrsToStyle(props, attrs) {\n  props.style = props.style || {};\n  attrs.forEach(function (attr) {\n    if (props[attr] && !props.style[attr]) {\n      props.style[attr] = props[attr];\n      delete props[attr];\n    }\n  });\n  return props;\n}\n\n;\n/**\n * renamePropsAttr\n *\n * @param {Object} props\n * @param {String} originalAttrName\n * @param {String} newAttrName\n */\n\nfunction renamePropsAttr(props, originalAttrName, newAttrName) {\n  if (props[originalAttrName] && !props[newAttrName]) {\n    props[newAttrName] = props[originalAttrName];\n    delete props[originalAttrName];\n  }\n\n  return props;\n}\n\nexports[\"default\"] = module.exports;\nvar _default = module.exports;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _host = _interopRequireDefault(require(\"./vdom/host\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction findDOMNode(instance) {\n  if (instance == null) {\n    return null;\n  } // If a native node, weex may not export ownerDocument property\n\n\n  if (instance.ownerDocument || instance.nodeType) {\n    return instance;\n  } // Native component\n\n\n  if (instance._nativeNode) {\n    return instance._nativeNode;\n  }\n\n  if (typeof instance == 'string') {\n    return _host.default.driver.getElementById(instance);\n  }\n\n  if (typeof instance.render !== 'function') {\n    throw new Error('findDOMNode: find by neither component nor DOM node.');\n  } // Composite component\n\n\n  var internal = instance._internal;\n\n  if (internal) {\n    while (!internal._nativeNode) {\n      internal = internal._renderedComponent; // If not mounted\n\n      if (internal == null) {\n        return null;\n      }\n    }\n\n    return internal._nativeNode;\n  } else {\n    throw new Error('findDOMNode: find on an unmounted component.');\n  }\n}\n\nvar _default = findDOMNode;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","const global = window;\n\nconst shared = require('runtime-shared');\n\n// ES\nrequire('./number');\nrequire('./object');\nrequire('./array');\n\nif (!global.Promise) {\n  global.Promise = shared.Promise;\n}\n\nif (!global.Symbol) {\n  global.Symbol = shared.Symbol;\n}\n\nif (!global.Map) {\n  global.Map = shared.Map;\n}\n\nif (!global.Set) {\n  global.Set = shared.Set;\n}\n\nif (!global.WeakMap) {\n  global.WeakMap = shared.WeakMap;\n}\n\nif (!global.WeakSet) {\n  global.WeakSet = shared.WeakSet;\n}\n\n// W3C\nrequire('whatwg-fetch');\nrequire('raf/polyfill');\n\nif (!global.FontFace) {\n  global.FontFace = shared.FontFace;\n}\n\nif (!global.matchMedia) {\n  global.matchMedia = shared.matchMedia;\n}\n\nif (!global.URL) {\n  global.URL = shared.URL;\n}\n\nif (!global.URLSearchParams) {\n  global.URLSearchParams = shared.URLSearchParams;\n}\n\nif (!document.fonts) {\n  document.fonts = {\n    add: function(fontFace) {\n      let fontFaceRule = `@font-face {\n        font-family: ${fontFace.family};\n        src: ${fontFace.source}\n      }`;\n\n      let styleElement = document.createElement('style');\n      styleElement.innerHTML = fontFaceRule;\n      document.head.appendChild(styleElement);\n    }\n  };\n}\n\n// ModuleJS\nrequire('./require');\n\n// Polyfills for weex\nrequire('./appear');\n\n// Default Builtin modules\nglobal.define('rax', function(req, exports, module) {\n  module.exports = require('rax');\n});\n","\"use strict\";\n\nmodule.exports = {\n  get Promise() {\n    return require('./promise');\n  },\n\n  get Symbol() {\n    return require('./symbol');\n  },\n\n  get Map() {\n    return require('./map');\n  },\n\n  get Set() {\n    return require('./set');\n  },\n\n  get WeakMap() {\n    return require('./weakmap');\n  },\n\n  get WeakSet() {\n    return require('./weakset');\n  },\n\n  get FontFace() {\n    return require('./fontface');\n  },\n\n  get URL() {\n    return require('./url');\n  },\n\n  get URLSearchParams() {\n    return require('./url-search-params');\n  },\n\n  get matchMedia() {\n    return require('./matchMedia');\n  }\n\n};","\"use strict\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint no-extend-native: \"off\" */\nfunction noop() {} // Use polyfill for setImmediate for performance gains\n\n\nvar asap = typeof setImmediate === 'function' && setImmediate || function (fn) {\n  if (typeof setTimeout === 'function') {\n    setTimeout(fn, 0);\n  } else {\n    fn();\n  }\n};\n\nvar onUnhandledRejection = function onUnhandledRejection(err) {\n  if (typeof console !== 'undefined' && console) {\n    console.log('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console\n  }\n}; // Polyfill for Function.prototype.bind\n\n\nfunction bind(fn, thisArg) {\n  return function () {\n    fn.apply(thisArg, arguments);\n  };\n}\n\nfunction Promise(fn) {\n  if (_typeof(this) !== 'object') throw new TypeError('Promises must be constructed via new');\n  if (typeof fn !== 'function') throw new TypeError('Promise resolver is not a function');\n  this._state = 0;\n  this._handled = false;\n  this._value = undefined;\n  this._deferreds = [];\n  doResolve(fn, this);\n}\n\nfunction handle(self, deferred) {\n  while (self._state === 3) {\n    self = self._value;\n  }\n\n  if (self._state === 0) {\n    self._deferreds.push(deferred);\n\n    return;\n  }\n\n  self._handled = true;\n  asap(function () {\n    var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n\n    if (cb === null) {\n      (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n      return;\n    }\n\n    var ret;\n\n    try {\n      ret = cb(self._value);\n    } catch (e) {\n      reject(deferred.promise, e);\n      return;\n    }\n\n    resolve(deferred.promise, ret);\n  });\n}\n\nfunction resolve(self, newValue) {\n  try {\n    // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n    if (newValue === self) throw new TypeError('A promise cannot be resolved with itself.');\n\n    if (newValue && (_typeof(newValue) === 'object' || typeof newValue === 'function')) {\n      var then = newValue.then;\n\n      if (newValue instanceof Promise) {\n        self._state = 3;\n        self._value = newValue;\n        finale(self);\n        return;\n      } else if (typeof then === 'function') {\n        doResolve(bind(then, newValue), self);\n        return;\n      }\n    }\n\n    self._state = 1;\n    self._value = newValue;\n    finale(self);\n  } catch (e) {\n    reject(self, e);\n  }\n}\n\nfunction reject(self, newValue) {\n  self._state = 2;\n  self._value = newValue;\n  finale(self);\n}\n\nfunction finale(self) {\n  if (self._state === 2 && self._deferreds.length === 0) {\n    asap(function () {\n      if (!self._handled) {\n        onUnhandledRejection(self._value);\n      }\n    });\n  }\n\n  for (var i = 0, len = self._deferreds.length; i < len; i++) {\n    handle(self, self._deferreds[i]);\n  }\n\n  self._deferreds = null;\n}\n\nfunction Handler(onFulfilled, onRejected, promise) {\n  this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n  this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n  this.promise = promise;\n}\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\n\n\nfunction doResolve(fn, self) {\n  var done = false;\n\n  try {\n    fn(function (value) {\n      if (done) return;\n      done = true;\n      resolve(self, value);\n    }, function (reason) {\n      if (done) return;\n      done = true;\n      reject(self, reason);\n    });\n  } catch (ex) {\n    if (done) return;\n    done = true;\n    reject(self, ex);\n  }\n}\n\nPromise.prototype.catch = function (onRejected) {\n  return this.then(null, onRejected);\n};\n\nPromise.prototype.then = function (onFulfilled, onRejected) {\n  var prom = new this.constructor(noop);\n  handle(this, new Handler(onFulfilled, onRejected, prom));\n  return prom;\n};\n\nPromise.all = function (arr) {\n  var args = Array.prototype.slice.call(arr);\n  return new Promise(function (resolve, reject) {\n    if (args.length === 0) return resolve([]);\n    var remaining = args.length;\n\n    function res(i, val) {\n      try {\n        if (val && (_typeof(val) === 'object' || typeof val === 'function')) {\n          var then = val.then;\n\n          if (typeof then === 'function') {\n            then.call(val, function (val) {\n              res(i, val);\n            }, reject);\n            return;\n          }\n        }\n\n        args[i] = val;\n\n        if (--remaining === 0) {\n          resolve(args);\n        }\n      } catch (ex) {\n        reject(ex);\n      }\n    }\n\n    for (var i = 0; i < args.length; i++) {\n      res(i, args[i]);\n    }\n  });\n};\n\nPromise.resolve = function (value) {\n  if (value && _typeof(value) === 'object' && value.constructor === Promise) {\n    return value;\n  }\n\n  return new Promise(function (resolve) {\n    resolve(value);\n  });\n};\n\nPromise.reject = function (value) {\n  return new Promise(function (resolve, reject) {\n    reject(value);\n  });\n};\n\nPromise.race = function (values) {\n  return new Promise(function (resolve, reject) {\n    for (var i = 0, len = values.length; i < len; i++) {\n      values[i].then(resolve, reject);\n    }\n  });\n};\n/**\n * Set the immediate function to execute callbacks\n * @param fn {function} Function to execute\n * @private\n */\n\n\nPromise._setImmediateFn = function _setImmediateFn(fn) {\n  asap = fn;\n};\n\nPromise._setUnhandledRejectionFn = function _setUnhandledRejectionFn(fn) {\n  onUnhandledRejection = fn;\n};\n\nmodule.exports = Promise;","\"use strict\";\n\n/* eslint no-extend-native: \"off\" */\nvar _Symbol = require('./symbol'); // Deleted map items mess with iterator pointers, so rather than removing them mark them as deleted. Can't use undefined or null since those both valid keys so use a private symbol.\n\n\nvar undefMarker = _Symbol('undef'); // NaN cannot be found in an array using indexOf, so we encode NaNs using a private symbol.\n\n\nvar NaNMarker = _Symbol('NaN');\n\nvar ACCESSOR_SUPPORT = true;\n\nfunction encodeKey(key) {\n  // Number.isNaN not extist in iOS 8.x\n  return key !== key ? NaNMarker : key;\n}\n\nfunction decodeKey(encodedKey) {\n  return encodedKey === NaNMarker ? NaN : encodedKey;\n}\n\nfunction makeIterator(mapInst, getter) {\n  var nextIdx = 0;\n  var done = false;\n  return {\n    next: function next() {\n      if (nextIdx === mapInst._keys.length) done = true;\n\n      if (!done) {\n        while (mapInst._keys[nextIdx] === undefMarker) {\n          nextIdx++;\n        }\n\n        return {\n          value: getter.call(mapInst, nextIdx++),\n          done: false\n        };\n      } else {\n        return {\n          value: void 0,\n          done: true\n        };\n      }\n    }\n  };\n}\n\nfunction calcSize(mapInst) {\n  var size = 0;\n\n  for (var i = 0, s = mapInst._keys.length; i < s; i++) {\n    if (mapInst._keys[i] !== undefMarker) size++;\n  }\n\n  return size;\n}\n\nfunction hasProtoMethod(instance, method) {\n  return typeof instance[method] === 'function';\n}\n\nvar Map = function Map(data) {\n  this._keys = [];\n  this._values = []; // If `data` is iterable (indicated by presence of a forEach method), pre-populate the map\n\n  if (data && hasProtoMethod(data, 'forEach')) {\n    // Fastpath: If `data` is a Map, shortcircuit all following the checks\n    if (data instanceof Map || // If `data` is not an instance of Map, it could be because you have a Map from an iframe or a worker or something.\n    // Check if  `data` has all the `Map` methods and if so, assume data is another Map\n    hasProtoMethod(data, 'clear') && hasProtoMethod(data, 'delete') && hasProtoMethod(data, 'entries') && hasProtoMethod(data, 'forEach') && hasProtoMethod(data, 'get') && hasProtoMethod(data, 'has') && hasProtoMethod(data, 'keys') && hasProtoMethod(data, 'set') && hasProtoMethod(data, 'values')) {\n      data.forEach(function (value, key) {\n        this.set.apply(this, [key, value]);\n      }, this);\n    } else {\n      data.forEach(function (item) {\n        this.set.apply(this, item);\n      }, this);\n    }\n  }\n\n  if (!ACCESSOR_SUPPORT) this.size = calcSize(this);\n};\n\nMap.prototype = {}; // Some old engines do not support ES5 getters/setters.  Since Map only requires these for the size property, we can fall back to setting the size property statically each time the size of the map changes.\n\ntry {\n  Object.defineProperty(Map.prototype, 'size', {\n    get: function get() {\n      return calcSize(this);\n    }\n  });\n} catch (e) {\n  ACCESSOR_SUPPORT = false;\n}\n\nMap.prototype.get = function (key) {\n  var idx = this._keys.indexOf(encodeKey(key));\n\n  return idx !== -1 ? this._values[idx] : undefined;\n};\n\nMap.prototype.set = function (key, value) {\n  var idx = this._keys.indexOf(encodeKey(key));\n\n  if (idx !== -1) {\n    this._values[idx] = value;\n  } else {\n    this._keys.push(encodeKey(key));\n\n    this._values.push(value);\n\n    if (!ACCESSOR_SUPPORT) this.size = calcSize(this);\n  }\n\n  return this;\n};\n\nMap.prototype.has = function (key) {\n  return this._keys.indexOf(encodeKey(key)) !== -1;\n};\n\nMap.prototype.delete = function (key) {\n  var idx = this._keys.indexOf(encodeKey(key));\n\n  if (idx === -1) return false;\n  this._keys[idx] = undefMarker;\n  this._values[idx] = undefMarker;\n  if (!ACCESSOR_SUPPORT) this.size = calcSize(this);\n  return true;\n};\n\nMap.prototype.clear = function () {\n  this._keys = this._values = [];\n  if (!ACCESSOR_SUPPORT) this.size = 0;\n};\n\nMap.prototype.values = function () {\n  return makeIterator(this, function (i) {\n    return this._values[i];\n  });\n};\n\nMap.prototype.keys = function () {\n  return makeIterator(this, function (i) {\n    return decodeKey(this._keys[i]);\n  });\n};\n\nMap.prototype.entries = Map.prototype[_Symbol.iterator] = function () {\n  return makeIterator(this, function (i) {\n    return [decodeKey(this._keys[i]), this._values[i]];\n  });\n};\n\nMap.prototype.forEach = function (callbackFn, thisArg) {\n  thisArg = thisArg || global;\n  var iterator = this.entries();\n  var result = iterator.next();\n\n  while (result.done === false) {\n    callbackFn.call(thisArg, result.value[1], result.value[0], this);\n    result = iterator.next();\n  }\n};\n\nMap.prototype[_Symbol.species] = Map;\nObject.defineProperty(Map, 'constructor', {\n  value: Map\n});\n\ntry {\n  Object.defineProperty(Map, 'length', {\n    value: 0\n  });\n} catch (e) {}\n\nmodule.exports = Map;","\"use strict\";\n\n/* eslint no-extend-native: \"off\" */\nvar _Symbol = require('./symbol'); // Deleted map items mess with iterator pointers, so rather than removing them mark them as deleted. Can't use undefined or null since those both valid keys so use a private symbol.\n\n\nvar undefMarker = _Symbol('undef'); // NaN cannot be found in an array using indexOf, so we encode NaNs using a private symbol.\n\n\nvar NaNMarker = _Symbol('NaN');\n\nvar ACCESSOR_SUPPORT = true;\n\nfunction encodeVal(data) {\n  // Number.isNaN not extist in iOS 8.x\n  return data !== data ? NaNMarker : data;\n}\n\nfunction decodeVal(encodedData) {\n  return encodedData === NaNMarker ? NaN : encodedData;\n}\n\nfunction makeIterator(setInst, getter) {\n  var nextIdx = 0;\n  return {\n    next: function next() {\n      while (setInst._values[nextIdx] === undefMarker) {\n        nextIdx++;\n      }\n\n      if (nextIdx === setInst._values.length) {\n        return {\n          value: void 0,\n          done: true\n        };\n      } else {\n        return {\n          value: getter.call(setInst, nextIdx++),\n          done: false\n        };\n      }\n    }\n  };\n}\n\nfunction calcSize(setInst) {\n  var size = 0;\n\n  for (var i = 0, s = setInst._values.length; i < s; i++) {\n    if (setInst._values[i] !== undefMarker) size++;\n  }\n\n  return size;\n}\n\nvar Set = function Set(data) {\n  this._values = []; // If `data` is iterable (indicated by presence of a forEach method), pre-populate the set\n\n  data && typeof data.forEach === 'function' && data.forEach(function (item) {\n    this.add.call(this, item);\n  }, this);\n  if (!ACCESSOR_SUPPORT) this.size = calcSize(this);\n}; // Some old engines do not support ES5 getters/setters.  Since Set only requires these for the size property, we can fall back to setting the size property statically each time the size of the set changes.\n\n\ntry {\n  Object.defineProperty(Set.prototype, 'size', {\n    get: function get() {\n      return calcSize(this);\n    }\n  });\n} catch (e) {\n  ACCESSOR_SUPPORT = false;\n}\n\nSet.prototype.add = function (value) {\n  value = encodeVal(value);\n\n  if (this._values.indexOf(value) === -1) {\n    this._values.push(value);\n\n    if (!ACCESSOR_SUPPORT) this.size = calcSize(this);\n  }\n\n  return this;\n};\n\nSet.prototype.has = function (value) {\n  return this._values.indexOf(encodeVal(value)) !== -1;\n};\n\nSet.prototype.delete = function (value) {\n  var idx = this._values.indexOf(encodeVal(value));\n\n  if (idx === -1) return false;\n  this._values[idx] = undefMarker;\n  if (!ACCESSOR_SUPPORT) this.size = calcSize(this);\n  return true;\n};\n\nSet.prototype.clear = function () {\n  this._values = [];\n  if (!ACCESSOR_SUPPORT) this.size = 0;\n};\n\nSet.prototype.values = Set.prototype.keys = function () {\n  return makeIterator(this, function (i) {\n    return decodeVal(this._values[i]);\n  });\n};\n\nSet.prototype.entries = Set.prototype[_Symbol.iterator] = function () {\n  return makeIterator(this, function (i) {\n    return [decodeVal(this._values[i]), decodeVal(this._values[i])];\n  });\n};\n\nSet.prototype.forEach = function (callbackFn, thisArg) {\n  thisArg = thisArg || global;\n  var iterator = this.entries();\n  var result = iterator.next();\n\n  while (result.done === false) {\n    callbackFn.call(thisArg, result.value[1], result.value[0], this);\n    result = iterator.next();\n  }\n};\n\nSet.prototype[_Symbol.species] = Set;\nObject.defineProperty(Set, 'constructor', {\n  value: Set\n});\n\ntry {\n  Object.defineProperty(Set, 'length', {\n    value: 0\n  });\n} catch (e) {}\n\nmodule.exports = Set;","\"use strict\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint no-extend-native: \"off\" */\nvar defineProperty = Object.defineProperty;\nvar counter = Date.now() % 1e9;\n\nvar WeakMap = function WeakMap(data) {\n  this.name = '__st' + (Math.random() * 1e9 >>> 0) + (counter++ + '__'); // If data is iterable (indicated by presence of a forEach method), pre-populate the map\n\n  data && data.forEach && data.forEach(function (item) {\n    this.set.apply(this, item);\n  }, this);\n};\n\nWeakMap.prototype.set = function (key, value) {\n  if (_typeof(key) !== 'object' && typeof key !== 'function') throw new TypeError('Invalid value used as weak map key');\n  var entry = key[this.name];\n  if (entry && entry[0] === key) entry[1] = value;else defineProperty(key, this.name, {\n    value: [key, value],\n    writable: true\n  });\n  return this;\n};\n\nWeakMap.prototype.get = function (key) {\n  var entry;\n  return (entry = key[this.name]) && entry[0] === key ? entry[1] : undefined;\n};\n\nWeakMap.prototype.delete = function (key) {\n  var entry = key[this.name];\n  if (!entry || entry[0] !== key) return false;\n  entry[0] = entry[1] = undefined;\n  return true;\n};\n\nWeakMap.prototype.has = function (key) {\n  var entry = key[this.name];\n  if (!entry) return false;\n  return entry[0] === key;\n};\n\nmodule.exports = WeakMap;","\"use strict\";\n\n/* eslint no-extend-native: \"off\" */\nvar counter = Date.now() % 1e9;\n\nvar WeakSet = function WeakSet(data) {\n  this.name = '__st' + (Math.random() * 1e9 >>> 0) + (counter++ + '__');\n  data && data.forEach && data.forEach(this.add, this);\n};\n\nWeakSet.prototype.add = function (obj) {\n  var name = this.name;\n  if (!obj[name]) Object.defineProperty(obj, name, {\n    value: true,\n    writable: true\n  });\n  return this;\n};\n\nWeakSet.prototype.delete = function (obj) {\n  if (!obj[this.name]) return false;\n  obj[this.name] = undefined;\n  return true;\n};\n\nWeakSet.prototype.has = function (obj) {\n  return !!obj[this.name];\n};\n\nmodule.exports = WeakSet;","\"use strict\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar FontFace = function FontFace(family, source) {\n  _classCallCheck(this, FontFace);\n\n  this.family = family;\n  this.source = source;\n};\n\nmodule.exports = FontFace;","\"use strict\";\n\n// https://github.com/Polymer/URL\nvar URLSearchParams = require('./url-search-params');\n\nvar relative = Object.create(null);\nrelative.ftp = 21;\nrelative.file = 0;\nrelative.gopher = 70;\nrelative.http = 80;\nrelative.https = 443;\nrelative.ws = 80;\nrelative.wss = 443;\nvar relativePathDotMapping = Object.create(null);\nrelativePathDotMapping['%2e'] = '.';\nrelativePathDotMapping['.%2e'] = '..';\nrelativePathDotMapping['%2e.'] = '..';\nrelativePathDotMapping['%2e%2e'] = '..';\n\nfunction isRelativeScheme(scheme) {\n  return relative[scheme] !== undefined;\n}\n\nfunction invalid() {\n  clear.call(this);\n  this._isInvalid = true;\n}\n\nfunction IDNAToASCII(h) {\n  if ('' == h) {\n    invalid.call(this);\n  } // XXX\n\n\n  return h.toLowerCase();\n}\n\nfunction percentEscape(c) {\n  var unicode = c.charCodeAt(0);\n\n  if (unicode > 0x20 && unicode < 0x7F && // \" # < > ? `\n  [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) == -1) {\n    return c;\n  }\n\n  return encodeURIComponent(c);\n}\n\nfunction percentEscapeQuery(c) {\n  // XXX This actually needs to encode c using encoding and then\n  // convert the bytes one-by-one.\n  var unicode = c.charCodeAt(0);\n\n  if (unicode > 0x20 && unicode < 0x7F && // \" # < > ` (do not escape '?')\n  [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) == -1) {\n    return c;\n  }\n\n  return encodeURIComponent(c);\n}\n\nvar EOF = undefined,\n    ALPHA = /[a-zA-Z]/,\n    ALPHANUMERIC = /[a-zA-Z0-9\\+\\-\\.]/;\n\nfunction parse(input, stateOverride, base) {\n  function err(message) {\n    errors.push(message);\n  }\n\n  var state = stateOverride || 'scheme start',\n      cursor = 0,\n      buffer = '',\n      seenAt = false,\n      seenBracket = false,\n      errors = [];\n\n  loop: while ((input[cursor - 1] != EOF || cursor == 0) && !this._isInvalid) {\n    var c = input[cursor];\n\n    switch (state) {\n      case 'scheme start':\n        if (c && ALPHA.test(c)) {\n          buffer += c.toLowerCase(); // ASCII-safe\n\n          state = 'scheme';\n        } else if (!stateOverride) {\n          buffer = '';\n          state = 'no scheme';\n          continue;\n        } else {\n          err('Invalid scheme.');\n          break loop;\n        }\n\n        break;\n\n      case 'scheme':\n        if (c && ALPHANUMERIC.test(c)) {\n          buffer += c.toLowerCase(); // ASCII-safe\n        } else if (':' == c) {\n          this._scheme = buffer;\n          buffer = '';\n\n          if (stateOverride) {\n            break loop;\n          }\n\n          if (isRelativeScheme(this._scheme)) {\n            this._isRelative = true;\n          }\n\n          if ('file' == this._scheme) {\n            state = 'relative';\n          } else if (this._isRelative && base && base._scheme == this._scheme) {\n            state = 'relative or authority';\n          } else if (this._isRelative) {\n            state = 'authority first slash';\n          } else {\n            state = 'scheme data';\n          }\n        } else if (!stateOverride) {\n          buffer = '';\n          cursor = 0;\n          state = 'no scheme';\n          continue;\n        } else if (EOF == c) {\n          break loop;\n        } else {\n          err('Code point not allowed in scheme: ' + c);\n          break loop;\n        }\n\n        break;\n\n      case 'scheme data':\n        if ('?' == c) {\n          state = 'query';\n        } else if ('#' == c) {\n          this._fragment = '#';\n          state = 'fragment';\n        } else {\n          // XXX error handling\n          if (EOF != c && '\\t' != c && '\\n' != c && '\\r' != c) {\n            this._schemeData += percentEscape(c);\n          }\n        }\n\n        break;\n\n      case 'no scheme':\n        if (!base || !isRelativeScheme(base._scheme)) {\n          err('Missing scheme.');\n          invalid.call(this);\n        } else {\n          state = 'relative';\n          continue;\n        }\n\n        break;\n\n      case 'relative or authority':\n        if ('/' == c && '/' == input[cursor + 1]) {\n          state = 'authority ignore slashes';\n        } else {\n          err('Expected /, got: ' + c);\n          state = 'relative';\n          continue;\n        }\n\n        break;\n\n      case 'relative':\n        this._isRelative = true;\n        if ('file' != this._scheme) this._scheme = base._scheme;\n\n        if (EOF == c) {\n          this._host = base._host;\n          this._port = base._port;\n          this._path = base._path.slice();\n          this._query = base._query;\n          this._username = base._username;\n          this._password = base._password;\n          break loop;\n        } else if ('/' == c || '\\\\' == c) {\n          if ('\\\\' == c) err('\\\\ is an invalid code point.');\n          state = 'relative slash';\n        } else if ('?' == c) {\n          this._host = base._host;\n          this._port = base._port;\n          this._path = base._path.slice();\n          this._query = '?';\n          this._username = base._username;\n          this._password = base._password;\n          state = 'query';\n        } else if ('#' == c) {\n          this._host = base._host;\n          this._port = base._port;\n          this._path = base._path.slice();\n          this._query = base._query;\n          this._fragment = '#';\n          this._username = base._username;\n          this._password = base._password;\n          state = 'fragment';\n        } else {\n          var nextC = input[cursor + 1];\n          var nextNextC = input[cursor + 2];\n\n          if ('file' != this._scheme || !ALPHA.test(c) || nextC != ':' && nextC != '|' || EOF != nextNextC && '/' != nextNextC && '\\\\' != nextNextC && '?' != nextNextC && '#' != nextNextC) {\n            this._host = base._host;\n            this._port = base._port;\n            this._username = base._username;\n            this._password = base._password;\n            this._path = base._path.slice();\n\n            this._path.pop();\n          }\n\n          state = 'relative path';\n          continue;\n        }\n\n        break;\n\n      case 'relative slash':\n        if ('/' == c || '\\\\' == c) {\n          if ('\\\\' == c) {\n            err('\\\\ is an invalid code point.');\n          }\n\n          if ('file' == this._scheme) {\n            state = 'file host';\n          } else {\n            state = 'authority ignore slashes';\n          }\n        } else {\n          if ('file' != this._scheme) {\n            this._host = base._host;\n            this._port = base._port;\n            this._username = base._username;\n            this._password = base._password;\n          }\n\n          state = 'relative path';\n          continue;\n        }\n\n        break;\n\n      case 'authority first slash':\n        if ('/' == c) {\n          state = 'authority second slash';\n        } else {\n          err(\"Expected '/', got: \" + c);\n          state = 'authority ignore slashes';\n          continue;\n        }\n\n        break;\n\n      case 'authority second slash':\n        state = 'authority ignore slashes';\n\n        if ('/' != c) {\n          err(\"Expected '/', got: \" + c);\n          continue;\n        }\n\n        break;\n\n      case 'authority ignore slashes':\n        if ('/' != c && '\\\\' != c) {\n          state = 'authority';\n          continue;\n        } else {\n          err('Expected authority, got: ' + c);\n        }\n\n        break;\n\n      case 'authority':\n        if ('@' == c) {\n          if (seenAt) {\n            err('@ already seen.');\n            buffer += '%40';\n          }\n\n          seenAt = true;\n\n          for (var i = 0; i < buffer.length; i++) {\n            var cp = buffer[i];\n\n            if ('\\t' == cp || '\\n' == cp || '\\r' == cp) {\n              err('Invalid whitespace in authority.');\n              continue;\n            } // XXX check URL code points\n\n\n            if (':' == cp && null === this._password) {\n              this._password = '';\n              continue;\n            }\n\n            var tempC = percentEscape(cp);\n            null !== this._password ? this._password += tempC : this._username += tempC;\n          }\n\n          buffer = '';\n        } else if (EOF == c || '/' == c || '\\\\' == c || '?' == c || '#' == c) {\n          cursor -= buffer.length;\n          buffer = '';\n          state = 'host';\n          continue;\n        } else {\n          buffer += c;\n        }\n\n        break;\n\n      case 'file host':\n        if (EOF == c || '/' == c || '\\\\' == c || '?' == c || '#' == c) {\n          if (buffer.length == 2 && ALPHA.test(buffer[0]) && (buffer[1] == ':' || buffer[1] == '|')) {\n            state = 'relative path';\n          } else if (buffer.length == 0) {\n            state = 'relative path start';\n          } else {\n            this._host = IDNAToASCII.call(this, buffer);\n            buffer = '';\n            state = 'relative path start';\n          }\n\n          continue;\n        } else if ('\\t' == c || '\\n' == c || '\\r' == c) {\n          err('Invalid whitespace in file host.');\n        } else {\n          buffer += c;\n        }\n\n        break;\n\n      case 'host':\n      case 'hostname':\n        if (':' == c && !seenBracket) {\n          // XXX host parsing\n          this._host = IDNAToASCII.call(this, buffer);\n          buffer = '';\n          state = 'port';\n\n          if ('hostname' == stateOverride) {\n            break loop;\n          }\n        } else if (EOF == c || '/' == c || '\\\\' == c || '?' == c || '#' == c) {\n          this._host = IDNAToASCII.call(this, buffer);\n          buffer = '';\n          state = 'relative path start';\n\n          if (stateOverride) {\n            break loop;\n          }\n\n          continue;\n        } else if ('\\t' != c && '\\n' != c && '\\r' != c) {\n          if ('[' == c) {\n            seenBracket = true;\n          } else if (']' == c) {\n            seenBracket = false;\n          }\n\n          buffer += c;\n        } else {\n          err('Invalid code point in host/hostname: ' + c);\n        }\n\n        break;\n\n      case 'port':\n        if (/[0-9]/.test(c)) {\n          buffer += c;\n        } else if (EOF == c || '/' == c || '\\\\' == c || '?' == c || '#' == c || stateOverride) {\n          if ('' != buffer) {\n            var temp = parseInt(buffer, 10);\n\n            if (temp != relative[this._scheme]) {\n              this._port = temp + '';\n            }\n\n            buffer = '';\n          }\n\n          if (stateOverride) {\n            break loop;\n          }\n\n          state = 'relative path start';\n          continue;\n        } else if ('\\t' == c || '\\n' == c || '\\r' == c) {\n          err('Invalid code point in port: ' + c);\n        } else {\n          invalid.call(this);\n        }\n\n        break;\n\n      case 'relative path start':\n        if ('\\\\' == c) err(\"'\\\\' not allowed in path.\");\n        state = 'relative path';\n\n        if ('/' != c && '\\\\' != c) {\n          continue;\n        }\n\n        break;\n\n      case 'relative path':\n        if (EOF == c || '/' == c || '\\\\' == c || !stateOverride && ('?' == c || '#' == c)) {\n          if ('\\\\' == c) {\n            err('\\\\ not allowed in relative path.');\n          }\n\n          var tmp;\n\n          if (tmp = relativePathDotMapping[buffer.toLowerCase()]) {\n            buffer = tmp;\n          }\n\n          if ('..' == buffer) {\n            this._path.pop();\n\n            if ('/' != c && '\\\\' != c) {\n              this._path.push('');\n            }\n          } else if ('.' == buffer && '/' != c && '\\\\' != c) {\n            this._path.push('');\n          } else if ('.' != buffer) {\n            if ('file' == this._scheme && this._path.length == 0 && buffer.length == 2 && ALPHA.test(buffer[0]) && buffer[1] == '|') {\n              buffer = buffer[0] + ':';\n            }\n\n            this._path.push(buffer);\n          }\n\n          buffer = '';\n\n          if ('?' == c) {\n            this._query = '?';\n            state = 'query';\n          } else if ('#' == c) {\n            this._fragment = '#';\n            state = 'fragment';\n          }\n        } else if ('\\t' != c && '\\n' != c && '\\r' != c) {\n          buffer += percentEscape(c);\n        }\n\n        break;\n\n      case 'query':\n        if (!stateOverride && '#' == c) {\n          this._fragment = '#';\n          state = 'fragment';\n        } else if (EOF != c && '\\t' != c && '\\n' != c && '\\r' != c) {\n          this._query += percentEscapeQuery(c);\n        }\n\n        break;\n\n      case 'fragment':\n        if (EOF != c && '\\t' != c && '\\n' != c && '\\r' != c) {\n          this._fragment += c;\n        }\n\n        break;\n    }\n\n    cursor++;\n  }\n}\n\nfunction clear() {\n  this._scheme = '';\n  this._schemeData = '';\n  this._username = '';\n  this._password = null;\n  this._host = '';\n  this._port = '';\n  this._path = [];\n  this._query = '';\n  this._fragment = '';\n  this._isInvalid = false;\n  this._isRelative = false;\n} // Does not process domain names or IP addresses.\n// Does not handle encoding for the query parameter.\n\n\nfunction URL(url, base\n/* , encoding */\n) {\n  if (base !== undefined && !(base instanceof URL)) base = new URL(String(base));\n  this._url = url;\n  clear.call(this);\n  var input = url.replace(/^[ \\t\\r\\n\\f]+|[ \\t\\r\\n\\f]+$/g, ''); // encoding = encoding || 'utf-8'\n\n  parse.call(this, input, null, base);\n}\n\nURL.prototype = {\n  toString: function toString() {\n    return this.href;\n  },\n\n  get href() {\n    if (this._isInvalid) return this._url;\n    var authority = '';\n\n    if ('' != this._username || null != this._password) {\n      authority = this._username + (null != this._password ? ':' + this._password : '') + '@';\n    }\n\n    return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment;\n  },\n\n  set href(href) {\n    clear.call(this);\n    parse.call(this, href);\n  },\n\n  get protocol() {\n    return this._scheme + ':';\n  },\n\n  set protocol(protocol) {\n    if (this._isInvalid) return;\n    parse.call(this, protocol + ':', 'scheme start');\n  },\n\n  get host() {\n    return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host;\n  },\n\n  set host(host) {\n    if (this._isInvalid || !this._isRelative) return;\n    parse.call(this, host, 'host');\n  },\n\n  get hostname() {\n    return this._host;\n  },\n\n  set hostname(hostname) {\n    if (this._isInvalid || !this._isRelative) return;\n    parse.call(this, hostname, 'hostname');\n  },\n\n  get port() {\n    return this._port;\n  },\n\n  set port(port) {\n    if (this._isInvalid || !this._isRelative) return;\n    parse.call(this, port, 'port');\n  },\n\n  get pathname() {\n    return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData;\n  },\n\n  set pathname(pathname) {\n    if (this._isInvalid || !this._isRelative) return;\n    this._path = [];\n    parse.call(this, pathname, 'relative path start');\n  },\n\n  get search() {\n    return this._isInvalid || !this._query || '?' == this._query ? '' : this._query;\n  },\n\n  set search(search) {\n    if (this._isInvalid || !this._isRelative) return;\n    this._query = '?';\n    if ('?' == search[0]) search = search.slice(1);\n    parse.call(this, search, 'query');\n  },\n\n  get searchParams() {\n    return new URLSearchParams(this.search);\n  },\n\n  get hash() {\n    return this._isInvalid || !this._fragment || '#' == this._fragment ? '' : this._fragment;\n  },\n\n  set hash(hash) {\n    if (this._isInvalid) return;\n    this._fragment = '#';\n    if ('#' == hash[0]) hash = hash.slice(1);\n    parse.call(this, hash, 'fragment');\n  },\n\n  get origin() {\n    var host;\n\n    if (this._isInvalid || !this._scheme) {\n      return '';\n    } // javascript: Gecko returns String(\"\"), WebKit/Blink String(\"null\")\n    // Gecko throws error for \"data://\"\n    // data: Gecko returns \"\", Blink returns \"data://\", WebKit returns \"null\"\n    // Gecko returns String(\"\") for file: mailto:\n    // WebKit/Blink returns String(\"SCHEME://\") for file: mailto:\n\n\n    switch (this._scheme) {\n      case 'data':\n      case 'file':\n      case 'javascript':\n      case 'mailto':\n        return 'null';\n    }\n\n    host = this.host;\n\n    if (!host) {\n      return '';\n    }\n\n    return this._scheme + '://' + host;\n  }\n\n};\nmodule.exports = URL;","\"use strict\";\n\n// https://github.com/ericf/css-mediaquery\nvar RE_MEDIA_QUERY = /^(?:(only|not)?\\s*([_a-z][_a-z0-9-]*)|(\\([^\\)]+\\)))(?:\\s*and\\s*(.*))?$/i,\n    RE_MQ_EXPRESSION = /^\\(\\s*([_a-z-][_a-z0-9-]*)\\s*(?:\\:\\s*([^\\)]+))?\\s*\\)$/,\n    RE_MQ_FEATURE = /^(?:(min|max)-)?(.+)/;\n\nfunction _matches(media, values) {\n  return _parseQuery(media).some(function (query) {\n    var inverse = query.inverse;\n    var typeMatch = query.type === 'all' || values.type === query.type;\n\n    if (typeMatch && inverse || !(typeMatch || inverse)) {\n      return false;\n    }\n\n    var expressionsMatch = query.expressions.every(function (expression) {\n      var feature = expression.feature,\n          modifier = expression.modifier,\n          expValue = expression.value,\n          value = values[feature];\n\n      if (!value) {\n        return false;\n      }\n\n      switch (feature) {\n        case 'width':\n        case 'height':\n          expValue = parseFloat(expValue);\n          value = parseFloat(value);\n          break;\n      }\n\n      switch (modifier) {\n        case 'min':\n          return value >= expValue;\n\n        case 'max':\n          return value <= expValue;\n\n        default:\n          return value === expValue;\n      }\n    });\n    return expressionsMatch && !inverse || !expressionsMatch && inverse;\n  });\n}\n\n;\n\nfunction _parseQuery(media) {\n  return media.split(',').map(function (query) {\n    query = query.trim();\n    var captures = query.match(RE_MEDIA_QUERY);\n\n    if (!captures) {\n      throw new SyntaxError(\"Invalid CSS media query: \\\"\".concat(query, \"\\\"\"));\n    }\n\n    var modifier = captures[1],\n        type = captures[2],\n        expressions = ((captures[3] || '') + (captures[4] || '')).trim(),\n        parsed = {};\n    parsed.inverse = !!modifier && modifier.toLowerCase() === 'not';\n    parsed.type = type ? type.toLowerCase() : 'all';\n\n    if (!expressions) {\n      parsed.expressions = [];\n      return parsed;\n    }\n\n    expressions = expressions.match(/\\([^\\)]+\\)/g);\n\n    if (!expressions) {\n      throw new SyntaxError(\"Invalid CSS media query: \\\"\".concat(query, \"\\\"\"));\n    }\n\n    parsed.expressions = expressions.map(function (expression) {\n      var captures = expression.match(RE_MQ_EXPRESSION);\n\n      if (!captures) {\n        throw new SyntaxError(\"Invalid CSS media query: \\\"\".concat(query, \"\\\"\"));\n      }\n\n      var feature = captures[1].toLowerCase().match(RE_MQ_FEATURE);\n      return {\n        modifier: feature[1],\n        feature: feature[2],\n        value: captures[2]\n      };\n    });\n    return parsed;\n  });\n}\n\n;\n\nfunction matchMedia(media) {\n  var mql = {\n    matches: false,\n    media: media\n  };\n\n  if (media === '') {\n    mql.matches = true;\n    return mql;\n  }\n\n  mql.matches = _matches(media, {\n    type: 'screen',\n    width: window.screen.width,\n    height: window.screen.height\n  });\n  return mql;\n}\n\nmodule.exports = matchMedia;","if (!Number.isNaN) {\n  // http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan\n  Number.isNaN = function isNaN(value) {\n    return value !== value;\n  };\n}\n","// WARNING: This is an optimized version that fails on hasOwnProperty checks\n// and non objects. It's not spec-compliant. It's a perf optimization.\n/* eslint strict:0 */\nif (!Object.assign) {\n  Object.assign = function(target, sources) {\n    for (let nextIndex = 1; nextIndex < arguments.length; nextIndex++) {\n      let nextSource = arguments[nextIndex];\n      if (nextSource == null) {\n        continue;\n      }\n\n      // We don't currently support accessors nor proxies. Therefore this\n      // copy cannot throw. If we ever supported this then we must handle\n      // exceptions and side-effects.\n      for (let key in nextSource) {\n        target[key] = nextSource[key];\n      }\n    }\n\n    return target;\n  };\n}\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * Returns an array of the given object's own enumerable entries.\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries\n *\n */\nif (!Object.entries) {\n  Object.entries = function(object) {\n    // `null` and `undefined` values are not allowed.\n    if (object == null) {\n      throw new TypeError('Object.entries called on non-object');\n    }\n\n    let entries = [];\n    for (let key in object) {\n      if (hasOwnProperty.call(object, key)) {\n        entries.push([key, object[key]]);\n      }\n    }\n    return entries;\n  };\n}\n\n\n/**\n * Returns an array of the given object's own enumerable entries.\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values\n *\n */\nif (!Object.values) {\n  Object.values = function(object) {\n    // `null` and `undefined` values are not allowed.\n    if (object == null) {\n      throw new TypeError('Object.values called on non-object');\n    }\n\n    let values = [];\n    for (let key in object) {\n      if (hasOwnProperty.call(object, key)) {\n        values.push(object[key]);\n      }\n    }\n    return values;\n  };\n}\n\nif (!Object.defineProperties) {\n  Object.defineProperties = function(object, descriptors) {\n    for (var property in descriptors) {\n      Object.defineProperty(object, property, descriptors[property]);\n    }\n    return object;\n  };\n}\n\n// https://gist.github.com/WebReflection/5593554\nif (!Object.setPrototypeOf) {\n  Object.setPrototypeOf = (function(Object, magic) {\n    var set;\n    function setPrototypeOf(O, proto) {\n      set.call(O, proto);\n      return O;\n    }\n    try {\n      // this works already in Firefox and Safari\n      set = Object.getOwnPropertyDescriptor(Object.prototype, magic).set;\n      set.call({}, null);\n    } catch (e) {\n      if (\n        // IE < 11 cannot be shimmed\n        Object.prototype !== {}[magic] ||\n        // neither can any browser that actually\n        // implemented __proto__ correctly\n        // (all but old V8 will return here)\n        {__proto__: null}.__proto__ === void 0\n        // this case means null objects cannot be passed\n        // through setPrototypeOf in a reliable way\n        // which means here a **Sham** is needed instead\n      ) {\n        return;\n      }\n      // nodejs 0.8 and 0.10 are (buggy and..) fine here\n      // probably Chrome or some old Mobile stock browser\n      set = function(proto) {\n        this[magic] = proto;\n      };\n      // please note that this will **not** work\n      // in those browsers that do not inherit\n      // __proto__ by mistake from Object.prototype\n      // in these cases we should probably throw an error\n      // or at least be informed about the issue\n      setPrototypeOf.polyfill = setPrototypeOf(\n        setPrototypeOf({}, null),\n        Object.prototype\n      ) instanceof Object;\n      // setPrototypeOf.polyfill === true means it works as meant\n      // setPrototypeOf.polyfill === false means it's not 100% reliable\n      // setPrototypeOf.polyfill === undefined\n      // or\n      // setPrototypeOf.polyfill ==  null means it's not a polyfill\n      // which means it works as expected\n      // we can even delete Object.prototype.__proto__;\n    }\n    return setPrototypeOf;\n  }(Object, '__proto__'));\n}\n\nif (!Object.is) {\n  Object.is = function(x, y) {\n    if (x === y) {\n      // 0 === -0, but they are not identical\n      return x !== 0 || 1 / x === 1 / y;\n    }\n\n    // NaN !== NaN, but they are identical.\n    // NaNs are the only non-reflexive value, i.e., if x !== x,\n    // then x is a NaN.\n    // isNaN is broken: it converts its argument to number, so\n    // isNaN(\"foo\") => true\n    return x !== x && y !== y;\n  };\n}\n","// Production steps of ECMA-262, Edition 6, 22.1.2.1\n// Reference: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from\nif (!Array.from) {\n  Array.from = (function() {\n    var toStr = Object.prototype.toString;\n    var isCallable = function(fn) {\n      return typeof fn === 'function' || toStr.call(fn) === '[object Function]';\n    };\n    var toInteger = function(value) {\n      var number = Number(value);\n      if (isNaN(number)) {\n        return 0;\n      }\n      if (number === 0 || !isFinite(number)) {\n        return number;\n      }\n      return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));\n    };\n    var maxSafeInteger = Math.pow(2, 53) - 1;\n    var toLength = function(value) {\n      var len = toInteger(value);\n      return Math.min(Math.max(len, 0), maxSafeInteger);\n    };\n\n    // The length property of the from method is 1.\n    return function from(arrayLike/* , mapFn, thisArg */) {\n      // 1. Let C be the this value.\n      var C = this;\n\n      // 2. Let items be ToObject(arrayLike).\n      var items = Object(arrayLike);\n\n      // 3. ReturnIfAbrupt(items).\n      if (arrayLike == null) {\n        throw new TypeError('Array.from requires an array-like object - not null or undefined');\n      }\n\n      // 4. If mapfn is undefined, then let mapping be false.\n      var mapFn = arguments.length > 1 ? arguments[1] : void undefined;\n      var T;\n      if (typeof mapFn !== 'undefined') {\n        // 5. else\n        // 5. a If IsCallable(mapfn) is false, throw a TypeError exception.\n        if (!isCallable(mapFn)) {\n          throw new TypeError('Array.from: when provided, the second argument must be a function');\n        }\n\n        // 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined.\n        if (arguments.length > 2) {\n          T = arguments[2];\n        }\n      }\n\n      // 10. Let lenValue be Get(items, \"length\").\n      // 11. Let len be ToLength(lenValue).\n      var len = toLength(items.length);\n\n      // 13. If IsConstructor(C) is true, then\n      // 13. a. Let A be the result of calling the [[Construct]] internal method of C with an argument list containing the single item len.\n      // 14. a. Else, Let A be ArrayCreate(len).\n      var A = isCallable(C) ? Object(new C(len)) : new Array(len);\n\n      // 16. Let k be 0.\n      var k = 0;\n      // 17. Repeat, while k < len… (also steps a - h)\n      var kValue;\n      while (k < len) {\n        kValue = items[k];\n        if (mapFn) {\n          A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);\n        } else {\n          A[k] = kValue;\n        }\n        k += 1;\n      }\n      // 18. Let putStatus be Put(A, \"length\", len, true).\n      A.length = len;\n      // 20. Return A.\n      return A;\n    };\n  }());\n}\n","(function(self) {\n  'use strict';\n\n  if (self.fetch) {\n    return\n  }\n\n  var support = {\n    searchParams: 'URLSearchParams' in self,\n    iterable: 'Symbol' in self && 'iterator' in Symbol,\n    blob: 'FileReader' in self && 'Blob' in self && (function() {\n      try {\n        new Blob()\n        return true\n      } catch(e) {\n        return false\n      }\n    })(),\n    formData: 'FormData' in self,\n    arrayBuffer: 'ArrayBuffer' in self\n  }\n\n  if (support.arrayBuffer) {\n    var viewClasses = [\n      '[object Int8Array]',\n      '[object Uint8Array]',\n      '[object Uint8ClampedArray]',\n      '[object Int16Array]',\n      '[object Uint16Array]',\n      '[object Int32Array]',\n      '[object Uint32Array]',\n      '[object Float32Array]',\n      '[object Float64Array]'\n    ]\n\n    var isDataView = function(obj) {\n      return obj && DataView.prototype.isPrototypeOf(obj)\n    }\n\n    var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n      return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n    }\n  }\n\n  function normalizeName(name) {\n    if (typeof name !== 'string') {\n      name = String(name)\n    }\n    if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n      throw new TypeError('Invalid character in header field name')\n    }\n    return name.toLowerCase()\n  }\n\n  function normalizeValue(value) {\n    if (typeof value !== 'string') {\n      value = String(value)\n    }\n    return value\n  }\n\n  // Build a destructive iterator for the value list\n  function iteratorFor(items) {\n    var iterator = {\n      next: function() {\n        var value = items.shift()\n        return {done: value === undefined, value: value}\n      }\n    }\n\n    if (support.iterable) {\n      iterator[Symbol.iterator] = function() {\n        return iterator\n      }\n    }\n\n    return iterator\n  }\n\n  function Headers(headers) {\n    this.map = {}\n\n    if (headers instanceof Headers) {\n      headers.forEach(function(value, name) {\n        this.append(name, value)\n      }, this)\n    } else if (Array.isArray(headers)) {\n      headers.forEach(function(header) {\n        this.append(header[0], header[1])\n      }, this)\n    } else if (headers) {\n      Object.getOwnPropertyNames(headers).forEach(function(name) {\n        this.append(name, headers[name])\n      }, this)\n    }\n  }\n\n  Headers.prototype.append = function(name, value) {\n    name = normalizeName(name)\n    value = normalizeValue(value)\n    var oldValue = this.map[name]\n    this.map[name] = oldValue ? oldValue+','+value : value\n  }\n\n  Headers.prototype['delete'] = function(name) {\n    delete this.map[normalizeName(name)]\n  }\n\n  Headers.prototype.get = function(name) {\n    name = normalizeName(name)\n    return this.has(name) ? this.map[name] : null\n  }\n\n  Headers.prototype.has = function(name) {\n    return this.map.hasOwnProperty(normalizeName(name))\n  }\n\n  Headers.prototype.set = function(name, value) {\n    this.map[normalizeName(name)] = normalizeValue(value)\n  }\n\n  Headers.prototype.forEach = function(callback, thisArg) {\n    for (var name in this.map) {\n      if (this.map.hasOwnProperty(name)) {\n        callback.call(thisArg, this.map[name], name, this)\n      }\n    }\n  }\n\n  Headers.prototype.keys = function() {\n    var items = []\n    this.forEach(function(value, name) { items.push(name) })\n    return iteratorFor(items)\n  }\n\n  Headers.prototype.values = function() {\n    var items = []\n    this.forEach(function(value) { items.push(value) })\n    return iteratorFor(items)\n  }\n\n  Headers.prototype.entries = function() {\n    var items = []\n    this.forEach(function(value, name) { items.push([name, value]) })\n    return iteratorFor(items)\n  }\n\n  if (support.iterable) {\n    Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n  }\n\n  function consumed(body) {\n    if (body.bodyUsed) {\n      return Promise.reject(new TypeError('Already read'))\n    }\n    body.bodyUsed = true\n  }\n\n  function fileReaderReady(reader) {\n    return new Promise(function(resolve, reject) {\n      reader.onload = function() {\n        resolve(reader.result)\n      }\n      reader.onerror = function() {\n        reject(reader.error)\n      }\n    })\n  }\n\n  function readBlobAsArrayBuffer(blob) {\n    var reader = new FileReader()\n    var promise = fileReaderReady(reader)\n    reader.readAsArrayBuffer(blob)\n    return promise\n  }\n\n  function readBlobAsText(blob) {\n    var reader = new FileReader()\n    var promise = fileReaderReady(reader)\n    reader.readAsText(blob)\n    return promise\n  }\n\n  function readArrayBufferAsText(buf) {\n    var view = new Uint8Array(buf)\n    var chars = new Array(view.length)\n\n    for (var i = 0; i < view.length; i++) {\n      chars[i] = String.fromCharCode(view[i])\n    }\n    return chars.join('')\n  }\n\n  function bufferClone(buf) {\n    if (buf.slice) {\n      return buf.slice(0)\n    } else {\n      var view = new Uint8Array(buf.byteLength)\n      view.set(new Uint8Array(buf))\n      return view.buffer\n    }\n  }\n\n  function Body() {\n    this.bodyUsed = false\n\n    this._initBody = function(body) {\n      this._bodyInit = body\n      if (!body) {\n        this._bodyText = ''\n      } else if (typeof body === 'string') {\n        this._bodyText = body\n      } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n        this._bodyBlob = body\n      } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n        this._bodyFormData = body\n      } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n        this._bodyText = body.toString()\n      } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n        this._bodyArrayBuffer = bufferClone(body.buffer)\n        // IE 10-11 can't handle a DataView body.\n        this._bodyInit = new Blob([this._bodyArrayBuffer])\n      } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n        this._bodyArrayBuffer = bufferClone(body)\n      } else {\n        throw new Error('unsupported BodyInit type')\n      }\n\n      if (!this.headers.get('content-type')) {\n        if (typeof body === 'string') {\n          this.headers.set('content-type', 'text/plain;charset=UTF-8')\n        } else if (this._bodyBlob && this._bodyBlob.type) {\n          this.headers.set('content-type', this._bodyBlob.type)\n        } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n          this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n        }\n      }\n    }\n\n    if (support.blob) {\n      this.blob = function() {\n        var rejected = consumed(this)\n        if (rejected) {\n          return rejected\n        }\n\n        if (this._bodyBlob) {\n          return Promise.resolve(this._bodyBlob)\n        } else if (this._bodyArrayBuffer) {\n          return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n        } else if (this._bodyFormData) {\n          throw new Error('could not read FormData body as blob')\n        } else {\n          return Promise.resolve(new Blob([this._bodyText]))\n        }\n      }\n\n      this.arrayBuffer = function() {\n        if (this._bodyArrayBuffer) {\n          return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n        } else {\n          return this.blob().then(readBlobAsArrayBuffer)\n        }\n      }\n    }\n\n    this.text = function() {\n      var rejected = consumed(this)\n      if (rejected) {\n        return rejected\n      }\n\n      if (this._bodyBlob) {\n        return readBlobAsText(this._bodyBlob)\n      } else if (this._bodyArrayBuffer) {\n        return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n      } else if (this._bodyFormData) {\n        throw new Error('could not read FormData body as text')\n      } else {\n        return Promise.resolve(this._bodyText)\n      }\n    }\n\n    if (support.formData) {\n      this.formData = function() {\n        return this.text().then(decode)\n      }\n    }\n\n    this.json = function() {\n      return this.text().then(JSON.parse)\n    }\n\n    return this\n  }\n\n  // HTTP methods whose capitalization should be normalized\n  var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n  function normalizeMethod(method) {\n    var upcased = method.toUpperCase()\n    return (methods.indexOf(upcased) > -1) ? upcased : method\n  }\n\n  function Request(input, options) {\n    options = options || {}\n    var body = options.body\n\n    if (input instanceof Request) {\n      if (input.bodyUsed) {\n        throw new TypeError('Already read')\n      }\n      this.url = input.url\n      this.credentials = input.credentials\n      if (!options.headers) {\n        this.headers = new Headers(input.headers)\n      }\n      this.method = input.method\n      this.mode = input.mode\n      if (!body && input._bodyInit != null) {\n        body = input._bodyInit\n        input.bodyUsed = true\n      }\n    } else {\n      this.url = String(input)\n    }\n\n    this.credentials = options.credentials || this.credentials || 'omit'\n    if (options.headers || !this.headers) {\n      this.headers = new Headers(options.headers)\n    }\n    this.method = normalizeMethod(options.method || this.method || 'GET')\n    this.mode = options.mode || this.mode || null\n    this.referrer = null\n\n    if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n      throw new TypeError('Body not allowed for GET or HEAD requests')\n    }\n    this._initBody(body)\n  }\n\n  Request.prototype.clone = function() {\n    return new Request(this, { body: this._bodyInit })\n  }\n\n  function decode(body) {\n    var form = new FormData()\n    body.trim().split('&').forEach(function(bytes) {\n      if (bytes) {\n        var split = bytes.split('=')\n        var name = split.shift().replace(/\\+/g, ' ')\n        var value = split.join('=').replace(/\\+/g, ' ')\n        form.append(decodeURIComponent(name), decodeURIComponent(value))\n      }\n    })\n    return form\n  }\n\n  function parseHeaders(rawHeaders) {\n    var headers = new Headers()\n    // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n    // https://tools.ietf.org/html/rfc7230#section-3.2\n    var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n    preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n      var parts = line.split(':')\n      var key = parts.shift().trim()\n      if (key) {\n        var value = parts.join(':').trim()\n        headers.append(key, value)\n      }\n    })\n    return headers\n  }\n\n  Body.call(Request.prototype)\n\n  function Response(bodyInit, options) {\n    if (!options) {\n      options = {}\n    }\n\n    this.type = 'default'\n    this.status = options.status === undefined ? 200 : options.status\n    this.ok = this.status >= 200 && this.status < 300\n    this.statusText = 'statusText' in options ? options.statusText : 'OK'\n    this.headers = new Headers(options.headers)\n    this.url = options.url || ''\n    this._initBody(bodyInit)\n  }\n\n  Body.call(Response.prototype)\n\n  Response.prototype.clone = function() {\n    return new Response(this._bodyInit, {\n      status: this.status,\n      statusText: this.statusText,\n      headers: new Headers(this.headers),\n      url: this.url\n    })\n  }\n\n  Response.error = function() {\n    var response = new Response(null, {status: 0, statusText: ''})\n    response.type = 'error'\n    return response\n  }\n\n  var redirectStatuses = [301, 302, 303, 307, 308]\n\n  Response.redirect = function(url, status) {\n    if (redirectStatuses.indexOf(status) === -1) {\n      throw new RangeError('Invalid status code')\n    }\n\n    return new Response(null, {status: status, headers: {location: url}})\n  }\n\n  self.Headers = Headers\n  self.Request = Request\n  self.Response = Response\n\n  self.fetch = function(input, init) {\n    return new Promise(function(resolve, reject) {\n      var request = new Request(input, init)\n      var xhr = new XMLHttpRequest()\n\n      xhr.onload = function() {\n        var options = {\n          status: xhr.status,\n          statusText: xhr.statusText,\n          headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n        }\n        options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n        var body = 'response' in xhr ? xhr.response : xhr.responseText\n        resolve(new Response(body, options))\n      }\n\n      xhr.onerror = function() {\n        reject(new TypeError('Network request failed'))\n      }\n\n      xhr.ontimeout = function() {\n        reject(new TypeError('Network request failed'))\n      }\n\n      xhr.open(request.method, request.url, true)\n\n      if (request.credentials === 'include') {\n        xhr.withCredentials = true\n      } else if (request.credentials === 'omit') {\n        xhr.withCredentials = false\n      }\n\n      if ('responseType' in xhr && support.blob) {\n        xhr.responseType = 'blob'\n      }\n\n      request.headers.forEach(function(value, name) {\n        xhr.setRequestHeader(name, value)\n      })\n\n      xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n    })\n  }\n  self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n","require('./').polyfill()\n","var now = require('performance-now')\n  , root = typeof window === 'undefined' ? global : window\n  , vendors = ['moz', 'webkit']\n  , suffix = 'AnimationFrame'\n  , raf = root['request' + suffix]\n  , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n  raf = root[vendors[i] + 'Request' + suffix]\n  caf = root[vendors[i] + 'Cancel' + suffix]\n      || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n  var last = 0\n    , id = 0\n    , queue = []\n    , frameDuration = 1000 / 60\n\n  raf = function(callback) {\n    if(queue.length === 0) {\n      var _now = now()\n        , next = Math.max(0, frameDuration - (_now - last))\n      last = next + _now\n      setTimeout(function() {\n        var cp = queue.slice(0)\n        // Clear queue here to prevent\n        // callbacks from appending listeners\n        // to the current frame's queue\n        queue.length = 0\n        for(var i = 0; i < cp.length; i++) {\n          if(!cp[i].cancelled) {\n            try{\n              cp[i].callback(last)\n            } catch(e) {\n              setTimeout(function() { throw e }, 0)\n            }\n          }\n        }\n      }, Math.round(next))\n    }\n    queue.push({\n      handle: ++id,\n      callback: callback,\n      cancelled: false\n    })\n    return id\n  }\n\n  caf = function(handle) {\n    for(var i = 0; i < queue.length; i++) {\n      if(queue[i].handle === handle) {\n        queue[i].cancelled = true\n      }\n    }\n  }\n}\n\nmodule.exports = function(fn) {\n  // Wrap in a new function to prevent\n  // `cancel` potentially being assigned\n  // to the native rAF function\n  return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n  caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n  if (!object) {\n    object = root;\n  }\n  object.requestAnimationFrame = raf\n  object.cancelAnimationFrame = caf\n}\n","// Generated by CoffeeScript 1.12.2\n(function() {\n  var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n  if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n    module.exports = function() {\n      return performance.now();\n    };\n  } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n    module.exports = function() {\n      return (getNanoSeconds() - nodeLoadTime) / 1e6;\n    };\n    hrtime = process.hrtime;\n    getNanoSeconds = function() {\n      var hr;\n      hr = hrtime();\n      return hr[0] * 1e9 + hr[1];\n    };\n    moduleLoadTime = getNanoSeconds();\n    upTime = process.uptime() * 1e9;\n    nodeLoadTime = moduleLoadTime - upTime;\n  } else if (Date.now) {\n    module.exports = function() {\n      return Date.now() - loadTime;\n    };\n    loadTime = Date.now();\n  } else {\n    module.exports = function() {\n      return new Date().getTime() - loadTime;\n    };\n    loadTime = new Date().getTime();\n  }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","(function(global) {\n  if (global.define) {\n    return;\n  }\n\n  /* eslint strict:0 */\n  var modules = {};\n  var inGuard = false;\n\n  function def(id, deps, factory) {\n    if (deps instanceof Function) {\n      factory = deps;\n      deps = [];\n    }\n\n    modules[id] = {\n      factory: factory,\n      deps: deps,\n      module: {exports: {}},\n      isInitialized: false,\n      hasError: false,\n    };\n  }\n\n  function req(id) {\n    // Weex built-in modules\n    if (id.indexOf('@weex-module') === 0) {\n      return {};\n    }\n\n    var originId = id;\n    var mod = modules[id];\n    // Node like require\n    if (!mod) {\n      id = id + '/index';\n      mod = modules[id];\n    }\n\n    if (mod && mod.isInitialized) {\n      return mod.module.exports;\n    }\n\n    return requireImpl(id, originId);\n  }\n\n  function requireImpl(id, originId) {\n    if (global.ErrorUtils && !inGuard) {\n      inGuard = true;\n      var returnValue;\n      try {\n        returnValue = requireImpl.apply(this, arguments);\n      } catch (e) {\n        global.ErrorUtils.reportFatalError(e);\n      }\n      inGuard = false;\n      return returnValue;\n    }\n\n    var mod = modules[id];\n    if (!mod) {\n      throw new Error(\n        'Requiring unknown module \"' + originId + '\"'\n      );\n    }\n\n    if (mod.hasError) {\n      throw new Error(\n        'Requiring module \"' + originId + '\" which threw an exception'\n      );\n    }\n\n    try {\n      // We must optimistically mark mod as initialized before running the factory to keep any\n      // require cycles inside the factory from causing an infinite require loop.\n      mod.isInitialized = true;\n\n      // keep args in sync with with defineModuleCode in\n      // rax/bundler/src/resolver.js\n      mod.factory(req, mod.module.exports, mod.module);\n    } catch (e) {\n      mod.hasError = true;\n      mod.isInitialized = false;\n      throw e;\n    }\n\n    return mod.module.exports;\n  }\n\n  global.define = def;\n  global.require = req;\n})(this || typeof global === 'object' && global || typeof window === 'object' && window);\n","import Registry, { config, getOffset, pushElement } from './appearRegistry';\nimport createIntersectionObserver, { observerElement, isExistIntersection } from './intersectionObserver';\n\nlet instance = null;\nconst existIntersection = isExistIntersection();\n\nconst appear = () => {\n  if (existIntersection) {\n    createIntersectionObserver();\n    injectEventListenerHook();\n  } else {\n    let instances = [];\n\n    Registry.createEvent();\n    injectEventListenerHook(instances);\n\n    instance = new Registry({\n      container: window\n    });\n    instances.push(instance);\n\n    let control = {\n      config,\n    };\n\n    return control;\n  }\n};\n\n\n// hijack addEventListener、removeEventListener\nconst injectEventListenerHook = (instances = []) => {\n  let nativeAddEventListener = Node.prototype.addEventListener;\n  let nativeRemoveEventListener = Node.prototype.removeEventListener;\n\n  Node.prototype.addEventListener = function(eventName, eventHandler, useCapture, doNotWatch) {\n    const lowerCaseEventName = eventName && String(eventName).toLowerCase();\n    const isAppearEvent = lowerCaseEventName === 'appear' || lowerCaseEventName === 'disappear';\n    if (isAppearEvent) {\n      if (existIntersection) {\n        observerElement(this);\n      } else {\n        pushElement(this);\n      }\n    }\n\n    if (!existIntersection) {\n      if (instance && isAppearEvent) {\n        instance.check([this]);\n      }\n\n      if (lowerCaseEventName === 'scroll' && !doNotWatch) {\n        instance = new Registry({\n          container: this\n        });\n        instances.push(instance);\n      }\n    }\n\n    nativeAddEventListener.call(this, eventName, eventHandler, useCapture);\n  };\n\n  Node.prototype.removeEventListener = function(eventName, eventHandler, useCapture, doNotWatch) {\n    let lowerCaseEventName = eventName && String(eventName).toLowerCase(); ;\n\n    // destroy scroller\n    if (!existIntersection && lowerCaseEventName === 'scroll' && !doNotWatch) {\n      instances.forEach((instance, index) => {\n        if (instance.__handle && instance.container === this) {\n          this.removeEventListener('scroll', instance.__handle, false, true);\n          instance.__handle = null;\n          instance.appearWatchElements = [];\n          instance.container = null;\n          instances.splice(index, 1);\n        }\n      });\n    }\n    nativeRemoveEventListener.call(this, eventName, eventHandler, useCapture);\n  };\n};\n\nexport default appear();\n","let offsetTop = 0;\nlet appearEvt, disappearEvt;\nlet _appearDoms = [];\n\nclass AppearRegistry {\n  static createEvent() {\n    appearEvt = document.createEvent('HTMLEvents');\n    disappearEvt = document.createEvent('HTMLEvents');\n    appearEvt.initEvent('appear', false, true);\n    disappearEvt.initEvent('disappear', false, true);\n  }\n\n  constructor(elements) {\n    this.current = [];\n    this.elements = elements;\n\n    this.options = {\n      container: window,\n      wait: 100,\n      x: 0,\n      y: 0,\n      cls: 'appear',\n      once: false,\n      onReset: function() {},\n      onAppear: function() {},\n      onDisappear: function() {}\n    };\n    this.container = null;\n    this.appearWatchElements = null;\n\n    this.initConfig.apply(this, arguments);\n  }\n\n  initConfig(opts) {\n    this.extend(this.options, opts || (opts = {}));\n    this.appearWatchElements = this.appearWatchElements || this.getElements();\n    this.bindEvent();\n  }\n\n  extend(target, el) {\n    for (let k in el) {\n      if (el.hasOwnProperty(k)) {\n        target[k] = el[k];\n      }\n    }\n    return target;\n  }\n\n  inViewport(element, offset, type) {\n    let { top, right, bottom, left } = element.getBoundingClientRect();\n\n    left = offset.right > left && offset.left < right;\n    top = offset.bottom > top - offsetTop && offset.top < bottom;\n    return left && top;\n  }\n\n  getElements(type) {\n    let container = this.options.container;\n    let appearWatchElements;\n    this.container = container;\n\n    appearWatchElements = _appearDoms || [];\n    appearWatchElements = [].slice.call(appearWatchElements, null);\n\n    return appearWatchElements;\n  }\n\n  // check dom inview\n  check(nodes) {\n    raf(() => {\n      this.calculate(nodes);\n    });\n  }\n\n  // calculate everyone dom inview\n  calculate(nodes) {\n    let container = this.container;\n    let elements = nodes || this.getElements();\n    let containerOffset = getOffset(window, {\n      x: this.options.x,\n      y: this.options.y\n    });\n    let isOnce = this.options.once;\n    let ev = arguments[0] || {};\n\n    if (!container) {\n      return;\n    }\n\n    if (elements && elements.length > 0) {\n      [].forEach.call(elements, (ele, i) => {\n        if (ele) {\n          if (ele.isOnce && ele._hasAppear) {\n            _appearDoms.splice(i, 1);\n            elements.splice(i, 1);\n            return;\n          }\n          this.checkEveryDom(ele, containerOffset, isOnce, appearEvt, disappearEvt, 'normal', i);\n        }\n      });\n    }\n  }\n\n  checkEveryDom(ele, containerOffset, isOnce, cacheAppearEvt, cacheDisappearEvt, type, pos) {\n    let eleOffset = getOffset(ele);\n    let direction = this.getDirection(ele._eleOffset, eleOffset);\n    let isInView = this.inViewport(ele, containerOffset, type);\n    let appear = ele._appear;\n    let _hasAppear = ele._hasAppear;\n    let _hasDisAppear = ele._hasDisAppear;\n    ele._eleOffset = eleOffset;\n\n    cacheAppearEvt.direction = direction;\n    cacheDisappearEvt.direction = direction;\n    if (isInView && !appear) {\n      if (isOnce && !_hasAppear || !isOnce) {\n        ele.dispatchEvent(cacheAppearEvt);\n        ele._hasAppear = true;\n        ele._appear = true;\n      }\n    } else if (!isInView && appear) {\n      if (isOnce && !_hasDisAppear || !isOnce) {\n        ele.dispatchEvent(cacheDisappearEvt);\n        ele._hasDisAppear = true;\n        ele._appear = false;\n      }\n    }\n  }\n\n  // reset\n  reset(opts) {\n    this.initConfig(opts);\n    this.appearWatchElements.forEach((ele) => {\n      delete ele._hasAppear;\n      delete ele._hasDisAppear;\n      delete ele._appear;\n    });\n    return this;\n  }\n  bindEvent() {\n    let handle = throttle(() => {\n      this.check();\n    }, this.options.wait);\n    if (this.__handle) {\n      this.container.removeEventListener('scroll', this.__handle, false, true);\n      this.__handle = null;\n    }\n    this.__handle = handle;\n    this.container.addEventListener('scroll', handle, false, true);\n  }\n\n  getDirection(beforeOffset, nowOffset) {\n    var direction = 'none';\n    var horizental = beforeOffset.left - nowOffset.left;\n    var vertical = beforeOffset.top - nowOffset.top;\n    if (vertical == 0) {\n      if (horizental != 0) {\n        direction = horizental > 0 ? 'left' : 'right';\n      } else {\n        direction = 'none';\n      }\n    }\n    if (horizental == 0) {\n      if (vertical != 0) {\n        direction = vertical > 0 ? 'up' : 'down';\n      } else {\n        direction = 'none';\n      }\n    }\n    return direction;\n  }\n}\n\nlet raf = window.requestAnimationFrame || window.webkitRequestAnimationFrame || function(c) {\n  setTimeout(c, 1 / 60 * 1e3);\n};\n\nfunction throttle(fn, wait) {\n  let context, args, result;\n  let timeout = null;\n  let previous = 0;\n\n  const later = () => {\n    previous = Date.now();\n    timeout = null;\n    result = fn.apply(context, args);\n  };\n  return function() {\n    const now = Date.now();\n    const remaining = wait - (now - previous);\n    context = this;\n    args = arguments;\n\n    if (remaining <= 0) {\n      clearTimeout(timeout);\n      timeout = null;\n      previous = now;\n      result = fn.apply(context, args);\n    } else if (!timeout) {\n      timeout = setTimeout(later, remaining);\n    }\n    return result;\n  };\n}\n\nexport function config(opts) {\n  if (opts.offsetTop && typeof opts.offsetTop === 'number') {\n    offsetTop = opts.offsetTop;\n  }\n}\n\nexport function getOffset(el, param) {\n  let l, r, b, t;\n  if (!el) {\n    return;\n  }\n  if (!param) {\n    param = {x: 0, y: 0};\n  }\n\n  if (el === window) {\n    l = 0;\n    t = 0;\n    r = l + el.innerWidth;\n    b = t + el.innerHeight;\n  } else if (el.parentNode === null) {\n    l = 0;\n    t = 0;\n    r = 0;\n    b = 0;\n  } else {\n    const { top, right, bottom, left } = el.getBoundingClientRect();\n    l = left;\n    t = top;\n    r = right;\n    b = bottom;\n  }\n\n  return {\n    'left': l,\n    'top': t,\n    'right': r + param.x,\n    'bottom': b + param.y\n  };\n}\n\n// add element\nexport function pushElement(node) {\n  if (_appearDoms.indexOf(node) === -1 && !node.appended) {\n    let isOnce = Boolean(node.getAttribute('isonce')) || Boolean(node.getAttribute('data-once'));\n    node.isOnce = isOnce;\n    node.appended = true;\n    _appearDoms.push(node);\n    node._eleOffset = getOffset(node);\n  }\n}\n\nexport default AppearRegistry;\n","const options = {\n  root: null,\n  rootMargin: '0px',\n  threshold: 0.0\n};\nlet appearEvt, disappearEvt;\nlet intersectionObserver;\n\nfunction initIntersection() {\n  appearEvt = document.createEvent('HTMLEvents');\n  disappearEvt = document.createEvent('HTMLEvents');\n  appearEvt.initEvent('appear', false, true);\n  disappearEvt.initEvent('disappear', false, true);\n\n  intersectionObserver = new IntersectionObserver(handleIntersect, options);\n}\n\nfunction handleIntersect(entries) {\n  entries.forEach((entry) => {\n    const { target, boundingClientRect, intersectionRatio } = entry;\n\n    // is inview\n    if (intersectionRatio > 0) {\n      target.dataset.appeared = true;\n      target.dispatchEvent(appearEvt);\n    } else if (target.dataset.appeared) {\n      target.dataset.appeared = false;\n      target.dispatchEvent(disappearEvt);\n    }\n  });\n}\n\nexport function observerElement(element) {\n  intersectionObserver.observe(element);\n}\n\nexport function isExistIntersection() {\n  return typeof IntersectionObserver === 'function';\n}\n\nexport default function createIntersectionObserver() {\n  initIntersection();\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"createElement\", {\n  enumerable: true,\n  get: function get() {\n    return _element.createElement;\n  }\n});\nObject.defineProperty(exports, \"cloneElement\", {\n  enumerable: true,\n  get: function get() {\n    return _element.cloneElement;\n  }\n});\nObject.defineProperty(exports, \"isValidElement\", {\n  enumerable: true,\n  get: function get() {\n    return _element.isValidElement;\n  }\n});\nObject.defineProperty(exports, \"createFactory\", {\n  enumerable: true,\n  get: function get() {\n    return _element.createFactory;\n  }\n});\nObject.defineProperty(exports, \"Component\", {\n  enumerable: true,\n  get: function get() {\n    return _component.default;\n  }\n});\nObject.defineProperty(exports, \"PureComponent\", {\n  enumerable: true,\n  get: function get() {\n    return _purecomponent.default;\n  }\n});\nObject.defineProperty(exports, \"PropTypes\", {\n  enumerable: true,\n  get: function get() {\n    return _proptypes.default;\n  }\n});\nObject.defineProperty(exports, \"render\", {\n  enumerable: true,\n  get: function get() {\n    return _render2.default;\n  }\n});\nObject.defineProperty(exports, \"hydrate\", {\n  enumerable: true,\n  get: function get() {\n    return _hydrate2.default;\n  }\n});\nObject.defineProperty(exports, \"createPortal\", {\n  enumerable: true,\n  get: function get() {\n    return _createPortal2.default;\n  }\n});\nObject.defineProperty(exports, \"findDOMNode\", {\n  enumerable: true,\n  get: function get() {\n    return _findDOMNode2.default;\n  }\n});\nObject.defineProperty(exports, \"unmountComponentAtNode\", {\n  enumerable: true,\n  get: function get() {\n    return _unmountComponentAtNode2.default;\n  }\n});\nObject.defineProperty(exports, \"findComponentInstance\", {\n  enumerable: true,\n  get: function get() {\n    return _findComponentInstance2.default;\n  }\n});\nObject.defineProperty(exports, \"setNativeProps\", {\n  enumerable: true,\n  get: function get() {\n    return _setNativeProps2.default;\n  }\n});\nObject.defineProperty(exports, \"version\", {\n  enumerable: true,\n  get: function get() {\n    return _version2.default;\n  }\n});\nObject.defineProperty(exports, \"Children\", {\n  enumerable: true,\n  get: function get() {\n    return _children.default;\n  }\n});\nObject.defineProperty(exports, \"createContext\", {\n  enumerable: true,\n  get: function get() {\n    return _createContext2.default;\n  }\n});\nexports.default = void 0;\n\nrequire(\"./debug/devtools\");\n\nvar _element = require(\"./element\");\n\nvar _component = _interopRequireDefault(require(\"./component\"));\n\nvar _purecomponent = _interopRequireDefault(require(\"./purecomponent\"));\n\nvar _proptypes = _interopRequireDefault(require(\"./proptypes\"));\n\nvar _render2 = _interopRequireDefault(require(\"./render\"));\n\nvar _hydrate2 = _interopRequireDefault(require(\"./hydrate\"));\n\nvar _createPortal2 = _interopRequireDefault(require(\"./createPortal\"));\n\nvar _findDOMNode2 = _interopRequireDefault(require(\"./findDOMNode\"));\n\nvar _unmountComponentAtNode2 = _interopRequireDefault(require(\"./unmountComponentAtNode\"));\n\nvar _findComponentInstance2 = _interopRequireDefault(require(\"./findComponentInstance\"));\n\nvar _setNativeProps2 = _interopRequireDefault(require(\"./setNativeProps\"));\n\nvar _version2 = _interopRequireDefault(require(\"./version\"));\n\nvar _children = _interopRequireDefault(require(\"./children\"));\n\nvar _createContext2 = _interopRequireDefault(require(\"./createContext\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports[\"default\"] = module.exports;\nvar _default = module.exports;\nexports.default = _default;","\"use strict\";\n\nvar _hook = _interopRequireDefault(require(\"./hook\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') {\n  __REACT_DEVTOOLS_GLOBAL_HOOK__.inject(_hook.default);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _component = _interopRequireDefault(require(\"../component\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar rootCounter = 1;\n\nvar Root =\n/*#__PURE__*/\nfunction (_Component) {\n  _inherits(Root, _Component);\n\n  function Root() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    _classCallCheck(this, Root);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Root)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n    _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"rootID\", rootCounter++);\n\n    return _this;\n  }\n\n  _createClass(Root, [{\n    key: \"isRootComponent\",\n    value: function isRootComponent() {}\n  }, {\n    key: \"render\",\n    value: function render() {\n      return this.props.children;\n    }\n  }, {\n    key: \"getPublicInstance\",\n    value: function getPublicInstance() {\n      return this.getRenderedComponent().getPublicInstance();\n    }\n  }, {\n    key: \"getRenderedComponent\",\n    value: function getRenderedComponent() {\n      return this._internal._renderedComponent;\n    }\n  }]);\n\n  return Root;\n}(_component.default);\n\nvar _default = Root;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _component = _interopRequireDefault(require(\"./component\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * Pure component class.\n */\nvar PureComponent =\n/*#__PURE__*/\nfunction (_Component) {\n  _inherits(PureComponent, _Component);\n\n  function PureComponent(props, context) {\n    _classCallCheck(this, PureComponent);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(PureComponent).call(this, props, context));\n  }\n\n  _createClass(PureComponent, [{\n    key: \"isPureComponentClass\",\n    value: function isPureComponentClass() {}\n  }]);\n\n  return PureComponent;\n}(_component.default);\n\nvar _default = PureComponent;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = inject;\n\nvar _universalEnv = require(\"universal-env\");\n\nvar _host = _interopRequireDefault(require(\"./vdom/host\"));\n\nvar _empty = _interopRequireDefault(require(\"./vdom/empty\"));\n\nvar _native = _interopRequireDefault(require(\"./vdom/native\"));\n\nvar _text = _interopRequireDefault(require(\"./vdom/text\"));\n\nvar _composite = _interopRequireDefault(require(\"./vdom/composite\"));\n\nvar _fragment = _interopRequireDefault(require(\"./vdom/fragment\"));\n\nvar _driverWeex = _interopRequireDefault(require(\"driver-weex\"));\n\nvar _driverBrowser = _interopRequireDefault(require(\"driver-browser\"));\n\nvar _hook = _interopRequireDefault(require(\"./debug/hook\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction inject(_ref) {\n  var driver = _ref.driver,\n      hook = _ref.hook,\n      measurer = _ref.measurer,\n      deviceWidth = _ref.deviceWidth,\n      viewportWidth = _ref.viewportWidth,\n      eventRegistry = _ref.eventRegistry,\n      bodyType = _ref.bodyType,\n      bodyProps = _ref.bodyProps;\n  // Inject component class\n  _host.default.EmptyComponent = _empty.default;\n  _host.default.NativeComponent = _native.default;\n  _host.default.TextComponent = _text.default;\n  _host.default.FragmentComponent = _fragment.default;\n  _host.default.CompositeComponent = _composite.default; // Inject devtool hook\n\n  _host.default.hook = hook || _hook.default; // Inject performance measurer\n\n  _host.default.measurer = measurer; // Inject render driver\n\n  if (!_host.default.driver) {\n    if (!driver) {\n      if (_universalEnv.isWeex) {\n        driver = _driverWeex.default;\n      } else if (_universalEnv.isWeb) {\n        driver = _driverBrowser.default;\n      } else {\n        throw Error('No builtin driver matched');\n      }\n    }\n\n    _host.default.driver = driver;\n  }\n\n  if (deviceWidth && _host.default.driver.setDeviceWidth) {\n    _host.default.driver.setDeviceWidth(deviceWidth);\n  }\n\n  if (viewportWidth && _host.default.driver.setViewportWidth) {\n    _host.default.driver.setViewportWidth(viewportWidth);\n  }\n\n  if (eventRegistry) {\n    _host.default.driver.eventRegistry = eventRegistry;\n  } // Body custom type only works in weex\n\n\n  if (bodyType) {\n    _host.default.driver.bodyType = bodyType;\n  }\n\n  if (bodyProps) {\n    _host.default.driver.bodyProps = bodyProps;\n  }\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _host = _interopRequireDefault(require(\"./host\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * Empty Component\n */\nvar EmptyComponent =\n/*#__PURE__*/\nfunction () {\n  function EmptyComponent() {\n    _classCallCheck(this, EmptyComponent);\n\n    this._currentElement = null;\n  }\n\n  _createClass(EmptyComponent, [{\n    key: \"mountComponent\",\n    value: function mountComponent(parent, parentInstance, context, childMounter) {\n      this._parent = parent;\n      this._parentInstance = parentInstance;\n      this._context = context;\n      var instance = {\n        _internal: this\n      };\n      var nativeNode = this.getNativeNode();\n\n      if (childMounter) {\n        childMounter(nativeNode, parent);\n      } else {\n        _host.default.driver.appendChild(nativeNode, parent);\n      }\n\n      return instance;\n    }\n  }, {\n    key: \"unmountComponent\",\n    value: function unmountComponent(notRemoveChild) {\n      if (this._nativeNode && !notRemoveChild) {\n        _host.default.driver.removeChild(this._nativeNode, this._parent);\n      }\n\n      this._nativeNode = null;\n      this._parent = null;\n      this._parentInstance = null;\n      this._context = null;\n    }\n  }, {\n    key: \"updateComponent\",\n    value: function updateComponent() {// Noop\n    }\n  }, {\n    key: \"getNativeNode\",\n    value: function getNativeNode() {\n      // Weex native node\n      if (this._nativeNode == null) {\n        this._nativeNode = _host.default.driver.createEmpty();\n      }\n\n      return this._nativeNode;\n    }\n  }]);\n\n  return EmptyComponent;\n}();\n\nvar _default = EmptyComponent;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _host = _interopRequireDefault(require(\"./host\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * Text Component\n */\nvar TextComponent =\n/*#__PURE__*/\nfunction () {\n  function TextComponent(element) {\n    _classCallCheck(this, TextComponent);\n\n    this._currentElement = element;\n    this._stringText = String(element);\n  }\n\n  _createClass(TextComponent, [{\n    key: \"mountComponent\",\n    value: function mountComponent(parent, parentInstance, context, childMounter) {\n      this._parent = parent;\n      this._parentInstance = parentInstance;\n      this._context = context;\n      this._mountID = _host.default.mountID++; // Weex dom operation\n\n      var nativeNode = this.getNativeNode();\n\n      if (childMounter) {\n        childMounter(nativeNode, parent);\n      } else {\n        _host.default.driver.appendChild(nativeNode, parent);\n      }\n\n      var instance = {\n        _internal: this\n      };\n\n      _host.default.hook.Reconciler.mountComponent(this);\n\n      return instance;\n    }\n  }, {\n    key: \"unmountComponent\",\n    value: function unmountComponent(notRemoveChild) {\n      if (this._nativeNode && !notRemoveChild) {\n        _host.default.driver.removeChild(this._nativeNode, this._parent);\n      }\n\n      _host.default.hook.Reconciler.unmountComponent(this);\n\n      this._currentElement = null;\n      this._nativeNode = null;\n      this._parent = null;\n      this._parentInstance = null;\n      this._context = null;\n      this._stringText = null;\n    }\n  }, {\n    key: \"updateComponent\",\n    value: function updateComponent(prevElement, nextElement, context) {\n      // If some text do noting\n      if (prevElement !== nextElement) {\n        // Replace current element\n        this._currentElement = nextElement; // Devtool read the latest stringText value\n\n        this._stringText = String(nextElement);\n\n        _host.default.driver.updateText(this.getNativeNode(), this._stringText);\n\n        _host.default.hook.Reconciler.receiveComponent(this);\n      }\n    }\n  }, {\n    key: \"getNativeNode\",\n    value: function getNativeNode() {\n      if (this._nativeNode == null) {\n        this._nativeNode = _host.default.driver.createText(this._stringText);\n      }\n\n      return this._nativeNode;\n    }\n  }]);\n\n  return TextComponent;\n}();\n\nvar _default = TextComponent;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _stateless = _interopRequireDefault(require(\"./stateless\"));\n\nvar _updater = _interopRequireDefault(require(\"./updater\"));\n\nvar _host = _interopRequireDefault(require(\"./host\"));\n\nvar _ref = _interopRequireDefault(require(\"./ref\"));\n\nvar _instantiateComponent = _interopRequireDefault(require(\"./instantiateComponent\"));\n\nvar _shouldUpdateComponent = _interopRequireDefault(require(\"./shouldUpdateComponent\"));\n\nvar _shallowEqual = _interopRequireDefault(require(\"./shallowEqual\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction performInSandbox(fn, instance, callback) {\n  try {\n    return fn();\n  } catch (e) {\n    if (callback) {\n      callback(e);\n    } else {\n      handleError(instance, e);\n    }\n  }\n}\n\nfunction handleError(instance, error) {\n  var boundary;\n\n  while (instance) {\n    if (typeof instance.componentDidCatch === 'function') {\n      boundary = instance;\n      break;\n    } else if (instance._internal && instance._internal._parentInstance) {\n      instance = instance._internal._parentInstance;\n    } else {\n      break;\n    }\n  }\n\n  if (boundary) {\n    boundary.componentDidCatch(error);\n  } else {\n    if (_host.default.sandbox) {\n      setTimeout(function () {\n        throw error;\n      }, 0);\n    } else {\n      throw error;\n    }\n  }\n}\n\nvar measureLifeCycle;\n\nif (process.env.NODE_ENV !== 'production') {\n  measureLifeCycle = function measureLifeCycle(callback, instanceID, type) {\n    _host.default.measurer && _host.default.measurer.beforeLifeCycle(instanceID, type);\n    callback();\n    _host.default.measurer && _host.default.measurer.afterLifeCycle(instanceID, type);\n  };\n}\n/**\n * Composite Component\n */\n\n\nvar CompositeComponent =\n/*#__PURE__*/\nfunction () {\n  function CompositeComponent(element) {\n    _classCallCheck(this, CompositeComponent);\n\n    this._currentElement = element;\n  }\n\n  _createClass(CompositeComponent, [{\n    key: \"getName\",\n    value: function getName() {\n      var type = this._currentElement.type;\n      var constructor = this._instance && this._instance.constructor;\n      return type.displayName || constructor && constructor.displayName || type.name || constructor && constructor.name || null;\n    }\n  }, {\n    key: \"mountComponent\",\n    value: function mountComponent(parent, parentInstance, context, childMounter) {\n      var _this = this;\n\n      this._parent = parent;\n      this._parentInstance = parentInstance;\n      this._context = context;\n      this._mountID = _host.default.mountID++;\n      this._updateCount = 0;\n\n      if (process.env.NODE_ENV !== 'production') {\n        _host.default.measurer && _host.default.measurer.beforeMountComponent(this._mountID, this);\n      }\n\n      var Component = this._currentElement.type;\n      var publicProps = this._currentElement.props;\n      var isClass = Component.prototype;\n      var isComponentClass = isClass && Component.prototype.isComponentClass; // Class stateless component without state but have lifecycles\n\n      var isStatelessClass = isClass && Component.prototype.render; // Context process\n\n      var publicContext = this._processContext(context); // Initialize the public class\n\n\n      var instance;\n      var renderedElement;\n\n      if (isComponentClass || isStatelessClass) {\n        // Component instance\n        instance = new Component(publicProps, publicContext, _updater.default);\n      } else if (typeof Component === 'function') {\n        // Functional stateless component without state and lifecycles\n        instance = new _stateless.default(Component);\n      } else {\n        throw new Error(\"Invalid component type: \".concat(Component, \". (keys: \").concat(Object.keys(Component), \")\"));\n      } // These should be set up in the constructor, but as a convenience for\n      // simpler class abstractions, we set them up after the fact.\n\n\n      instance.props = publicProps;\n      instance.context = publicContext;\n      instance.refs = {}; // Inject the updater into instance\n\n      instance.updater = _updater.default;\n      instance._internal = this;\n      this._instance = instance; // Init state, must be set to an object or null\n\n      var initialState = instance.state;\n\n      if (initialState === undefined) {\n        // TODO clone the state?\n        instance.state = initialState = null;\n      }\n\n      var error = null;\n\n      var errorCallback = function errorCallback(e) {\n        error = e;\n      };\n\n      if (instance.componentWillMount) {\n        performInSandbox(function () {\n          if (process.env.NODE_ENV !== 'production') {\n            measureLifeCycle(function () {\n              instance.componentWillMount();\n            }, _this._mountID, 'componentWillMount');\n          } else {\n            instance.componentWillMount();\n          }\n        }, instance, errorCallback);\n      }\n\n      if (renderedElement == null) {\n        _host.default.component = this; // Process pending state when call setState in componentWillMount\n\n        instance.state = this._processPendingState(publicProps, publicContext);\n        performInSandbox(function () {\n          if (process.env.NODE_ENV !== 'production') {\n            measureLifeCycle(function () {\n              renderedElement = instance.render();\n            }, _this._mountID, 'render');\n          } else {\n            renderedElement = instance.render();\n          }\n        }, instance, errorCallback);\n        _host.default.component = null;\n      }\n\n      this._renderedComponent = (0, _instantiateComponent.default)(renderedElement);\n\n      this._renderedComponent.mountComponent(this._parent, instance, this._processChildContext(context), childMounter);\n\n      if (error) {\n        handleError(instance, error);\n      }\n\n      if (this._currentElement && this._currentElement.ref) {\n        _ref.default.attach(this._currentElement._owner, this._currentElement.ref, this);\n      }\n\n      if (instance.componentDidMount) {\n        performInSandbox(function () {\n          if (process.env.NODE_ENV !== 'production') {\n            measureLifeCycle(function () {\n              instance.componentDidMount();\n            }, _this._mountID, 'componentDidMount');\n          } else {\n            instance.componentDidMount();\n          }\n        }, instance);\n      }\n\n      _host.default.hook.Reconciler.mountComponent(this);\n\n      if (process.env.NODE_ENV !== 'production') {\n        _host.default.measurer && _host.default.measurer.afterMountComponent(this._mountID);\n      }\n\n      return instance;\n    }\n  }, {\n    key: \"unmountComponent\",\n    value: function unmountComponent(notRemoveChild) {\n      var instance = this._instance;\n\n      if (instance.componentWillUnmount) {\n        performInSandbox(function () {\n          instance.componentWillUnmount();\n        }, instance);\n      }\n\n      _host.default.hook.Reconciler.unmountComponent(this);\n\n      instance._internal = null;\n\n      if (this._renderedComponent != null) {\n        var ref = this._currentElement.ref;\n\n        if (ref) {\n          _ref.default.detach(this._currentElement._owner, ref, this);\n        }\n\n        this._renderedComponent.unmountComponent(notRemoveChild);\n\n        this._renderedComponent = null;\n        this._instance = null;\n      }\n\n      this._currentElement = null;\n      this._parentInstance = null; // Reset pending fields\n      // Even if this component is scheduled for another update in ReactUpdates,\n      // it would still be ignored because these fields are reset.\n\n      this._pendingStateQueue = null;\n      this._pendingForceUpdate = false; // These fields do not really need to be reset since this object is no\n      // longer accessible.\n\n      this._context = null;\n    }\n    /**\n     * Filters the context object to only contain keys specified in\n     * `contextTypes`\n     */\n\n  }, {\n    key: \"_processContext\",\n    value: function _processContext(context) {\n      var Component = this._currentElement.type;\n      var contextTypes = Component.contextTypes;\n\n      if (!contextTypes) {\n        return {};\n      }\n\n      var maskedContext = {};\n\n      for (var contextName in contextTypes) {\n        maskedContext[contextName] = context[contextName];\n      }\n\n      return maskedContext;\n    }\n  }, {\n    key: \"_processChildContext\",\n    value: function _processChildContext(currentContext) {\n      var instance = this._instance;\n      var childContext = instance.getChildContext && instance.getChildContext();\n\n      if (childContext) {\n        return Object.assign({}, currentContext, childContext);\n      }\n\n      return currentContext;\n    }\n  }, {\n    key: \"_processPendingState\",\n    value: function _processPendingState(props, context) {\n      var instance = this._instance;\n      var queue = this._pendingStateQueue;\n\n      if (!queue) {\n        return instance.state;\n      } // Reset pending queue\n\n\n      this._pendingStateQueue = null;\n      var nextState = Object.assign({}, instance.state);\n\n      for (var i = 0; i < queue.length; i++) {\n        var partial = queue[i];\n        Object.assign(nextState, typeof partial === 'function' ? partial.call(instance, nextState, props, context) : partial);\n      }\n\n      return nextState;\n    }\n  }, {\n    key: \"updateComponent\",\n    value: function updateComponent(prevElement, nextElement, prevUnmaskedContext, nextUnmaskedContext) {\n      var instance = this._instance;\n\n      if (process.env.NODE_ENV !== 'production') {\n        _host.default.measurer && _host.default.measurer.beforeUpdateComponent(this._mountID, this);\n      }\n\n      if (!instance) {\n        console.error(\"Update component '\".concat(this.getName(), \"' that has already been unmounted (or failed to mount).\"));\n      }\n\n      var willReceive = false;\n      var nextContext;\n      var nextProps; // Determine if the context has changed or not\n\n      if (this._context === nextUnmaskedContext) {\n        nextContext = instance.context;\n      } else {\n        nextContext = this._processContext(nextUnmaskedContext);\n        willReceive = true;\n      } // Distinguish between a props update versus a simple state update\n\n\n      if (prevElement === nextElement) {\n        // Skip checking prop types again -- we don't read component.props to avoid\n        // warning for DOM component props in this upgrade\n        nextProps = nextElement.props;\n      } else {\n        nextProps = nextElement.props;\n        willReceive = true;\n      }\n\n      var hasReceived = willReceive && instance.componentWillReceiveProps;\n\n      if (hasReceived) {\n        // Calling this.setState() within componentWillReceiveProps will not trigger an additional render.\n        this._pendingState = true;\n        performInSandbox(function () {\n          instance.componentWillReceiveProps(nextProps, nextContext);\n        }, instance);\n        this._pendingState = false;\n      } // Update refs\n\n\n      _ref.default.update(prevElement, nextElement, this); // Shoud update always default\n\n\n      var shouldUpdate = true;\n      var prevProps = instance.props;\n      var prevState = instance.state; // TODO: could delay execution processPendingState\n\n      var nextState = this._processPendingState(nextProps, nextContext); // ShouldComponentUpdate is not called when forceUpdate is used\n\n\n      if (!this._pendingForceUpdate) {\n        if (instance.shouldComponentUpdate) {\n          shouldUpdate = performInSandbox(function () {\n            return instance.shouldComponentUpdate(nextProps, nextState, nextContext);\n          }, instance);\n        } else if (instance.isPureComponentClass) {\n          shouldUpdate = !(0, _shallowEqual.default)(prevProps, nextProps) || !(0, _shallowEqual.default)(prevState, nextState);\n        }\n      }\n\n      if (shouldUpdate) {\n        this._pendingForceUpdate = false; // Will set `this.props`, `this.state` and `this.context`.\n\n        var prevContext = instance.context; // Cannot use this.setState() in componentWillUpdate.\n        // If need to update state in response to a prop change, use componentWillReceiveProps instead.\n\n        performInSandbox(function () {\n          if (instance.componentWillUpdate) {\n            instance.componentWillUpdate(nextProps, nextState, nextContext);\n          }\n        }, instance); // Replace with next\n\n        this._currentElement = nextElement;\n        this._context = nextUnmaskedContext;\n        instance.props = nextProps;\n        instance.state = nextState;\n        instance.context = nextContext;\n\n        this._updateRenderedComponent(nextUnmaskedContext);\n\n        performInSandbox(function () {\n          if (instance.componentDidUpdate) {\n            instance.componentDidUpdate(prevProps, prevState, prevContext);\n          }\n        }, instance);\n        this._updateCount++;\n      } else {\n        // If it's determined that a component should not update, we still want\n        // to set props and state but we shortcut the rest of the update.\n        this._currentElement = nextElement;\n        this._context = nextUnmaskedContext;\n        instance.props = nextProps;\n        instance.state = nextState;\n        instance.context = nextContext;\n      } // Flush setState callbacks set in componentWillReceiveProps\n\n\n      if (hasReceived) {\n        var callbacks = this._pendingCallbacks;\n        this._pendingCallbacks = null;\n\n        _updater.default.runCallbacks(callbacks, instance);\n      }\n\n      if (process.env.NODE_ENV !== 'production') {\n        _host.default.measurer && _host.default.measurer.afterUpdateComponent(this._mountID);\n      }\n\n      _host.default.hook.Reconciler.receiveComponent(this);\n    }\n    /**\n     * Call the component's `render` method and update the DOM accordingly.\n     */\n\n  }, {\n    key: \"_updateRenderedComponent\",\n    value: function _updateRenderedComponent(context) {\n      var _this2 = this;\n\n      var prevRenderedComponent = this._renderedComponent;\n      var prevRenderedElement = prevRenderedComponent._currentElement;\n      var instance = this._instance;\n      var nextRenderedElement;\n      _host.default.component = this;\n      performInSandbox(function () {\n        if (process.env.NODE_ENV !== 'production') {\n          measureLifeCycle(function () {\n            nextRenderedElement = instance.render();\n          }, _this2._mountID, 'render');\n        } else {\n          nextRenderedElement = instance.render();\n        }\n      }, instance);\n      _host.default.component = null;\n\n      if ((0, _shouldUpdateComponent.default)(prevRenderedElement, nextRenderedElement)) {\n        prevRenderedComponent.updateComponent(prevRenderedElement, nextRenderedElement, prevRenderedComponent._context, this._processChildContext(context));\n\n        if (process.env.NODE_ENV !== 'production') {\n          _host.default.measurer && _host.default.measurer.recordOperation({\n            instanceID: this._mountID,\n            type: 'update component',\n            payload: {}\n          });\n        }\n      } else {\n        var oldChild = prevRenderedComponent.getNativeNode();\n        prevRenderedComponent.unmountComponent(true);\n        this._renderedComponent = (0, _instantiateComponent.default)(nextRenderedElement);\n\n        this._renderedComponent.mountComponent(this._parent, instance, this._processChildContext(context), function (newChild, parent) {\n          // TODO: Duplicate code in native component file\n          if (!Array.isArray(newChild)) {\n            newChild = [newChild];\n          } // oldChild or newChild all maybe fragment\n\n\n          if (!Array.isArray(oldChild)) {\n            oldChild = [oldChild];\n          } // If newChild count large then oldChild\n\n\n          var lastNewChild;\n\n          for (var i = 0; i < newChild.length; i++) {\n            var child = newChild[i];\n\n            if (oldChild[i]) {\n              _host.default.driver.replaceChild(child, oldChild[i]);\n            } else {\n              _host.default.driver.insertAfter(child, lastNewChild);\n            }\n\n            lastNewChild = child;\n          } // If newChild count less then oldChild\n\n\n          if (newChild.length < oldChild.length) {\n            for (var _i = newChild.length; _i < oldChild.length; _i++) {\n              _host.default.driver.removeChild(oldChild[_i]);\n            }\n          }\n        });\n      }\n    }\n  }, {\n    key: \"getNativeNode\",\n    value: function getNativeNode() {\n      var renderedComponent = this._renderedComponent;\n\n      if (renderedComponent) {\n        return renderedComponent.getNativeNode();\n      }\n    }\n  }, {\n    key: \"getPublicInstance\",\n    value: function getPublicInstance() {\n      var instance = this._instance; // The Stateless components cannot be given refs\n\n      if (instance instanceof _stateless.default) {\n        return null;\n      }\n\n      return instance;\n    }\n  }]);\n\n  return CompositeComponent;\n}();\n\nvar _default = CompositeComponent;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _host = _interopRequireDefault(require(\"./host\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * Stateless Component Class Wrapper\n */\nvar StatelessComponent =\n/*#__PURE__*/\nfunction () {\n  function StatelessComponent(pureRender) {\n    _classCallCheck(this, StatelessComponent);\n\n    // A stateless function\n    this.pureRender = pureRender;\n  }\n\n  _createClass(StatelessComponent, [{\n    key: \"render\",\n    value: function render() {\n      if (process.env.NODE_ENV !== 'production') {\n        _host.default.measurer && _host.default.measurer.beforeRender();\n      }\n\n      return this.pureRender(this.props, this.context);\n    }\n  }]);\n\n  return StatelessComponent;\n}();\n\nvar _default = StatelessComponent;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nfunction enqueueCallback(internal, callback) {\n  if (callback) {\n    var callbackQueue = internal._pendingCallbacks || (internal._pendingCallbacks = []);\n    callbackQueue.push(callback);\n  }\n}\n\nfunction enqueueState(internal, partialState) {\n  if (partialState) {\n    var stateQueue = internal._pendingStateQueue || (internal._pendingStateQueue = []);\n    stateQueue.push(partialState);\n  }\n}\n\nvar Updater = {\n  setState: function setState(component, partialState, callback) {\n    var internal = component._internal;\n\n    if (!internal) {\n      return;\n    }\n\n    enqueueState(internal, partialState);\n    enqueueCallback(internal, callback); // pending in componentWillReceiveProps and componentWillMount\n\n    if (!internal._pendingState && internal._renderedComponent) {\n      this.runUpdate(component);\n    }\n  },\n  forceUpdate: function forceUpdate(component, callback) {\n    var internal = component._internal;\n\n    if (!internal) {\n      return;\n    }\n\n    internal._pendingForceUpdate = true;\n    enqueueCallback(internal, callback); // pending in componentWillMount\n\n    if (internal._renderedComponent) {\n      this.runUpdate(component);\n    }\n  },\n  runUpdate: function runUpdate(component) {\n    var internal = component._internal; // If updateComponent happens to enqueue any new updates, we\n    // shouldn't execute the callbacks until the next render happens, so\n    // stash the callbacks first\n\n    var callbacks = internal._pendingCallbacks;\n    internal._pendingCallbacks = null;\n    var prevElement = internal._currentElement;\n    var prevUnmaskedContext = internal._context;\n\n    if (internal._pendingStateQueue || internal._pendingForceUpdate) {\n      internal.updateComponent(prevElement, prevElement, prevUnmaskedContext, prevUnmaskedContext);\n    }\n\n    this.runCallbacks(callbacks, component);\n  },\n  runCallbacks: function runCallbacks(callbacks, context) {\n    if (callbacks) {\n      for (var i = 0; i < callbacks.length; i++) {\n        callbacks[i].call(context);\n      }\n    }\n  }\n};\nvar _default = Updater;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n\nfunction is(x, y) {\n  // SameValue algorithm\n  if (x === y) {\n    // Steps 1-5, 7-10\n    // Steps 6.b-6.e: +0 != -0\n    return x !== 0 || 1 / x === 1 / y;\n  } else {\n    // Step 6.a: NaN == NaN\n    return x !== x && y !== y;\n  }\n}\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\n\n\nfunction shallowEqual(objA, objB) {\n  if (is(objA, objB)) {\n    return true;\n  }\n\n  if (_typeof(objA) !== 'object' || objA === null || _typeof(objB) !== 'object' || objB === null) {\n    return false;\n  }\n\n  var keysA = Object.keys(objA);\n  var keysB = Object.keys(objB);\n\n  if (keysA.length !== keysB.length) {\n    return false;\n  } // Test for A's keys different from B.\n\n\n  for (var i = 0; i < keysA.length; i++) {\n    if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nvar _default = shallowEqual;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _host = _interopRequireDefault(require(\"./host\"));\n\nvar _native = _interopRequireDefault(require(\"./native\"));\n\nvar _instance = _interopRequireDefault(require(\"./instance\"));\n\nvar _instantiateComponent = _interopRequireDefault(require(\"./instantiateComponent\"));\n\nvar _getElementKeyName = _interopRequireDefault(require(\"./getElementKeyName\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * Fragment Component\n */\nvar FragmentComponent =\n/*#__PURE__*/\nfunction (_NativeComponent) {\n  _inherits(FragmentComponent, _NativeComponent);\n\n  function FragmentComponent(element) {\n    _classCallCheck(this, FragmentComponent);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(FragmentComponent).call(this, element));\n  }\n\n  _createClass(FragmentComponent, [{\n    key: \"mountComponent\",\n    value: function mountComponent(parent, parentInstance, context, childMounter) {\n      // Parent native element\n      this._parent = parent;\n      this._parentInstance = parentInstance;\n      this._context = context;\n      this._mountID = _host.default.mountID++;\n      var instance = {\n        _internal: this\n      };\n      this._instance = instance;\n      var fragment = this.getNativeNode();\n      var children = this._currentElement; // Process children\n\n      this.mountChildren(children, context);\n\n      if (childMounter) {\n        childMounter(fragment, parent);\n      } else {\n        var isFragmentParent = Array.isArray(parent);\n\n        for (var i = 0; i < fragment.length; i++) {\n          var child = fragment[i]; // When the parent is also a fragment\n\n          if (isFragmentParent) {\n            parent.push(child);\n          } else {\n            _host.default.driver.appendChild(child, parent);\n          }\n        }\n      }\n\n      return instance;\n    }\n  }, {\n    key: \"mountChildren\",\n    value: function mountChildren(children, context) {\n      var _this = this;\n\n      var renderedChildren = this._renderedChildren = {};\n      var fragment = this.getNativeNode();\n      var renderedChildrenImage = children.map(function (element, index) {\n        var renderedChild = (0, _instantiateComponent.default)(element);\n        var name = (0, _getElementKeyName.default)(renderedChildren, element, index);\n        renderedChildren[name] = renderedChild;\n        renderedChild._mountIndex = index; // Mount\n\n        var mountImage = renderedChild.mountComponent(_this._parent, _this._instance, context, function (nativeNode) {\n          if (Array.isArray(nativeNode)) {\n            for (var i = 0; i < nativeNode.length; i++) {\n              fragment.push(nativeNode[i]);\n            }\n          } else {\n            fragment.push(nativeNode);\n          }\n        });\n        return mountImage;\n      });\n      return renderedChildrenImage;\n    }\n  }, {\n    key: \"unmountComponent\",\n    value: function unmountComponent(notRemoveChild) {\n      if (this._nativeNode) {\n        _instance.default.remove(this._nativeNode);\n\n        if (!notRemoveChild) {\n          for (var i = 0; i < this._nativeNode.length; i++) {\n            _host.default.driver.removeChild(this._nativeNode[i]);\n          }\n        }\n      } // Do not need remove child when their parent is removed\n\n\n      this.unmountChildren(true);\n      this._currentElement = null;\n      this._nativeNode = null;\n      this._parent = null;\n      this._parentInstance = null;\n      this._context = null;\n      this._instance = null;\n    }\n  }, {\n    key: \"updateComponent\",\n    value: function updateComponent(prevElement, nextElement, prevContext, nextContext) {\n      // Replace current element\n      this._currentElement = nextElement;\n      this.updateChildren(this._currentElement, nextContext);\n    }\n  }, {\n    key: \"getNativeNode\",\n    value: function getNativeNode() {\n      if (this._nativeNode == null) {\n        this._nativeNode = [];\n      }\n\n      return this._nativeNode;\n    }\n  }, {\n    key: \"getPublicInstance\",\n    value: function getPublicInstance() {\n      return this.getNativeNode();\n    }\n  }, {\n    key: \"getName\",\n    value: function getName() {\n      return 'fragment';\n    }\n  }]);\n\n  return FragmentComponent;\n}(_native.default);\n\nvar _default = FragmentComponent;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _styleUnit = require(\"style-unit\");\n\nvar _elements = _interopRequireDefault(require(\"./elements\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar STYLE = 'style';\nvar ID = 'id';\nvar TEXT = 'text';\nvar CHILDREN = 'children';\nvar EVENT_PREFIX_REGEXP = /^on[A-Z]/;\nvar ARIA_PREFIX_REGEXP = /^aria-/;\nvar nodeMaps = {};\n/* global __weex_document__ */\n\nvar document = (typeof __weex_document__ === \"undefined\" ? \"undefined\" : _typeof(__weex_document__)) === 'object' ? __weex_document__ : _typeof(document) === 'object' ? document : null;\nvar Driver = {\n  deviceWidth: 750,\n  viewportWidth: 750,\n  getDeviceWidth: function getDeviceWidth() {\n    return this.deviceWidth;\n  },\n  setDeviceWidth: function setDeviceWidth(width) {\n    this.deviceWidth = width;\n  },\n  getViewportWidth: function getViewportWidth() {\n    return this.viewportWidth;\n  },\n  setViewportWidth: function setViewportWidth(width) {\n    this.viewportWidth = width;\n  },\n  getElementById: function getElementById(id) {\n    return nodeMaps[id];\n  },\n  createBody: function createBody() {\n    if (document.body) {\n      return document.body;\n    }\n\n    var documentElement = document.documentElement;\n    var body = document.createBody(Driver.bodyType, Driver.bodyProps);\n    documentElement.appendChild(body);\n    return body;\n  },\n  createComment: function createComment(content) {\n    return document.createComment(content);\n  },\n  createEmpty: function createEmpty() {\n    return this.createComment(' empty ');\n  },\n  createText: function createText(text) {\n    return Driver.createElement({\n      type: TEXT,\n      props: {\n        value: text\n      }\n    });\n  },\n  updateText: function updateText(node, content) {\n    this.setAttribute(node, 'value', content);\n  },\n  createElement: function createElement(component) {\n    var htmlElement = _elements.default[component.type];\n\n    if (htmlElement) {\n      component = htmlElement.parse(component);\n    }\n\n    var props = component.props;\n    var events = [];\n    var style = {};\n    var originStyle = props[STYLE];\n\n    for (var prop in originStyle) {\n      style[prop] = (0, _styleUnit.convertUnit)(originStyle[prop], prop);\n    }\n\n    var node = document.createElement(component.type, {\n      style: style\n    });\n    this.setNativeProps(node, props, true);\n    return node;\n  },\n  appendChild: function appendChild(node, parent) {\n    return parent.appendChild(node);\n  },\n  removeChild: function removeChild(node, parent) {\n    parent = parent || node.parentNode;\n    var id = node.attr && node.attr[ID];\n\n    if (id != null) {\n      nodeMaps[id] = null;\n    }\n\n    return parent.removeChild(node);\n  },\n  replaceChild: function replaceChild(newChild, oldChild, parent) {\n    parent = parent || oldChild.parentNode;\n    var previousSibling = oldChild.previousSibling;\n    var nextSibling = oldChild.nextSibling;\n    this.removeChild(oldChild, parent);\n\n    if (previousSibling) {\n      this.insertAfter(newChild, previousSibling, parent);\n    } else if (nextSibling) {\n      this.insertBefore(newChild, nextSibling, parent);\n    } else {\n      this.appendChild(newChild, parent);\n    }\n  },\n  insertAfter: function insertAfter(node, after, parent) {\n    parent = parent || after.parentNode;\n    return parent.insertAfter(node, after);\n  },\n  insertBefore: function insertBefore(node, before, parent) {\n    parent = parent || before.parentNode;\n    return parent.insertBefore(node, before);\n  },\n  addEventListener: function addEventListener(node, eventName, eventHandler, props) {\n    var params = props[eventName + 'EventParams'];\n    return node.addEvent(eventName, eventHandler, params);\n  },\n  removeEventListener: function removeEventListener(node, eventName, eventHandler) {\n    return node.removeEvent(eventName, eventHandler);\n  },\n  removeAllEventListeners: function removeAllEventListeners(node) {// Noop\n  },\n  removeAttribute: function removeAttribute(node, propKey, propValue) {\n    if (propKey == ID) {\n      nodeMaps[propValue] = null;\n    } // Weex native will crash when pass null value\n\n\n    return node.setAttr(propKey, undefined, false);\n  },\n  setAttribute: function setAttribute(node, propKey, propValue) {\n    if (propKey == ID) {\n      nodeMaps[propValue] = node;\n    } // Weex only support `ariaLabel` format, convert `aria-label` format to camelcase\n\n\n    if (ARIA_PREFIX_REGEXP.test(propKey)) {\n      propKey = propKey.replace(/\\-(\\w)/, function (m, p1) {\n        return p1.toUpperCase();\n      });\n    }\n\n    return node.setAttr(propKey, propValue, false);\n  },\n  setStyles: function setStyles(node, styles) {\n    // TODO if more then one style update, call setStyles will be better performance\n    for (var key in styles) {\n      var val = styles[key];\n      val = (0, _styleUnit.convertUnit)(val, key);\n      node.setStyle(key, val);\n    }\n  },\n  beforeRender: function beforeRender() {\n    // Turn off batched updates\n    document.open(); // Init rem unit\n\n    (0, _styleUnit.setRem)(this.getDeviceWidth() / this.getViewportWidth());\n  },\n  afterRender: function afterRender() {\n    if (document.listener && document.listener.createFinish) {\n      document.listener.createFinish();\n    } // Turn on batched updates\n\n\n    document.close();\n  },\n  setNativeProps: function setNativeProps(node, props, skipSetStyles) {\n    for (var prop in props) {\n      var value = props[prop];\n\n      if (prop === CHILDREN) {\n        continue;\n      }\n\n      if (value != null) {\n        if (prop === STYLE) {\n          if (skipSetStyles) {\n            continue;\n          }\n\n          this.setStyles(node, value);\n        } else if (EVENT_PREFIX_REGEXP.test(prop)) {\n          var eventName = prop.slice(2).toLowerCase();\n          this.addEventListener(node, eventName, value, props);\n        } else {\n          this.setAttribute(node, prop, value);\n        }\n      }\n    }\n  }\n};\nvar _default = Driver;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _img = _interopRequireDefault(require(\"./img\"));\n\nvar _video = _interopRequireDefault(require(\"./video\"));\n\nvar _textarea = _interopRequireDefault(require(\"./textarea\"));\n\nvar _span = _interopRequireDefault(require(\"./span\"));\n\nvar _p = _interopRequireDefault(require(\"./p\"));\n\nvar _button = _interopRequireDefault(require(\"./button\"));\n\nvar _heading = _interopRequireDefault(require(\"./heading\"));\n\nvar _block = _interopRequireDefault(require(\"./block\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = {\n  span: _span.default,\n  p: _p.default,\n  img: _img.default,\n  button: _button.default,\n  video: _video.default,\n  textarea: _textarea.default,\n  h1: _heading.default,\n  h2: _heading.default,\n  h3: _heading.default,\n  h4: _heading.default,\n  h5: _heading.default,\n  h6: _heading.default,\n  nav: _block.default,\n  article: _block.default,\n  section: _block.default,\n  // Conflict with weex header tag\n  // header: block,\n  footer: _block.default,\n  aside: _block.default,\n  main: _block.default\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _parseProps = require(\"../parseProps\");\n\nvar _default = {\n  /**\n   * parse w3c attrs to weex module attrs\n   *\n   * @param {Object} w3c component data\n   * @return {Object} weex component data\n   */\n  parse: function parse(component) {\n    var props = component.props;\n    component.type = 'image'; // modify props\n\n    component.props = (0, _parseProps.transformPropsAttrsToStyle)(props, ['width', 'height']);\n    return component;\n  }\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _parseProps = require(\"../parseProps\");\n\nvar _default = {\n  /**\n   * parse w3c attrs to weex module attrs\n   *\n   * @param {Object} w3c component data\n   * @return {Object} weex component data\n   */\n  parse: function parse(component) {\n    var props = component.props; // modify props\n\n    component.props = (0, _parseProps.transformPropsAttrsToStyle)(props, ['width', 'height']);\n    return component;\n  }\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar _default = {\n  /**\n   * parse w3c attrs to weex module attrs\n   *\n   * @param {Object} w3c component data\n   * @return {Object} weex component data\n   */\n  parse: function parse(component) {\n    var props = component.props;\n\n    if (typeof props.children === 'string' && !props.value) {\n      props.value = props.children;\n      props.children = null;\n    }\n\n    return component;\n  }\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar _default = {\n  parse: function parse(component) {\n    var props = component.props;\n    component.type = 'text';\n\n    if (typeof props.children === 'string' && !props.value) {\n      props.value = props.children;\n      props.children = null;\n    }\n\n    return component;\n  }\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar BASE_FONT_SIZE = 28;\nvar defaultParagraphStyle = {\n  fontSize: BASE_FONT_SIZE,\n  marginTop: BASE_FONT_SIZE,\n  marginBottom: BASE_FONT_SIZE\n};\nvar TypographyElements = {\n  u: {\n    textDecoration: 'underline'\n  },\n  s: {\n    textDecoration: 'line-through'\n  },\n  i: {\n    fontStyle: 'italic'\n  },\n  b: {\n    fontWeight: 'bold'\n  },\n  del: {\n    textDecoration: 'line-through'\n  },\n  em: {\n    fontStyle: 'italic'\n  },\n  strong: {\n    fontWeight: 'bold'\n  },\n  big: {\n    fontSize: BASE_FONT_SIZE * 1.2\n  },\n  small: {\n    fontSize: BASE_FONT_SIZE * 0.8\n  }\n};\n\nfunction transformString(string) {\n  return {\n    type: 'span',\n    attr: {\n      value: string\n    }\n  };\n}\n\nfunction transformChild(child) {\n  var type = child.type;\n  var props = child.props;\n  var style = props.style;\n  var nestedChildren = props.children; // Alias img tag\n\n  if (type === 'img') {\n    type = 'image';\n  } // Transfrom to span\n\n\n  if (TypographyElements[type]) {\n    style = _objectSpread({}, TypographyElements[type], style);\n    type = 'span';\n  }\n\n  props.style = null;\n  props.children = null;\n  var element = {\n    type: type,\n    style: style,\n    attr: props || {}\n  };\n\n  if (nestedChildren) {\n    if (type === 'span' && typeof nestedChildren === 'string') {\n      element.attr.value = nestedChildren;\n    } else {\n      element.children = transformChildren(nestedChildren);\n    }\n  }\n\n  return element;\n}\n\nfunction transformChildren(children) {\n  var elements = [];\n\n  if (!Array.isArray(children)) {\n    children = [children];\n  }\n\n  for (var i = 0; i < children.length; i++) {\n    var child = children[i];\n\n    if (typeof child === 'string') {\n      elements.push(transformString(child));\n    } else if (_typeof(child) === 'object') {\n      elements.push(transformChild(child));\n    }\n  }\n\n  return elements;\n}\n\nvar _default = {\n  parse: function parse(component) {\n    var props = component.props;\n    var children = props.children;\n    component.type = 'richtext';\n    props.style = _objectSpread({}, defaultParagraphStyle, props.style);\n    props.value = transformChildren(children);\n    ;\n    props.children = null;\n    return component;\n  }\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * weex button\n *\n * props: disabled, style\n */\nvar _default = {\n  parse: function parse(component) {\n    var props = component.props;\n    component.type = 'text';\n    var style = props.style,\n        disabled = props.disabled,\n        children = props.children;\n\n    var textStyle = _objectSpread({\n      textAlign: 'center',\n      fontSize: 22,\n      paddingTop: 4,\n      paddingRight: 12,\n      paddingBottom: 6,\n      paddingLeft: 12,\n      borderWidth: 4,\n      borderStyle: 'solid',\n      borderColor: '#000000',\n      backgroudColor: '#c0c0c0'\n    }, style);\n\n    if (disabled) {\n      props.onClick = null;\n      textStyle = _objectSpread({}, textStyle, {\n        color: '#7f7f7f',\n        borderColor: '#7f7f7f'\n      });\n    }\n\n    if (typeof children === 'string') {\n      props.value = children;\n      props.children = null;\n    }\n\n    return component;\n  }\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar BASE_FONT_SIZE = 28;\n\nfunction generateHeadingStyle(baseFontSize, fontMultiplier, marginMultiplier) {\n  return {\n    fontSize: baseFontSize * fontMultiplier,\n    marginTop: baseFontSize * fontMultiplier * marginMultiplier,\n    marginBottom: baseFontSize * fontMultiplier * marginMultiplier,\n    fontWeight: 'bold'\n  };\n}\n\nvar HeadingElements = {\n  h1: generateHeadingStyle(BASE_FONT_SIZE, 2, 0.67),\n  h2: generateHeadingStyle(BASE_FONT_SIZE, 1.5, 0.83),\n  h3: generateHeadingStyle(BASE_FONT_SIZE, 1.17, 1),\n  h4: generateHeadingStyle(BASE_FONT_SIZE, 1, 1.33),\n  h5: generateHeadingStyle(BASE_FONT_SIZE, 0.83, 1.67),\n  h6: generateHeadingStyle(BASE_FONT_SIZE, 0.67, 2.33)\n};\nvar _default = {\n  parse: function parse(component) {\n    var type = component.type,\n        props = component.props;\n    component.type = 'text';\n    props.style = _objectSpread({}, HeadingElements[type] || HeadingElements.h6, props.style);\n\n    if (typeof props.children === 'string' && !props.value) {\n      props.value = props.children;\n      props.children = null;\n    }\n\n    return component;\n  }\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar _default = {\n  /**\n   * parse w3c attrs to weex module attrs\n   *\n   * @param {Object} w3c component data\n   * @return {Object} weex component data\n   */\n  parse: function parse(component) {\n    component.type = 'div';\n    return component;\n  }\n};\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _styleUnit = require(\"style-unit\");\n\nvar _flexbox = _interopRequireDefault(require(\"./flexbox\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar DANGEROUSLY_SET_INNER_HTML = 'dangerouslySetInnerHTML';\nvar CLASS_NAME = 'className';\nvar CLASS = 'class';\nvar STYLE = 'style';\nvar CHILDREN = 'children';\nvar EVENT_PREFIX_REGEXP = /^on[A-Z]/;\nvar SVG_NS = 'http://www.w3.org/2000/svg';\nvar ADD_EVENT = 'addEvent';\nvar REMOVE_EVENT = 'removeEvent';\nvar TEXT_CONTENT_ATTR = (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object' && 'textContent' in document ? 'textContent' : 'nodeValue';\nvar Driver = {\n  tagPrefix: '',\n  deviceWidth: typeof DEVICE_WIDTH !== 'undefined' && DEVICE_WIDTH || null,\n  viewportWidth: typeof VIEWPORT_WIDTH !== 'undefined' && VIEWPORT_WIDTH || 750,\n  eventRegistry: {},\n  setTagPrefix: function setTagPrefix(prefix) {\n    this.tagPrefix = prefix;\n  },\n  getDeviceWidth: function getDeviceWidth() {\n    return this.deviceWidth || document.documentElement.clientWidth;\n  },\n  setDeviceWidth: function setDeviceWidth(width) {\n    this.deviceWidth = width;\n  },\n  getViewportWidth: function getViewportWidth() {\n    return this.viewportWidth;\n  },\n  setViewportWidth: function setViewportWidth(width) {\n    this.viewportWidth = width;\n  },\n  getElementById: function getElementById(id) {\n    return document.getElementById(id);\n  },\n  createBody: function createBody() {\n    return document.body;\n  },\n  createComment: function createComment(content) {\n    return document.createComment(content);\n  },\n  createEmpty: function createEmpty() {\n    return this.createComment(' empty ');\n  },\n  createText: function createText(text) {\n    return document.createTextNode(text);\n  },\n  updateText: function updateText(node, text) {\n    node[TEXT_CONTENT_ATTR] = text;\n  },\n  // driver's flag indicating if the diff is currently within an SVG\n  isSVGMode: false,\n  createElement: function createElement(component) {\n    var parent = component._internal._parent;\n    this.isSVGMode = component.type === 'svg' || parent && parent.namespaceURI === SVG_NS;\n    var node;\n\n    if (this.isSVGMode) {\n      node = document.createElementNS(SVG_NS, component.type);\n    } else {\n      node = document.createElement(this.tagPrefix + component.type);\n    }\n\n    var props = component.props;\n    this.setNativeProps(node, props);\n    return node;\n  },\n  appendChild: function appendChild(node, parent) {\n    return parent.appendChild(node);\n  },\n  removeChild: function removeChild(node, parent) {\n    parent = parent || node.parentNode; // Maybe has been removed when remove child\n\n    if (parent) {\n      parent.removeChild(node);\n    }\n  },\n  replaceChild: function replaceChild(newChild, oldChild, parent) {\n    parent = parent || oldChild.parentNode;\n    parent.replaceChild(newChild, oldChild);\n  },\n  insertAfter: function insertAfter(node, after, parent) {\n    parent = parent || after.parentNode;\n    var nextSibling = after.nextSibling;\n\n    if (nextSibling) {\n      parent.insertBefore(node, nextSibling);\n    } else {\n      parent.appendChild(node);\n    }\n  },\n  insertBefore: function insertBefore(node, before, parent) {\n    parent = parent || before.parentNode;\n    parent.insertBefore(node, before);\n  },\n  addEventListener: function addEventListener(node, eventName, eventHandler, props) {\n    if (this.eventRegistry[eventName]) {\n      return this.eventRegistry[eventName](ADD_EVENT, node, eventName, eventHandler, props);\n    } else {\n      return node.addEventListener(eventName, eventHandler);\n    }\n  },\n  removeEventListener: function removeEventListener(node, eventName, eventHandler, props) {\n    if (this.eventRegistry[eventName]) {\n      return this.eventRegistry[eventName](REMOVE_EVENT, node, eventName, eventHandler, props);\n    } else {\n      return node.removeEventListener(eventName, eventHandler);\n    }\n  },\n  removeAllEventListeners: function removeAllEventListeners(node) {// noop\n  },\n  removeAttribute: function removeAttribute(node, propKey) {\n    if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n      return node.innerHTML = null;\n    }\n\n    if (propKey === CLASS_NAME) {\n      propKey = CLASS;\n    }\n\n    if (propKey in node) {\n      try {\n        // Some node property is readonly when in strict mode\n        node[propKey] = null;\n      } catch (e) {}\n    }\n\n    node.removeAttribute(propKey);\n  },\n  setAttribute: function setAttribute(node, propKey, propValue) {\n    if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n      return node.innerHTML = propValue.__html;\n    }\n\n    if (propKey === CLASS_NAME) {\n      propKey = CLASS;\n    }\n\n    if (propKey in node) {\n      try {\n        // Some node property is readonly when in strict mode\n        node[propKey] = propValue;\n      } catch (e) {\n        node.setAttribute(propKey, propValue);\n      }\n    } else {\n      node.setAttribute(propKey, propValue);\n    }\n  },\n  setStyles: function setStyles(node, styles) {\n    var tranformedStyles = {};\n\n    for (var prop in styles) {\n      var val = styles[prop];\n\n      if (_flexbox.default.isFlexProp(prop)) {\n        _flexbox.default[prop](val, tranformedStyles);\n      } else {\n        tranformedStyles[prop] = (0, _styleUnit.convertUnit)(val, prop);\n      }\n    }\n\n    for (var _prop in tranformedStyles) {\n      var transformValue = tranformedStyles[_prop]; // hack handle compatibility issue\n\n      if (Array.isArray(transformValue)) {\n        for (var i = 0; i < transformValue.length; i++) {\n          node.style[_prop] = transformValue[i];\n        }\n      } else {\n        node.style[_prop] = transformValue;\n      }\n    }\n  },\n  beforeRender: function beforeRender() {\n    // Init rem unit\n    (0, _styleUnit.setRem)(this.getDeviceWidth() / this.getViewportWidth());\n  },\n  setNativeProps: function setNativeProps(node, props) {\n    for (var prop in props) {\n      var value = props[prop];\n\n      if (prop === CHILDREN) {\n        continue;\n      }\n\n      if (value != null) {\n        if (prop === STYLE) {\n          this.setStyles(node, value);\n        } else if (EVENT_PREFIX_REGEXP.test(prop)) {\n          var eventName = prop.slice(2).toLowerCase();\n          this.addEventListener(node, eventName, value);\n        } else {\n          this.setAttribute(node, prop, value);\n        }\n      }\n    }\n  }\n};\nvar _default = Driver;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar BOX_ALIGN = {\n  stretch: 'stretch',\n  'flex-start': 'start',\n  'flex-end': 'end',\n  center: 'center'\n};\nvar BOX_ORIENT = {\n  row: 'horizontal',\n  column: 'vertical'\n};\nvar BOX_PACK = {\n  'flex-start': 'start',\n  'flex-end': 'end',\n  center: 'center',\n  'space-between': 'justify',\n  'space-around': 'justify' // Just same as `space-between`\n\n};\nvar FLEX_PROPS = {\n  display: true,\n  flex: true,\n  alignItems: true,\n  alignSelf: true,\n  flexDirection: true,\n  justifyContent: true,\n  flexWrap: true\n};\nvar Flexbox = {\n  isFlexProp: function isFlexProp(prop) {\n    return FLEX_PROPS[prop];\n  },\n  display: function display(value) {\n    var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    if (value === 'flex') {\n      style.display = ['-webkit-box', '-webkit-flex', 'flex'];\n    } else {\n      style.display = value;\n    }\n\n    return style;\n  },\n  flex: function flex(value) {\n    var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    style.webkitBoxFlex = value;\n    style.webkitFlex = value;\n    style.flex = value;\n    return style;\n  },\n  flexWrap: function flexWrap(value) {\n    var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    style.webkitFlexWrap = value;\n    style.flexWrap = value;\n    return style;\n  },\n  alignItems: function alignItems(value) {\n    var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    style.webkitBoxAlign = BOX_ALIGN[value];\n    style.webkitAlignItems = value;\n    style.alignItems = value;\n    return style;\n  },\n  alignSelf: function alignSelf(value) {\n    var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    style.webkitAlignSelf = value;\n    style.alignSelf = value;\n    return style;\n  },\n  flexDirection: function flexDirection(value) {\n    var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    style.webkitBoxOrient = BOX_ORIENT[value];\n    style.webkitFlexDirection = value;\n    style.flexDirection = value;\n    return style;\n  },\n  justifyContent: function justifyContent(value) {\n    var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    style.webkitBoxPack = BOX_PACK[value];\n    style.webkitJustifyContent = value;\n    style.justifyContent = value;\n    return style;\n  }\n};\nvar _default = Flexbox;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _render = _interopRequireDefault(require(\"./render\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction hydrate(element, container, options, callback) {\n  // Handle server rendered element\n  if (container.childNodes) {\n    // Clone childNodes, Because removeChild will causing change in childNodes length\n    var childNodes = _toConsumableArray(container.childNodes);\n\n    for (var i = 0; i < childNodes.length; i++) {\n      var rootChildNode = childNodes[i];\n      container.removeChild(rootChildNode);\n    }\n  }\n\n  return (0, _render.default)(element, container, options, callback);\n  ;\n}\n\nvar _default = hydrate;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = createPortal;\n\nvar _component = _interopRequireDefault(require(\"./component\"));\n\nvar _render = _interopRequireDefault(require(\"./render\"));\n\nvar _unmountComponentAtNode = _interopRequireDefault(require(\"./unmountComponentAtNode\"));\n\nvar _element = require(\"./element\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Portal =\n/*#__PURE__*/\nfunction (_Component) {\n  _inherits(Portal, _Component);\n\n  function Portal(props, context) {\n    _classCallCheck(this, Portal);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(Portal).call(this, props, context));\n  }\n\n  _createClass(Portal, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.renderPortal();\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      if (prevProps.container !== this.props.container) {\n        (0, _unmountComponentAtNode.default)(prevProps.container);\n      }\n\n      this.renderPortal();\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      (0, _unmountComponentAtNode.default)(this.props.container);\n    }\n  }, {\n    key: \"renderPortal\",\n    value: function renderPortal() {\n      (0, _render.default)(this.props.element, this.props.container, {\n        parent: this\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      return null;\n    }\n  }]);\n\n  return Portal;\n}(_component.default);\n\nfunction createPortal(element, container) {\n  return (0, _element.createElement)(Portal, {\n    element: element,\n    container: container\n  });\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _instance = _interopRequireDefault(require(\"./vdom/instance\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction findComponentInstance(node) {\n  if (node == null) {\n    return null;\n  }\n\n  return _instance.default.get(node);\n}\n\nvar _default = findComponentInstance;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = setNativeProps;\n\nvar _host = _interopRequireDefault(require(\"./vdom/host\"));\n\nvar _findDOMNode = _interopRequireDefault(require(\"./findDOMNode\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction setNativeProps(node, props) {\n  node = (0, _findDOMNode.default)(node);\n\n  _host.default.driver.setNativeProps(node, props);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar _default = '0.6.5';\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _flattenChildren = _interopRequireDefault(require(\"./flattenChildren\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction convertChildrenToArray(children) {\n  // flatten children\n  children = (0, _flattenChildren.default)(children, []);\n  return Array.isArray(children) ? children : [].concat(children);\n}\n\nvar Children = {\n  map: function map(children, fn, ctx) {\n    if (children == null) return null;\n    children = convertChildrenToArray(children);\n    return children.map(function (child, index) {\n      return fn.call(ctx, child, index);\n    });\n  },\n  forEach: function forEach(children, fn, ctx) {\n    if (children == null) return null;\n    children = convertChildrenToArray(children);\n    children.forEach(function (child, index) {\n      return fn.call(ctx, child, index);\n    });\n  },\n  count: function count(children) {\n    if (children == null) return 0;\n    return convertChildrenToArray(children).length;\n  },\n  only: function only(children) {\n    // `only` receive rax element child\n    // null value is not acceptable\n    children = Children.toArray(children);\n    if (children.length !== 1) throw new Error('Children.only: expected to receive a single element child.');\n    return children[0];\n  },\n  toArray: function toArray(children) {\n    if (children == null) return []; // `toArray` filter null value\n\n    return convertChildrenToArray(children).filter(function (child) {\n      return child !== null;\n    });\n  }\n};\nvar _default = Children;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = createContext;\n\nvar _component = _interopRequireDefault(require(\"./component\"));\n\nvar _proptypes = _interopRequireDefault(require(\"./proptypes\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar ValueEmitter =\n/*#__PURE__*/\nfunction () {\n  function ValueEmitter(defaultValue) {\n    _classCallCheck(this, ValueEmitter);\n\n    this.handlers = [];\n    this.value = defaultValue;\n  }\n\n  _createClass(ValueEmitter, [{\n    key: \"on\",\n    value: function on(handler) {\n      this.handlers.push(handler);\n    }\n  }, {\n    key: \"off\",\n    value: function off(handler) {\n      this.handlers = this.handlers.filter(function (h) {\n        return h !== handler;\n      });\n    }\n  }, {\n    key: \"emit\",\n    value: function emit(value) {\n      this.value = value;\n      this.handlers.forEach(function (handler) {\n        return handler(value);\n      });\n    }\n  }]);\n\n  return ValueEmitter;\n}();\n\nvar uniqueId = 0;\n\nfunction createContext(defaultValue) {\n  var contextProp = '__context_' + uniqueId++ + '__';\n\n  var Provider =\n  /*#__PURE__*/\n  function (_Component) {\n    _inherits(Provider, _Component);\n\n    function Provider() {\n      var _getPrototypeOf2;\n\n      var _this;\n\n      _classCallCheck(this, Provider);\n\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n\n      _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Provider)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"emitter\", new ValueEmitter(defaultValue));\n\n      return _this;\n    }\n\n    _createClass(Provider, [{\n      key: \"getChildContext\",\n      value: function getChildContext() {\n        return _defineProperty({}, contextProp, this.emitter);\n      }\n    }, {\n      key: \"componentWillMount\",\n      value: function componentWillMount() {\n        if (this.props.value !== undefined) {\n          this.emitter.value = this.props.value;\n        }\n      }\n    }, {\n      key: \"componentWillReceiveProps\",\n      value: function componentWillReceiveProps(nextProps) {\n        if (this.props.value !== nextProps.value) {\n          this.emitter.emit(nextProps.value);\n        }\n      }\n    }, {\n      key: \"render\",\n      value: function render() {\n        return this.props.children;\n      }\n    }]);\n\n    return Provider;\n  }(_component.default);\n\n  _defineProperty(Provider, \"childContextTypes\", _defineProperty({}, contextProp, _proptypes.default.object));\n\n  var Consumer =\n  /*#__PURE__*/\n  function (_Component2) {\n    _inherits(Consumer, _Component2);\n\n    function Consumer() {\n      var _getPrototypeOf3;\n\n      var _this2;\n\n      _classCallCheck(this, Consumer);\n\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n\n      _this2 = _possibleConstructorReturn(this, (_getPrototypeOf3 = _getPrototypeOf(Consumer)).call.apply(_getPrototypeOf3, [this].concat(args)));\n\n      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), \"state\", {\n        value: _this2.context[contextProp] ? _this2.context[contextProp].value : defaultValue\n      });\n\n      _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), \"onUpdate\", function (value) {\n        return _this2.setState({\n          value: value\n        });\n      });\n\n      return _this2;\n    }\n\n    _createClass(Consumer, [{\n      key: \"componentDidMount\",\n      value: function componentDidMount() {\n        if (this.context[contextProp]) {\n          this.context[contextProp].on(this.onUpdate);\n        }\n      }\n    }, {\n      key: \"componentWillUnmount\",\n      value: function componentWillUnmount() {\n        if (this.context[contextProp]) {\n          this.context[contextProp].off(this.onUpdate);\n        }\n      }\n    }, {\n      key: \"render\",\n      value: function render() {\n        var children = this.props.children;\n        var consumer = Array.isArray(children) ? children[0] : children;\n\n        if (typeof consumer === 'function') {\n          return consumer(this.state.value);\n        }\n      }\n    }]);\n\n    return Consumer;\n  }(_component.default);\n\n  _defineProperty(Consumer, \"contextTypes\", _defineProperty({}, contextProp, _proptypes.default.object));\n\n  return {\n    Provider: Provider,\n    Consumer: Consumer\n  };\n}\n\nmodule.exports = exports[\"default\"];"],"sourceRoot":""}