{"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/rax/lib/vdom/instantiateComponent.js","webpack:///./packages/runtime-shared/lib/symbol.js","webpack:///./packages/rax/lib/render.js","webpack:///./packages/rax/lib/vdom/shouldUpdateComponent.js","webpack:///./packages/rax/lib/unmountComponentAtNode.js","webpack:///./packages/rax/lib/element.js","webpack:///./packages/rax/lib/findDOMNode.js","webpack:///./packages/driver-weex/lib/parseProps.js","webpack:///./packages/rax/lib/vdom/getElementKeyName.js","webpack:///./packages/rax/lib/vdom/ref.js","webpack:///./packages/rax/lib/vdom/native.js","webpack:///./packages/rax/lib/proptypes.js","webpack:///./packages/universal-env/lib/index.js","webpack:///./packages/rax/lib/flattenChildren.js","webpack:///./packages/rax/lib/debug/hook.js","webpack:///./packages/runtime-shared/lib/url-search-params.js","webpack:///./packages/rax/lib/createContext.js","webpack:///./packages/rax/lib/children.js","webpack:///./packages/rax/lib/version.js","webpack:///./packages/rax/lib/setNativeProps.js","webpack:///./packages/rax/lib/findComponentInstance.js","webpack:///./packages/rax/lib/createPortal.js","webpack:///./packages/rax/lib/hydrate.js","webpack:///./packages/driver-browser/lib/flexbox.js","webpack:///./packages/driver-browser/node_modules/style-unit/lib/index.js","webpack:///./packages/driver-browser/lib/index.js","webpack:///./packages/driver-weex/lib/elements/block.js","webpack:///./packages/driver-weex/lib/elements/heading.js","webpack:///./packages/driver-weex/lib/elements/button.js","webpack:///./packages/driver-weex/lib/elements/p.js","webpack:///./packages/driver-weex/lib/elements/span.js","webpack:///./packages/driver-weex/lib/elements/textarea.js","webpack:///./packages/driver-weex/lib/elements/video.js","webpack:///./packages/driver-weex/lib/elements/img.js","webpack:///./packages/driver-weex/lib/elements/index.js","webpack:///./packages/driver-weex/node_modules/style-unit/lib/index.js","webpack:///./packages/driver-weex/lib/index.js","webpack:///./packages/rax/lib/vdom/fragment.js","webpack:///./packages/rax/lib/vdom/shallowEqual.js","webpack:///./packages/rax/lib/vdom/updater.js","webpack:///./packages/rax/lib/vdom/stateless.js","webpack:///./packages/rax/lib/vdom/composite.js","webpack:///./packages/rax/lib/vdom/text.js","webpack:///./packages/rax/lib/vdom/empty.js","webpack:///./packages/rax/lib/inject.js","webpack:///./packages/rax/lib/purecomponent.js","webpack:///./packages/rax/lib/vdom/root.js","webpack:///./packages/rax/lib/debug/devtools.js","webpack:///./packages/rax/lib/index.js","webpack:///./packages/web-rax-framework/src/intersectionObserver.js","webpack:///./packages/web-rax-framework/src/appearRegistry.js","webpack:///./packages/web-rax-framework/src/appear.js","webpack:///./packages/web-rax-framework/src/require.js","webpack:///./packages/web-rax-framework/node_modules/performance-now/lib/performance-now.js","webpack:///./packages/web-rax-framework/node_modules/raf/index.js","webpack:///./packages/web-rax-framework/node_modules/raf/polyfill.js","webpack:///./packages/web-rax-framework/node_modules/whatwg-fetch/fetch.js","webpack:///./packages/web-rax-framework/src/array.js","webpack:///./packages/web-rax-framework/src/object.js","webpack:///./packages/web-rax-framework/src/number.js","webpack:///./packages/runtime-shared/lib/matchMedia.js","webpack:///./packages/runtime-shared/lib/url.js","webpack:///./packages/runtime-shared/lib/fontface.js","webpack:///./packages/runtime-shared/lib/weakset.js","webpack:///./packages/runtime-shared/lib/weakmap.js","webpack:///./packages/runtime-shared/lib/set.js","webpack:///./packages/runtime-shared/lib/map.js","webpack:///./packages/runtime-shared/lib/promise.js","webpack:///./packages/runtime-shared/lib/index.js","webpack:///./packages/web-rax-framework/src/index.js"],"names":["Object","defineProperty","exports","value","default","component","mountID","sandbox","rootComponents","rootInstances","hook","driver","monitor","module","_host","require","_host2","_interopRequireDefault","_element","_unmountComponentAtNode","_unmountComponentAtNode2","_instantiateComponent","_instantiateComponent2","_shouldUpdateComponent","_shouldUpdateComponent2","_root","_root2","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","_createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","key","Constructor","protoProps","staticProps","prototype","_classCallCheck","TypeError","Component","context","updater","refs","isComponentClass","setState","partialState","callback","forceUpdate","_typeof","Symbol","iterator","constructor","instantiateComponent","undefined","EmptyComponent","Array","isArray","FragmentComponent","type","NativeComponent","CompositeComponent","TextComponent","Error","keys","_mountIndex","SymbolPolyfill","HiddenSymbol","globalSymbols","create","isSymbol","x","name","toStringTag","validateSymbol","generateName","created","desc","postfix","_Symbol","description","_Symbol2","symbol","String","__description__","__name__","for","keyFor","s","hasInstance","isConcatSpreadable","match","replace","search","species","split","toPrimitive","unscopables","toString","valueOf","_inject","_inject2","_instance","_instance2","render","options","rootComponent","parent","componentInstance","getPublicInstance","call","shouldUpdateComponent","nextElement","prevEmpty","nextEmpty","prevType","nextType","unmountComponentAtNode","createFactory","cloneElement","isValidElement","_flattenChildren","_flattenChildren2","_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","findDOMNode","ownerDocument","nodeType","_nativeNode","getElementById","internal","_renderedComponent","transformPropsAttrsToStyle","renamePropsAttr","attrs","forEach","attr","originalAttrName","newAttrName","index","elementKey","hasKey","defaultName","keyName","keyUnique","console","warn","update","prevRef","nextRef","detach","attach","ownerComponent","_ref","_ref2","_getElementKeyName","_getElementKeyName2","STYLE","CHILDREN","TREE","EVENT_PREFIX_REGEXP","childMounter","_parent","_parentInstance","_mountID","appendType","append","_prevStyleCopy","nativeNode","getNativeNode","appendChild","mountChildren","_this","renderedChildren","_renderedChildren","renderedChildrenImage","renderedChild","mountImage","unmountChildren","notRemoveChild","removeChild","removeAllEventListeners","prevContext","nextContext","prevProps","nextProps","updateProperties","updateChildren","receiveComponent","propKey","styleName","styleUpdates","lastStyle","test","removeEventListener","slice","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","concat","Math","max","newChild","oldChild","lastNewChild","_i2","child","replaceChild","_i3","prevFirstNativeNode","_i4","_child","insertBefore","_ret2","splice","push","createChainableTypeChecker","validate","checkType","isRequired","componentName","location","propFullName","typeChecker","chainedCheckType","createTypeChecker","expectedType","array","bool","func","number","string","any","arrayOf","instanceOf","objectOf","oneOf","oneOfType","shape","isWeb","navigator","appCodeName","product","isNode","process","versions","callNative","WXEnvironment","platform","isReactNative","__fbBatchedBridgeConfig","flattenChildren","traverseChildren","l","ComponentTree","getClosestInstanceFromNode","getNodeFromInstance","inst","_instancesByReactRootID","_symbol","_symbol2","find","plus","replacer","secret","encode","str","encodeURIComponent","decode","decodeURIComponent","URLSearchParams","query","charAt","pairs","indexOf","dict","_delete","getAll","has","thisArg","getOwnPropertyNames","items","next","shift","done","values","entries","createContext","_component","_component2","_proptypes","_proptypes2","_defineProperty","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","setPrototypeOf","__proto__","ValueEmitter","defaultValue","handlers","on","handler","off","filter","h","emit","uniqueId","contextProp","Provider","_Component","_temp","_ret","args","getPrototypeOf","apply","emitter","getChildContext","componentWillMount","componentWillReceiveProps","childContextTypes","Consumer","_Component2","_ref3","_temp2","_len2","_key2","state","onUpdate","componentDidMount","componentWillUnmount","consumer","contextTypes","convertChildrenToArray","Children","fn","ctx","count","only","toArray","setNativeProps","_findDOMNode","_findDOMNode2","findComponentInstance","createPortal","_render","_render2","Portal","renderPortal","componentDidUpdate","_toConsumableArray","arr","arr2","from","hydrate","childNodes","rootChildNode","BOX_ALIGN","stretch","center","BOX_ORIENT","row","column","BOX_PACK","FLEX_PROPS","display","flex","alignItems","alignSelf","flexDirection","justifyContent","flexWrap","Flexbox","isFlexProp","prop","webkitBoxFlex","webkitFlex","webkitFlexWrap","webkitBoxAlign","webkitAlignItems","webkitAlignSelf","webkitBoxOrient","webkitFlexDirection","webkitBoxPack","webkitJustifyContent","_styleUnit","_flexbox","_flexbox2","DANGEROUSLY_SET_INNER_HTML","CLASS_NAME","CLASS","ADD_EVENT","REMOVE_EVENT","TEXT_CONTENT_ATTR","document","SVG_NS","SVG_TAG_LIST","Driver","deviceWidth","DEVICE_WIDTH","viewportWidth","VIEWPORT_WIDTH","eventRegistry","getDeviceWidth","documentElement","clientWidth","setDeviceWidth","width","getViewportWidth","setViewportWidth","id","body","createComment","content","createEmpty","createText","text","createTextNode","updateText","createElementNS","parentNode","after","nextSibling","before","eventHandler","innerHTML","e","propValue","__html","styles","tranformedStyles","convertUnit","_prop","transformValue","setRem","parse","_extends","source","BASE_FONT_SIZE","generateHeadingStyle","baseFontSize","fontMultiplier","marginMultiplier","fontSize","marginTop","marginBottom","fontWeight","HeadingElements","h1","h2","h3","h4","h5","h6","disabled","textStyle","textAlign","paddingTop","paddingRight","paddingBottom","paddingLeft","borderWidth","borderStyle","borderColor","backgroudColor","onClick","color","defaultParagraphStyle","TypographyElements","u","textDecoration","fontStyle","b","del","em","strong","big","small","transformString","transformChild","nestedChildren","transformChildren","elements","_parseProps","_img","_img2","_video","_video2","_textarea","_textarea2","_span","_span2","_p","_p2","_button","_button2","_heading","_heading2","_block","_block2","span","p","img","button","video","textarea","nav","article","section","footer","aside","main","_elements","_elements2","ID","TEXT","ARIA_PREFIX_REGEXP","nodeMaps","__weex_document__","bodyType","bodyProps","htmlElement","events","originStyle","previousSibling","params","addEvent","removeEvent","setAttr","m","p1","toUpperCase","setStyle","open","listener","createFinish","close","skipSetStyles","_native","_native2","_NativeComponent","fragment","isFragmentParent","is","y","shallowEqual","objA","objB","keysA","keysB","enqueueCallback","callbackQueue","_pendingCallbacks","enqueueState","stateQueue","_pendingStateQueue","Updater","_pendingState","runUpdate","_pendingForceUpdate","callbacks","runCallbacks","StatelessComponent","pureRender","_stateless","_stateless2","_updater","_updater2","_shallowEqual","_shallowEqual2","performInSandbox","handleError","error","boundary","componentDidCatch","setTimeout","measureLifeCycle","displayName","_updateCount","publicProps","isClass","isStatelessClass","publicContext","_processContext","renderedElement","initialState","errorCallback","_processPendingState","maskedContext","contextName","currentContext","childContext","queue","nextState","partial","nextUnmaskedContext","willReceive","hasReceived","shouldUpdate","prevState","shouldComponentUpdate","isPureComponentClass","componentWillUpdate","_updateRenderedComponent","prevRenderedElement","nextRenderedElement","_stringText","inject","_empty","_empty2","_text","_text2","_composite","_composite2","_fragment","_fragment2","_driverWeex","_driverWeex2","_driverBrowser","_driverBrowser2","_hook","_hook2","measurer","PureComponent","rootCounter","Root","__REACT_DEVTOOLS_GLOBAL_HOOK__","version","PropTypes","_purecomponent","_purecomponent2","_render3","_hydrate2","_hydrate3","_createPortal2","_createPortal3","_findDOMNode3","_unmountComponentAtNode3","_findComponentInstance2","_findComponentInstance3","_setNativeProps2","_setNativeProps3","_version2","_version3","_children","_children2","_createContext2","_createContext3","observerElement","isExistIntersection","createIntersectionObserver","root","rootMargin","threshold","appearEvt","disappearEvt","intersectionObserver","initIntersection","createEvent","initEvent","IntersectionObserver","handleIntersect","entry","boundingClientRect","intersectionRatio","dataset","appeared","dispatchEvent","observe","getOffset","pushElement","offsetTop","_appearDoms","AppearRegistry","current","window","wait","cls","once","onReset","onAppear","onDisappear","appearWatchElements","initConfig","opts","extend","getElements","bindEvent","el","k","offset","getBoundingClientRect","top","right","bottom","left","nodes","raf","calculate","containerOffset","isOnce","ev","ele","_hasAppear","checkEveryDom","cacheAppearEvt","cacheDisappearEvt","pos","eleOffset","direction","getDirection","_eleOffset","isInView","inViewport","appear","_appear","_hasDisAppear","handle","throttle","check","__handle","beforeOffset","nowOffset","horizental","vertical","requestAnimationFrame","webkitRequestAnimationFrame","c","timeout","previous","later","Date","now","remaining","clearTimeout","param","r","t","innerWidth","innerHeight","appended","Boolean","getAttribute","existIntersection","injectEventListenerHook","instances","Registry","control","nativeAddEventListener","Node","nativeRemoveEventListener","useCapture","doNotWatch","lowerCaseEventName","isAppearEvent","global","define","modules","inGuard","def","deps","Function","isInitialized","hasError","req","originId","mod","requireImpl","ErrorUtils","returnValue","reportFatalError","toStr","isCallable","toInteger","Number","isNaN","isFinite","floor","abs","maxSafeInteger","pow","toLength","len","min","arrayLike","C","mapFn","T","A","kValue","sources","nextSource","descriptors","property","magic","O","proto","getOwnPropertyDescriptor","polyfill","RE_MEDIA_QUERY","RE_MQ_EXPRESSION","RE_MQ_FEATURE","_matches","media","_parseQuery","some","inverse","typeMatch","expressionsMatch","expressions","every","expression","feature","modifier","expValue","parseFloat","trim","captures","SyntaxError","parsed","matchMedia","mql","matches","screen","height","relative","ftp","file","gopher","http","https","ws","wss","relativePathDotMapping","isRelativeScheme","scheme","invalid","clear","_isInvalid","IDNAToASCII","percentEscape","unicode","charCodeAt","percentEscapeQuery","EOF","ALPHA","ALPHANUMERIC","input","stateOverride","base","err","message","errors","cursor","buffer","seenAt","seenBracket","loop","_scheme","_isRelative","_schemeData","_port","_path","_query","_username","_password","nextC","nextNextC","pop","cp","tempC","temp","parseInt","tmp","URL","url","_url","href","authority","protocol","host","pathname","hostname","port","searchParams","hash","origin","FontFace","family","counter","WeakSet","data","random","add","delete","WeakMap","item","undefMarker","NaNMarker","ACCESSOR_SUPPORT","encodeVal","decodeVal","encodedData","NaN","makeIterator","setInst","getter","nextIdx","_values","calcSize","size","Set","idx","callbackFn","encodeKey","decodeKey","encodedKey","mapInst","_keys","hasProtoMethod","method","Map","noop","asap","setImmediate","onUnhandledRejection","log","Promise","_state","_handled","_value","_deferreds","doResolve","deferred","cb","onFulfilled","onRejected","resolve","reject","promise","ret","newValue","then","finale","Handler","reason","ex","catch","prom","all","res","race","_setImmediateFn","_setUnhandledRejectionFn","shared","fonts","fontFace","fontFaceRule","styleElement","head"],"mappings":"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A;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1EA;;;;;;;ACAA;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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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 = 72);\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n/*\n * Stateful things in runtime\n */\nexports.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};\nmodule.exports = exports[\"default\"];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _host = require('./host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nvar _element = require('../element');\n\nvar _unmountComponentAtNode = require('../unmountComponentAtNode');\n\nvar _unmountComponentAtNode2 = _interopRequireDefault(_unmountComponentAtNode);\n\nvar _instantiateComponent = require('./instantiateComponent');\n\nvar _instantiateComponent2 = _interopRequireDefault(_instantiateComponent);\n\nvar _shouldUpdateComponent = require('./shouldUpdateComponent');\n\nvar _shouldUpdateComponent2 = _interopRequireDefault(_shouldUpdateComponent);\n\nvar _root = require('./root');\n\nvar _root2 = _interopRequireDefault(_root);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Instance manager\n */\nvar KEY = '$$instance';\n\nexports.default = {\n  set: function set(node, instance) {\n    if (!node[KEY]) {\n      node[KEY] = instance;\n      // Record root instance to roots map\n      if (instance.rootID) {\n        _host2.default.rootInstances[instance.rootID] = instance;\n        _host2.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    if (instance) {\n      node[KEY] = null;\n      if (instance.rootID) {\n        delete _host2.default.rootComponents[instance.rootID];\n        delete _host2.default.rootInstances[instance.rootID];\n      }\n    }\n  },\n  mount: function mount(element, container, parentInstance) {\n    if (process.env.NODE_ENV !== 'production') {\n      _host2.default.measurer && _host2.default.measurer.beforeRender();\n    }\n\n    // Before render callback\n    _host2.default.driver.beforeRender && _host2.default.driver.beforeRender();\n\n    // Real native root node is body\n    if (container == null) {\n      container = _host2.default.driver.createBody();\n    }\n\n    // Get the context from the conceptual parent component.\n    var parentContext = void 0;\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      if ((0, _shouldUpdateComponent2.default)(prevElement, element)) {\n        var prevUnmaskedContext = prevRenderedComponent._context;\n        prevRenderedComponent.updateComponent(prevElement, element, prevUnmaskedContext, parentContext || prevUnmaskedContext);\n\n        return prevRootInstance;\n      } else {\n        _host2.default.hook.Reconciler.unmountComponent(prevRootInstance);\n        (0, _unmountComponentAtNode2.default)(container);\n      }\n    }\n\n    var wrappedElement = (0, _element.createElement)(_root2.default, null, element);\n    var renderedComponent = (0, _instantiateComponent2.default)(wrappedElement);\n    var defaultContext = parentContext || {};\n    var rootInstance = renderedComponent.mountComponent(container, null, defaultContext);\n    this.set(container, rootInstance);\n\n    // After render callback\n    _host2.default.driver.afterRender && _host2.default.driver.afterRender(rootInstance);\n\n    // Devtool render new root hook\n    _host2.default.hook.Mount._renderNewRootComponent(rootInstance._internal);\n\n    if (process.env.NODE_ENV !== 'production') {\n      _host2.default.measurer && _host2.default.measurer.afterRender();\n    }\n\n    return rootInstance;\n  }\n};\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base component class.\n */\nvar Component = function () {\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\nexports.default = Component;\nmodule.exports = exports[\"default\"];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _host = require('./host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction instantiateComponent(element) {\n  var instance = void 0;\n\n  if (element === undefined || element === null || element === false || element === true) {\n    instance = new _host2.default.EmptyComponent();\n  } else if (Array.isArray(element)) {\n    instance = new _host2.default.FragmentComponent(element);\n  } else if ((typeof element === 'undefined' ? 'undefined' : _typeof(element)) === 'object' && element.type) {\n    // Special case string values\n    if (typeof element.type === 'string') {\n      instance = new _host2.default.NativeComponent(element);\n    } else {\n      instance = new _host2.default.CompositeComponent(element);\n    }\n  } else if (typeof element === 'string' || typeof element === 'number') {\n    instance = new _host2.default.TextComponent(element);\n  } else {\n    throw new Error('Invalid element type: ' + element + '. (keys: ' + Object.keys(element) + ')');\n  }\n\n  instance._mountIndex = 0;\n\n  return instance;\n}\n\nexports.default = instantiateComponent;\nmodule.exports = exports['default'];","'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/* eslint no-extend-native: \"off\", new-cap: \"off\" */\n\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 === 'undefined' ? 'undefined' : _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    while (created[desc + (postfix || '')]) {\n      ++postfix;\n    }desc += postfix || '';\n    created[desc] = true;\n    name = '@@' + desc;\n    return name;\n  };\n}();\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\nHiddenSymbol = function _Symbol(description) {\n  if (this instanceof HiddenSymbol) throw new TypeError('Symbol is not a constructor');\n  return SymbolPolyfill(description);\n};\n\n// Exposed `Symbol` constructor\n// (returns instances of HiddenSymbol)\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__: { value: description },\n    __name__: { value: generateName(description) }\n  });\n};\ndefineProperties(SymbolPolyfill, {\n  for: { value: function value(key) {\n      if (globalSymbols[key]) return globalSymbols[key];\n      return globalSymbols[key] = SymbolPolyfill(String(key));\n    } },\n  keyFor: { value: function value(s) {\n      var key;\n      validateSymbol(s);\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: { value: SymbolPolyfill('hasInstance') },\n  isConcatSpreadable: { value: SymbolPolyfill('isConcatSpreadable') },\n  iterator: { value: SymbolPolyfill('iterator') },\n  match: { value: SymbolPolyfill('match') },\n  replace: { value: SymbolPolyfill('replace') },\n  search: { value: SymbolPolyfill('search') },\n  species: { value: SymbolPolyfill('species') },\n  split: { value: SymbolPolyfill('split') },\n  toPrimitive: { value: SymbolPolyfill('toPrimitive') },\n  toStringTag: { value: SymbolPolyfill('toStringTag') },\n  unscopables: { value: SymbolPolyfill('unscopables') }\n});\n\n// Internal tweaks for real symbol producer\ndefineProperties(HiddenSymbol.prototype, {\n  constructor: { value: SymbolPolyfill },\n  toString: { value: function value() {\n      return this.__name__;\n    } }\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\ndefineProperties(SymbolPolyfill.prototype, {\n  toString: { value: function value() {\n      return 'Symbol (' + validateSymbol(this).__description__ + ')';\n    } },\n  valueOf: { 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 === 'undefined' ? 'undefined' : _typeof(symbol)) === 'symbol') return symbol;\n    return symbol.toString();\n  }\n});\ndefineProperty(SymbolPolyfill.prototype, SymbolPolyfill.toStringTag, { value: 'Symbol' });\n\n// Proper implementaton of toPrimitive and toStringTag for returned symbol instances\ndefineProperty(HiddenSymbol.prototype, SymbolPolyfill.toStringTag, { value: SymbolPolyfill.prototype[SymbolPolyfill.toStringTag] });\n\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\ndefineProperty(HiddenSymbol.prototype, SymbolPolyfill.toPrimitive, { value: SymbolPolyfill.prototype[SymbolPolyfill.toPrimitive] });","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _inject = require('./inject');\n\nvar _inject2 = _interopRequireDefault(_inject);\n\nvar _instance = require('./vdom/instance');\n\nvar _instance2 = _interopRequireDefault(_instance);\n\nvar _host = require('./vdom/host');\n\nvar _host2 = _interopRequireDefault(_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 || {};\n  // Init inject\n  (0, _inject2.default)(options);\n\n  var rootComponent = _instance2.default.mount(element, container, options.parent);\n  var componentInstance = rootComponent.getPublicInstance();\n\n  if (callback) {\n    callback.call(componentInstance);\n  }\n\n  return componentInstance;\n}\n\nexports.default = render;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : 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  if (prevEmpty || nextEmpty) {\n    return prevEmpty === nextEmpty;\n  }\n\n  var prevType = typeof prevElement === 'undefined' ? 'undefined' : _typeof(prevElement);\n  var nextType = typeof nextElement === 'undefined' ? 'undefined' : _typeof(nextElement);\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\nexports.default = shouldUpdateComponent;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = unmountComponentAtNode;\n\nvar _instance = require('./vdom/instance');\n\nvar _instance2 = _interopRequireDefault(_instance);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction unmountComponentAtNode(node) {\n  var component = _instance2.default.get(node);\n\n  if (!component) {\n    return false;\n  }\n\n  _instance2.default.remove(node);\n  component._internal.unmountComponent();\n\n  return true;\n};\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.createElement = createElement;\nexports.createFactory = createFactory;\nexports.cloneElement = cloneElement;\nexports.isValidElement = isValidElement;\n\nvar _host = require('./vdom/host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nvar _flattenChildren = require('./flattenChildren');\n\nvar _flattenChildren2 = _interopRequireDefault(_flattenChildren);\n\nvar _universalEnv = require('universal-env');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar RESERVED_PROPS = {\n  key: true,\n  ref: true\n};\n\nfunction getRenderErrorInfo() {\n  if (_host2.default.component) {\n    var name = _host2.default.component.getName();\n    if (name) {\n      return ' Check the render method of `' + name + '`.';\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\nexports.default = Element;\n\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    for (var i = 0; i < style.length; ++i) {\n      var computedStyle = flattenStyle(style[i]);\n      if (computedStyle) {\n        for (var key in computedStyle) {\n          result[key] = computedStyle[key];\n        }\n      }\n    }\n    return result;\n  }\n}\n\n// TODO: move to weex-drvier\nfunction filterProps(type, props) {\n  // Only for weex text\n  if (type === 'text') {\n    var children = props.children;\n    var value = props.value;\n\n    // Value is first\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  }\n  // Reserved names are extracted\n  var props = {};\n  var propName = void 0;\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);\n    // Remaining properties are added to a new props object\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  if (childrenLength > 0) {\n    if (childrenLength === 1 && !Array.isArray(children)) {\n      props.children = children;\n    } else {\n      var childArray = children;\n      if (childrenLength > 1) {\n        childArray = new Array(childrenLength);\n        for (var i = 0; i < childrenLength; i++) {\n          childArray[i] = arguments[i + 2];\n        }\n      }\n      props.children = (0, _flattenChildren2.default)(childArray);\n    }\n  }\n\n  // Resolve default props\n  if (type && type.defaultProps) {\n    var defaultProps = type.defaultProps;\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, _host2.default.component);\n}\n\nfunction createFactory(type) {\n  var factory = createElement.bind(null, type);\n  // 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  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  }\n\n  // Original props are copied\n  var props = Object.assign({}, element.props);\n\n  // Reserved names are extracted\n  var key = element.key;\n  var ref = element.ref;\n\n  // Owner will be preserved, unless ref is overridden\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 = _host2.default.component;\n    }\n\n    if (config.key !== undefined) {\n      key = String(config.key);\n    }\n\n    // Resolve default props\n    var defaultProps = void 0;\n    if (element.type && element.type.defaultProps) {\n      defaultProps = element.type.defaultProps;\n    }\n    // Remaining properties override existing props\n    var propName = void 0;\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 = 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, _flattenChildren2.default)(children);\n  }\n\n  return new Element(element.type, key, ref, props, owner);\n};\n\nfunction isValidElement(object) {\n  return (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && object !== null && object.type && object.props;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _host = require('./vdom/host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction findDOMNode(instance) {\n  if (instance == null) {\n    return null;\n  }\n\n  // If a native node, weex may not export ownerDocument property\n  if (instance.ownerDocument || instance.nodeType) {\n    return instance;\n  }\n\n  // Native component\n  if (instance._nativeNode) {\n    return instance._nativeNode;\n  }\n\n  if (typeof instance == 'string') {\n    return _host2.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  }\n\n  // Composite component\n  var internal = instance._internal;\n\n  if (internal) {\n    while (!internal._nativeNode) {\n      internal = internal._renderedComponent;\n      // If not mounted\n      if (internal == null) {\n        return null;\n      }\n    }\n    return internal._nativeNode;\n  } else {\n    throw new Error('findDOMNode: find on an unmounted component.');\n  }\n}\n\nexports.default = findDOMNode;\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.transformPropsAttrsToStyle = transformPropsAttrsToStyle;\nexports.renamePropsAttr = renamePropsAttr;\n/**\n * transformPropAttrsToStyle\n *\n * @param {Object} props\n * @param {Array} attrs\n */\nfunction transformPropsAttrsToStyle(props, attrs) {\n  props.style = props.style || {};\n\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\n  return props;\n};\n\n/**\n * renamePropsAttr\n *\n * @param {Object} props\n * @param {String} originalAttrName\n * @param {String} newAttrName\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}\nexports[\"default\"] = module.exports;\nexports.default = module.exports;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function (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;\n    // Child keys must be unique.\n    var keyUnique = children[keyName] === undefined;\n    // Only the first child will be used when encountered two children with the same key\n    if (!keyUnique) console.warn('Encountered two children with the same key \"' + elementKey + '\".');\n\n    return keyUnique ? keyName : defaultName;\n  } else {\n    return defaultName;\n  }\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n/*\n * Ref manager\n */\n\nexports.default = {\n  update: function update(prevElement, nextElement, component) {\n    var prevRef = prevElement != null && prevElement.ref;\n    var nextRef = nextElement != null && nextElement.ref;\n\n    // Update refs in owner component\n    if (prevRef !== nextRef) {\n      // Detach prev RenderedElement's ref\n      prevRef != null && this.detach(prevElement._owner, prevRef, component);\n      // Attach next RenderedElement's ref\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    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      if (ownerComponent._instance.refs[ref] === instance) {\n        delete ownerComponent._instance.refs[ref];\n      }\n    }\n  }\n};\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _host = require('./host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nvar _ref = require('./ref');\n\nvar _ref2 = _interopRequireDefault(_ref);\n\nvar _instantiateComponent = require('./instantiateComponent');\n\nvar _instantiateComponent2 = _interopRequireDefault(_instantiateComponent);\n\nvar _shouldUpdateComponent = require('./shouldUpdateComponent');\n\nvar _shouldUpdateComponent2 = _interopRequireDefault(_shouldUpdateComponent);\n\nvar _getElementKeyName = require('./getElementKeyName');\n\nvar _getElementKeyName2 = _interopRequireDefault(_getElementKeyName);\n\nvar _instance = require('./instance');\n\nvar _instance2 = _interopRequireDefault(_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\nvar STYLE = 'style';\nvar CHILDREN = 'children';\nvar TREE = 'tree';\nvar EVENT_PREFIX_REGEXP = /^on[A-Z]/;\n\n/**\n * Native Component\n */\n\nvar NativeComponent = function () {\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 = _host2.default.mountID++;\n\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;\n\n      // Clone a copy for style diff\n      this._prevStyleCopy = Object.assign({}, props.style);\n\n      var nativeNode = this.getNativeNode();\n\n      if (appendType !== TREE) {\n        if (childMounter) {\n          childMounter(nativeNode, parent);\n        } else {\n          _host2.default.driver.appendChild(nativeNode, parent);\n        }\n      }\n\n      if (this._currentElement && this._currentElement.ref) {\n        _ref2.default.attach(this._currentElement._owner, this._currentElement.ref, this);\n      }\n\n      // Process children\n      var children = props.children;\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          _host2.default.driver.appendChild(nativeNode, parent);\n        }\n      }\n\n      _host2.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\n      var renderedChildrenImage = children.map(function (element, index) {\n        var renderedChild = (0, _instantiateComponent2.default)(element);\n        var name = (0, _getElementKeyName2.default)(renderedChildren, element, index);\n        renderedChildren[name] = renderedChild;\n        renderedChild._mountIndex = index;\n        // Mount\n        var mountImage = renderedChild.mountComponent(_this.getNativeNode(), _this._instance, context, null);\n        return mountImage;\n      });\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        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        if (ref) {\n          _ref2.default.detach(this._currentElement._owner, ref, this);\n        }\n\n        _instance2.default.remove(this._nativeNode);\n        if (!notRemoveChild) {\n          _host2.default.driver.removeChild(this._nativeNode, this._parent);\n        }\n        _host2.default.driver.removeAllEventListeners(this._nativeNode);\n      }\n\n      this.unmountChildren(notRemoveChild);\n\n      _host2.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      _ref2.default.update(prevElement, nextElement, this);\n\n      var prevProps = prevElement.props;\n      var nextProps = nextElement.props;\n\n      this.updateProperties(prevProps, nextProps);\n      this.updateChildren(nextProps.children, nextContext);\n\n      _host2.default.hook.Reconciler.receiveComponent(this);\n    }\n  }, {\n    key: 'updateProperties',\n    value: function updateProperties(prevProps, nextProps) {\n      var propKey = void 0;\n      var styleName = void 0;\n      var styleUpdates = void 0;\n      for (propKey in prevProps) {\n        if (propKey === CHILDREN || nextProps.hasOwnProperty(propKey) || !prevProps.hasOwnProperty(propKey) || prevProps[propKey] == null) {\n          continue;\n        }\n        if (propKey === STYLE) {\n          var lastStyle = this._prevStyleCopy;\n          for (styleName in lastStyle) {\n            if (lastStyle.hasOwnProperty(styleName)) {\n              styleUpdates = styleUpdates || {};\n              styleUpdates[styleName] = '';\n            }\n          }\n          this._prevStyleCopy = null;\n        } else if (EVENT_PREFIX_REGEXP.test(propKey)) {\n          if (typeof prevProps[propKey] === 'function') {\n            _host2.default.driver.removeEventListener(this.getNativeNode(), propKey.slice(2).toLowerCase(), prevProps[propKey]);\n          }\n        } else {\n          _host2.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        if (propKey === CHILDREN || !nextProps.hasOwnProperty(propKey) || nextProp === prevProp || nextProp == null && prevProp == null) {\n          continue;\n        }\n        // Update style\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            }\n            // Update styles that changed since `prevProp`.\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            _host2.default.driver.removeEventListener(this.getNativeNode(), eventName, prevProp, nextProps);\n          }\n\n          if (typeof nextProp === 'function') {\n            _host2.default.driver.addEventListener(this.getNativeNode(), eventName, nextProp, nextProps);\n          }\n        } else {\n          // Update other property\n          var payload = {};\n          payload[propKey] = nextProp;\n          if (nextProp != null) {\n            _host2.default.driver.setAttribute(this.getNativeNode(), propKey, nextProp);\n          } else {\n            _host2.default.driver.removeAttribute(this.getNativeNode(), propKey, prevProps[propKey]);\n          }\n          if (process.env.NODE_ENV !== 'production') {\n            _host2.default.measurer && _host2.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          _host2.default.measurer && _host2.default.measurer.recordOperation({\n            instanceID: this._mountID,\n            type: 'update style',\n            payload: styleUpdates\n          });\n        }\n        _host2.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        }\n\n        // Update next children elements\n        for (var index = 0, length = nextChildrenElements.length; index < length; index++) {\n          var nextElement = nextChildrenElements[index];\n          var name = (0, _getElementKeyName2.default)(nextChildren, nextElement, index);\n          var prevChild = prevChildren && prevChildren[name];\n          var prevElement = prevChild && prevChild._currentElement;\n\n          if (prevChild != null && (0, _shouldUpdateComponent2.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();\n              // Delay remove child\n              prevChild.unmountComponent(true);\n              oldNodes[name] = oldNativeNode;\n            }\n            // The child must be instantiated before it's mounted.\n            nextChildren[name] = (0, _instantiateComponent2.default)(nextElement);\n          }\n        }\n      }\n\n      var firstPrevChild = void 0;\n      var delayRemoveFirstPrevChild = void 0;\n      // Unmount children that are no longer present.\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];\n\n          // Store old first child ref for append node ahead and maybe delay remove it\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();\n              // Convert to array type\n              if (!Array.isArray(prevChildNativeNode)) {\n                prevChildNativeNode = [prevChildNativeNode];\n              }\n\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              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                  _host2.default.driver.insertAfter(prevChildNativeNode[_i], lastPlacedNode);\n                }\n              }\n\n              nextNativeNode = nextNativeNode.concat(prevChildNativeNode);\n\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();\n              // Fragment extended native component, so if parent is fragment should get this._parent\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                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                  }\n\n                  // If newChild count large then oldChild\n                  var lastNewChild = void 0;\n                  for (var _i2 = 0; _i2 < newChild.length; _i2++) {\n                    var child = newChild[_i2];\n                    if (oldChild[_i2]) {\n                      _host2.default.driver.replaceChild(child, oldChild[_i2]);\n                    } else {\n                      _host2.default.driver.insertAfter(child, lastNewChild);\n                    }\n                    lastNewChild = child;\n                  }\n\n                  // If newChild count less then oldChild\n                  if (newChild.length < oldChild.length) {\n                    for (var _i3 = newChild.length; _i3 < oldChild.length; _i3++) {\n                      _host2.default.driver.removeChild(oldChild[_i3]);\n                    }\n                  }\n                } else {\n                  // Insert child at a specific index\n\n                  // Get the last child\n                  if (Array.isArray(lastPlacedNode)) {\n                    lastPlacedNode = lastPlacedNode[lastPlacedNode.length - 1];\n                  }\n\n                  var prevFirstNativeNode = void 0;\n\n                  if (firstPrevChild && !lastPlacedNode) {\n                    prevFirstNativeNode = firstPrevChild.getNativeNode();\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                    if (lastPlacedNode) {\n                      _host2.default.driver.insertAfter(_child, lastPlacedNode);\n                    } else if (prevFirstNativeNode) {\n                      _host2.default.driver.insertBefore(_child, prevFirstNativeNode);\n                    } else {\n                      _host2.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 _ret2 = _loop(_name2);\n\n            if (_ret2 === 'continue') continue;\n          }\n\n          // Sync update native refs\n          if (Array.isArray(_this2._nativeNode)) {\n            // Clear all and push the new array\n            _this2._nativeNode.splice(0, _this2._nativeNode.length);\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 = _host2.default.driver.createElement(this._instance);\n        _instance2.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\nexports.default = NativeComponent;\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n/*\n * Current PropTypes only export some api with react, not validate in runtime.\n */\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\n  return chainedCheckType;\n}\n\nfunction createTypeChecker(expectedType) {\n  function validate(props, propName, componentName, location, propFullName) {\n    // Noop\n  }\n  return createChainableTypeChecker(validate);\n}\n\nvar typeChecker = createTypeChecker();\n\nexports.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};\nmodule.exports = exports[\"default\"];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n// https://www.w3.org/TR/html5/webappapis.html#dom-navigator-appcodename\nvar isWeb = exports.isWeb = (typeof navigator === 'undefined' ? 'undefined' : _typeof(navigator)) === 'object' && (navigator.appCodeName === 'Mozilla' || navigator.product === 'Gecko');\nvar isNode = exports.isNode = typeof process !== 'undefined' && !!(process.versions && process.versions.node);\nvar isWeex = exports.isWeex = typeof callNative === 'function' || (typeof WXEnvironment === 'undefined' ? 'undefined' : _typeof(WXEnvironment)) === 'object' && WXEnvironment.platform !== 'Web';\nvar isReactNative = exports.isReactNative = typeof __fbBatchedBridgeConfig !== 'undefined';\nexports['default'] = module.exports;\nexports.default = module.exports;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = flattenChildren;\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  var result = [];\n  traverseChildren(children, result);\n\n  if (result.length === 1) {\n    result = result[0];\n  }\n\n  return result;\n}\nmodule.exports = exports[\"default\"];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _instance = require('../vdom/instance');\n\nvar _instance2 = _interopRequireDefault(_instance);\n\nvar _host = require('../vdom/host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  ComponentTree: {\n    getClosestInstanceFromNode: function getClosestInstanceFromNode(node) {\n      return _instance2.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: _host2.default.rootComponents,\n\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};\nmodule.exports = exports['default'];","'use strict';\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); // https://github.com/WebReflection/url-search-params\n\n\nvar _symbol = require('./symbol');\n\nvar _symbol2 = _interopRequireDefault(_symbol);\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\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};\nvar replacer = function replacer(match) {\n  return replace[match];\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 = function () {\n  function URLSearchParams(query) {\n    _classCallCheck(this, URLSearchParams);\n\n    this[secret] = Object.create(null);\n    if (!query) return;\n    if (query.charAt(0) === '?') {\n      query = query.slice(1);\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      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      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 { done: value === undefined, value: value };\n        }\n      };\n\n      iterator[_symbol2.default.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 { done: value === undefined, value: value };\n        }\n      };\n\n      iterator[_symbol2.default.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 { done: value === undefined, value: value };\n        }\n      };\n\n      iterator[_symbol2.default.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      for (key in dict) {\n        name = encode(key);\n        for (i = 0, value = dict[key]; i < value.length; i++) {\n          query.push(name + '=' + encode(value[i]));\n        }\n      }\n      return query.join('&');\n    }\n  }]);\n\n  return URLSearchParams;\n}();\n\nURLSearchParams.prototype[_symbol2.default.iterator] = URLSearchParams.prototype.entries;\n\nmodule.exports = URLSearchParams;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nexports.default = createContext;\n\nvar _component = require('./component');\n\nvar _component2 = _interopRequireDefault(_component);\n\nvar _proptypes = require('./proptypes');\n\nvar _proptypes2 = _interopRequireDefault(_proptypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ValueEmitter = function () {\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 = function (_Component) {\n    _inherits(Provider, _Component);\n\n    function Provider() {\n      var _ref;\n\n      var _temp, _this, _ret;\n\n      _classCallCheck(this, Provider);\n\n      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n\n      return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Provider.__proto__ || Object.getPrototypeOf(Provider)).call.apply(_ref, [this].concat(args))), _this), _this.emitter = new ValueEmitter(defaultValue), _temp), _possibleConstructorReturn(_this, _ret);\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  }(_component2.default);\n\n  Provider.childContextTypes = _defineProperty({}, contextProp, _proptypes2.default.object);\n\n  var Consumer = function (_Component2) {\n    _inherits(Consumer, _Component2);\n\n    function Consumer() {\n      var _ref3;\n\n      var _temp2, _this2, _ret2;\n\n      _classCallCheck(this, Consumer);\n\n      for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n\n      return _ret2 = (_temp2 = (_this2 = _possibleConstructorReturn(this, (_ref3 = Consumer.__proto__ || Object.getPrototypeOf(Consumer)).call.apply(_ref3, [this].concat(args))), _this2), _this2.state = {\n        value: _this2.context[contextProp] ? _this2.context[contextProp].value : defaultValue\n      }, _this2.onUpdate = function (value) {\n        return _this2.setState({ value: value });\n      }, _temp2), _possibleConstructorReturn(_this2, _ret2);\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        if (typeof consumer === 'function') {\n          return consumer(this.state.value);\n        }\n      }\n    }]);\n\n    return Consumer;\n  }(_component2.default);\n\n  Consumer.contextTypes = _defineProperty({}, contextProp, _proptypes2.default.object);\n\n\n  return {\n    Provider: Provider,\n    Consumer: Consumer\n  };\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _flattenChildren = require('./flattenChildren');\n\nvar _flattenChildren2 = _interopRequireDefault(_flattenChildren);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction convertChildrenToArray(children) {\n  // flatten children\n  children = (0, _flattenChildren2.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 [];\n    // `toArray` filter null value\n    return convertChildrenToArray(children).filter(function (child) {\n      return child !== null;\n    });\n  }\n};\n\nexports.default = Children;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = '0.6.4';\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = setNativeProps;\n\nvar _host = require('./vdom/host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nvar _findDOMNode = require('./findDOMNode');\n\nvar _findDOMNode2 = _interopRequireDefault(_findDOMNode);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction setNativeProps(node, props) {\n  node = (0, _findDOMNode2.default)(node);\n  _host2.default.driver.setNativeProps(node, props);\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _instance = require('./vdom/instance');\n\nvar _instance2 = _interopRequireDefault(_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  return _instance2.default.get(node);\n}\n\nexports.default = findComponentInstance;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nexports.default = createPortal;\n\nvar _component = require('./component');\n\nvar _component2 = _interopRequireDefault(_component);\n\nvar _render = require('./render');\n\nvar _render2 = _interopRequireDefault(_render);\n\nvar _unmountComponentAtNode = require('./unmountComponentAtNode');\n\nvar _unmountComponentAtNode2 = _interopRequireDefault(_unmountComponentAtNode);\n\nvar _element = require('./element');\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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Portal = function (_Component) {\n  _inherits(Portal, _Component);\n\n  function Portal(props, context) {\n    _classCallCheck(this, Portal);\n\n    return _possibleConstructorReturn(this, (Portal.__proto__ || Object.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, _unmountComponentAtNode2.default)(prevProps.container);\n      }\n\n      this.renderPortal();\n    }\n  }, {\n    key: 'componentWillUnmount',\n    value: function componentWillUnmount() {\n      (0, _unmountComponentAtNode2.default)(this.props.container);\n    }\n  }, {\n    key: 'renderPortal',\n    value: function renderPortal() {\n      (0, _render2.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}(_component2.default);\n\nfunction createPortal(element, container) {\n  return (0, _element.createElement)(Portal, {\n    element: element,\n    container: container\n  });\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _render = require('./render');\n\nvar _render2 = _interopRequireDefault(_render);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\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 = [].concat(_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, _render2.default)(element, container, options, callback);;\n}\n\nexports.default = hydrate;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nvar BOX_ALIGN = {\n  stretch: 'stretch',\n  'flex-start': 'start',\n  'flex-end': 'end',\n  center: 'center'\n};\n\nvar BOX_ORIENT = {\n  row: 'horizontal',\n  column: 'vertical'\n};\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};\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\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\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\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\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\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\n    style.webkitBoxPack = BOX_PACK[value];\n    style.webkitJustifyContent = value;\n    style.justifyContent = value;\n    return style;\n  }\n};\n\nexports.default = Flexbox;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.isRem = isRem;\nexports.calcRem = calcRem;\nexports.getRem = getRem;\nexports.setRem = setRem;\nexports.isUnitNumber = isUnitNumber;\nexports.convertUnit = convertUnit;\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 SUFFIX = 'rem';\nvar REM_REG = /[-+]?\\d*\\.?\\d+rem/g;\nvar GLOBAL_REM_UNIT = '__global_rem_unit__';\nvar global = (typeof window === 'undefined' ? 'undefined' : _typeof(window)) === 'object' ? window : (typeof global === 'undefined' ? 'undefined' : _typeof(global)) === 'object' ? global : {};\n// Default 1 rem to 1 px\nif (global[GLOBAL_REM_UNIT] == null) {\n  global[GLOBAL_REM_UNIT] = 1;\n}\n\n/**\n * Is string contains rem\n * @param {String} str\n * @returns {Boolean}\n */\nfunction isRem(str) {\n  return typeof str === 'string' && str.indexOf(SUFFIX) !== -1;\n}\n\n/**\n * Calculate rem to pixels: '1.2rem' => 1.2 * rem\n * @param {String} str\n * @param {Number} rem\n * @returns {number}\n */\nfunction calcRem(str) {\n  var remUnit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : global[GLOBAL_REM_UNIT];\n\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] : global[GLOBAL_REM_UNIT];\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}\nexports['default'] = module.exports;\nexports.default = module.exports;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; /**\n                                                                                                                                                                                                                                                                               * Web Browser driver\n                                                                                                                                                                                                                                                                               **/\n\n/* global DEVICE_WIDTH, VIEWPORT_WIDTH */\n\nvar _styleUnit = require('style-unit');\n\nvar _flexbox = require('./flexbox');\n\nvar _flexbox2 = _interopRequireDefault(_flexbox);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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]/;\n\nvar ADD_EVENT = 'addEvent';\nvar REMOVE_EVENT = 'removeEvent';\nvar TEXT_CONTENT_ATTR = (typeof document === 'undefined' ? 'undefined' : _typeof(document)) === 'object' && 'textContent' in document ? 'textContent' : 'nodeValue';\n\nvar SVG_NS = 'http://www.w3.org/2000/svg';\nvar SVG_TAG_LIST = ['svg', 'circle', 'ellipse', 'line', 'rect', 'polygon', 'polyline', 'path', 'text', 'defs', 'stop', 'linearGradient', 'radialGradient', 'textPath', 'use', 'g', 'tspan', 'tref', 'clipPath'];\n\nvar Driver = {\n\n  deviceWidth: typeof DEVICE_WIDTH !== 'undefined' && DEVICE_WIDTH || null,\n  viewportWidth: typeof VIEWPORT_WIDTH !== 'undefined' && VIEWPORT_WIDTH || 750,\n  eventRegistry: {},\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  createElement: function createElement(component) {\n    var node = void 0;\n    if (component && SVG_TAG_LIST.indexOf(component.type) > -1) {\n      node = document.createElementNS(SVG_NS, component.type);\n    } else {\n      node = document.createElement(component.type);\n    }\n    var props = component.props;\n\n    this.setNativeProps(node, props);\n\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    // Maybe has been removed when remove child\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    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) {\n    // 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      if (_flexbox2.default.isFlexProp(prop)) {\n        _flexbox2.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];\n      // hack handle compatibility issue\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      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};\n\nexports.default = Driver;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = {\n\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};\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\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};\n\nexports.default = {\n  parse: function parse(component) {\n    var type = component.type,\n        props = component.props;\n\n\n    component.type = 'text';\n    props.style = _extends({}, 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};\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n/**\n * weex button\n *\n * props: disabled, style\n */\n\nexports.default = {\n  parse: function parse(component) {\n    var props = component.props;\n\n    component.type = 'text';\n\n    var style = props.style,\n        disabled = props.disabled,\n        children = props.children;\n\n\n    var textStyle = _extends({\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 = _extends({}, 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};\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar BASE_FONT_SIZE = 28;\n\nvar defaultParagraphStyle = {\n  fontSize: BASE_FONT_SIZE,\n  marginTop: BASE_FONT_SIZE,\n  marginBottom: BASE_FONT_SIZE\n};\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;\n  // Alias img tag\n  if (type === 'img') {\n    type = 'image';\n  }\n\n  // Transfrom to span\n  if (TypographyElements[type]) {\n    style = _extends({}, TypographyElements[type], style);\n    type = 'span';\n  }\n\n  props.style = null;\n  props.children = null;\n\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  if (!Array.isArray(children)) {\n    children = [children];\n  }\n\n  for (var i = 0; i < children.length; i++) {\n    var child = children[i];\n    if (typeof child === 'string') {\n      elements.push(transformString(child));\n    } else if ((typeof child === 'undefined' ? 'undefined' : _typeof(child)) === 'object') {\n      elements.push(transformChild(child));\n    }\n  }\n\n  return elements;\n}\n\nexports.default = {\n  parse: function parse(component) {\n    var props = component.props;\n\n    var children = props.children;\n\n    component.type = 'richtext';\n\n    props.style = _extends({}, defaultParagraphStyle, props.style);\n\n    props.value = transformChildren(children);;\n    props.children = null;\n\n    return component;\n  }\n};\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = {\n  parse: function parse(component) {\n    var props = component.props;\n\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};\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = {\n\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\n    if (typeof props.children === 'string' && !props.value) {\n      props.value = props.children;\n      props.children = null;\n    }\n\n    return component;\n  }\n};\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _parseProps = require('../parseProps');\n\nexports.default = {\n\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    // modify props\n\n    component.props = (0, _parseProps.transformPropsAttrsToStyle)(props, ['width', 'height']);\n\n    return component;\n  }\n};\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _parseProps = require('../parseProps');\n\nexports.default = {\n\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    component.type = 'image';\n\n    // modify props\n    component.props = (0, _parseProps.transformPropsAttrsToStyle)(props, ['width', 'height']);\n\n    return component;\n  }\n};\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _img = require('./img');\n\nvar _img2 = _interopRequireDefault(_img);\n\nvar _video = require('./video');\n\nvar _video2 = _interopRequireDefault(_video);\n\nvar _textarea = require('./textarea');\n\nvar _textarea2 = _interopRequireDefault(_textarea);\n\nvar _span = require('./span');\n\nvar _span2 = _interopRequireDefault(_span);\n\nvar _p = require('./p');\n\nvar _p2 = _interopRequireDefault(_p);\n\nvar _button = require('./button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _heading = require('./heading');\n\nvar _heading2 = _interopRequireDefault(_heading);\n\nvar _block = require('./block');\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  span: _span2.default,\n  p: _p2.default,\n  img: _img2.default,\n  button: _button2.default,\n  video: _video2.default,\n  textarea: _textarea2.default,\n  h1: _heading2.default,\n  h2: _heading2.default,\n  h3: _heading2.default,\n  h4: _heading2.default,\n  h5: _heading2.default,\n  h6: _heading2.default,\n  nav: _block2.default,\n  article: _block2.default,\n  section: _block2.default,\n  // Conflict with weex header tag\n  // header: block,\n  footer: _block2.default,\n  aside: _block2.default,\n  main: _block2.default\n};\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.isRem = isRem;\nexports.calcRem = calcRem;\nexports.getRem = getRem;\nexports.setRem = setRem;\nexports.isUnitNumber = isUnitNumber;\nexports.convertUnit = convertUnit;\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 SUFFIX = 'rem';\nvar REM_REG = /[-+]?\\d*\\.?\\d+rem/g;\nvar GLOBAL_REM_UNIT = '__global_rem_unit__';\nvar global = (typeof window === 'undefined' ? 'undefined' : _typeof(window)) === 'object' ? window : (typeof global === 'undefined' ? 'undefined' : _typeof(global)) === 'object' ? global : {};\n// Default 1 rem to 1 px\nif (global[GLOBAL_REM_UNIT] == null) {\n  global[GLOBAL_REM_UNIT] = 1;\n}\n\n/**\n * Is string contains rem\n * @param {String} str\n * @returns {Boolean}\n */\nfunction isRem(str) {\n  return typeof str === 'string' && str.indexOf(SUFFIX) !== -1;\n}\n\n/**\n * Calculate rem to pixels: '1.2rem' => 1.2 * rem\n * @param {String} str\n * @param {Number} rem\n * @returns {number}\n */\nfunction calcRem(str) {\n  var remUnit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : global[GLOBAL_REM_UNIT];\n\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] : global[GLOBAL_REM_UNIT];\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}\nexports['default'] = module.exports;\nexports.default = module.exports;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; /**\n                                                                                                                                                                                                                                                                               * Weex driver\n                                                                                                                                                                                                                                                                               */\n\n\nvar _styleUnit = require('style-unit');\n\nvar _elements = require('./elements');\n\nvar _elements2 = _interopRequireDefault(_elements);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: 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-/;\n\nvar nodeMaps = {};\n/* global __weex_document__ */\nvar document = (typeof __weex_document__ === 'undefined' ? 'undefined' : _typeof(__weex_document__)) === 'object' ? __weex_document__ : (typeof document === 'undefined' ? 'undefined' : _typeof(document)) === 'object' ? document : null;\n\nvar Driver = {\n  deviceWidth: 750,\n  viewportWidth: 750,\n\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\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 = _elements2.default[component.type];\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    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\n    this.setNativeProps(node, props, true);\n\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    if (id != null) {\n      nodeMaps[id] = null;\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) {\n    // Noop\n  },\n  removeAttribute: function removeAttribute(node, propKey, propValue) {\n    if (propKey == ID) {\n      nodeMaps[propValue] = null;\n    }\n    // Weex native will crash when pass null value\n    return node.setAttr(propKey, undefined, false);\n  },\n  setAttribute: function setAttribute(node, propKey, propValue) {\n    if (propKey == ID) {\n      nodeMaps[propValue] = node;\n    }\n\n    // Weex only support `ariaLabel` format, convert `aria-label` format to camelcase\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();\n\n    // Init rem unit\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    }\n\n    // Turn on batched updates\n    document.close();\n  },\n  setNativeProps: function setNativeProps(node, props, skipSetStyles) {\n    for (var prop in props) {\n      var value = props[prop];\n      if (prop === CHILDREN) {\n        continue;\n      }\n\n      if (value != null) {\n        if (prop === STYLE) {\n          if (skipSetStyles) {\n            continue;\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};\n\nexports.default = Driver;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _host = require('./host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nvar _native = require('./native');\n\nvar _native2 = _interopRequireDefault(_native);\n\nvar _instance = require('./instance');\n\nvar _instance2 = _interopRequireDefault(_instance);\n\nvar _instantiateComponent = require('./instantiateComponent');\n\nvar _instantiateComponent2 = _interopRequireDefault(_instantiateComponent);\n\nvar _getElementKeyName = require('./getElementKeyName');\n\nvar _getElementKeyName2 = _interopRequireDefault(_getElementKeyName);\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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Fragment Component\n */\nvar FragmentComponent = function (_NativeComponent) {\n  _inherits(FragmentComponent, _NativeComponent);\n\n  function FragmentComponent(element) {\n    _classCallCheck(this, FragmentComponent);\n\n    return _possibleConstructorReturn(this, (FragmentComponent.__proto__ || Object.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 = _host2.default.mountID++;\n\n      var instance = {\n        _internal: this\n      };\n      this._instance = instance;\n\n      var fragment = this.getNativeNode();\n      var children = this._currentElement;\n\n      // Process children\n      this.mountChildren(children, context);\n\n      if (childMounter) {\n        childMounter(fragment, parent);\n      } else {\n        var isFragmentParent = Array.isArray(parent);\n        for (var i = 0; i < fragment.length; i++) {\n          var child = fragment[i];\n          // When the parent is also a fragment\n          if (isFragmentParent) {\n            parent.push(child);\n          } else {\n            _host2.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 _this2 = this;\n\n      var renderedChildren = this._renderedChildren = {};\n      var fragment = this.getNativeNode();\n\n      var renderedChildrenImage = children.map(function (element, index) {\n        var renderedChild = (0, _instantiateComponent2.default)(element);\n        var name = (0, _getElementKeyName2.default)(renderedChildren, element, index);\n        renderedChildren[name] = renderedChild;\n        renderedChild._mountIndex = index;\n        // Mount\n        var mountImage = renderedChild.mountComponent(_this2._parent, _this2._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\n      return renderedChildrenImage;\n    }\n  }, {\n    key: 'unmountComponent',\n    value: function unmountComponent(notRemoveChild) {\n      if (this._nativeNode) {\n        _instance2.default.remove(this._nativeNode);\n        if (!notRemoveChild) {\n          for (var i = 0; i < this._nativeNode.length; i++) {\n            _host2.default.driver.removeChild(this._nativeNode[i]);\n          }\n        }\n      }\n\n      // Do not need remove child when their parent is removed\n      this.unmountChildren(true);\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    }\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}(_native2.default);\n\nexports.default = FragmentComponent;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\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 */\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/**\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 */\nfunction shallowEqual(objA, objB) {\n  if (is(objA, objB)) {\n    return true;\n  }\n\n  if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) !== 'object' || objA === null || (typeof objB === 'undefined' ? 'undefined' : _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  }\n\n  // Test for A's keys different from B.\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\nexports.default = shallowEqual;\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\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);\n\n    // pending in componentWillReceiveProps and componentWillMount\n    if (!internal._pendingState && internal._renderedComponent) {\n      this.runUpdate(component);\n    }\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\n    enqueueCallback(internal, callback);\n    // pending in componentWillMount\n    if (internal._renderedComponent) {\n      this.runUpdate(component);\n    }\n  },\n\n  runUpdate: function runUpdate(component) {\n    var internal = component._internal;\n\n    // 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    var callbacks = internal._pendingCallbacks;\n    internal._pendingCallbacks = null;\n\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\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};\n\nexports.default = Updater;\nmodule.exports = exports[\"default\"];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _host = require('./host');\n\nvar _host2 = _interopRequireDefault(_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\n/**\n * Stateless Component Class Wrapper\n */\nvar StatelessComponent = function () {\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        _host2.default.measurer && _host2.default.measurer.beforeRender();\n      }\n\n      return this.pureRender(this.props, this.context);\n    }\n  }]);\n\n  return StatelessComponent;\n}();\n\nexports.default = StatelessComponent;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _stateless = require('./stateless');\n\nvar _stateless2 = _interopRequireDefault(_stateless);\n\nvar _updater = require('./updater');\n\nvar _updater2 = _interopRequireDefault(_updater);\n\nvar _host = require('./host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nvar _ref = require('./ref');\n\nvar _ref2 = _interopRequireDefault(_ref);\n\nvar _instantiateComponent = require('./instantiateComponent');\n\nvar _instantiateComponent2 = _interopRequireDefault(_instantiateComponent);\n\nvar _shouldUpdateComponent = require('./shouldUpdateComponent');\n\nvar _shouldUpdateComponent2 = _interopRequireDefault(_shouldUpdateComponent);\n\nvar _shallowEqual = require('./shallowEqual');\n\nvar _shallowEqual2 = _interopRequireDefault(_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 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 = void 0;\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 (_host2.default.sandbox) {\n      setTimeout(function () {\n        throw error;\n      }, 0);\n    } else {\n      throw error;\n    }\n  }\n}\n\nvar measureLifeCycle = void 0;\nif (process.env.NODE_ENV !== 'production') {\n  measureLifeCycle = function measureLifeCycle(callback, instanceID, type) {\n    _host2.default.measurer && _host2.default.measurer.beforeLifeCycle(instanceID, type);\n    callback();\n    _host2.default.measurer && _host2.default.measurer.afterLifeCycle(instanceID, type);\n  };\n}\n\n/**\n * Composite Component\n */\n\nvar CompositeComponent = function () {\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 = _host2.default.mountID++;\n      this._updateCount = 0;\n\n      if (process.env.NODE_ENV !== 'production') {\n        _host2.default.measurer && _host2.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;\n      // Class stateless component without state but have lifecycles\n      var isStatelessClass = isClass && Component.prototype.render;\n\n      // Context process\n      var publicContext = this._processContext(context);\n\n      // Initialize the public class\n      var instance = void 0;\n      var renderedElement = void 0;\n\n      if (isComponentClass || isStatelessClass) {\n        // Component instance\n        instance = new Component(publicProps, publicContext, _updater2.default);\n      } else if (typeof Component === 'function') {\n        // Functional stateless component without state and lifecycles\n        instance = new _stateless2.default(Component);\n      } else {\n        throw new Error('Invalid component type: ' + Component + '. (keys: ' + Object.keys(Component) + ')');\n      }\n\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      instance.props = publicProps;\n      instance.context = publicContext;\n      instance.refs = {};\n\n      // Inject the updater into instance\n      instance.updater = _updater2.default;\n      instance._internal = this;\n      this._instance = instance;\n\n      // Init state, must be set to an object or null\n      var initialState = instance.state;\n      if (initialState === undefined) {\n        // TODO clone the state?\n        instance.state = initialState = null;\n      }\n\n      var error = null;\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        _host2.default.component = this;\n        // Process pending state when call setState in componentWillMount\n        instance.state = this._processPendingState(publicProps, publicContext);\n\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\n        _host2.default.component = null;\n      }\n\n      this._renderedComponent = (0, _instantiateComponent2.default)(renderedElement);\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        _ref2.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      _host2.default.hook.Reconciler.mountComponent(this);\n\n      if (process.env.NODE_ENV !== 'production') {\n        _host2.default.measurer && _host2.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      _host2.default.hook.Reconciler.unmountComponent(this);\n\n      instance._internal = null;\n\n      if (this._renderedComponent != null) {\n        var ref = this._currentElement.ref;\n        if (ref) {\n          _ref2.default.detach(this._currentElement._owner, ref, this);\n        }\n\n        this._renderedComponent.unmountComponent(notRemoveChild);\n        this._renderedComponent = null;\n        this._instance = null;\n      }\n\n      this._currentElement = null;\n      this._parentInstance = null;\n\n      // 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      this._pendingStateQueue = null;\n      this._pendingForceUpdate = false;\n\n      // These fields do not really need to be reset since this object is no\n      // longer accessible.\n      this._context = null;\n    }\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      if (!contextTypes) {\n        return {};\n      }\n      var maskedContext = {};\n      for (var contextName in contextTypes) {\n        maskedContext[contextName] = context[contextName];\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      if (childContext) {\n        return Object.assign({}, currentContext, childContext);\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      if (!queue) {\n        return instance.state;\n      }\n      // Reset pending queue\n      this._pendingStateQueue = null;\n      var nextState = Object.assign({}, instance.state);\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        _host2.default.measurer && _host2.default.measurer.beforeUpdateComponent(this._mountID, this);\n      }\n\n      if (!instance) {\n        console.error('Update component \\'' + this.getName() + '\\' that has already been unmounted (or failed to mount).');\n      }\n\n      var willReceive = false;\n      var nextContext = void 0;\n      var nextProps = void 0;\n\n      // Determine if the context has changed or not\n      if (this._context === nextUnmaskedContext) {\n        nextContext = instance.context;\n      } else {\n        nextContext = this._processContext(nextUnmaskedContext);\n        willReceive = true;\n      }\n\n      // Distinguish between a props update versus a simple state update\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      }\n\n      // Update refs\n      _ref2.default.update(prevElement, nextElement, this);\n\n      // Shoud update always default\n      var shouldUpdate = true;\n      var prevProps = instance.props;\n      var prevState = instance.state;\n      // TODO: could delay execution processPendingState\n      var nextState = this._processPendingState(nextProps, nextContext);\n\n      // ShouldComponentUpdate is not called when forceUpdate is used\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, _shallowEqual2.default)(prevProps, nextProps) || !(0, _shallowEqual2.default)(prevState, nextState);\n        }\n      }\n\n      if (shouldUpdate) {\n        this._pendingForceUpdate = false;\n        // Will set `this.props`, `this.state` and `this.context`.\n        var prevContext = instance.context;\n\n        // Cannot use this.setState() in componentWillUpdate.\n        // If need to update state in response to a prop change, use componentWillReceiveProps instead.\n        performInSandbox(function () {\n          if (instance.componentWillUpdate) {\n            instance.componentWillUpdate(nextProps, nextState, nextContext);\n          }\n        }, instance);\n\n        // Replace with next\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\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      }\n\n      // Flush setState callbacks set in componentWillReceiveProps\n      if (hasReceived) {\n        var callbacks = this._pendingCallbacks;\n        this._pendingCallbacks = null;\n        _updater2.default.runCallbacks(callbacks, instance);\n      }\n\n      if (process.env.NODE_ENV !== 'production') {\n        _host2.default.measurer && _host2.default.measurer.afterUpdateComponent(this._mountID);\n      }\n\n      _host2.default.hook.Reconciler.receiveComponent(this);\n    }\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\n      var instance = this._instance;\n      var nextRenderedElement = void 0;\n\n      _host2.default.component = this;\n\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\n      _host2.default.component = null;\n\n      if ((0, _shouldUpdateComponent2.default)(prevRenderedElement, nextRenderedElement)) {\n        prevRenderedComponent.updateComponent(prevRenderedElement, nextRenderedElement, prevRenderedComponent._context, this._processChildContext(context));\n        if (process.env.NODE_ENV !== 'production') {\n          _host2.default.measurer && _host2.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\n        this._renderedComponent = (0, _instantiateComponent2.default)(nextRenderedElement);\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          }\n\n          // oldChild or newChild all maybe fragment\n          if (!Array.isArray(oldChild)) {\n            oldChild = [oldChild];\n          }\n\n          // If newChild count large then oldChild\n          var lastNewChild = void 0;\n          for (var i = 0; i < newChild.length; i++) {\n            var child = newChild[i];\n            if (oldChild[i]) {\n              _host2.default.driver.replaceChild(child, oldChild[i]);\n            } else {\n              _host2.default.driver.insertAfter(child, lastNewChild);\n            }\n            lastNewChild = child;\n          }\n\n          // If newChild count less then oldChild\n          if (newChild.length < oldChild.length) {\n            for (var _i = newChild.length; _i < oldChild.length; _i++) {\n              _host2.default.driver.removeChild(oldChild[_i]);\n            }\n          }\n        });\n      }\n    }\n  }, {\n    key: 'getNativeNode',\n    value: function getNativeNode() {\n      var renderedComponent = this._renderedComponent;\n      if (renderedComponent) {\n        return renderedComponent.getNativeNode();\n      }\n    }\n  }, {\n    key: 'getPublicInstance',\n    value: function getPublicInstance() {\n      var instance = this._instance;\n      // The Stateless components cannot be given refs\n      if (instance instanceof _stateless2.default) {\n        return null;\n      }\n      return instance;\n    }\n  }]);\n\n  return CompositeComponent;\n}();\n\nexports.default = CompositeComponent;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _host = require('./host');\n\nvar _host2 = _interopRequireDefault(_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\n/**\n * Text Component\n */\nvar TextComponent = function () {\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 = _host2.default.mountID++;\n\n      // Weex dom operation\n      var nativeNode = this.getNativeNode();\n\n      if (childMounter) {\n        childMounter(nativeNode, parent);\n      } else {\n        _host2.default.driver.appendChild(nativeNode, parent);\n      }\n\n      var instance = {\n        _internal: this\n      };\n\n      _host2.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        _host2.default.driver.removeChild(this._nativeNode, this._parent);\n      }\n\n      _host2.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;\n        // Devtool read the latest stringText value\n        this._stringText = String(nextElement);\n        _host2.default.driver.updateText(this.getNativeNode(), this._stringText);\n        _host2.default.hook.Reconciler.receiveComponent(this);\n      }\n    }\n  }, {\n    key: 'getNativeNode',\n    value: function getNativeNode() {\n      if (this._nativeNode == null) {\n        this._nativeNode = _host2.default.driver.createText(this._stringText);\n      }\n      return this._nativeNode;\n    }\n  }]);\n\n  return TextComponent;\n}();\n\nexports.default = TextComponent;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _host = require('./host');\n\nvar _host2 = _interopRequireDefault(_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\n/**\n * Empty Component\n */\nvar EmptyComponent = function () {\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\n      var instance = {\n        _internal: this\n      };\n\n      var nativeNode = this.getNativeNode();\n      if (childMounter) {\n        childMounter(nativeNode, parent);\n      } else {\n        _host2.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        _host2.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() {\n      // Noop\n    }\n  }, {\n    key: 'getNativeNode',\n    value: function getNativeNode() {\n      // Weex native node\n      if (this._nativeNode == null) {\n        this._nativeNode = _host2.default.driver.createEmpty();\n      }\n\n      return this._nativeNode;\n    }\n  }]);\n\n  return EmptyComponent;\n}();\n\nexports.default = EmptyComponent;\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 = require('./vdom/host');\n\nvar _host2 = _interopRequireDefault(_host);\n\nvar _empty = require('./vdom/empty');\n\nvar _empty2 = _interopRequireDefault(_empty);\n\nvar _native = require('./vdom/native');\n\nvar _native2 = _interopRequireDefault(_native);\n\nvar _text = require('./vdom/text');\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _composite = require('./vdom/composite');\n\nvar _composite2 = _interopRequireDefault(_composite);\n\nvar _fragment = require('./vdom/fragment');\n\nvar _fragment2 = _interopRequireDefault(_fragment);\n\nvar _driverWeex = require('driver-weex');\n\nvar _driverWeex2 = _interopRequireDefault(_driverWeex);\n\nvar _driverBrowser = require('driver-browser');\n\nvar _driverBrowser2 = _interopRequireDefault(_driverBrowser);\n\nvar _hook = require('./debug/hook');\n\nvar _hook2 = _interopRequireDefault(_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\n  // Inject component class\n  _host2.default.EmptyComponent = _empty2.default;\n  _host2.default.NativeComponent = _native2.default;\n  _host2.default.TextComponent = _text2.default;\n  _host2.default.FragmentComponent = _fragment2.default;\n  _host2.default.CompositeComponent = _composite2.default;\n\n  // Inject devtool hook\n  _host2.default.hook = hook || _hook2.default;\n\n  // Inject performance measurer\n  _host2.default.measurer = measurer;\n\n  // Inject render driver\n  if (!_host2.default.driver) {\n    if (!driver) {\n      if (_universalEnv.isWeex) {\n        driver = _driverWeex2.default;\n      } else if (_universalEnv.isWeb) {\n        driver = _driverBrowser2.default;\n      } else {\n        throw Error('No builtin driver matched');\n      }\n    }\n    _host2.default.driver = driver;\n  }\n\n  if (deviceWidth && _host2.default.driver.setDeviceWidth) {\n    _host2.default.driver.setDeviceWidth(deviceWidth);\n  }\n\n  if (viewportWidth && _host2.default.driver.setViewportWidth) {\n    _host2.default.driver.setViewportWidth(viewportWidth);\n  }\n\n  if (eventRegistry) {\n    _host2.default.driver.eventRegistry = eventRegistry;\n  }\n\n  // Body custom type only works in weex\n  if (bodyType) {\n    _host2.default.driver.bodyType = bodyType;\n  }\n\n  if (bodyProps) {\n    _host2.default.driver.bodyProps = bodyProps;\n  }\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _component = require('./component');\n\nvar _component2 = _interopRequireDefault(_component);\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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Pure component class.\n */\nvar PureComponent = function (_Component) {\n  _inherits(PureComponent, _Component);\n\n  function PureComponent(props, context) {\n    _classCallCheck(this, PureComponent);\n\n    return _possibleConstructorReturn(this, (PureComponent.__proto__ || Object.getPrototypeOf(PureComponent)).call(this, props, context));\n  }\n\n  _createClass(PureComponent, [{\n    key: 'isPureComponentClass',\n    value: function isPureComponentClass() {}\n  }]);\n\n  return PureComponent;\n}(_component2.default);\n\nexports.default = PureComponent;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _component = require('../component');\n\nvar _component2 = _interopRequireDefault(_component);\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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar rootCounter = 1;\n\nvar Root = function (_Component) {\n  _inherits(Root, _Component);\n\n  function Root() {\n    var _ref;\n\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, Root);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Root.__proto__ || Object.getPrototypeOf(Root)).call.apply(_ref, [this].concat(args))), _this), _this.rootID = rootCounter++, _temp), _possibleConstructorReturn(_this, _ret);\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}(_component2.default);\n\nexports.default = Root;\nmodule.exports = exports['default'];","'use strict';\n\nvar _hook = require('./hook');\n\nvar _hook2 = _interopRequireDefault(_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(_hook2.default);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.createContext = exports.Children = exports.version = exports.setNativeProps = exports.findComponentInstance = exports.unmountComponentAtNode = exports.findDOMNode = exports.createPortal = exports.hydrate = exports.render = exports.PropTypes = exports.PureComponent = exports.Component = exports.createFactory = exports.isValidElement = exports.cloneElement = exports.createElement = undefined;\n\nrequire('./debug/devtools');\n\nvar _element = require('./element');\n\nvar _component = require('./component');\n\nvar _component2 = _interopRequireDefault(_component);\n\nvar _purecomponent = require('./purecomponent');\n\nvar _purecomponent2 = _interopRequireDefault(_purecomponent);\n\nvar _proptypes = require('./proptypes');\n\nvar _proptypes2 = _interopRequireDefault(_proptypes);\n\nvar _render2 = require('./render');\n\nvar _render3 = _interopRequireDefault(_render2);\n\nvar _hydrate2 = require('./hydrate');\n\nvar _hydrate3 = _interopRequireDefault(_hydrate2);\n\nvar _createPortal2 = require('./createPortal');\n\nvar _createPortal3 = _interopRequireDefault(_createPortal2);\n\nvar _findDOMNode2 = require('./findDOMNode');\n\nvar _findDOMNode3 = _interopRequireDefault(_findDOMNode2);\n\nvar _unmountComponentAtNode2 = require('./unmountComponentAtNode');\n\nvar _unmountComponentAtNode3 = _interopRequireDefault(_unmountComponentAtNode2);\n\nvar _findComponentInstance2 = require('./findComponentInstance');\n\nvar _findComponentInstance3 = _interopRequireDefault(_findComponentInstance2);\n\nvar _setNativeProps2 = require('./setNativeProps');\n\nvar _setNativeProps3 = _interopRequireDefault(_setNativeProps2);\n\nvar _version2 = require('./version');\n\nvar _version3 = _interopRequireDefault(_version2);\n\nvar _children = require('./children');\n\nvar _children2 = _interopRequireDefault(_children);\n\nvar _createContext2 = require('./createContext');\n\nvar _createContext3 = _interopRequireDefault(_createContext2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.createElement = _element.createElement;\nexports.cloneElement = _element.cloneElement;\nexports.isValidElement = _element.isValidElement;\nexports.createFactory = _element.createFactory;\nexports.Component = _component2.default;\nexports.PureComponent = _purecomponent2.default;\nexports.PropTypes = _proptypes2.default;\nexports.render = _render3.default;\nexports.hydrate = _hydrate3.default;\nexports.createPortal = _createPortal3.default;\nexports.findDOMNode = _findDOMNode3.default;\nexports.unmountComponentAtNode = _unmountComponentAtNode3.default;\nexports.findComponentInstance = _findComponentInstance3.default;\nexports.setNativeProps = _setNativeProps3.default;\nexports.version = _version3.default;\nexports.Children = _children2.default;\nexports.createContext = _createContext3.default;\nexports['default'] = module.exports;\nexports.default = module.exports;","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","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","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","(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","// 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","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","require('./').polyfill()\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","// 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","// 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","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","'use strict';\n\n// https://github.com/ericf/css-mediaquery\n\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\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        case 'max':\n          return value <= expValue;\n        default:\n          return value === expValue;\n      }\n    });\n\n    return expressionsMatch && !inverse || !expressionsMatch && inverse;\n  });\n};\n\nfunction _parseQuery(media) {\n  return media.split(',').map(function (query) {\n    query = query.trim();\n\n    var captures = query.match(RE_MEDIA_QUERY);\n\n    if (!captures) {\n      throw new SyntaxError('Invalid CSS media query: \"' + query + '\"');\n    }\n\n    var modifier = captures[1],\n        type = captures[2],\n        expressions = ((captures[3] || '') + (captures[4] || '')).trim(),\n        parsed = {};\n\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: \"' + 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: \"' + query + '\"');\n      }\n\n      var feature = captures[1].toLowerCase().match(RE_MQ_FEATURE);\n\n      return {\n        modifier: feature[1],\n        feature: feature[2],\n        value: captures[2]\n      };\n    });\n\n    return parsed;\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\n  return mql;\n}\n\nmodule.exports = matchMedia;","'use strict';\n\n// https://github.com/Polymer/URL\n\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;\n\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  }\n  // XXX\n  return h.toLowerCase();\n}\n\nfunction percentEscape(c) {\n  var unicode = c.charCodeAt(0);\n  if (unicode > 0x20 && unicode < 0x7F &&\n  // \" # < > ? `\n  [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) == -1) {\n    return c;\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\n  var unicode = c.charCodeAt(0);\n  if (unicode > 0x20 && unicode < 0x7F &&\n  // \" # < > ` (do not escape '?')\n  [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) == -1) {\n    return c;\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    switch (state) {\n      case 'scheme start':\n        if (c && ALPHA.test(c)) {\n          buffer += c.toLowerCase(); // ASCII-safe\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        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          if (stateOverride) {\n            break loop;\n          }\n          if (isRelativeScheme(this._scheme)) {\n            this._isRelative = true;\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        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        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        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        break;\n\n      case 'relative':\n        this._isRelative = true;\n        if ('file' != this._scheme) this._scheme = base._scheme;\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          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            this._path.pop();\n          }\n          state = 'relative path';\n          continue;\n        }\n        break;\n\n      case 'relative slash':\n        if ('/' == c || '\\\\' == c) {\n          if ('\\\\' == c) {\n            err('\\\\ is an invalid code point.');\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          state = 'relative path';\n          continue;\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        break;\n\n      case 'authority second slash':\n        state = 'authority ignore slashes';\n        if ('/' != c) {\n          err(\"Expected '/', got: \" + c);\n          continue;\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        break;\n\n      case 'authority':\n        if ('@' == c) {\n          if (seenAt) {\n            err('@ already seen.');\n            buffer += '%40';\n          }\n          seenAt = true;\n          for (var i = 0; i < buffer.length; i++) {\n            var cp = buffer[i];\n            if ('\\t' == cp || '\\n' == cp || '\\r' == cp) {\n              err('Invalid whitespace in authority.');\n              continue;\n            }\n            // XXX check URL code points\n            if (':' == cp && null === this._password) {\n              this._password = '';\n              continue;\n            }\n            var tempC = percentEscape(cp);\n            null !== this._password ? this._password += tempC : this._username += tempC;\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        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          continue;\n        } else if ('\\t' == c || '\\n' == c || '\\r' == c) {\n          err('Invalid whitespace in file host.');\n        } else {\n          buffer += c;\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          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          if (stateOverride) {\n            break loop;\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          buffer += c;\n        } else {\n          err('Invalid code point in host/hostname: ' + c);\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            if (temp != relative[this._scheme]) {\n              this._port = temp + '';\n            }\n            buffer = '';\n          }\n          if (stateOverride) {\n            break loop;\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        break;\n\n      case 'relative path start':\n        if ('\\\\' == c) err(\"'\\\\' not allowed in path.\");\n        state = 'relative path';\n        if ('/' != c && '\\\\' != c) {\n          continue;\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          var tmp;\n          if (tmp = relativePathDotMapping[buffer.toLowerCase()]) {\n            buffer = tmp;\n          }\n          if ('..' == buffer) {\n            this._path.pop();\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            this._path.push(buffer);\n          }\n          buffer = '';\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        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        break;\n\n      case 'fragment':\n        if (EOF != c && '\\t' != c && '\\n' != c && '\\r' != c) {\n          this._fragment += c;\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}\n\n// Does not process domain names or IP addresses.\n// Does not handle encoding for the query parameter.\nfunction URL(url, base /* , encoding */) {\n  if (base !== undefined && !(base instanceof URL)) base = new URL(String(base));\n\n  this._url = url;\n  clear.call(this);\n\n  var input = url.replace(/^[ \\t\\r\\n\\f]+|[ \\t\\r\\n\\f]+$/g, '');\n  // 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  get href() {\n    if (this._isInvalid) return this._url;\n\n    var authority = '';\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  set href(href) {\n    clear.call(this);\n    parse.call(this, href);\n  },\n\n  get protocol() {\n    return this._scheme + ':';\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  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  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  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  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  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  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    if (this._isInvalid || !this._scheme) {\n      return '';\n    }\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    switch (this._scheme) {\n      case 'data':\n      case 'file':\n      case 'javascript':\n      case 'mailto':\n        return 'null';\n    }\n    host = this.host;\n    if (!host) {\n      return '';\n    }\n    return this._scheme + '://' + host;\n  }\n};\n\nmodule.exports = URL;","\"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/* eslint no-extend-native: \"off\" */\n\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, { value: true, writable: true });\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\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/* eslint no-extend-native: \"off\" */\n\nvar defineProperty = Object.defineProperty;\nvar counter = Date.now() % 1e9;\n\nvar WeakMap = function WeakMap(data) {\n  this.name = '__st' + (Math.random() * 1e9 >>> 0) + (counter++ + '__');\n\n  // If data is iterable (indicated by presence of a forEach method), pre-populate the map\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 === 'undefined' ? 'undefined' : _typeof(key)) !== 'object' && typeof key !== 'function') throw new TypeError('Invalid value used as weak map key');\n\n  var entry = key[this.name];\n  if (entry && entry[0] === key) entry[1] = value;else defineProperty(key, this.name, { value: [key, value], writable: true });\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\nvar _symbol = require('./symbol');\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// 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.\nvar undefMarker = (0, _symbol2.default)('undef');\n\n// NaN cannot be found in an array using indexOf, so we encode NaNs using a private symbol.\n/* eslint no-extend-native: \"off\" */\nvar NaNMarker = (0, _symbol2.default)('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      }if (nextIdx === setInst._values.length) {\n        return { value: void 0, done: true };\n      } else {\n        return { value: getter.call(setInst, nextIdx++), done: false };\n      }\n    }\n  };\n}\n\nfunction calcSize(setInst) {\n  var size = 0;\n  for (var i = 0, s = setInst._values.length; i < s; i++) {\n    if (setInst._values[i] !== undefMarker) size++;\n  }\n  return size;\n}\n\nvar Set = function Set(data) {\n  this._values = [];\n\n  // If `data` is iterable (indicated by presence of a forEach method), pre-populate the set\n  data && typeof data.forEach === 'function' && data.forEach(function (item) {\n    this.add.call(this, item);\n  }, this);\n\n  if (!ACCESSOR_SUPPORT) this.size = calcSize(this);\n};\n\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.\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  if (this._values.indexOf(value) === -1) {\n    this._values.push(value);\n    if (!ACCESSOR_SUPPORT) this.size = calcSize(this);\n  }\n  return this;\n};\nSet.prototype.has = function (value) {\n  return this._values.indexOf(encodeVal(value)) !== -1;\n};\nSet.prototype.delete = function (value) {\n  var idx = this._values.indexOf(encodeVal(value));\n  if (idx === -1) return false;\n  this._values[idx] = undefMarker;\n  if (!ACCESSOR_SUPPORT) this.size = calcSize(this);\n  return true;\n};\nSet.prototype.clear = function () {\n  this._values = [];\n  if (!ACCESSOR_SUPPORT) this.size = 0;\n};\nSet.prototype.values = Set.prototype.keys = function () {\n  return makeIterator(this, function (i) {\n    return decodeVal(this._values[i]);\n  });\n};\nSet.prototype.entries = Set.prototype[_symbol2.default.iterator] = function () {\n  return makeIterator(this, function (i) {\n    return [decodeVal(this._values[i]), decodeVal(this._values[i])];\n  });\n};\nSet.prototype.forEach = function (callbackFn, thisArg) {\n  thisArg = thisArg || global;\n  var iterator = this.entries();\n  var result = iterator.next();\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[_symbol2.default.species] = Set;\n\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\nvar _symbol = require('./symbol');\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// 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.\nvar undefMarker = (0, _symbol2.default)('undef');\n// NaN cannot be found in an array using indexOf, so we encode NaNs using a private symbol.\n/* eslint no-extend-native: \"off\" */\nvar NaNMarker = (0, _symbol2.default)('NaN');\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      if (!done) {\n        while (mapInst._keys[nextIdx] === undefMarker) {\n          nextIdx++;\n        }return { value: getter.call(mapInst, nextIdx++), done: false };\n      } else {\n        return { value: void 0, done: true };\n      }\n    }\n  };\n}\n\nfunction calcSize(mapInst) {\n  var size = 0;\n  for (var i = 0, s = mapInst._keys.length; i < s; i++) {\n    if (mapInst._keys[i] !== undefMarker) size++;\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 = [];\n  // If `data` is iterable (indicated by presence of a forEach method), pre-populate the map\n  if (data && hasProtoMethod(data, 'forEach')) {\n    // Fastpath: If `data` is a Map, shortcircuit all following the checks\n    if (data instanceof Map ||\n    // 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};\nMap.prototype = {};\n\n// 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.\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  return idx !== -1 ? this._values[idx] : undefined;\n};\nMap.prototype.set = function (key, value) {\n  var idx = this._keys.indexOf(encodeKey(key));\n  if (idx !== -1) {\n    this._values[idx] = value;\n  } else {\n    this._keys.push(encodeKey(key));\n    this._values.push(value);\n    if (!ACCESSOR_SUPPORT) this.size = calcSize(this);\n  }\n  return this;\n};\nMap.prototype.has = function (key) {\n  return this._keys.indexOf(encodeKey(key)) !== -1;\n};\nMap.prototype.delete = function (key) {\n  var idx = this._keys.indexOf(encodeKey(key));\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};\nMap.prototype.clear = function () {\n  this._keys = this._values = [];\n  if (!ACCESSOR_SUPPORT) this.size = 0;\n};\nMap.prototype.values = function () {\n  return makeIterator(this, function (i) {\n    return this._values[i];\n  });\n};\nMap.prototype.keys = function () {\n  return makeIterator(this, function (i) {\n    return decodeKey(this._keys[i]);\n  });\n};\nMap.prototype.entries = Map.prototype[_symbol2.default.iterator] = function () {\n  return makeIterator(this, function (i) {\n    return [decodeKey(this._keys[i]), this._values[i]];\n  });\n};\nMap.prototype.forEach = function (callbackFn, thisArg) {\n  thisArg = thisArg || global;\n  var iterator = this.entries();\n  var result = iterator.next();\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[_symbol2.default.species] = Map;\n\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\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/* eslint no-extend-native: \"off\" */\n\nfunction noop() {}\n\n// Use polyfill for setImmediate for performance gains\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};\n\n// Polyfill for Function.prototype.bind\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\n  doResolve(fn, this);\n}\n\nfunction handle(self, deferred) {\n  while (self._state === 3) {\n    self = self._value;\n  }\n  if (self._state === 0) {\n    self._deferreds.push(deferred);\n    return;\n  }\n  self._handled = true;\n  asap(function () {\n    var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n    if (cb === null) {\n      (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n      return;\n    }\n    var ret;\n    try {\n      ret = cb(self._value);\n    } catch (e) {\n      reject(deferred.promise, e);\n      return;\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    if (newValue && ((typeof newValue === 'undefined' ? 'undefined' : _typeof(newValue)) === 'object' || typeof newValue === 'function')) {\n      var then = newValue.then;\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    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  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/**\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 */\nfunction doResolve(fn, self) {\n  var done = false;\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\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\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 === 'undefined' ? 'undefined' : _typeof(val)) === 'object' || typeof val === 'function')) {\n          var then = val.then;\n          if (typeof then === 'function') {\n            then.call(val, function (val) {\n              res(i, val);\n            }, reject);\n            return;\n          }\n        }\n        args[i] = val;\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 === 'undefined' ? 'undefined' : _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/**\n * Set the immediate function to execute callbacks\n * @param fn {function} Function to execute\n * @private\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\nmodule.exports = {\n  get Promise() {\n    return require('./promise');\n  },\n  get Symbol() {\n    return require('./symbol');\n  },\n  get Map() {\n    return require('./map');\n  },\n  get Set() {\n    return require('./set');\n  },\n  get WeakMap() {\n    return require('./weakmap');\n  },\n  get WeakSet() {\n    return require('./weakset');\n  },\n  get FontFace() {\n    return require('./fontface');\n  },\n  get URL() {\n    return require('./url');\n  },\n  get URLSearchParams() {\n    return require('./url-search-params');\n  },\n  get matchMedia() {\n    return require('./matchMedia');\n  }\n};","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"],"sourceRoot":""}