diff --git a/Examples/AdvancedEffects/iOS/main.jsbundle b/Examples/AdvancedEffects/iOS/main.jsbundle index 51a94ebb94cb94579003abf7249f23acbe4223e9..64d304acdd9781a5ef1a119d3b0dbfc29c28f3fa 100644 --- a/Examples/AdvancedEffects/iOS/main.jsbundle +++ b/Examples/AdvancedEffects/iOS/main.jsbundle @@ -14,8 +14,8 @@ icon:a.propTypes.source,selectedIcon:a.propTypes.source,onPress:s.PropTypes.func },touchableHandleLongPress:function(){this.props.onLongPress&&this.props.onLongPress()},touchableGetPressRectOffset:function(){return E},touchableGetHighlightDelayMS:function(){return this.props.delayPressIn},touchableGetLongPressDelayMS:function(){return this.props.delayLongPress},touchableGetPressOutDelayMS:function(){return this.props.delayPressOut},_showUnderlay:function(){this.isMounted()&&(this.refs[T].setNativeProps(this.state.activeUnderlayProps),this.refs[x].setNativeProps(this.state.activeProps),this.props.onShowUnderlay&&this.props.onShowUnderlay())},_hideUnderlay:function(){this.clearTimeout(this._hideTimeout),this._hideTimeout=null,this.refs[T]&&(this.refs[x].setNativeProps(w),this.refs[T].setNativeProps(a({},C,{style:this.state.underlayStyle})),this.props.onHideUnderlay&&this.props.onHideUnderlay())},render:function(){return u.createElement(h,{ref:T,style:this.state.underlayStyle,onStartShouldSetResponder:this.touchableHandleStartShouldSetResponder,onResponderTerminationRequest:this.touchableHandleResponderTerminationRequest,onResponderGrant:this.touchableHandleResponderGrant,onResponderMove:this.touchableHandleResponderMove,onResponderRelease:this.touchableHandleResponderRelease,onResponderTerminate:this.touchableHandleResponderTerminate},m(b(this.props.children),{ref:x,accessible:!0,testID:this.props.testID}))}}),E={top:20,left:20,right:20,bottom:30},x=y({childRef:null}),T=y({underlayRef:null}),w={style:l.create({x:{opacity:1}}).x},C={style:l.create({x:{backgroundColor:"transparent"}}).x};o.exports=R}),__d("cloneWithProps",["ReactElement","ReactPropTransferer","keyOf","warning"],function(e,t,n,r,o,i){"use strict";function a(e,t){__DEV__&&l(!e.ref,"You are calling cloneWithProps() on a child with a ref. This is dangerous because you're creating a new child which will not be added as a ref to its parent.");var n=u.mergeProps(t,e.props);return!n.hasOwnProperty(p)&&e.props.hasOwnProperty(p)&&(n.children=e.props.children),s.createElement(e.type,n)}var s=t("ReactElement"),u=t("ReactPropTransferer"),c=t("keyOf"),l=t("warning"),p=c({children:null});o.exports=a}),__d("ReactPropTransferer",["Object.assign","emptyFunction","joinClasses"],function(e,t,n,r,o,i){"use strict";function a(e){return function(t,n,r){t.hasOwnProperty(n)?t[n]=e(t[n],r):t[n]=r}}function s(e,t){for(var n in t)if(t.hasOwnProperty(n)){var r=f[n];r&&f.hasOwnProperty(n)?r(e,n,t[n]):e.hasOwnProperty(n)||(e[n]=t[n])}return e}var u=t("Object.assign"),c=t("emptyFunction"),l=t("joinClasses"),p=a(function(e,t){return u({},t,e)}),f={children:c,className:a(l),style:p},d={mergeProps:function(e,t){return s(u({},e),t)}};o.exports=d}),__d("joinClasses",[],function(e,t,n,r,o,i){"use strict";function a(e){e||(e="");var t,n=arguments.length;if(n>1)for(var r=1;n>r;r++)t=arguments[r],t&&(e=(e?e+" ":"")+t);return e}o.exports=a}),__d("ensureComponentIsNative",["invariant"],function(e,t,n,r,o,i){"use strict";var a=t("invariant"),s=function(e){a(e&&"function"==typeof e.setNativeProps,"Touchable child must either be native or forward setNativeProps to a native component")};o.exports=s}),__d("TouchableOpacity",["Animated","NativeMethodsMixin","React","Touchable","TouchableWithoutFeedback","ensurePositiveDelayProps","flattenStyle","keyOf","react-timer-mixin/TimerMixin.js"],function(e,t,n,r,o,i){"use strict";var a=Object.assign||function(e){for(var t=1;t=this._startTime+this._duration?(0===this._duration?this._onUpdate(this._toValue):this._onUpdate(this._fromValue+this._easing(1)*(this._toValue-this._fromValue)),void this.__debouncedOnEnd({finished:!0})):(this._onUpdate(this._fromValue+this._easing((e-this._startTime)/this._duration)*(this._toValue-this._fromValue)),void(this.__active&&(this._animationFrame=T(this.onUpdate.bind(this)))))}},{key:"stop",value:function(){this.__active=!1,clearTimeout(this._timeout),window.cancelAnimationFrame(this._animationFrame),this.__debouncedOnEnd({finished:!1})}}]),t}(C),D=function(e){function t(e){s(this,t),f(Object.getPrototypeOf(t.prototype),"constructor",this).call(this),this._deceleration=e.deceleration||.998,this._velocity=e.velocity}return a(t,e),d(t,[{key:"start",value:function(e,t,n){this.__active=!0,this._lastValue=e,this._fromValue=e,this._onUpdate=t,this.__onEnd=n,this._startTime=Date.now(),this._animationFrame=T(this.onUpdate.bind(this))}},{key:"onUpdate",value:function(){var e=Date.now(),t=this._fromValue+this._velocity/(1-this._deceleration)*(1-Math.exp(-(1-this._deceleration)*(e-this._startTime)));return this._onUpdate(t),Math.abs(this._lastValue-t)<.1?void this.__debouncedOnEnd({finished:!0}):(this._lastValue=t,void(this.__active&&(this._animationFrame=T(this.onUpdate.bind(this)))))}},{key:"stop",value:function(){this.__active=!1,window.cancelAnimationFrame(this._animationFrame),this.__debouncedOnEnd({finished:!1})}}]),t}(C),N=function(e){function t(e){s(this,t),f(Object.getPrototypeOf(t.prototype),"constructor",this).call(this),this._overshootClamping=c(e.overshootClamping,!1),this._restDisplacementThreshold=c(e.restDisplacementThreshold,.001),this._restSpeedThreshold=c(e.restSpeedThreshold,.001),this._initialVelocity=e.velocity,this._lastVelocity=c(e.velocity,0),this._toValue=e.toValue;var n;void 0!==e.bounciness||void 0!==e.speed?(R(void 0===e.tension&&void 0===e.friction,"You can only define bounciness/speed or tension/friction but not both"),n=x.SpringConfig.fromBouncinessAndSpeed(c(e.bounciness,8),c(e.speed,12))):n=x.SpringConfig.fromOrigamiTensionAndFriction(c(e.tension,40),c(e.friction,7)),this._tension=n.tension,this._friction=n.friction}return a(t,e),d(t,[{key:"start",value:function(e,n,r,o){if(this.__active=!0,this._startPosition=e,this._lastPosition=this._startPosition,this._onUpdate=n,this.__onEnd=r,this._lastTime=Date.now(),o instanceof t){var i=o.getInternalState();this._lastPosition=i.lastPosition,this._lastVelocity=i.lastVelocity,this._lastTime=i.lastTime}void 0!==this._initialVelocity&&null!==this._initialVelocity&&(this._lastVelocity=this._initialVelocity),this.onUpdate()}},{key:"getInternalState",value:function(){return{lastPosition:this._lastPosition,lastVelocity:this._lastVelocity,lastTime:this._lastTime}}},{key:"onUpdate",value:function(){var e=this._lastPosition,t=this._lastVelocity,n=this._lastPosition,r=this._lastVelocity,o=64,i=Date.now();i>this._lastTime+o&&(i=this._lastTime+o);for(var a=1,s=Math.floor((i-this._lastTime)/a),u=0;s>u;++u){var c=a/1e3,l=t,p=this._tension*(this._toValue-n)-this._friction*r,n=e+l*c/2,r=t+p*c/2,f=r,d=this._tension*(this._toValue-n)-this._friction*r;n=e+f*c/2,r=t+d*c/2;var h=r,m=this._tension*(this._toValue-n)-this._friction*r;n=e+h*c/2,r=t+m*c/2;var v=r,g=this._tension*(this._toValue-n)-this._friction*r;n=e+h*c/2,r=t+m*c/2;var y=(l+2*(f+h)+v)/6,_=(p+2*(d+m)+g)/6;e+=y*c,t+=_*c}if(this._lastTime=i,this._lastPosition=e,this._lastVelocity=t,this._onUpdate(e),this.__active){var b=!1;this._overshootClamping&&0!==this._tension&&(b=this._startPositionthis._toValue:eo;o++)r[o]=arguments[o];var i=function(e,t,n){if("number"==typeof t)return R(e instanceof A,"Bad mapping of type "+typeof e+" for key "+n+", event value must map to AnimatedValue"),void e.setValue(t);R("object"==typeof e,"Bad mapping of type "+typeof e+" for key "+n),R("object"==typeof t,"Bad event of type "+typeof t+" for key "+n);for(var n in e)i(e[n],t[n],n)};e.forEach(function(e,t){i(e,r[t],"arg"+t)}),t&&t.listener&&t.listener.apply(null,r)}};o.exports={delay:Y,sequence:G,parallel:W,stagger:K,decay:z,timing:q,spring:U,event:Z,Value:A,ValueXY:k,__PropsOnlyForTests:F,View:l(S),Text:l(b),Image:l(m),createAnimatedComponent:l}}),__d("Interpolation",[],function(e,t,n,r,o,i){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t,n,r,o,i,a,s){var u=e;if(t>u){if("identity"===a)return u;"clamp"===a&&(u=t)}if(u>n){if("identity"===s)return u;"clamp"===s&&(u=n)}return r===o?r:t===n?t>=e?r:o:(t===-(1/0)?u=-u:n===1/0?u-=t:u=(u-t)/(n-t),u=i(u),r===-(1/0)?u=-u:o===1/0?u+=r:u=u*(o-r)+r,u)}function u(e){var t=e.outputRange;m(t.length>=2,"Bad output range"),c(t);var n=t[0].match(y).map(function(){return[]});t.forEach(function(e){e.match(y).forEach(function(e,t){n[t].push(+e)})});var r=t[0].match(y).map(function(t,r){return g.create(d({},e,{outputRange:n[r]}))});return function(e){var n=0;return t[0].replace(y,function(){return String(r[n++](e))})}}function c(e){for(var t=e[0].replace(y,""),n=1;n=e);++n);return n-1}function p(e){m(e.length>=2,"inputRange must have at least 2 elements");for(var t=1;t=e[t-1],"inputRange must be monotonically increasing "+e)}function f(e,t){m(t.length>=2,e+" must have at least 2 elements"),m(2!==t.length||t[0]!==-(1/0)||t[1]!==1/0,e+"cannot be ]-infinity;+infinity[ "+t)}var d=Object.assign||function(e){for(var t=1;t0?1:0}},{key:"step1",value:function(e){return e>=1?1:0}},{key:"linear",value:function(e){return e}},{key:"ease",value:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}(function(e){return l(e)})},{key:"quad",value:function(e){return e*e}},{key:"cubic",value:function(e){return e*e*e}},{key:"poly",value:function(e){return function(t){return Math.pow(t,e)}}},{key:"sin",value:function(e){return 1-Math.cos(e*Math.PI/2)}},{key:"circle",value:function(e){return 1-Math.sqrt(1-e*e)}},{key:"exp",value:function(e){return Math.pow(2,10*(e-1))}},{key:"elastic",value:function(e,t){var n,r=2*Math.PI;return arguments.length<2&&(t=.45),arguments.length?n=t/r*Math.asin(1/e):(e=1,n=t/4),function(o){return 1+e*Math.pow(2,-10*o)*Math.sin((o-n)*r/t)}}},{key:"back",value:function(e){return void 0===e&&(e=1.70158),function(t){return t*t*((e+1)*t-e)}}},{key:"bounce",value:function(e){return 1/2.75>e?7.5625*e*e:2/2.75>e?(e-=1.5/2.75,7.5625*e*e+.75):2.5/2.75>e?(e-=2.25/2.75,7.5625*e*e+.9375):(e-=2.625/2.75,7.5625*e*e+.984375)}},{key:"bezier",value:function(e,t,n,r,o){if(void 0===o){var i=500;o=1e3/60/i/4}return u(e,t,n,r,o)}},{key:"in",value:function(e){return e}},{key:"out",value:function(e){return function(t){return 1-e(1-t)}}},{key:"inOut",value:function(e){return function(t){return.5>t?e(2*t)/2:1-e(2*(1-t))/2}}}]),e}(),l=c.bezier(.42,0,1,1);o.exports=c}),__d("bezier",[],function(e,t,n,r,o,i){o.exports=function(e,t,n,r,o){var i=function(t){var r=1-t;return 3*r*r*t*e+3*r*t*t*n+t*t*t},a=function(e){var n=1-e;return 3*n*n*e*t+3*n*e*e*r+e*e*e},s=function(t){var r=1-t;return 3*(2*(t-1)*t+r*r)*e+3*(-t*t*t+2*r*t)*n};return function(e){var t,n,r,u,c,l,p=e;for(r=p,l=0;8>l;l++){if(u=i(r)-p,Math.abs(u)r)return a(t);if(r>n)return a(n);for(;n>t;){if(u=i(r),Math.abs(u-p)u?t=r:n=r,r=.5*(n-t)+t}return a(r)}}}),__d("requestAnimationFrame",["emptyFunction","nativeRequestAnimationFrame"],function(e,t,n,r,o,i){var a=t("emptyFunction"),s=t("nativeRequestAnimationFrame"),u=0,c=s||function(t){var n=Date.now(),r=Math.max(0,16-(n-u));return u=n+r,e.setTimeout(function(){t(Date.now())},r)};c(a),o.exports=c}),__d("nativeRequestAnimationFrame",[],function(e,t,n,r,o,i){var a=e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame;o.exports=a}),__d("WebView",["ActivityIndicatorIOS","EdgeInsetsPropType","React","StyleSheet","Text","View","invariant","keyMirror","requireNativeComponent","NativeModules"],function(e,t,n,r,o,i){"use strict";var a=t("ActivityIndicatorIOS"),s=t("EdgeInsetsPropType"),u=t("React"),c=t("StyleSheet"),l=t("Text"),p=t("View"),f=t("invariant"),d=t("keyMirror"),h=t("requireNativeComponent"),m=u.PropTypes,v=t("NativeModules").WebViewManager,g="rgba(255,255,255,0.8)",y="webview",_=d({IDLE:null,LOADING:null,ERROR:null}),b={click:v.NavigationType.LinkClicked,formsubmit:v.NavigationType.FormSubmitted,backforward:v.NavigationType.BackForward,reload:v.NavigationType.Reload,formresubmit:v.NavigationType.FormResubmitted,other:v.NavigationType.Other},S=v.JSNavigationScheme,R=function(){return u.createElement(p,{style:w.loadingView},u.createElement(a,null))},E=function(e,t,n){return u.createElement(p,{style:w.errorContainer},u.createElement(l,{style:w.errorTextTitle},"Error loading page"),u.createElement(l,{style:w.errorText},"Domain: "+e),u.createElement(l,{style:w.errorText},"Error Code: "+t),u.createElement(l,{style:w.errorText},"Description: "+n))},x=u.createClass({displayName:"WebView",statics:{JSNavigationScheme:S,NavigationType:b},propTypes:{url:m.string,html:m.string,renderError:m.func,renderLoading:m.func,bounces:m.bool,scrollEnabled:m.bool,automaticallyAdjustContentInsets:m.bool,contentInset:s,onNavigationStateChange:m.func,startInLoadingState:m.bool,style:p.propTypes.style,javaScriptEnabledAndroid:m.bool,injectedJavaScript:m.string,scalesPageToFit:m.bool},getInitialState:function(){return{viewState:_.IDLE,lastErrorEvent:null,startInLoadingState:!0}},componentWillMount:function(){this.props.startInLoadingState&&this.setState({viewState:_.LOADING})},render:function(){var e=null;if(this.state.viewState===_.LOADING)e=(this.props.renderLoading||R)();else if(this.state.viewState===_.ERROR){var t=this.state.lastErrorEvent;f(null!=t,"lastErrorEvent expected to be non-null"),e=(this.props.renderError||E)(t.domain,t.code,t.description)}else this.state.viewState!==_.IDLE&&console.error("RCTWebView invalid state encountered: "+this.state.loading);var n=[w.container,w.webView,this.props.style];(this.state.viewState===_.LOADING||this.state.viewState===_.ERROR)&&n.push(w.hidden);var r=u.createElement(T,{ref:y,key:"webViewKey",style:n,url:this.props.url,html:this.props.html,injectedJavaScript:this.props.injectedJavaScript,bounces:this.props.bounces,scrollEnabled:this.props.scrollEnabled,contentInset:this.props.contentInset,automaticallyAdjustContentInsets:this.props.automaticallyAdjustContentInsets,onLoadingStart:this.onLoadingStart,onLoadingFinish:this.onLoadingFinish,onLoadingError:this.onLoadingError,scalesPageToFit:this.props.scalesPageToFit});return u.createElement(p,{style:w.container},r,e)},goForward:function(){v.goForward(this.getWebViewHandle())},goBack:function(){v.goBack(this.getWebViewHandle())},reload:function(){v.reload(this.getWebViewHandle())},updateNavigationState:function(e){this.props.onNavigationStateChange&&this.props.onNavigationStateChange(e.nativeEvent)},getWebViewHandle:function(){return u.findNodeHandle(this.refs[y])},onLoadingStart:function(e){this.updateNavigationState(e)},onLoadingError:function(e){e.persist(),console.error("Encountered an error loading page",e.nativeEvent),this.setState({lastErrorEvent:e.nativeEvent,viewState:_.ERROR})},onLoadingFinish:function(e){this.setState({viewState:_.IDLE}),this.updateNavigationState(e)}}),T=h("RCTWebView",x),w=c.create({container:{flex:1},errorContainer:{flex:1,justifyContent:"center",alignItems:"center",backgroundColor:g },errorText:{fontSize:14,textAlign:"center",marginBottom:2},errorTextTitle:{fontSize:15,fontWeight:"500",marginBottom:10},hidden:{height:0,flex:0},loadingView:{backgroundColor:g,flex:1,justifyContent:"center",alignItems:"center"},webView:{backgroundColor:"#ffffff"}});o.exports=x}),__d("ActionSheetIOS",["NativeModules","invariant"],function(e,t,n,r,o,i){"use strict";var a=t("NativeModules").ActionSheetManager,s=t("invariant"),u={showActionSheetWithOptions:function(e,t){s("object"==typeof e&&null!==e,"Options must a valid object"),s("function"==typeof t,"Must provide a valid callback"),a.showActionSheetWithOptions(e,function(){},t)},showShareActionSheetWithOptions:function(e,t,n){s("object"==typeof e&&null!==e,"Options must a valid object"),s("function"==typeof t,"Must provide a valid failureCallback"),s("function"==typeof n,"Must provide a valid successCallback"),a.showShareActionSheetWithOptions(e,t,n)}};o.exports=u}),__d("AdSupportIOS",["NativeModules"],function(e,t,n,r,o,i){"use strict";var a=t("NativeModules").AdSupport;o.exports={getAdvertisingId:function(e,t){a.getAdvertisingId(e,t)},getAdvertisingTrackingEnabled:function(e,t){a.getAdvertisingTrackingEnabled(e,t)}}}),__d("AlertIOS",["NativeModules","invariant"],function(e,t,n,r,o,i){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var s=function(){function e(e,t){for(var n=0;nl.get("window").height/2?"top":"bottom",selection:r.length-1,hierarchy:r,inspected:{style:i.style||{},frame:t}})}},{key:"setPerfing",value:function(e){this.setState({perfing:e,inspecting:!1,inspected:null})}},{key:"setInspecting",value:function(e){this.setState({inspecting:e,inspected:null})}},{key:"render",value:function(){var e="bottom"===this.state.panelPos?{bottom:0}:{top:0};return h.createElement(g,{style:_.container,pointerEvents:"box-none"},this.state.inspecting&&h.createElement(p,{rootTag:this.props.rootTag,inspected:this.state.inspected,inspectedViewTag:this.props.inspectedViewTag,onTouchInstance:this.onTouchInstance.bind(this)}),h.createElement(g,{style:[_.panelContainer,e]},h.createElement(f,{devtoolsIsOpen:!!this.state.devtoolsAgent,inspecting:this.state.inspecting,perfing:this.state.perfing,setPerfing:this.setPerfing.bind(this),setInspecting:this.setInspecting.bind(this),inspected:this.state.inspected,hierarchy:this.state.hierarchy,selection:this.state.selection,setSelection:this.setSelection.bind(this)})))}}]),t}(h.Component),_=m.create({container:{position:"absolute",backgroundColor:"transparent",top:0,left:0,right:0,bottom:0},panelContainer:{position:"absolute",left:0,right:0}});o.exports=y}),__d("InspectorOverlay",["Dimensions","InspectorUtils","React","StyleSheet","NativeModules","View","ElementBox"],function(e,t,n,r,o,i){"use strict";var a=t("Dimensions"),s=t("InspectorUtils"),u=t("React"),c=t("StyleSheet"),l=t("NativeModules").UIManager,p=t("View"),f=t("ElementBox"),d=u.PropTypes,h=u.createClass({displayName:"InspectorOverlay",propTypes:{inspected:d.shape({frame:d.object,style:d.any}),inspectedViewTag:d.number,onTouchInstance:d.func.isRequired},findViewForTouchEvent:function(e){var t=this,n=e.nativeEvent.touches[0],r=n.locationX,o=n.locationY;l.findSubviewIn(this.props.inspectedViewTag,[r,o],function(e,n,r,i,a){var u=s.findInstanceByNativeTag(t.props.rootTag,e);u&&t.props.onTouchInstance(u,{left:n,top:r,width:i,height:a},o)})},shouldSetResponser:function(e){return this.findViewForTouchEvent(e),!0},render:function(){var e=null;return this.props.inspected&&(e=u.createElement(f,{frame:this.props.inspected.frame,style:this.props.inspected.style})),u.createElement(p,{onStartShouldSetResponder:this.shouldSetResponser,onResponderMove:this.findViewForTouchEvent,style:[m.inspector,{height:a.get("window").height}]},e)}}),m=c.create({inspector:{backgroundColor:"transparent",position:"absolute",left:0,top:0,right:0}});o.exports=h}),__d("ElementBox",["React","View","StyleSheet","BorderBox","resolveBoxStyle","flattenStyle"],function(e,t,n,r,o,i){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n.5;e.dismissalSpring.setEndValue(o?1:0)}}})},render:function(){var e,t=this;return E.get(this.props.warning)>1&&(e=f.createElement(h,{style:D.bold},"(",E.get(this.props.warning),")"," ")),f.createElement(v,s({style:D.warningBox,ref:function(e){t.container=e}},this.panGesture.panHandlers),f.createElement(m,{onPress:this.props.onOpened},f.createElement(h,{style:D.warningText,numberOfLines:2,ref:function(e){t.text=e}},e,this.props.warning)),f.createElement(v,{ref:function(e){t.closeButton=e},style:D.closeButton},f.createElement(m,{onPress:function(){t.dismissalSpring.setEndValue(1)}},f.createElement(h,{style:D.closeButtonText},"✕"))))}}),I=f.createClass({displayName:"WarningBoxOpened",render:function(){var e;return E.get(this.props.warning)>1&&(e=f.createElement(h,{style:D.bold},"(",E.get(this.props.warning),")"," ")),f.createElement(m,{activeOpacity:.9,onPress:this.props.onClose,style:D.yellowBox},f.createElement(h,{style:D.yellowBoxText},e,this.props.warning),f.createElement(v,{style:D.yellowBoxButtons},f.createElement(m,{onPress:this.props.onDismissed,style:D.yellowBoxButton},f.createElement(h,{style:D.yellowBoxButtonText},"Dismiss")),f.createElement(m,{onPress:this.props.onIgnored,style:D.yellowBoxButton},f.createElement(h,{style:D.yellowBoxButtonText},"Ignore"))))}}),O=!0,P=f.createClass({displayName:"WarningBox",getInitialState:function(){return{totalWarningCount:T,openWarning:null}},componentWillMount:function(){console.yellowBoxResetIgnored&&(u.setItem(S,"[]",function(e){e&&console.warn("Could not reset ignored warnings.",e)}),x=[])},componentDidMount:function(){g(O,"There can only be one WarningBox"),O=!1,w.addListener("count",this._onWarningCount)},componentWillUnmount:function(){w.removeAllListeners(),O=!0},_onWarningCount:function(e){var t=this;setImmediate(function(){t.setState({totalWarningCount:e})})},_onDismiss:function(e){E["delete"](e),this.setState({openWarning:null})},render:function(){var e=this;if(0===E.size)return f.createElement(v,null);if(this.state.openWarning)return f.createElement(I,{warning:this.state.openWarning,onClose:function(){e.setState({openWarning:null})},onDismissed:this._onDismiss.bind(this,this.state.openWarning),onIgnored:function(){x.push(e.state.openWarning),a(),e._onDismiss(e.state.openWarning)}});var t=[];return E.forEach(function(n,r){t.push(f.createElement(C,{key:r,onOpened:function(){e.setState({openWarning:r})},onDismissed:e._onDismiss.bind(e,r),warning:r}))}),f.createElement(v,{style:D.warningContainer},t)}}),D=d.create({bold:{fontWeight:"bold"},closeButton:{position:"absolute",right:0,height:46,width:46},closeButtonText:{color:"white",fontSize:32,position:"relative",left:8},warningContainer:{position:"absolute",left:0,right:0,bottom:0},warningBox:{position:"relative",backgroundColor:"rgba(171, 124, 36, 0.9)",flex:1,height:46},warningText:{color:"white",position:"absolute",left:0,marginLeft:15,marginRight:46,top:7},yellowBox:{backgroundColor:"rgba(171, 124, 36, 0.9)",position:"absolute",left:0,right:0,top:0,bottom:0,padding:15,paddingTop:35},yellowBoxText:{color:"white",fontSize:20},yellowBoxButtons:{flexDirection:"row",position:"absolute",bottom:0},yellowBoxButton:{flex:1,padding:25},yellowBoxButtonText:{color:"white",fontSize:16}});o.exports=P}),__d("AsyncStorage",["NativeModules"],function(e,t,n,r,o,i){"use strict";function a(e){if(!e)return null;var t=new Error(e.message);return t.key=e.key,t}var s=t("NativeModules"),u=s.AsyncLocalStorage,c=s.AsyncRocksDBStorage,l=c||u,p={getItem:function(e,t){return new Promise(function(n,r){l.multiGet([e],function(e,o){var i=o&&o[0]&&o[0][1]?o[0][1]:null;t&&t(e&&a(e[0])||null,i),e?r(a(e[0])):n(i)})})},setItem:function(e,t,n){return new Promise(function(r,o){l.multiSet([[e,t]],function(e){n&&n(e&&a(e[0])||null),e?o(a(e[0])):r(null)})})},removeItem:function(e,t){return new Promise(function(n,r){l.multiRemove([e],function(e){t&&t(e&&a(e[0])||null),e?r(a(e[0])):n(null)})})},mergeItem:function(e,t,n){return new Promise(function(r,o){l.multiMerge([[e,t]],function(e){n&&n(e&&a(e[0])||null),e?o(a(e[0])):r(null)})})},clear:function(e){return new Promise(function(t,n){l.clear(function(r){e&&e(a(r)),r&&a(r)?n(a(r)):t(null)})})},getAllKeys:function(e){return new Promise(function(t,n){l.getAllKeys(function(r,o){e&&e(a(r),o),r?n(a(r)):t(o)})})},multiGet:function(e,t){return new Promise(function(n,r){l.multiGet(e,function(e,o){var i=e&&e.map(function(e){return a(e)})||null;t&&t(i,o),e?r(i):n(o)})})},multiSet:function(e,t){return new Promise(function(n,r){l.multiSet(e,function(e){var o=e&&e.map(function(e){return a(e)})||null;t&&t(o),e?r(o):n(null)})})},multiRemove:function(e,t){return new Promise(function(n,r){l.multiRemove(e,function(e){var o=e&&e.map(function(e){return a(e)})||null;t&&t(o),e?r(o):n(null)})})},multiMerge:function(e,t){return new Promise(function(n,r){l.multiMerge(e,function(e){var o=e&&e.map(function(e){return a(e)})||null;t&&t(o),e?r(o):n(null)})})}};l.multiMerge||(delete p.mergeItem, delete p.multiMerge),o.exports=p}),__d("setupDevtools",["flattenStyle","ReactCurrentOwner","ReactInstanceHandles","ReactNativeMount","ReactReconciler","ReactNativeTextComponent"],function(global,require,requireDynamic,requireLazy,module,exports){"use strict";function setupDevtools(){function tryToConnect(){ws.send("attach:agent");var e=setInterval(function(){return ws.send("attach:agent")},500);ws.onmessage=function(t){0===t.data.indexOf("eval:")&&(clearInterval(e),initialize(t.data.slice("eval:".length)))}}function initialize(text){try{eval(text)}catch(e){return void console.error("Failed to eval"+e.message)}window.__REACT_DEVTOOLS_GLOBAL_HOOK__.inject({CurrentOwner:require("ReactCurrentOwner"),InstanceHandles:require("ReactInstanceHandles"),Mount:require("ReactNativeMount"),Reconciler:require("ReactReconciler"),TextComponent:require("ReactNativeTextComponent")}),ws.onmessage=handleMessage}function handleMessage(e){var t;try{t=JSON.parse(e.data)}catch(n){return console.error("failed to parse json: "+e.data)}return t.$close||t.$error?(closeListeners.forEach(function(e){return e()}),window.__REACT_DEVTOOLS_GLOBAL_HOOK__.emit("shutdown"),void tryToConnect()):void(t.$open||messageListeners.forEach(function(e){try{e(t)}catch(n){throw console.log(t),n}}))}var messageListeners=[],closeListeners=[],ws=new window.WebSocket("ws://localhost:8081/devtools"),FOR_BACKEND={resolveRNStyle:require("flattenStyle"),wall:{listen:function(e){messageListeners.push(e)},onClose:function(e){closeListeners.push(e)},send:function(e){ws.send(JSON.stringify(e))}}};ws.onclose=function(){console.warn("devtools socket closed"),closeListeners.forEach(function(e){return e()})},ws.onerror=function(e){console.warn("devtools socket errored",e),closeListeners.forEach(function(e){return e()})},ws.onopen=function(){tryToConnect()}}module.exports=setupDevtools}),__d("RCTRenderingPerf",["ReactDefaultPerf","invariant"],function(e,t,n,r,o,i){"use strict";var a=t("ReactDefaultPerf"),s=t("invariant"),u=[],c=!1,l={toggle:function(){console.log("Render perfomance measurements enabled"),c=!0},start:function(){c&&(a.start(),u.forEach(function(e){return e.start()}))},stop:function(){if(c){a.stop(),a.printInclusive(),a.printWasted();for(var e=0,t=0,n=a.getLastMeasurements(),r=0;r component":e.componentName,"Inclusive time (ms)":a(e.time),Instances:e.count}})),console.log("Total time:",c.getTotalTime(e).toFixed(2)+" ms")},getMeasurementsSummaryMap:function(e){var t=c.getInclusiveSummary(e,!0);return t.map(function(e){return{"Owner > component":e.componentName,"Wasted time (ms)":e.time,Instances:e.count}})},printWasted:function(e){e=e||d._allMeasurements,console.table(d.getMeasurementsSummaryMap(e)),console.log("Total time:",c.getTotalTime(e).toFixed(2)+" ms")},printDOM:function(e){e=e||d._allMeasurements;var t=c.getDOMSummary(e);console.table(t.map(function(e){var t={};return t[u.ID_ATTRIBUTE_NAME]=e.id,t.type=e.type,t.args=JSON.stringify(e.args),t})),console.log("Total time:",c.getTotalTime(e).toFixed(2)+" ms")},_recordWrite:function(e,t,n,r){var o=d._allMeasurements[d._allMeasurements.length-1].writes;o[e]=o[e]||[],o[e].push({type:t,time:n,args:r})},measure:function(e,t,n){return function(){for(var r=arguments.length,o=Array(r),i=0;r>i;i++)o[i]=arguments[i];var a,u,c;if("_renderNewRootComponent"===t||"flushBatchedUpdates"===t)return d._allMeasurements.push({exclusive:{},inclusive:{},render:{},counts:{},writes:{},displayNames:{},totalTime:0}),c=f(),u=n.apply(this,o),d._allMeasurements[d._allMeasurements.length-1].totalTime=f()-c,u;if("_mountImageIntoNode"===t||"ReactDOMIDOperations"===e){if(c=f(),u=n.apply(this,o),a=f()-c,"_mountImageIntoNode"===t){var p=l.getID(o[1]);d._recordWrite(p,t,a,o[0])}else"dangerouslyProcessChildrenUpdates"===t?o[0].forEach(function(e){var t={};null!==e.fromIndex&&(t.fromIndex=e.fromIndex),null!==e.toIndex&&(t.toIndex=e.toIndex),null!==e.textContent&&(t.textContent=e.textContent),null!==e.markupIndex&&(t.markup=o[1][e.markupIndex]),d._recordWrite(e.parentID,e.type,a,t)}):d._recordWrite(o[0],t,a,Array.prototype.slice.call(o,1));return u}if("ReactCompositeComponent"!==e||"mountComponent"!==t&&"updateComponent"!==t&&"_renderValidatedComponent"!==t)return n.apply(this,o);if("string"==typeof this._currentElement.type)return n.apply(this,o);var h="mountComponent"===t?o[0]:this._rootNodeID,m="_renderValidatedComponent"===t,v="mountComponent"===t,g=d._mountStack,y=d._allMeasurements[d._allMeasurements.length-1];if(m?s(y.counts,h,1):v&&g.push(0),c=f(),u=n.apply(this,o),a=f()-c,m)s(y.render,h,a);else if(v){var _=g.pop();g[g.length-1]+=a,s(y.exclusive,h,a-_),s(y.inclusive,h,a)}else s(y.inclusive,h,a);return y.displayNames[h]={current:this.getName(),owner:this._currentElement._owner?this._currentElement._owner.getName():""},u}}};o.exports=d}),__d("DOMProperty",["invariant"],function(e,t,n,r,o,i){"use strict";function a(e,t){return(e&t)===t}var s=t("invariant"),u={MUST_USE_ATTRIBUTE:1,MUST_USE_PROPERTY:2,HAS_SIDE_EFFECTS:4,HAS_BOOLEAN_VALUE:8,HAS_NUMERIC_VALUE:16,HAS_POSITIVE_NUMERIC_VALUE:48,HAS_OVERLOADED_BOOLEAN_VALUE:64,injectDOMPropertyConfig:function(e){var t=u,n=e.Properties||{},r=e.DOMAttributeNamespaces||{},o=e.DOMAttributeNames||{},i=e.DOMPropertyNames||{},c=e.DOMMutationMethods||{};e.isCustomAttribute&&l._isCustomAttributeFunctions.push(e.isCustomAttribute);for(var p in n){s(!l.properties.hasOwnProperty(p),"injectDOMPropertyConfig(...): You're trying to inject DOM property '%s' which has already been injected. You may be accidentally injecting the same DOM property config twice, or you may be injecting two configs that have conflicting property names.",p);var f=p.toLowerCase(),d=n[p],h={attributeName:f,attributeNamespace:null,propertyName:p,mutationMethod:null,mustUseAttribute:a(d,t.MUST_USE_ATTRIBUTE),mustUseProperty:a(d,t.MUST_USE_PROPERTY),hasSideEffects:a(d,t.HAS_SIDE_EFFECTS),hasBooleanValue:a(d,t.HAS_BOOLEAN_VALUE),hasNumericValue:a(d,t.HAS_NUMERIC_VALUE),hasPositiveNumericValue:a(d,t.HAS_POSITIVE_NUMERIC_VALUE),hasOverloadedBooleanValue:a(d,t.HAS_OVERLOADED_BOOLEAN_VALUE)};if(s(!h.mustUseAttribute||!h.mustUseProperty,"DOMProperty: Cannot require using both attribute and property: %s",p),s(h.mustUseProperty||!h.hasSideEffects,"DOMProperty: Properties that have side effects must use property: %s",p),s(h.hasBooleanValue+h.hasNumericValue+h.hasOverloadedBooleanValue<=1,"DOMProperty: Value can be one of boolean, overloaded boolean, or numeric value, but not a combination: %s",p),__DEV__&&(l.getPossibleStandardName[f]=p),o.hasOwnProperty(p)){var m=o[p];h.attributeName=m,__DEV__&&(l.getPossibleStandardName[m]=p)}r.hasOwnProperty(p)&&(h.attributeNamespace=r[p]),i.hasOwnProperty(p)&&(h.propertyName=i[p]),c.hasOwnProperty(p)&&(h.mutationMethod=c[p]),l.properties[p]=h}}},c={},l={ID_ATTRIBUTE_NAME:"data-reactid",properties:{},getPossibleStandardName:__DEV__?{}:null,_isCustomAttributeFunctions:[],isCustomAttribute:function(e){for(var t=0;t=f&&s.push(n[t]);return s.sort(function(e,t){return t.exclusive-e.exclusive}),s}function c(e,t){for(var n,r={},o=0;o "+c.current,r[n]=r[n]||{componentName:n,time:0,count:0},a.inclusive[u]&&(r[n].time+=a.inclusive[u]),a.counts[u]&&(r[n].count+=a.counts[u])}}var d=[];for(n in r)r[n].time>=f&&d.push(r[n]);return d.sort(function(e,t){return t.time-e.time}),d}function l(e){var t={},n=Object.keys(e.writes),r=p({},e.exclusive,e.inclusive);for(var o in r){for(var i=!1,a=0;a0&&(t[o]=!0)}return t}var p=t("Object.assign"),f=1.2,d={_mountImageIntoNode:"set innerHTML",INSERT_MARKUP:"set innerHTML",MOVE_EXISTING:"move",REMOVE_NODE:"remove",TEXT_CONTENT:"set textContent",updatePropertyByID:"update attribute",deletePropertyByID:"delete attribute",updateStylesByID:"update styles",updateInnerHTMLByID:"set innerHTML",dangerouslyReplaceNodeWithMarkupByID:"replace"},h={getExclusiveSummary:u,getInclusiveSummary:c,getDOMSummary:s,getTotalTime:a};o.exports=h}),__d("ReactMount",["DOMProperty","ReactBrowserEventEmitter","ReactCurrentOwner","ReactElement","ReactEmptyComponent","ReactInstanceHandles","ReactInstanceMap","ReactMarkupChecksum","ReactPerf","ReactReconciler","ReactUpdateQueue","ReactUpdates","emptyObject","containsNode","instantiateReactComponent","invariant","setInnerHTML","shouldUpdateReactComponent","validateDOMNesting","warning"],function(e,t,n,r,o,i){"use strict";function a(e,t){for(var n=Math.min(e.length,t.length),r=0;n>r;r++)if(e.charAt(r)!==t.charAt(r))return r;return e.length===t.length?-1:n}function s(e){return e?e.nodeType===G?e.documentElement:e.firstChild:null}function u(e){var t=s(e);return t&&$.getID(t)}function c(e){var t=l(e);if(t)if(q.hasOwnProperty(t)){var n=q[t];n!==e&&(L(!h(n,t),"ReactMount: Two valid but unequal nodes with the same `%s`: %s",U,t),q[t]=e)}else q[t]=e;return t}function l(e){return e&&e.getAttribute&&e.getAttribute(U)||""}function p(e,t){var n=l(e);n!==t&&delete q[n],e.setAttribute(U,t),q[t]=e}function f(e){return q.hasOwnProperty(e)&&h(q[e],e)||(q[e]=$.findReactNodeByID(e)),q[e]}function d(e){var t=C.get(e)._rootNodeID;return T.isNullComponentID(t)?null:(q.hasOwnProperty(t)&&h(q[t],t)||(q[t]=$.findReactNodeByID(t)),q[t])}function h(e,t){if(e){L(l(e)===t,"ReactMount: Unexpected modification of `%s`",U);var n=$.findReactContainerForID(t);if(n&&A(n,e))return!0}return!1}function m(e){delete q[e]}function v(e){var t=q[e];return t&&h(t,e)?void(J=t):!1}function g(e){J=null,w.traverseAncestors(e,v);var t=J;return J=null,t}function y(e,t,n,r,o,i){if(__DEV__){i===M&&(i={});var a=n.nodeName.toLowerCase();i[F.ancestorInfoContextKey]=F.updatedAncestorInfo(null,a,null)}var s=P.mountComponent(e,t,r,i);e._renderedComponent._topLevelWrapper=e,$._mountImageIntoNode(s,n,o)}function _(e,t,n,r,o){var i=N.ReactReconcileTransaction.getPooled();i.perform(y,null,e,t,n,i,r,o),N.ReactReconcileTransaction.release(i)}function b(e,t){for(P.unmountComponent(e),t.nodeType===G&&(t=t.documentElement);t.lastChild;)t.removeChild(t.lastChild)}var S=t("DOMProperty"),R=t("ReactBrowserEventEmitter"),E=t("ReactCurrentOwner"),x=t("ReactElement"),T=t("ReactEmptyComponent"),w=t("ReactInstanceHandles"),C=t("ReactInstanceMap"),I=t("ReactMarkupChecksum"),O=t("ReactPerf"),P=t("ReactReconciler"),D=t("ReactUpdateQueue"),N=t("ReactUpdates"),M=t("emptyObject"),A=t("containsNode"),k=t("instantiateReactComponent"),L=t("invariant"),j=t("setInnerHTML"),V=t("shouldUpdateReactComponent"),F=t("validateDOMNesting"),B=t("warning"),H=w.SEPARATOR,U=S.ID_ATTRIBUTE_NAME,q={},z=1,G=9,W=11,Y={},K={};if(__DEV__)var Z={};var X=[],J=null,Q=function(){};Q.prototype.render=function(){return this.props};var $={_instancesByReactRootID:Y,scrollMonitor:function(e,t){t()},_updateRootComponent:function(e,t,n,r){return $.scrollMonitor(n,function(){D.enqueueElementInternal(e,t),r&&D.enqueueCallbackInternal(e,r)}),__DEV__&&(Z[u(n)]=s(n)),e},_registerComponent:function(e,t){L(t&&(t.nodeType===z||t.nodeType===G||t.nodeType===W),"_registerComponent(...): Target container is not a DOM element."),R.ensureScrollValueMonitoring();var n=$.registerContainer(t);return Y[n]=e,n},_renderNewRootComponent:function(e,t,n,r){B(null==E.current,"_renderNewRootComponent(): Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate. Check the render method of %s.",E.current&&E.current.getName()||"ReactCompositeComponent");var o=k(e,null),i=$._registerComponent(o,t);return N.batchedUpdates(_,o,i,t,n,r),__DEV__&&(Z[i]=s(t)),o},renderSubtreeIntoContainer:function(e,t,n,r){return L(null!=e&&null!=e._reactInternalInstance,"parentComponent must be a valid React Component"),$._renderSubtreeIntoContainer(e,t,n,r)},_renderSubtreeIntoContainer:function(e,t,n,r){L(x.isValidElement(t),"React.render(): Invalid component element.%s","string"==typeof t?" Instead of passing an element string, make sure to instantiate it by passing it to React.createElement.":"function"==typeof t?" Instead of passing a component class, make sure to instantiate it by passing it to React.createElement.":null!=t&&void 0!==t.props?" This may be caused by unintentionally loading two independent copies of React.":""),B(!n||!n.tagName||"BODY"!==n.tagName.toUpperCase(),"render(): Rendering components directly into document.body is discouraged, since its children are often manipulated by third-party scripts and browser extensions. This may lead to subtle reconciliation issues. Try rendering into a container element created for your app.");var o=new x(Q,null,null,null,t),i=Y[u(n)];if(i){var a=i._currentElement,c=a.props;if(V(c,t))return $._updateRootComponent(i,o,n,r)._renderedComponent.getPublicInstance();$.unmountComponentAtNode(n)}var l=s(n),p=l&&$.isRenderedByReact(l);if(__DEV__&&(!p||l.nextSibling))for(var f=l;f;){if($.isRenderedByReact(f)){B(!1,"render(): Target node has markup rendered by React, but there are unrelated nodes as well. This is most commonly caused by white-space inserted around server-rendered markup.");break}f=f.nextSibling}var d=p&&!i,h=$._renderNewRootComponent(o,n,d,null!=e?e._reactInternalInstance._processChildContext(e._reactInternalInstance._context):M)._renderedComponent.getPublicInstance();return r&&r.call(h),h},render:function(e,t,n){return $._renderSubtreeIntoContainer(null,e,t,n)},registerContainer:function(e){var t=u(e);return t&&(t=w.getReactRootIDFromNodeID(t)),t||(t=w.createReactRootID()),K[t]=e,t},unmountComponentAtNode:function(e){B(null==E.current,"unmountComponentAtNode(): Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate. Check the render method of %s.",E.current&&E.current.getName()||"ReactCompositeComponent"),L(e&&(e.nodeType===z||e.nodeType===G||e.nodeType===W),"unmountComponentAtNode(...): Target container is not a DOM element.");var t=u(e),n=Y[t];return n?(N.batchedUpdates(b,n,e),delete Y[t],delete K[t],__DEV__&&delete Z[t],!0):!1},findReactContainerForID:function(e){var t=w.getReactRootIDFromNodeID(e),n=K[t];if(__DEV__){var r=Z[t];if(r&&r.parentNode!==n){B(l(r)===t,"ReactMount: Root element ID differed from reactRootID.");var o=n.firstChild;o&&t===l(o)?Z[t]=o:B(!1,"ReactMount: Root element has been removed from its original container. New container: %s",r.parentNode)}}return n},findReactNodeByID:function(e){var t=$.findReactContainerForID(e);return $.findComponentRoot(t,e)},isRenderedByReact:function(e){if(1!==e.nodeType)return!1;var t=$.getID(e);return t?t.charAt(0)===H:!1},getFirstReactDOM:function(e){for(var t=e;t&&t.parentNode!==t;){if($.isRenderedByReact(t))return t;t=t.parentNode}return null},findComponentRoot:function(e,t){var n=X,r=0,o=g(t)||e;for(n[0]=o.firstChild,n.length=1;r when using tables, nesting tags like
,

, or , or using non-SVG elements in an parent. Try inspecting the child nodes of the element with React ID `%s`.",t,$.getID(e))},_mountImageIntoNode:function(e,t,n){if(L(t&&(t.nodeType===z||t.nodeType===G||t.nodeType===W),"mountComponentIntoNode(...): Target container is not valid."),n){var r=s(t);if(I.canReuseMarkup(e,r))return;var o=r.getAttribute(I.CHECKSUM_ATTR_NAME);r.removeAttribute(I.CHECKSUM_ATTR_NAME);var i=r.outerHTML;r.setAttribute(I.CHECKSUM_ATTR_NAME,o);var u=a(e,i),c=" (client) "+e.substring(u-20,u+20)+"\n (server) "+i.substring(u-20,u+20);L(t.nodeType!==G,"You're trying to render a component to the document using server rendering but the checksum was invalid. This usually means you rendered a different component type or props on the client from the one on the server, or your render() methods are impure. React cannot handle this case due to cross-browser quirks by rendering at the document root. You should look for environment dependent code in your components and ensure the props are the same client and server side:\n%s",c),__DEV__&&B(!1,"React attempted to reuse markup in a container but the checksum was invalid. This generally means that you are using server rendering and the markup generated on the server was not what the client was expecting. React injected new markup to compensate which works but you have lost many of the benefits of server rendering. Instead, figure out why the markup being generated is different on the client or server:\n%s",c)}L(t.nodeType!==G,"You're trying to render a component to the document but you didn't use server rendering. We can't do this without using server rendering due to cross-browser quirks. See React.renderToString() for server rendering."),j(t,e)},getReactRootID:u,getID:c,setID:p,getNode:f,getNodeFromInstance:d,purgeID:m};O.measureMethods($,"ReactMount",{_renderNewRootComponent:"_renderNewRootComponent",_mountImageIntoNode:"_mountImageIntoNode"}),o.exports=$}),__d("ReactBrowserEventEmitter",["EventConstants","EventPluginHub","EventPluginRegistry","ReactEventEmitterMixin","ViewportMetrics","Object.assign","isEventSupported"],function(e,t,n,r,o,i){"use strict";function a(e){return Object.prototype.hasOwnProperty.call(e,y)||(e[y]=v++,h[e[y]]={}),h[e[y]]}var s=t("EventConstants"),u=t("EventPluginHub"),c=t("EventPluginRegistry"),l=t("ReactEventEmitterMixin"),p=t("ViewportMetrics"),f=t("Object.assign"),d=t("isEventSupported"),h={},m=!1,v=0,g={topBlur:"blur",topChange:"change",topClick:"click",topCompositionEnd:"compositionend",topCompositionStart:"compositionstart",topCompositionUpdate:"compositionupdate",topContextMenu:"contextmenu",topCopy:"copy",topCut:"cut",topDoubleClick:"dblclick",topDrag:"drag",topDragEnd:"dragend",topDragEnter:"dragenter",topDragExit:"dragexit",topDragLeave:"dragleave",topDragOver:"dragover",topDragStart:"dragstart",topDrop:"drop",topFocus:"focus",topInput:"input",topKeyDown:"keydown",topKeyPress:"keypress",topKeyUp:"keyup",topMouseDown:"mousedown",topMouseMove:"mousemove",topMouseOut:"mouseout",topMouseOver:"mouseover",topMouseUp:"mouseup",topPaste:"paste",topScroll:"scroll",topSelectionChange:"selectionchange",topTextInput:"textInput",topTouchCancel:"touchcancel",topTouchEnd:"touchend",topTouchMove:"touchmove",topTouchStart:"touchstart",topWheel:"wheel"},y="_reactListenersID"+String(Math.random()).slice(2),_=f({},l,{ReactEventListener:null,injection:{injectReactEventListener:function(e){e.setHandleTopLevel(_.handleTopLevel),_.ReactEventListener=e}},setEnabled:function(e){_.ReactEventListener&&_.ReactEventListener.setEnabled(e)},isEnabled:function(){return!(!_.ReactEventListener||!_.ReactEventListener.isEnabled())},listenTo:function(e,t){for(var n=t,r=a(n),o=c.registrationNameDependencies[e],i=s.topLevelTypes,u=0;u"," "+s.CHECKSUM_ATTR_NAME+'="'+t+'">')},canReuseMarkup:function(e,t){var n=t.getAttribute(s.CHECKSUM_ATTR_NAME);n=n&&parseInt(n,10);var r=a(e);return r===n}};o.exports=s}),__d("adler32",[],function(e,t,n,r,o,i){"use strict";function a(e){for(var t=1,n=0,r=0;r]/,c=function(e,t){e.innerHTML=t};if("undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction&&(c=function(e,t){MSApp.execUnsafeLocalFunction(function(){e.innerHTML=t})}),a.canUseDOM){var l=document.createElement("div");l.innerHTML=" ",""===l.innerHTML&&(c=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),s.test(t)||"<"===t[0]&&u.test(t)){e.innerHTML=String.fromCharCode(65279)+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t})}o.exports=c}),__d("validateDOMNesting",["Object.assign","emptyFunction","warning"],function(e,t,n,r,o,i){"use strict";var a=t("Object.assign"),s=t("emptyFunction"),u=t("warning"),c=s;if(__DEV__){var l=["address","applet","area","article","aside","base","basefont","bgsound","blockquote","body","br","button","caption","center","col","colgroup","dd","details","dir","div","dl","dt","embed","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","iframe","img","input","isindex","li","link","listing","main","marquee","menu","menuitem","meta","nav","noembed","noframes","noscript","object","ol","p","param","plaintext","pre","script","section","select","source","style","summary","table","tbody","td","template","textarea","tfoot","th","thead","title","tr","track","ul","wbr","xmp"],p=["applet","caption","html","table","td","th","marquee","object","template","foreignObject","desc","title"],f=p.concat(["button"]),d=["dd","dt","li","option","optgroup","p","rp","rt"],h={parentTag:null,formTag:null,aTagInScope:null,buttonTagInScope:null,nobrTagInScope:null,pTagInButtonScope:null,listItemTagAutoclosing:null,dlItemTagAutoclosing:null},m=function(e,t,n){var r=a({},e||h),o={tag:t,instance:n};return-1!==p.indexOf(t)&&(r.aTagInScope=null,r.buttonTagInScope=null,r.nobrTagInScope=null),-1!==f.indexOf(t)&&(r.pTagInButtonScope=null),-1!==l.indexOf(t)&&"address"!==t&&"div"!==t&&"p"!==t&&(r.listItemTagAutoclosing=null,r.dlItemTagAutoclosing=null),r.parentTag=o,"form"===t&&(r.formTag=o),"a"===t&&(r.aTagInScope=o),"button"===t&&(r.buttonTagInScope=o),"nobr"===t&&(r.nobrTagInScope=o),"p"===t&&(r.pTagInButtonScope=o),"li"===t&&(r.listItemTagAutoclosing=o),("dd"===t||"dt"===t)&&(r.dlItemTagAutoclosing=o),r},v=function(e,t){switch(t){case"select":return"option"===e||"optgroup"===e||"#text"===e;case"optgroup":return"option"===e||"#text"===e;case"option":return"#text"===e;case"tr":return"th"===e||"td"===e||"style"===e||"script"===e||"template"===e;case"tbody":case"thead":case"tfoot":return"tr"===e||"style"===e||"script"===e||"template"===e;case"colgroup":return"col"===e||"template"===e;case"table":return"caption"===e||"colgroup"===e||"tbody"===e||"tfoot"===e||"thead"===e||"style"===e||"script"===e||"template"===e;case"head":return"base"===e||"basefont"===e||"bgsound"===e||"link"===e||"meta"===e||"title"===e||"noscript"===e||"noframes"===e||"style"===e||"script"===e||"template"===e;case"html":return"head"===e||"body"===e}switch(e){case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":return"h1"!==t&&"h2"!==t&&"h3"!==t&&"h4"!==t&&"h5"!==t&&"h6"!==t;case"rp":case"rt":return-1===d.indexOf(t);case"caption":case"col":case"colgroup":case"frame":case"head":case"tbody":case"td":case"tfoot":case"th":case"thead":case"tr":return null==t}return!0},g=function(e,t){switch(e){case"address":case"article":case"aside":case"blockquote":case"center":case"details":case"dialog":case"dir":case"div":case"dl":case"fieldset":case"figcaption":case"figure":case"footer":case"header":case"hgroup":case"main":case"menu":case"nav":case"ol":case"p":case"section":case"summary":case"ul":case"pre":case"listing":case"table":case"hr":case"xmp":case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":return t.pTagInButtonScope;case"form":return t.formTag||t.pTagInButtonScope;case"li":return t.listItemTagAutoclosing;case"dd":case"dt":return t.dlItemTagAutoclosing;case"button":return t.buttonTagInScope;case"a":return t.aTagInScope;case"nobr":return t.nobrTagInScope}return null},y=function(e){if(!e)return[];var t=[];do t.push(e);while(e=e._currentElement._owner);return t.reverse(),t},_={};c=function(e,t,n){n=n||h;var r=n.parentTag,o=r&&r.tag,i=v(e,o)?null:r,a=i?null:g(e,n),s=i||a;if(s){var c,l=s.tag,p=s.instance,f=t&&t._currentElement._owner,d=p&&p._currentElement._owner,m=y(f),b=y(d),S=Math.min(m.length,b.length),R=-1;for(c=0;S>c&&m[c]===b[c];c++)R=c;var E="(unknown)",x=m.slice(R+1).map(function(e){return e.getName()||E}),T=b.slice(R+1).map(function(e){return e.getName()||E}),w=[].concat(-1!==R?m[R].getName()||E:[],T,l,a?["..."]:[],x,e).join(" > "),C=!!i+"|"+e+"|"+l+"|"+w;if(_[C])return;if(_[C]=!0,i){var I="";"table"===l&&"tr"===e&&(I+=" Add a to your code to match the DOM tree generated by the browser."),u(!1,"validateDOMNesting(...): <%s> cannot appear as a child of <%s>. See %s.%s",e,l,w,I)}else u(!1,"validateDOMNesting(...): <%s> cannot appear as a descendant of <%s>. See %s.",e,l,w)}},c.ancestorInfoContextKey="__validateDOMNesting_ancestorInfo$"+Math.random().toString(36).slice(2),c.updatedAncestorInfo=m,c.isTagValidInContext=function(e,t){t=t||h;var n=t.parentTag,r=n&&n.tag;return v(e,r)&&!g(e,t)}}o.exports=c}),__d("AppStateIOS",["Map","NativeModules","RCTDeviceEventEmitter","logError","invariant"],function(e,t,n,r,o,i){"use strict";var a=t("Map"),s=t("NativeModules"),u=t("RCTDeviceEventEmitter"),c=s.AppState,l=t("logError"),p=t("invariant"),f={change:new a,memoryWarning:new a},d={addEventListener:function(e,t){p(-1!==["change","memoryWarning"].indexOf(e),'Trying to subscribe to unknown event: "%s"',e),"change"===e?f[e].set(t,u.addListener("appStateDidChange",function(e){t(e.app_state)})):"memoryWarning"===e&&f[e].set(t,u.addListener("memoryWarning",t))},removeEventListener:function(e,t){p(-1!==["change","memoryWarning"].indexOf(e),'Trying to remove listener for unknown event: "%s"',e),f[e].has(t)&&(f[e].get(t).remove(),f[e]["delete"](t))},currentState:"active"};u.addListener("appStateDidChange",function(e){d.currentState=e.app_state}),c.getCurrentAppState(function(e){d.currentState=e.app_state},l),o.exports=d}),__d("CameraRoll",["ReactPropTypes","NativeModules","createStrictShapeTypeChecker","deepFreezeAndThrowOnMutationInDev","invariant"],function(e,t,n,r,o,i){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var s=function(){function e(e,t){for(var n=0;n=1&&y>e}};var b=function(e){function t(){a(this,t),l(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return s(t,e),c(t,[{key:"render",value:function(){p(!1,"GL.Target elements are for GL.View configuration only and should not be rendered")}}]),t}(m);b.displayName="GL.Target",b.propTypes={children:v.any.isRequired,uniform:v.string.isRequired};const S=h("GLView",R);var R=function(e){function t(e,n){a(this,t),l(Object.getPrototypeOf(t.prototype),"constructor",this).call(this,e,n),this._targetIncrement=0}return s(t,e),c(t,[{key:"setNativeProps",value:function(e){this.refs["native"].setNativeProps(e)}},{key:"render",value:function(){const e=this.props,t=e.style,n=e.width,r=e.height,o=e.children,i=e.shader;p(_.exists(i),"Shader #%s does not exists",i);const a=u({width:n,height:r},t);if(o){const s={position:"relative",width:n,height:r,overflow:"hidden"},c={position:"absolute",top:0,left:0,width:n,height:r},l=[],d=f.Children.map(o,function(e){p(e.type===b,"GL.View can only contains children of type GL.Target. Got '%s'",e.type&&e.type.displayName||e);const t=e.props.uniform;return l.push(t),f.createElement(g,{style:[c,e.props.style]},e.props.children)});return f.createElement(g,{style:s},d,f.createElement(S,u({ref:"native"},e,{style:a,children:void 0,targetUniforms:l,targetIncrement:this._targetIncrement++})))}return f.createElement(S,u({ref:"native"},e,{style:a}))}}]),t}(m);R.displayName="GL.View",R.propTypes={shader:v.number.isRequired,width:v.number.isRequired,height:v.number.isRequired,uniforms:v.object,opaque:v.bool},R.defaultProps={opaque:!0},o.exports={View:R,Target:b,Shaders:_}}),__d("invariant",[],function(e,t,n,r,o,i){"use strict";var a=function(e,t,n,r,o,i,a,s){if("production"!==process.env.NODE_ENV&&void 0===t)throw new Error("invariant requires an error message argument");if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,i,a,s],l=0;u=new Error("Invariant Violation: "+t.replace(/%s/g,function(){return c[l++]}))}throw u.framesToPop=1,u}};o.exports=a}),__d("AdvancedEffects/src/Intro.js",["react-native/Libraries/react-native/react-native.js","gl-react-native/index.js"],function(e,t,n,r,o,i){function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;nt%1?1:0}}),l.createElement(f,{style:{flex:1,color:"#00FF66",fontSize:14}},t.toFixed(2),"s"),l.createElement(f,{style:{flex:1,color:"#fff",fontSize:14}},n.toFixed(0)," fps"),l.createElement(f,{style:{flex:1,color:"#999",fontSize:14}},""))))}}]),t}(l.Component);o.exports=m}),__d("AdvancedEffects/src/Vignette.js",["react-native/Libraries/react-native/react-native.js","gl-react-native/index.js"],function(e,t,n,r,o,i){function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n=l.length?0:p+1;const t=l[e],n=t.genUniforms&&t.genUniforms()||{};return{name:t.name,uniforms:n}}var s=Object.assign||function(e){for(var t=1;t-0.005){return -1.0;}else if(r-dist<0.01&&r-dist>-0.005){return -2.0;}return grad;}float round(float a){return floor(a+0.5);}float getWave(vec2 p){vec2 _p=p-center;float rads=atan(_p.y,_p.x);float degs=degrees(rads)+180.0;vec2 range=vec2(0.0,M_PI*30.0);vec2 domain=vec2(0.0,360.0);float ratio=(M_PI*30.0)/360.0;degs=degs*ratio;float x=progress;float magnitude=mix(0.02,0.09,smoothstep(0.0,1.0,x));float offset=mix(40.0,30.0,smoothstep(0.0,1.0,x));float ease_degs=quadraticInOut(sin(degs));float deg_wave_pos=(ease_degs*magnitude)*sin(x*offset);return x+deg_wave_pos;}void main(){vec2 p=gl_FragCoord.xy/resolution.xy;if(progress==0.0){gl_FragColor=texture2D(from,p);}else if(progress==1.0){gl_FragColor=texture2D(to,p);}else{float dist=distance(center,p);float m=getGradient(getWave(p),dist);if(m==-2.0){gl_FragColor=mix(texture2D(from,p),vec4(0.0,0.0,0.0,1.0),0.75);}else{gl_FragColor=mix(texture2D(from,p),texture2D(to,p),m);}}}"},{id:"b3aa4a8b4f88dc228d4a",name:"test",owner:"brandonyoyo",uniforms:{},html_url:"https://gist.github.com/b3aa4a8b4f88dc228d4a",created_at:"2014-10-26T16:46:18Z",updated_at:"2015-07-20T19:18:46Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;gl_FragColor=mix(texture2D(from,p),texture2D(to,p),progress);}"},{id:"d1f891c5585fc40b55ea",name:"Star Wipe",owner:"MemoryStomp",uniforms:{},html_url:"https://gist.github.com/d1f891c5585fc40b55ea",created_at:"2014-07-01T06:58:45Z",updated_at:"2015-07-20T19:24:46Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;vec2 circlePoint(float ang){ang+=6.28318*0.15;return vec2(cos(ang),sin(ang));}float cross2d(vec2 a,vec2 b){return (a.x*b.y-a.y*b.x);}float star(vec2 p,float size){if(size<=0.0){return 0.0;}p/=size;vec2 p0=circlePoint(0.0);vec2 p1=circlePoint(6.28318*1.0/5.0);vec2 p2=circlePoint(6.28318*2.0/5.0);vec2 p3=circlePoint(6.28318*3.0/5.0);vec2 p4=circlePoint(6.28318*4.0/5.0);float s0=(cross2d(p1-p0,p-p0));float s1=(cross2d(p2-p1,p-p1));float s2=(cross2d(p3-p2,p-p2));float s3=(cross2d(p4-p3,p-p3));float s4=(cross2d(p0-p4,p-p4));float s5=min(min(min(s0,s1),min(s2,s3)),s4);float s=max(1.0-sign(s0*s1*s2*s3*s4)+sign(s5),0.0);s=sign(2.6-length(p))*s;return max(s,0.0);}void main(){vec2 p=(gl_FragCoord.xy/resolution.xy);vec2 o=p*2.0-1.0;float t=progress*1.4;float c1=star(o,t);float c2=star(o,t-0.1);float border=max(c1-c2,0.0);gl_FragColor=mix(texture2D(from,p),texture2D(to,p),c1)+vec4(border,border,border,0.0);}"},{id:"5a4d1fb6711076d17e2e",name:"morph",owner:"paniq",uniforms:{},html_url:"https://gist.github.com/5a4d1fb6711076d17e2e",created_at:"2014-07-01T04:52:25Z",updated_at:"2015-07-27T15:08:48Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;const float strength=0.1;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec4 ca=texture2D(from,p);vec4 cb=texture2D(to,p);vec2 oa=(((ca.rg+ca.b)*0.5)*2.0-1.0);vec2 ob=(((cb.rg+cb.b)*0.5)*2.0-1.0);vec2 oc=mix(oa,ob,0.5)*strength;float w0=progress;float w1=1.0-w0;gl_FragColor=mix(texture2D(from,p+oc*w0),texture2D(to,p-oc*w1),progress);}"},{id:"00973cee8e0353c73305",name:"LumaWipe",owner:"rectalogic",uniforms:{lumaTex:"conical-asym.png",invertLuma:!0,softness:.25},html_url:"https://gist.github.com/00973cee8e0353c73305",created_at:"2014-06-17T02:11:27Z",updated_at:"2015-07-20T19:31:54Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform sampler2D lumaTex;uniform bool invertLuma;uniform float softness;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;float luma=texture2D(lumaTex,p).x;if(invertLuma) luma=1.0-luma;vec4 fromColor=texture2D(from,p);vec4 toColor=texture2D(to,p);float time=mix(0.0,1.0+softness,progress);if(luma<=time-softness) gl_FragColor=toColor;else if(luma>=time) gl_FragColor=fromColor;else{float alpha=(time-luma)/softness;gl_FragColor=mix(fromColor,toColor,alpha);}}"},{id:"0141a38779af3a652c22",name:"simple luma",owner:"gre",uniforms:{luma:"spiral-1.png"},html_url:"https://gist.github.com/0141a38779af3a652c22",created_at:"2014-06-13T08:16:10Z",updated_at:"2015-07-20T19:20:23Z",stars:1,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform sampler2D luma;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;gl_FragColor=mix(texture2D(from,p),texture2D(to,p),step(texture2D(luma,p).r,progress));}"},{id:"ee15128c2b87d0e74dee",name:"cube",owner:"gre",uniforms:{persp:.7,unzoom:.3,reflection:.4,floating:3},html_url:"https://gist.github.com/ee15128c2b87d0e74dee",created_at:"2014-06-12T17:13:17Z",updated_at:"2015-07-20T19:33:46Z",stars:1,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform float persp;uniform float unzoom;uniform float reflection;uniform float floating;vec2 project(vec2 p){return p*vec2(1.0,-1.2)+vec2(0.0,-floating/100.);}bool inBounds(vec2 p){return all(lessThan(vec2(0.0),p))&&all(lessThan(p,vec2(1.0)));}vec4 bgColor(vec2 p,vec2 pfr,vec2 pto){vec4 c=vec4(0.0,0.0,0.0,1.0);pfr=project(pfr);if(inBounds(pfr)){c+=mix(vec4(0.0),texture2D(from,pfr),reflection*mix(1.0,0.0,pfr.y));}pto=project(pto);if(inBounds(pto)){c+=mix(vec4(0.0),texture2D(to,pto),reflection*mix(1.0,0.0,pto.y));}return c;}vec2 xskew(vec2 p,float persp,float center){float x=mix(p.x,1.0-p.x,center);return ((vec2(x,(p.y-0.5*(1.0-persp)*x)/(1.0+(persp-1.0)*x))-vec2(0.5-distance(center,0.5),0.0))*vec2(0.5/distance(center,0.5)*(center<0.5?1.0:-1.0),1.0)+vec2(center<0.5?0.0:1.0,0.0));}void main(){vec2 op=gl_FragCoord.xy/resolution.xy;float uz=unzoom*2.0*(0.5-distance(0.5,progress));vec2 p=-uz*0.5+(1.0+uz)*op;vec2 fromP=xskew((p-vec2(progress,0.0))/vec2(1.0-progress,1.0),1.0-mix(progress,0.0,persp),0.0);vec2 toP=xskew(p/vec2(progress,1.0),mix(pow(progress,2.0),1.0,persp),1.0);if(inBounds(fromP)){gl_FragColor=texture2D(from,fromP);}else if(inBounds(toP)){gl_FragColor=texture2D(to,toP);}else{gl_FragColor=bgColor(op,fromP,toP);}}"},{id:"9b99fc01fd5705008a5b",name:"Glitch Memories",owner:"niseh",uniforms:{},html_url:"https://gist.github.com/9b99fc01fd5705008a5b",created_at:"2014-05-29T19:32:52Z",updated_at:"2015-07-20T19:33:58Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;void glitch_memories(sampler2D pic){vec2 p=gl_FragCoord.xy/resolution.xy;vec2 block=floor(gl_FragCoord.xy/vec2(16));vec2 uv_noise=block/vec2(64);uv_noise+=floor(vec2(progress)*vec2(1200.0,3500.0))/vec2(64);float block_thresh=pow(fract(progress*1200.0),2.0)*0.2;float line_thresh=pow(fract(progress*2200.0),3.0)*0.7;vec2 red=p,green=p,blue=p,o=p;vec2 dist=(fract(uv_noise)-0.5)*0.3;red+=dist*0.1;green+=dist*0.2;blue+=dist*0.125;gl_FragColor.r=texture2D(pic,red).r;gl_FragColor.g=texture2D(pic,green).g;gl_FragColor.b=texture2D(pic,blue).b;gl_FragColor.a=1.0;}void main(void){float smoothed=smoothstep(0.,1.,progress);if((smoothed<0.4&&smoothed>0.1)){glitch_memories(from);}else if((smoothed>0.6&&smoothed<0.9)){glitch_memories(to);}else{vec2 p=gl_FragCoord.xy/resolution.xy;gl_FragColor=mix(texture2D(from,p),texture2D(to,p),progress);}}"},{id:"fe67b3b5149738069537",name:"potleaf",owner:"Flexi23",uniforms:{},html_url:"https://gist.github.com/fe67b3b5149738069537",created_at:"2014-05-28T09:58:30Z",updated_at:"2015-07-20T19:32:45Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;void main(){vec2 uv=gl_FragCoord.xy/resolution.xy;vec2 leaf_uv=(uv-vec2(0.5))/10./pow(progress,3.5);leaf_uv.y+=0.35;float r=0.18;float o=atan(leaf_uv.y,leaf_uv.x);gl_FragColor=mix(texture2D(from,uv),texture2D(to,uv),1.-step(1.-length(leaf_uv)+r*(1.+sin(o))*(1.+0.9*cos(8.*o))*(1.+0.1*cos(24.*o))*(0.9+0.05*cos(200.*o)),1.));}"},{id:"b86b90161503a0023231",name:"CrossZoom",owner:"rectalogic",uniforms:{strength:.4},html_url:"https://gist.github.com/b86b90161503a0023231",created_at:"2014-05-25T01:24:39Z",updated_at:"2015-07-20T19:33:57Z",stars:2,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform float strength;const float PI=3.141592653589793;float Linear_ease(in float begin,in float change,in float duration,in float time){return change*time/duration+begin;}float Exponential_easeInOut(in float begin,in float change,in float duration,in float time){if(time==0.0) return begin;else if(time==duration) return begin+change;time=time/(duration/2.0);if(time<1.0) return change/2.0*pow(2.0,10.0*(time-1.0))+begin;return change/2.0*(-pow(2.0,-10.0*(time-1.0))+2.0)+begin;}float Sinusoidal_easeInOut(in float begin,in float change,in float duration,in float time){return -change/2.0*(cos(PI*time/duration)-1.0)+begin;}float random(in vec3 scale,in float seed){return fract(sin(dot(gl_FragCoord.xyz+seed,scale))*43758.5453+seed);}vec3 crossFade(in vec2 uv,in float dissolve){return mix(texture2D(from,uv).rgb,texture2D(to,uv).rgb,dissolve);}void main(){vec2 texCoord=gl_FragCoord.xy/resolution.xy;vec2 center=vec2(Linear_ease(0.25,0.5,1.0,progress),0.5);float dissolve=Exponential_easeInOut(0.0,1.0,1.0,progress);float strength=Sinusoidal_easeInOut(0.0,strength,0.5,progress);vec3 color=vec3(0.0);float total=0.0;vec2 toCenter=center-texCoord;float offset=random(vec3(12.9898,78.233,151.7182),0.0);for(float t=0.0;t<=40.0;t++){float percent=(t+offset)/40.0;float weight=4.0*(percent-percent*percent);color+=crossFade(texCoord+toCenter*percent*strength,dissolve)*weight;total+=weight;}gl_FragColor=vec4(color/total,1.0);}"},{id:"ce9279de351984f0ad27",name:"Slide",owner:"rectalogic",uniforms:{translateX:1,translateY:0},html_url:"https://gist.github.com/ce9279de351984f0ad27",created_at:"2014-05-25T01:13:20Z",updated_at:"2015-07-20T19:20:33Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform float translateX;uniform float translateY;void main(){vec2 texCoord=gl_FragCoord.xy/resolution.xy;float x=progress*translateX;float y=progress*translateY;if(x>=0.0&&y>=0.0){if(texCoord.x>=x&&texCoord.y>=y){gl_FragColor=texture2D(from,texCoord-vec2(x,y));}else{vec2 uv;if(x>0.0) uv=vec2(x-1.0,y);else if(y>0.0) uv=vec2(x,y-1.0);gl_FragColor=texture2D(to,texCoord-uv);}}else if(x<=0.0&&y<=0.0){if(texCoord.x<=(1.0+x)&&texCoord.y<=(1.0+y)) gl_FragColor=texture2D(from,texCoord-vec2(x,y));else{vec2 uv;if(x<0.0) uv=vec2(x+1.0,y);else if(y<0.0) uv=vec2(x,y+1.0);gl_FragColor=texture2D(to,texCoord-uv);}}else gl_FragColor=vec4(0.0);}"},{id:"154a99fbe5300fb5c279",name:"pinwheel",owner:"mrspeaker",uniforms:{},html_url:"https://gist.github.com/154a99fbe5300fb5c279",created_at:"2014-05-23T21:56:59Z",updated_at:"2015-07-20T19:18:23Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;float circPos=atan(p.y-0.5,p.x-0.5)+progress;float modPos=mod(circPos,3.1415/4.);float signed=sign(progress-modPos);float smoothed=smoothstep(0.,1.,signed);if(smoothed>0.5){gl_FragColor=texture2D(to,p);}else{gl_FragColor=texture2D(from,p);}}"},{id:"e54a807cdb66c8b16a34",name:"Kaleidoscope",owner:"nwoeanhinnogaehr",uniforms:{speed:1,angle:2,power:2},html_url:"https://gist.github.com/e54a807cdb66c8b16a34",created_at:"2014-05-23T19:02:46Z",updated_at:"2015-07-20T19:24:33Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform float speed;uniform float angle;uniform float power;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec2 q=p;float t=pow(progress,power)*speed;p=p-0.5;for(int i=0;i<7;i++){p=vec2(sin(t)*p.x+cos(t)*p.y,sin(t)*p.y-cos(t)*p.x);t+=angle;p=abs(mod(p,2.0)-1.0);}abs(mod(p,1.0));gl_FragColor=mix(mix(texture2D(from,q),texture2D(to,q),progress),mix(texture2D(from,p),texture2D(to,p),progress),1.0-2.0*abs(progress-0.5));}"},{id:"408045772d255df97520",name:"SimpleFlip",owner:"nwoeanhinnogaehr",uniforms:{},html_url:"https://gist.github.com/408045772d255df97520",created_at:"2014-05-23T18:42:58Z",updated_at:"2015-07-20T19:19:51Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec2 q=p;p.x=(p.x-0.5)/abs(progress-0.5)*0.5+0.5;vec4 a=texture2D(from,p);vec4 b=texture2D(to,p);gl_FragColor=vec4(mix(a,b,step(0.5,progress)).rgb*step(abs(q.x-0.5),abs(progress-0.5)),1.0);}"},{id:"a070cbd69e2535e757f1",name:"DoomScreenTransition",owner:"zeh",uniforms:{barWidth:10,noise:.2,amplitude:2,frequency:1},html_url:"https://gist.github.com/a070cbd69e2535e757f1",created_at:"2014-05-23T18:00:18Z",updated_at:"2015-07-20T19:32:46Z",stars:1,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform int barWidth;uniform float amplitude;uniform float noise;uniform float frequency;float rand(int num){return fract(mod(float(num)*67123.313,12.0)*sin(float(num)*10.3)*cos(float(num)));}float wave(int num){float fn=float(num)*frequency*0.1*float(barWidth);return cos(fn*0.5)*cos(fn*0.13)*sin((fn+10.0)*0.3)/2.0+0.5;}float pos(int num){return noise==0.0?wave(num):mix(wave(num),rand(num),noise);}void main(){int bar=int(gl_FragCoord.x)/barWidth;float scale=1.0+pos(bar)*amplitude;float phase=progress*scale;float posY=gl_FragCoord.y/resolution.y;vec2 p;vec4 c;if(phase+posY<1.0){p=vec2(gl_FragCoord.x,gl_FragCoord.y+mix(0.0,resolution.y,phase))/resolution.xy;c=texture2D(from,p);}else{p=gl_FragCoord.xy/resolution.xy;c=texture2D(to,p);}gl_FragColor=c;}"},{id:"a830822b23e846e25d2d",name:"DreamyZoom",owner:"zeh",uniforms:{rotation:6,scale:1.2},html_url:"https://gist.github.com/a830822b23e846e25d2d",created_at:"2014-05-23T15:27:25Z",updated_at:"2015-07-20T19:31:41Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\n\n#define DEG2RAD 0.03926990816987241548078304229099 // 1/180*PI\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform float rotation;uniform float scale;void main(){float phase=progress<0.5?progress*2.0:(progress-0.5)*2.0;float angleOffset=progress<0.5?mix(0.0,rotation*DEG2RAD,phase):mix(-rotation*DEG2RAD,0.0,phase);float newScale=progress<0.5?mix(1.0,scale,phase):mix(scale,1.0,phase);vec2 center=vec2(0,0);float maxRes=max(resolution.x,resolution.y);float resX=resolution.x/maxRes*0.5;float resY=resolution.y/maxRes*0.5;vec2 p=(gl_FragCoord.xy/maxRes-vec2(resX,resY))/newScale;float angle=atan(p.y,p.x)+angleOffset;float dist=distance(center,p);p.x=cos(angle)*dist+resX;p.y=sin(angle)*dist+resY;vec4 c=progress<0.5?texture2D(from,p):texture2D(to,p);gl_FragColor=c+(progress<0.5?mix(0.0,1.0,phase):mix(1.0,0.0,phase));}"},{id:"b6720916aa3f035949bc",name:"squareswipe",owner:"gre",uniforms:{squares:[10,10],direction:[1,-.5],smoothness:1.6},html_url:"https://gist.github.com/b6720916aa3f035949bc",created_at:"2014-05-23T12:09:38Z",updated_at:"2015-07-20T19:20:09Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform ivec2 squares;uniform vec2 direction;uniform float smoothness;const vec2 center=vec2(0.5,0.5);void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec2 v=normalize(direction);if(v!=vec2(0.0)) v/=abs(v.x)+abs(v.y);float d=v.x*center.x+v.y*center.y;float offset=smoothness;float pr=smoothstep(-offset,0.0,v.x*p.x+v.y*p.y-(d-0.5+progress*(1.+offset)));vec2 squarep=fract(p*vec2(squares));vec2 squaremin=vec2(pr/2.0);vec2 squaremax=vec2(1.0-pr/2.0);float a=all(lessThan(squaremin,squarep))&&all(lessThan(squarep,squaremax))?1.0:0.0;gl_FragColor=mix(texture2D(from,p),texture2D(to,p),a);}"},{id:"169781bb76f310e2bfde",name:"TilesWaveBottomLeftToTopRight",owner:"numb3r23",uniforms:{tileSize:[64,64],checkerDistance:0,flipX:!1,flipY:!1,preTileSingleColor:!1,postTileSingleColor:!1},html_url:"https://gist.github.com/169781bb76f310e2bfde",created_at:"2014-05-21T22:50:48Z",updated_at:"2015-07-20T19:24:32Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform vec2 tileSize;uniform float checkerDistance;uniform bool flipX;uniform bool flipY;uniform bool preTileSingleColor;uniform bool postTileSingleColor;vec2 tile2Global(vec2 tex,vec2 tileNum,bool tileSingleColor){vec2 perTile=tileSize/resolution.xy;return tileNum*perTile+(tileSingleColor?vec2(0):tex*perTile);}void main(void){vec2 uv=gl_FragCoord.xy/resolution.xy;vec4 fragColor=vec4(1,1,0,1);vec2 posInTile=mod(vec2(gl_FragCoord),tileSize);vec2 tileNum=floor(vec2(gl_FragCoord)/tileSize);int num=int(tileNum.x);vec2 totalTiles=ceil(resolution.xy/tileSize);float countTiles=totalTiles.x*totalTiles.y;vec2 perTile=ceil(tileSize/resolution.xy);float offset=0.0;offset=(tileNum.y+tileNum.x*perTile.y)/(sqrt(countTiles)*2.0);float timeOffset=(progress-offset)*countTiles;timeOffset=clamp(timeOffset,0.0,0.5);float sinTime=1.0-abs(cos(fract(timeOffset)*3.1415926));fragColor.rg=uv;fragColor.b=sinTime;vec2 texC=posInTile/tileSize;if(sinTime<=0.5){if(flipX){if((texC.x1.0-sinTime)){discard;}if(texC.x<0.5){texC.x=(texC.x-sinTime)*0.5/(0.5-sinTime);}else{texC.x=(texC.x-0.5)*0.5/(0.5-sinTime)+0.5;}}if(flipY){if((texC.y1.0-sinTime)){discard;}if(texC.y<0.5){texC.y=(texC.y-sinTime)*0.5/(0.5-sinTime);}else{texC.y=(texC.y-0.5)*0.5/(0.5-sinTime)+0.5;}}fragColor=texture2D(from,tile2Global(texC,tileNum,preTileSingleColor));}else{if(flipX){if((texC.x>sinTime)||(texC.x<1.0-sinTime)){discard;}if(texC.x<0.5){texC.x=(texC.x-sinTime)*0.5/(0.5-sinTime);}else{texC.x=(texC.x-0.5)*0.5/(0.5-sinTime)+0.5;}texC.x=1.0-texC.x;}if(flipY){if((texC.y>sinTime)||(texC.y<1.0-sinTime)){discard;}if(texC.y<0.5){texC.y=(texC.y-sinTime)*0.5/(0.5-sinTime);}else{texC.y=(texC.y-0.5)*0.5/(0.5-sinTime)+0.5;}texC.y=1.0-texC.y;}fragColor.rgb=texture2D(to,tile2Global(texC,tileNum,postTileSingleColor)).rgb;}gl_FragColor=fragColor;}"},{id:"5ebd3442a208861c7a8a",name:"TilesScanline",owner:"numb3r23",uniforms:{},html_url:"https://gist.github.com/5ebd3442a208861c7a8a",created_at:"2014-05-21T22:49:22Z",updated_at:"2015-07-20T19:31:40Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;const vec2 tileSize=vec2(64,64);const float checkerDistance=0.015;const bool flipX=true;const bool flipY=false;const bool preTileSingleColor=false;const bool postTileSingleColor=false;vec2 tile2Global(vec2 tex,vec2 tileNum,bool tileSingleColor){vec2 perTile=tileSize/resolution.xy;return tileNum*perTile+(tileSingleColor?vec2(0):tex*perTile);}void main(void){vec2 uv=gl_FragCoord.xy/resolution.xy;vec4 fragColor=vec4(1,1,0,1);vec2 posInTile=mod(vec2(gl_FragCoord),tileSize);vec2 tileNum=floor(vec2(gl_FragCoord)/tileSize);int num=int(tileNum.x);vec2 totalTiles=ceil(resolution.xy/tileSize);float countTiles=totalTiles.x*totalTiles.y;vec2 perTile=ceil(tileSize/resolution.xy);float offset=0.0;offset=(tileNum.x+tileNum.y*totalTiles.x)/countTiles;float timeOffset=(progress-offset)*countTiles;timeOffset=clamp(timeOffset,0.0,0.5);float sinTime=1.0-abs(cos(fract(timeOffset)*3.1415926));fragColor.rg=uv;fragColor.b=sinTime;vec2 texC=posInTile/tileSize;if(sinTime<=0.5){if(flipX){if((texC.x1.0-sinTime)){discard;}if(texC.x<0.5){texC.x=(texC.x-sinTime)*0.5/(0.5-sinTime);}else{texC.x=(texC.x-0.5)*0.5/(0.5-sinTime)+0.5;}}if(flipY){if((texC.y1.0-sinTime)){discard;}if(texC.y<0.5){texC.y=(texC.y-sinTime)*0.5/(0.5-sinTime);}else{texC.y=(texC.y-0.5)*0.5/(0.5-sinTime)+0.5;}}fragColor=texture2D(from,tile2Global(texC,tileNum,preTileSingleColor));}else{if(flipX){if((texC.x>sinTime)||(texC.x<1.0-sinTime)){discard;}if(texC.x<0.5){texC.x=(texC.x-sinTime)*0.5/(0.5-sinTime);}else{texC.x=(texC.x-0.5)*0.5/(0.5-sinTime)+0.5;}texC.x=1.0-texC.x;}if(flipY){if((texC.y>sinTime)||(texC.y<1.0-sinTime)){discard;}if(texC.y<0.5){texC.y=(texC.y-sinTime)*0.5/(0.5-sinTime);}else{texC.y=(texC.y-0.5)*0.5/(0.5-sinTime)+0.5;}texC.y=1.0-texC.y;}fragColor.rgb=texture2D(to,tile2Global(texC,tileNum,postTileSingleColor)).rgb;}gl_FragColor=fragColor;}" -},{id:"9e86d2712e123542758b",name:"Dreamy",owner:"mikolalysenko",uniforms:{},html_url:"https://gist.github.com/9e86d2712e123542758b",created_at:"2014-05-21T14:55:01Z",updated_at:"2015-07-20T19:34:01Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;vec2 offset(float progress,float x,float theta){float phase=progress*progress+progress+theta;float shifty=0.03*progress*cos(10.0*(progress+x));return vec2(0,shifty);}void main(){vec2 p=gl_FragCoord.xy/resolution.xy;gl_FragColor=mix(texture2D(from,p+offset(progress,p.x,0.0)),texture2D(to,p+offset(1.0-progress,p.x,3.14)),progress);}"},{id:"21d2fdd24c706952dc8c",name:"AdvancedMosaic",owner:"corporateshark",uniforms:{},html_url:"https://gist.github.com/21d2fdd24c706952dc8c",created_at:"2014-05-21T14:45:52Z",updated_at:"2015-07-20T19:19:04Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;void main(void){vec2 p=gl_FragCoord.xy/resolution.xy;float T=progress;float S0=1.0;float S1=50.0;float S2=1.0;float Half=0.5;float PixelSize=(Tprogress?fTex:tTex,tTex,pow(progress,interpolationPower));}"},{id:"b93818de23d4511fde10",name:"Dissolve",owner:"nwoeanhinnogaehr",uniforms:{blocksize:1},html_url:"https://gist.github.com/b93818de23d4511fde10",created_at:"2014-05-20T23:40:57Z",updated_at:"2015-07-25T20:07:28Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform float blocksize;float rand(vec2 co){return fract(sin(dot(co,vec2(12.9898,78.233)))*43758.5453);}void main(){vec2 p=gl_FragCoord.xy/resolution.xy;gl_FragColor=mix(texture2D(from,p),texture2D(to,p),step(rand(floor(gl_FragCoord.xy/blocksize)),progress));}"},{id:"b185145363d65751009b",name:"HSVfade",owner:"nwoeanhinnogaehr",uniforms:{},html_url:"https://gist.github.com/b185145363d65751009b",created_at:"2014-05-20T23:21:27Z",updated_at:"2015-07-20T19:18:54Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;vec3 hsv2rgb(vec3 c){const vec4 K=vec4(1.0,2.0/3.0,1.0/3.0,3.0);vec3 p=abs(fract(c.xxx+K.xyz)*6.0-K.www);return c.z*mix(K.xxx,clamp(p-K.xxx,0.0,1.0),c.y);}vec3 rgb2hsv(vec3 c){const vec4 K=vec4(0.0,-1.0/3.0,2.0/3.0,-1.0);vec4 p=mix(vec4(c.bg,K.wz),vec4(c.gb,K.xy),step(c.b,c.g));vec4 q=mix(vec4(p.xyw,c.r),vec4(c.r,p.yzx),step(p.x,c.r));float d=q.x-min(q.w,q.y);return vec3(abs(q.z+(q.w-q.y)/(6.0*d+0.001)),d/(q.x+0.001),q.x);}void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec3 a=rgb2hsv(texture2D(from,p).rgb);vec3 b=rgb2hsv(texture2D(to,p).rgb);vec3 m=mix(a,b,progress);gl_FragColor=vec4(hsv2rgb(m),1.0);}"},{id:"f6fc39f4cfcbb97f96a6",name:"Fold",owner:"nwoeanhinnogaehr",uniforms:{},html_url:"https://gist.github.com/f6fc39f4cfcbb97f96a6",created_at:"2014-05-20T23:14:23Z",updated_at:"2015-07-20T19:24:57Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec4 a=texture2D(from,(p-vec2(progress,0.0))/vec2(1.0-progress,1.0));vec4 b=texture2D(to,p/vec2(progress,1.0));gl_FragColor=mix(a,b,step(p.x,progress));}"},{id:"80c2d40cac3f98453176",name:"linearblur",owner:"gre",uniforms:{intensity:.1},html_url:"https://gist.github.com/80c2d40cac3f98453176",created_at:"2014-05-20T22:02:35Z",updated_at:"2015-07-20T19:18:37Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform float intensity;const int PASSES=8;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec4 c1=vec4(0.0),c2=vec4(0.0);float disp=intensity*(0.5-distance(0.5,progress));for(int xi=0;xi2.0) return color1;float dd=pow(1.0-distanc/2.0,sharpness);return ((color2-color1)*dd)+color1;}float distanceToEdge(vec3 point){float dx=abs(point.x>0.5?1.0-point.x:point.x);float dy=abs(point.y>0.5?1.0-point.y:point.y);if(point.x<0.0) dx=-point.x;if(point.x>1.0) dx=point.x-1.0;if(point.y<0.0) dy=-point.y;if(point.y>1.0) dy=point.y-1.0;if((point.x<0.0||point.x>1.0)&&(point.y<0.0||point.y>1.0)) return sqrt(dx*dx+dy*dy);return min(dx,dy);}vec4 seeThrough(float yc,vec2 p,mat3 rotation,mat3 rrotation){float hitAngle=PI-(acos(yc/cylinderRadius)-cylinderAngle);vec3 point=hitPoint(hitAngle,yc,rotation*vec3(p,1.0),rrotation);if(yc<=0.0&&(point.x<0.0||point.y<0.0||point.x>1.0||point.y>1.0)){vec2 texCoord=gl_FragCoord.xy/resolution.xy;return texture2D(to,texCoord);}if(yc>0.0) return texture2D(from,p);vec4 color=texture2D(from,point.xy);vec4 tcolor=vec4(0.0);return antiAlias(color,tcolor,distanceToEdge(point));}vec4 seeThroughWithShadow(float yc,vec2 p,vec3 point,mat3 rotation,mat3 rrotation){float shadow=distanceToEdge(point)*30.0;shadow=(1.0-shadow)/3.0;if(shadow<0.0) shadow=0.0;else shadow*=amount;vec4 shadowColor=seeThrough(yc,p,rotation,rrotation);shadowColor.r-=shadow;shadowColor.g-=shadow;shadowColor.b-=shadow;return shadowColor;}vec4 backside(float yc,vec3 point){vec4 color=texture2D(from,point.xy);float gray=(color.r+color.b+color.g)/15.0;gray+=(8.0/10.0)*(pow(1.0-abs(yc/cylinderRadius),2.0/10.0)/2.0+(5.0/10.0));color.rgb=vec3(gray);return color;}vec4 behindSurface(float yc,vec3 point,mat3 rrotation){float shado=(1.0-((-cylinderRadius-yc)/amount*7.0))/6.0;shado*=1.0-abs(point.x-0.5);yc=(-cylinderRadius-cylinderRadius-yc);float hitAngle=(acos(yc/cylinderRadius)+cylinderAngle)-PI;point=hitPoint(hitAngle,yc,point,rrotation);if(yc<0.0&&point.x>=0.0&&point.y>=0.0&&point.x<=1.0&&point.y<=1.0&&(hitAngle0.5)){shado=1.0-(sqrt(pow(point.x-0.5,2.0)+pow(point.y-0.5,2.0))/(71.0/100.0));shado*=pow(-yc/cylinderRadius,3.0);shado*=0.5;}else{shado=0.0;}vec2 texCoord=gl_FragCoord.xy/resolution.xy;return vec4(texture2D(to,texCoord).rgb-shado,1.0);}void main(){vec2 texCoord=gl_FragCoord.xy/resolution.xy;const float angle=30.0*PI/180.0;float c=cos(-angle);float s=sin(-angle);mat3 rotation=mat3(c,s,0,-s,c,0,0.12,0.258,1);c=cos(angle);s=sin(angle);mat3 rrotation=mat3(c,s,0,-s,c,0,0.15,-0.5,1);vec3 point=rotation*vec3(texCoord,1.0);float yc=point.y-cylinderCenter;if(yc<-cylinderRadius){gl_FragColor=behindSurface(yc,point,rrotation);return;}if(yc>cylinderRadius){gl_FragColor=texture2D(from,texCoord);return;}float hitAngle=(acos(yc/cylinderRadius)+cylinderAngle)-PI;float hitAngleMod=mod(hitAngle,2.0*PI);if((hitAngleMod>PI&&amount<0.5)||(hitAngleMod>PI/2.0&&amount<0.0)){gl_FragColor=seeThrough(yc,texCoord,rotation,rrotation);return;}point=hitPoint(hitAngle,yc,point,rrotation);if(point.x<0.0||point.y<0.0||point.x>1.0||point.y>1.0){gl_FragColor=seeThroughWithShadow(yc,texCoord,point,rotation,rrotation);return;}vec4 color=backside(yc,point);vec4 otherColor;if(yc<0.0){float shado=1.0-(sqrt(pow(point.x-0.5,2.0)+pow(point.y-0.5,2.0))/0.71);shado*=pow(-yc/cylinderRadius,3.0);shado*=0.5;otherColor=vec4(0.0,0.0,0.0,shado);}else{otherColor=texture2D(from,texCoord);}color=antiAlias(color,otherColor,cylinderRadius-abs(yc));vec4 cl=seeThroughWithShadow(yc,texCoord,point,rotation,rrotation);float dist=distanceToEdge(point);gl_FragColor=antiAlias(color,cl,dist);}"},{id:"06450f79cab706705bf9",name:"Polka_dots",owner:"bobylito",uniforms:{dots:5},html_url:"https://gist.github.com/06450f79cab706705bf9",created_at:"2014-05-20T12:09:38Z",updated_at:"2015-07-20T19:20:01Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform float dots;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;float x=progress;bool nextImage=distance(fract(p*dots),vec2(0.5,0.5)).5){gl_FragColor=texture2D(to,mrp);}else{gl_FragColor=texture2D(from,mrp);}}"},{id:"ce1d48f0ce00bb379750",name:"Radial",owner:"Xaychru",uniforms:{},html_url:"https://gist.github.com/ce1d48f0ce00bb379750",created_at:"2014-05-19T15:18:28Z",updated_at:"2015-07-20T19:15:51Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\n\n#define PI 3.141592653589\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec2 rp=p*2.-1.;float a=atan(rp.y,rp.x);float pa=progress*PI*2.5-PI*1.25;vec4 fromc=texture2D(from,p);vec4 toc=texture2D(to,p);if(a>pa){gl_FragColor=mix(toc,fromc,smoothstep(0.,1.,(a-pa)));}else{gl_FragColor=toc;}}"},{id:"c3bc914de09227713787",name:"ButterflyWaveScrawler",owner:"mandubian",uniforms:{amplitude:1,waves:30,colorSeparation:.3},html_url:"https://gist.github.com/c3bc914de09227713787",created_at:"2014-05-19T11:48:15Z",updated_at:"2015-07-20T19:33:28Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform float amplitude;uniform float waves;uniform float colorSeparation;float PI=3.14159265358979323846264;float compute(vec2 p,float progress,vec2 center){vec2 o=p*sin(progress*amplitude)-center;vec2 h=vec2(1.,0.);float theta=acos(dot(o,h))*waves;return (exp(cos(theta))-2.*cos(4.*theta)+pow(sin((2.*theta-PI)/24.),5.))/10.;}void main(){vec2 p=gl_FragCoord.xy/resolution.xy;float inv=1.-progress;vec2 dir=p-vec2(.5);float dist=length(dir);float disp=compute(p,progress,vec2(0.5,0.5));vec4 texTo=texture2D(to,p+inv*disp);vec4 texFrom=vec4(texture2D(from,p+progress*disp*(1.0-colorSeparation)).r,texture2D(from,p+progress*disp).g,texture2D(from,p+progress*disp*(1.0+colorSeparation)).b,1.0);gl_FragColor=texTo*progress+texFrom*inv;}"},{id:"4268c81d39bd4ca00ae2",name:"CrazyParametricFun",owner:"mandubian",uniforms:{a:4,b:1,amplitude:120,smoothness:.1},html_url:"https://gist.github.com/4268c81d39bd4ca00ae2",created_at:"2014-05-19T08:04:52Z",updated_at:"2015-07-20T19:20:51Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform float a;uniform float b;uniform float amplitude;uniform float smoothness;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec2 dir=p-vec2(.5);float dist=length(dir);float x=(a-b)*cos(progress)+b*cos(progress*((a/b)-1.));float y=(a-b)*sin(progress)-b*sin(progress*((a/b)-1.));vec2 offset=dir*vec2(sin(progress*dist*amplitude*x),sin(progress*dist*amplitude*y))/smoothness;gl_FragColor=mix(texture2D(from,p+offset),texture2D(to,p),smoothstep(0.2,1.0,progress));}"},{id:"2bcfb59096fcaed82355",name:"powerdisformation",owner:"gre",uniforms:{power:3,powerDest:!0},html_url:"https://gist.github.com/2bcfb59096fcaed82355",created_at:"2014-05-17T10:58:29Z",updated_at:"2015-07-20T19:18:59Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform float power;uniform bool powerDest;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec2 p2=mix(p,vec2(pow(p.x,power),pow(p.y,power)),(powerDest?0.5:1.0)-distance(progress,powerDest?0.5:1.0));gl_FragColor=mix(texture2D(from,p2),texture2D(to,powerDest?p2:p),progress);}"},{id:"2a3f2e907e1c0a152e60",name:"swap",owner:"gre",uniforms:{reflection:.4,perspective:.2,depth:3},html_url:"https://gist.github.com/2a3f2e907e1c0a152e60",created_at:"2014-05-16T13:59:07Z",updated_at:"2015-07-20T19:31:24Z",stars:1,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from;uniform sampler2D to;uniform float progress;uniform vec2 resolution;uniform float reflection;uniform float perspective;uniform float depth;const vec4 black=vec4(0.0,0.0,0.0,1.0);const vec2 boundMin=vec2(0.0,0.0);const vec2 boundMax=vec2(1.0,1.0);bool inBounds(vec2 p){return all(lessThan(boundMin,p))&&all(lessThan(p,boundMax));}vec2 project(vec2 p){return p*vec2(1.0,-1.2)+vec2(0.0,-0.02);}vec4 bgColor(vec2 p,vec2 pfr,vec2 pto){vec4 c=black;pfr=project(pfr);if(inBounds(pfr)){c+=mix(black,texture2D(from,pfr),reflection*mix(1.0,0.0,pfr.y));}pto=project(pto);if(inBounds(pto)){c+=mix(black,texture2D(to,pto),reflection*mix(1.0,0.0,pto.y));}return c;}void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec2 pfr,pto=vec2(-1.);float size=mix(1.0,depth,progress);float persp=perspective*progress;pfr=(p+vec2(-0.0,-0.5))*vec2(size/(1.0-perspective*progress),size/(1.0-size*persp*p.x))+vec2(0.0,0.5);size=mix(1.0,depth,1.-progress);persp=perspective*(1.-progress);pto=(p+vec2(-1.0,-0.5))*vec2(size/(1.0-perspective*(1.0-progress)),size/(1.0-size*persp*(0.5-p.x)))+vec2(1.0,0.5);bool fromOver=progress<0.5;if(fromOver){if(inBounds(pfr)){gl_FragColor=texture2D(from,pfr);}else if(inBounds(pto)){gl_FragColor=texture2D(to,pto);}else{gl_FragColor=bgColor(p,pfr,pto);}}else{if(inBounds(pto)){gl_FragColor=texture2D(to,pto);}else if(inBounds(pfr)){gl_FragColor=texture2D(from,pfr);}else{gl_FragColor=bgColor(p,pfr,pto);}}}"},{id:"94ffa2725b65aa8b9979",name:"ripple",owner:"gre",uniforms:{amplitude:100,speed:50},html_url:"https://gist.github.com/94ffa2725b65aa8b9979",created_at:"2014-05-16T13:58:42Z",updated_at:"2015-07-20T19:17:37Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from;uniform sampler2D to;uniform float progress;uniform vec2 resolution;uniform float amplitude;uniform float speed;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec2 dir=p-vec2(.5);float dist=length(dir);vec2 offset=dir*(sin(progress*dist*amplitude-progress*speed)+.5)/30.;gl_FragColor=mix(texture2D(from,p+offset),texture2D(to,p),smoothstep(0.2,1.0,progress));}"},{id:"99bced7d9b5311fd166e",name:"flash",owner:"gre",uniforms:{flashPhase:.3,flashIntensity:3,flashZoomEffect:.5},html_url:"https://gist.github.com/99bced7d9b5311fd166e",created_at:"2014-05-16T13:58:17Z",updated_at:"2015-07-20T19:32:11Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from;uniform sampler2D to;uniform float progress;uniform vec2 resolution;uniform float flashPhase;uniform float flashIntensity;uniform float flashZoomEffect;const vec3 flashColor=vec3(1.0,0.8,0.3);const float flashVelocity=3.0;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec4 fc=texture2D(from,p);vec4 tc=texture2D(to,p);float intensity=mix(1.0,2.0*distance(p,vec2(0.5,0.5)),flashZoomEffect)*flashIntensity*pow(smoothstep(flashPhase,0.0,distance(0.5,progress)),flashVelocity);vec4 c=mix(texture2D(from,p),texture2D(to,p),smoothstep(0.5*(1.0-flashPhase),0.5*(1.0+flashPhase),progress));c+=intensity*vec4(flashColor,1.0);gl_FragColor=c;}"},{id:"81c6f2e6fce88f9075d2",name:"flyeye",owner:"gre",uniforms:{size:.04,zoom:30,colorSeparation:.3},html_url:"https://gist.github.com/81c6f2e6fce88f9075d2",created_at:"2014-05-16T13:56:53Z",updated_at:"2015-07-20T19:18:40Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from;uniform sampler2D to;uniform float progress;uniform vec2 resolution;uniform float size;uniform float zoom;uniform float colorSeparation;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;float inv=1.-progress;vec2 disp=size*vec2(cos(zoom*p.x),sin(zoom*p.y));vec4 texTo=texture2D(to,p+inv*disp);vec4 texFrom=vec4(texture2D(from,p+progress*disp*(1.0-colorSeparation)).r,texture2D(from,p+progress*disp).g,texture2D(from,p+progress*disp*(1.0+colorSeparation)).b,1.0);gl_FragColor=texTo*progress+texFrom*inv;}"},{id:"979934722820b5e715fa",name:"doorway",owner:"gre",uniforms:{reflection:.4,perspective:.4,depth:3},html_url:"https://gist.github.com/979934722820b5e715fa",created_at:"2014-05-16T13:54:38Z",updated_at:"2015-07-20T19:20:19Z",stars:1,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from;uniform sampler2D to;uniform float progress;uniform vec2 resolution;uniform float reflection;uniform float perspective;uniform float depth;const vec4 black=vec4(0.0,0.0,0.0,1.0);const vec2 boundMin=vec2(0.0,0.0);const vec2 boundMax=vec2(1.0,1.0);bool inBounds(vec2 p){return all(lessThan(boundMin,p))&&all(lessThan(p,boundMax));}vec2 project(vec2 p){return p*vec2(1.0,-1.2)+vec2(0.0,-0.02);}vec4 bgColor(vec2 p,vec2 pto){vec4 c=black;pto=project(pto);if(inBounds(pto)){c+=mix(black,texture2D(to,pto),reflection*mix(1.0,0.0,pto.y));}return c;}void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec2 pfr=vec2(-1.),pto=vec2(-1.);float middleSlit=2.0*abs(p.x-0.5)-progress;if(middleSlit>0.0){pfr=p+(p.x>0.5?-1.0:1.0)*vec2(0.5*progress,0.0);float d=1.0/(1.0+perspective*progress*(1.0-middleSlit));pfr.y-=d/2.;pfr.y*=d;pfr.y+=d/2.;}float size=mix(1.0,depth,1.-progress);pto=(p+vec2(-0.5,-0.5))*vec2(size,size)+vec2(0.5,0.5);if(inBounds(pfr)){gl_FragColor=texture2D(from,pfr);}else if(inBounds(pto)){gl_FragColor=texture2D(to,pto);}else{gl_FragColor=bgColor(p,pto);}}"},{id:"731fcad4f8956866f34a",name:"randomsquares",owner:"gre",uniforms:{size:[10,10],smoothness:.5},html_url:"https://gist.github.com/731fcad4f8956866f34a",created_at:"2014-05-16T13:52:46Z",updated_at:"2015-07-20T19:20:42Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from;uniform sampler2D to;uniform float progress;uniform vec2 resolution;uniform ivec2 size;uniform float smoothness;float rand(vec2 co){return fract(sin(dot(co.xy,vec2(12.9898,78.233)))*43758.5453);}void main(){vec2 p=gl_FragCoord.xy/resolution.xy;float r=rand(floor(vec2(size)*p));float m=smoothstep(0.0,-smoothness,r-(progress*(1.0+smoothness)));gl_FragColor=mix(texture2D(from,p),texture2D(to,p),m);}"},{id:"df8797fd112e8e429064",name:"squeeze",owner:"gre",uniforms:{colorSeparation:.02},html_url:"https://gist.github.com/df8797fd112e8e429064",created_at:"2014-05-16T13:51:39Z",updated_at:"2015-07-20T19:17:38Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from;uniform sampler2D to;uniform float progress;uniform vec2 resolution;uniform float colorSeparation;float progressY(float y){return 0.5+(y-0.5)/(1.0-progress);}void main(){vec2 p=gl_FragCoord.xy/resolution.xy;float y=progressY(p.y);if(y<0.0||y>1.0){gl_FragColor=texture2D(to,p);}else{vec2 fp=vec2(p.x,y);vec3 c=vec3(texture2D(from,fp-progress*vec2(0.0,colorSeparation)).r,texture2D(from,fp).g,texture2D(from,fp+progress*vec2(0.0,colorSeparation)).b);gl_FragColor=vec4(c,1.0);}}"},{id:"90000743fedc953f11a4",name:"directionalwipe",owner:"gre",uniforms:{direction:[1,-1],smoothness:.5},html_url:"https://gist.github.com/90000743fedc953f11a4",created_at:"2014-05-16T13:50:51Z",updated_at:"2015-07-20T19:17:06Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from;uniform sampler2D to;uniform float progress;uniform vec2 resolution;uniform vec2 direction;uniform float smoothness;const vec2 center=vec2(0.5,0.5);void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec2 v=normalize(direction);v/=abs(v.x)+abs(v.y);float d=v.x*center.x+v.y*center.y;float m=smoothstep(-smoothness,0.0,v.x*p.x+v.y*p.y-(d-0.5+progress*(1.+smoothness)));gl_FragColor=mix(texture2D(to,p),texture2D(from,p),m);}"},{id:"7de3f4b9482d2b0bf7bb",name:"wind",owner:"gre",uniforms:{size:.2},html_url:"https://gist.github.com/7de3f4b9482d2b0bf7bb",created_at:"2014-05-16T13:49:36Z",updated_at:"2015-07-20T19:16:52Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from;uniform sampler2D to;uniform float progress;uniform vec2 resolution;uniform float size;float rand(vec2 co){return fract(sin(dot(co.xy,vec2(12.9898,78.233)))*43758.5453);}void main(){vec2 p=gl_FragCoord.xy/resolution.xy;float r=rand(vec2(0,p.y));float m=smoothstep(0.0,-size,p.x*(1.0-size)+size*r-(progress*(1.0+size)));gl_FragColor=mix(texture2D(from,p),texture2D(to,p),m);}"},{id:"d9f8b4df19584f1f0474",name:"fadegrayscale",owner:"gre",uniforms:{grayPhase:.3},html_url:"https://gist.github.com/d9f8b4df19584f1f0474",created_at:"2014-05-16T13:49:13Z",updated_at:"2015-07-20T19:31:17Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from;uniform sampler2D to;uniform float progress;uniform vec2 resolution;uniform float grayPhase;vec3 grayscale(vec3 color){return vec3(0.2126*color.r+0.7152*color.g+0.0722*color.b);}void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec4 fc=texture2D(from,p);vec4 tc=texture2D(to,p);gl_FragColor=mix(mix(vec4(grayscale(fc.rgb),1.0),texture2D(from,p),smoothstep(1.0-grayPhase,0.0,progress)),mix(vec4(grayscale(tc.rgb),1.0),texture2D(to,p),smoothstep(grayPhase,1.0,progress)),progress);}"},{id:"206b96128ad6085f9911",name:"dispersionblur",owner:"gre",uniforms:{size:.6},html_url:"https://gist.github.com/206b96128ad6085f9911",created_at:"2014-05-16T13:47:09Z",updated_at:"2015-07-20T19:31:34Z",stars:1,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\n\n#define QUALITY 32\nuniform sampler2D from;uniform sampler2D to;uniform float progress;uniform vec2 resolution;uniform float size;const float GOLDEN_ANGLE=2.399963229728653;vec4 blur(sampler2D t,vec2 c,float radius){vec4 sum=vec4(0.0);float q=float(QUALITY);for(int i=0;i=1&&t>e}};return n}}),__d("invariant",[],function(e,t,n,r,o,i){"use strict";var a=function(e,t,n,r,o,i,a,s){if("production"!==process.env.NODE_ENV&&void 0===t)throw new Error("invariant requires an error message argument");if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,i,a,s],l=0;u=new Error("Invariant Violation: "+t.replace(/%s/g,function(){return c[l++]}))}throw u.framesToPop=1,u}};o.exports=a}),__d("gl-react-core/src/createTarget.js",["invariant"],function(e,t,n,r,o,i){function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;nt%1?1:0}}),l.createElement(f,{style:{flex:1,color:"#00FF66",fontSize:14}},t.toFixed(2),"s"),l.createElement(f,{style:{flex:1,color:"#fff",fontSize:14}},n.toFixed(0)," fps"),l.createElement(f,{style:{flex:1,color:"#999",fontSize:14}},""))))}}]),t}(l.Component);o.exports=m}),__d("AdvancedEffects/src/Vignette.js",["react-native/Libraries/react-native/react-native.js","gl-react-native/src/index.js"],function(e,t,n,r,o,i){function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n=l.length?0:p+1;const t=l[e],n=t.genUniforms&&t.genUniforms()||{};return{name:t.name,uniforms:n}}var s=Object.assign||function(e){for(var t=1;t-0.005){return -1.0;}else if(r-dist<0.01&&r-dist>-0.005){return -2.0;}return grad;}float round(float a){return floor(a+0.5);}float getWave(vec2 p){vec2 _p=p-center;float rads=atan(_p.y,_p.x);float degs=degrees(rads)+180.0;vec2 range=vec2(0.0,M_PI*30.0);vec2 domain=vec2(0.0,360.0);float ratio=(M_PI*30.0)/360.0;degs=degs*ratio;float x=progress;float magnitude=mix(0.02,0.09,smoothstep(0.0,1.0,x));float offset=mix(40.0,30.0,smoothstep(0.0,1.0,x));float ease_degs=quadraticInOut(sin(degs));float deg_wave_pos=(ease_degs*magnitude)*sin(x*offset);return x+deg_wave_pos;}void main(){vec2 p=gl_FragCoord.xy/resolution.xy;if(progress==0.0){gl_FragColor=texture2D(from,p);}else if(progress==1.0){gl_FragColor=texture2D(to,p);}else{float dist=distance(center,p);float m=getGradient(getWave(p),dist);if(m==-2.0){gl_FragColor=mix(texture2D(from,p),vec4(0.0,0.0,0.0,1.0),0.75);}else{gl_FragColor=mix(texture2D(from,p),texture2D(to,p),m);}}}"},{id:"b3aa4a8b4f88dc228d4a",name:"test",owner:"brandonyoyo",uniforms:{},html_url:"https://gist.github.com/b3aa4a8b4f88dc228d4a",created_at:"2014-10-26T16:46:18Z",updated_at:"2015-07-20T19:18:46Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;gl_FragColor=mix(texture2D(from,p),texture2D(to,p),progress);}"},{id:"d1f891c5585fc40b55ea",name:"Star Wipe",owner:"MemoryStomp",uniforms:{},html_url:"https://gist.github.com/d1f891c5585fc40b55ea",created_at:"2014-07-01T06:58:45Z",updated_at:"2015-07-20T19:24:46Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;vec2 circlePoint(float ang){ang+=6.28318*0.15;return vec2(cos(ang),sin(ang));}float cross2d(vec2 a,vec2 b){return (a.x*b.y-a.y*b.x);}float star(vec2 p,float size){if(size<=0.0){return 0.0;}p/=size;vec2 p0=circlePoint(0.0);vec2 p1=circlePoint(6.28318*1.0/5.0);vec2 p2=circlePoint(6.28318*2.0/5.0);vec2 p3=circlePoint(6.28318*3.0/5.0);vec2 p4=circlePoint(6.28318*4.0/5.0);float s0=(cross2d(p1-p0,p-p0));float s1=(cross2d(p2-p1,p-p1));float s2=(cross2d(p3-p2,p-p2));float s3=(cross2d(p4-p3,p-p3));float s4=(cross2d(p0-p4,p-p4));float s5=min(min(min(s0,s1),min(s2,s3)),s4);float s=max(1.0-sign(s0*s1*s2*s3*s4)+sign(s5),0.0);s=sign(2.6-length(p))*s;return max(s,0.0);}void main(){vec2 p=(gl_FragCoord.xy/resolution.xy);vec2 o=p*2.0-1.0;float t=progress*1.4;float c1=star(o,t);float c2=star(o,t-0.1);float border=max(c1-c2,0.0);gl_FragColor=mix(texture2D(from,p),texture2D(to,p),c1)+vec4(border,border,border,0.0);}"},{id:"5a4d1fb6711076d17e2e",name:"morph",owner:"paniq",uniforms:{},html_url:"https://gist.github.com/5a4d1fb6711076d17e2e",created_at:"2014-07-01T04:52:25Z",updated_at:"2015-07-27T15:08:48Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;const float strength=0.1;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec4 ca=texture2D(from,p);vec4 cb=texture2D(to,p);vec2 oa=(((ca.rg+ca.b)*0.5)*2.0-1.0);vec2 ob=(((cb.rg+cb.b)*0.5)*2.0-1.0);vec2 oc=mix(oa,ob,0.5)*strength;float w0=progress;float w1=1.0-w0;gl_FragColor=mix(texture2D(from,p+oc*w0),texture2D(to,p-oc*w1),progress);}"},{id:"00973cee8e0353c73305",name:"LumaWipe",owner:"rectalogic",uniforms:{lumaTex:"conical-asym.png",invertLuma:!0,softness:.25},html_url:"https://gist.github.com/00973cee8e0353c73305",created_at:"2014-06-17T02:11:27Z",updated_at:"2015-07-20T19:31:54Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform sampler2D lumaTex;uniform bool invertLuma;uniform float softness;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;float luma=texture2D(lumaTex,p).x;if(invertLuma) luma=1.0-luma;vec4 fromColor=texture2D(from,p);vec4 toColor=texture2D(to,p);float time=mix(0.0,1.0+softness,progress);if(luma<=time-softness) gl_FragColor=toColor;else if(luma>=time) gl_FragColor=fromColor;else{float alpha=(time-luma)/softness;gl_FragColor=mix(fromColor,toColor,alpha);}}"},{id:"0141a38779af3a652c22",name:"simple luma",owner:"gre",uniforms:{luma:"spiral-1.png"},html_url:"https://gist.github.com/0141a38779af3a652c22",created_at:"2014-06-13T08:16:10Z",updated_at:"2015-07-20T19:20:23Z",stars:1,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform sampler2D luma;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;gl_FragColor=mix(texture2D(from,p),texture2D(to,p),step(texture2D(luma,p).r,progress));}"},{id:"ee15128c2b87d0e74dee",name:"cube",owner:"gre",uniforms:{persp:.7,unzoom:.3,reflection:.4,floating:3},html_url:"https://gist.github.com/ee15128c2b87d0e74dee",created_at:"2014-06-12T17:13:17Z",updated_at:"2015-07-20T19:33:46Z",stars:1,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform float persp;uniform float unzoom;uniform float reflection;uniform float floating;vec2 project(vec2 p){return p*vec2(1.0,-1.2)+vec2(0.0,-floating/100.);}bool inBounds(vec2 p){return all(lessThan(vec2(0.0),p))&&all(lessThan(p,vec2(1.0)));}vec4 bgColor(vec2 p,vec2 pfr,vec2 pto){vec4 c=vec4(0.0,0.0,0.0,1.0);pfr=project(pfr);if(inBounds(pfr)){c+=mix(vec4(0.0),texture2D(from,pfr),reflection*mix(1.0,0.0,pfr.y));}pto=project(pto);if(inBounds(pto)){c+=mix(vec4(0.0),texture2D(to,pto),reflection*mix(1.0,0.0,pto.y));}return c;}vec2 xskew(vec2 p,float persp,float center){float x=mix(p.x,1.0-p.x,center);return ((vec2(x,(p.y-0.5*(1.0-persp)*x)/(1.0+(persp-1.0)*x))-vec2(0.5-distance(center,0.5),0.0))*vec2(0.5/distance(center,0.5)*(center<0.5?1.0:-1.0),1.0)+vec2(center<0.5?0.0:1.0,0.0));}void main(){vec2 op=gl_FragCoord.xy/resolution.xy;float uz=unzoom*2.0*(0.5-distance(0.5,progress));vec2 p=-uz*0.5+(1.0+uz)*op;vec2 fromP=xskew((p-vec2(progress,0.0))/vec2(1.0-progress,1.0),1.0-mix(progress,0.0,persp),0.0);vec2 toP=xskew(p/vec2(progress,1.0),mix(pow(progress,2.0),1.0,persp),1.0);if(inBounds(fromP)){gl_FragColor=texture2D(from,fromP);}else if(inBounds(toP)){gl_FragColor=texture2D(to,toP);}else{gl_FragColor=bgColor(op,fromP,toP);}}"},{id:"9b99fc01fd5705008a5b",name:"Glitch Memories",owner:"niseh",uniforms:{},html_url:"https://gist.github.com/9b99fc01fd5705008a5b",created_at:"2014-05-29T19:32:52Z",updated_at:"2015-07-20T19:33:58Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;void glitch_memories(sampler2D pic){vec2 p=gl_FragCoord.xy/resolution.xy;vec2 block=floor(gl_FragCoord.xy/vec2(16));vec2 uv_noise=block/vec2(64);uv_noise+=floor(vec2(progress)*vec2(1200.0,3500.0))/vec2(64);float block_thresh=pow(fract(progress*1200.0),2.0)*0.2;float line_thresh=pow(fract(progress*2200.0),3.0)*0.7;vec2 red=p,green=p,blue=p,o=p;vec2 dist=(fract(uv_noise)-0.5)*0.3;red+=dist*0.1;green+=dist*0.2;blue+=dist*0.125;gl_FragColor.r=texture2D(pic,red).r;gl_FragColor.g=texture2D(pic,green).g;gl_FragColor.b=texture2D(pic,blue).b;gl_FragColor.a=1.0;}void main(void){float smoothed=smoothstep(0.,1.,progress);if((smoothed<0.4&&smoothed>0.1)){glitch_memories(from);}else if((smoothed>0.6&&smoothed<0.9)){glitch_memories(to);}else{vec2 p=gl_FragCoord.xy/resolution.xy;gl_FragColor=mix(texture2D(from,p),texture2D(to,p),progress);}}"},{id:"fe67b3b5149738069537",name:"potleaf",owner:"Flexi23",uniforms:{},html_url:"https://gist.github.com/fe67b3b5149738069537",created_at:"2014-05-28T09:58:30Z",updated_at:"2015-07-20T19:32:45Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;void main(){vec2 uv=gl_FragCoord.xy/resolution.xy;vec2 leaf_uv=(uv-vec2(0.5))/10./pow(progress,3.5);leaf_uv.y+=0.35;float r=0.18;float o=atan(leaf_uv.y,leaf_uv.x);gl_FragColor=mix(texture2D(from,uv),texture2D(to,uv),1.-step(1.-length(leaf_uv)+r*(1.+sin(o))*(1.+0.9*cos(8.*o))*(1.+0.1*cos(24.*o))*(0.9+0.05*cos(200.*o)),1.));}"},{id:"b86b90161503a0023231",name:"CrossZoom",owner:"rectalogic",uniforms:{strength:.4},html_url:"https://gist.github.com/b86b90161503a0023231",created_at:"2014-05-25T01:24:39Z",updated_at:"2015-07-20T19:33:57Z",stars:2,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform float strength;const float PI=3.141592653589793;float Linear_ease(in float begin,in float change,in float duration,in float time){return change*time/duration+begin;}float Exponential_easeInOut(in float begin,in float change,in float duration,in float time){if(time==0.0) return begin;else if(time==duration) return begin+change;time=time/(duration/2.0);if(time<1.0) return change/2.0*pow(2.0,10.0*(time-1.0))+begin;return change/2.0*(-pow(2.0,-10.0*(time-1.0))+2.0)+begin;}float Sinusoidal_easeInOut(in float begin,in float change,in float duration,in float time){return -change/2.0*(cos(PI*time/duration)-1.0)+begin;}float random(in vec3 scale,in float seed){return fract(sin(dot(gl_FragCoord.xyz+seed,scale))*43758.5453+seed);}vec3 crossFade(in vec2 uv,in float dissolve){return mix(texture2D(from,uv).rgb,texture2D(to,uv).rgb,dissolve);}void main(){vec2 texCoord=gl_FragCoord.xy/resolution.xy;vec2 center=vec2(Linear_ease(0.25,0.5,1.0,progress),0.5);float dissolve=Exponential_easeInOut(0.0,1.0,1.0,progress);float strength=Sinusoidal_easeInOut(0.0,strength,0.5,progress);vec3 color=vec3(0.0);float total=0.0;vec2 toCenter=center-texCoord;float offset=random(vec3(12.9898,78.233,151.7182),0.0);for(float t=0.0;t<=40.0;t++){float percent=(t+offset)/40.0;float weight=4.0*(percent-percent*percent);color+=crossFade(texCoord+toCenter*percent*strength,dissolve)*weight;total+=weight;}gl_FragColor=vec4(color/total,1.0);}"},{id:"ce9279de351984f0ad27",name:"Slide",owner:"rectalogic",uniforms:{translateX:1,translateY:0},html_url:"https://gist.github.com/ce9279de351984f0ad27",created_at:"2014-05-25T01:13:20Z",updated_at:"2015-07-20T19:20:33Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform float translateX;uniform float translateY;void main(){vec2 texCoord=gl_FragCoord.xy/resolution.xy;float x=progress*translateX;float y=progress*translateY;if(x>=0.0&&y>=0.0){if(texCoord.x>=x&&texCoord.y>=y){gl_FragColor=texture2D(from,texCoord-vec2(x,y));}else{vec2 uv;if(x>0.0) uv=vec2(x-1.0,y);else if(y>0.0) uv=vec2(x,y-1.0);gl_FragColor=texture2D(to,texCoord-uv);}}else if(x<=0.0&&y<=0.0){if(texCoord.x<=(1.0+x)&&texCoord.y<=(1.0+y)) gl_FragColor=texture2D(from,texCoord-vec2(x,y));else{vec2 uv;if(x<0.0) uv=vec2(x+1.0,y);else if(y<0.0) uv=vec2(x,y+1.0);gl_FragColor=texture2D(to,texCoord-uv);}}else gl_FragColor=vec4(0.0);}"},{id:"154a99fbe5300fb5c279",name:"pinwheel",owner:"mrspeaker",uniforms:{},html_url:"https://gist.github.com/154a99fbe5300fb5c279",created_at:"2014-05-23T21:56:59Z",updated_at:"2015-07-20T19:18:23Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;float circPos=atan(p.y-0.5,p.x-0.5)+progress;float modPos=mod(circPos,3.1415/4.);float signed=sign(progress-modPos);float smoothed=smoothstep(0.,1.,signed);if(smoothed>0.5){gl_FragColor=texture2D(to,p);}else{gl_FragColor=texture2D(from,p);}}"},{id:"e54a807cdb66c8b16a34",name:"Kaleidoscope",owner:"nwoeanhinnogaehr",uniforms:{speed:1,angle:2,power:2},html_url:"https://gist.github.com/e54a807cdb66c8b16a34",created_at:"2014-05-23T19:02:46Z",updated_at:"2015-07-20T19:24:33Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform float speed;uniform float angle;uniform float power;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec2 q=p;float t=pow(progress,power)*speed;p=p-0.5;for(int i=0;i<7;i++){p=vec2(sin(t)*p.x+cos(t)*p.y,sin(t)*p.y-cos(t)*p.x);t+=angle;p=abs(mod(p,2.0)-1.0);}abs(mod(p,1.0));gl_FragColor=mix(mix(texture2D(from,q),texture2D(to,q),progress),mix(texture2D(from,p),texture2D(to,p),progress),1.0-2.0*abs(progress-0.5));}"},{id:"408045772d255df97520",name:"SimpleFlip",owner:"nwoeanhinnogaehr",uniforms:{},html_url:"https://gist.github.com/408045772d255df97520",created_at:"2014-05-23T18:42:58Z",updated_at:"2015-07-20T19:19:51Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec2 q=p;p.x=(p.x-0.5)/abs(progress-0.5)*0.5+0.5;vec4 a=texture2D(from,p);vec4 b=texture2D(to,p);gl_FragColor=vec4(mix(a,b,step(0.5,progress)).rgb*step(abs(q.x-0.5),abs(progress-0.5)),1.0);}"},{id:"a070cbd69e2535e757f1",name:"DoomScreenTransition",owner:"zeh",uniforms:{barWidth:10,noise:.2,amplitude:2,frequency:1},html_url:"https://gist.github.com/a070cbd69e2535e757f1",created_at:"2014-05-23T18:00:18Z",updated_at:"2015-07-20T19:32:46Z",stars:1,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform int barWidth;uniform float amplitude;uniform float noise;uniform float frequency;float rand(int num){return fract(mod(float(num)*67123.313,12.0)*sin(float(num)*10.3)*cos(float(num)));}float wave(int num){float fn=float(num)*frequency*0.1*float(barWidth);return cos(fn*0.5)*cos(fn*0.13)*sin((fn+10.0)*0.3)/2.0+0.5;}float pos(int num){return noise==0.0?wave(num):mix(wave(num),rand(num),noise);}void main(){int bar=int(gl_FragCoord.x)/barWidth;float scale=1.0+pos(bar)*amplitude;float phase=progress*scale;float posY=gl_FragCoord.y/resolution.y;vec2 p;vec4 c;if(phase+posY<1.0){p=vec2(gl_FragCoord.x,gl_FragCoord.y+mix(0.0,resolution.y,phase))/resolution.xy;c=texture2D(from,p);}else{p=gl_FragCoord.xy/resolution.xy;c=texture2D(to,p);}gl_FragColor=c;}"},{id:"a830822b23e846e25d2d",name:"DreamyZoom",owner:"zeh",uniforms:{rotation:6,scale:1.2},html_url:"https://gist.github.com/a830822b23e846e25d2d",created_at:"2014-05-23T15:27:25Z",updated_at:"2015-07-20T19:31:41Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\n\n#define DEG2RAD 0.03926990816987241548078304229099 // 1/180*PI\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform float rotation;uniform float scale;void main(){float phase=progress<0.5?progress*2.0:(progress-0.5)*2.0;float angleOffset=progress<0.5?mix(0.0,rotation*DEG2RAD,phase):mix(-rotation*DEG2RAD,0.0,phase);float newScale=progress<0.5?mix(1.0,scale,phase):mix(scale,1.0,phase);vec2 center=vec2(0,0);float maxRes=max(resolution.x,resolution.y);float resX=resolution.x/maxRes*0.5;float resY=resolution.y/maxRes*0.5;vec2 p=(gl_FragCoord.xy/maxRes-vec2(resX,resY))/newScale;float angle=atan(p.y,p.x)+angleOffset;float dist=distance(center,p);p.x=cos(angle)*dist+resX;p.y=sin(angle)*dist+resY;vec4 c=progress<0.5?texture2D(from,p):texture2D(to,p);gl_FragColor=c+(progress<0.5?mix(0.0,1.0,phase):mix(1.0,0.0,phase));}" +},{id:"b6720916aa3f035949bc",name:"squareswipe",owner:"gre",uniforms:{squares:[10,10],direction:[1,-.5],smoothness:1.6},html_url:"https://gist.github.com/b6720916aa3f035949bc",created_at:"2014-05-23T12:09:38Z",updated_at:"2015-07-20T19:20:09Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform ivec2 squares;uniform vec2 direction;uniform float smoothness;const vec2 center=vec2(0.5,0.5);void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec2 v=normalize(direction);if(v!=vec2(0.0)) v/=abs(v.x)+abs(v.y);float d=v.x*center.x+v.y*center.y;float offset=smoothness;float pr=smoothstep(-offset,0.0,v.x*p.x+v.y*p.y-(d-0.5+progress*(1.+offset)));vec2 squarep=fract(p*vec2(squares));vec2 squaremin=vec2(pr/2.0);vec2 squaremax=vec2(1.0-pr/2.0);float a=all(lessThan(squaremin,squarep))&&all(lessThan(squarep,squaremax))?1.0:0.0;gl_FragColor=mix(texture2D(from,p),texture2D(to,p),a);}"},{id:"169781bb76f310e2bfde",name:"TilesWaveBottomLeftToTopRight",owner:"numb3r23",uniforms:{tileSize:[64,64],checkerDistance:0,flipX:!1,flipY:!1,preTileSingleColor:!1,postTileSingleColor:!1},html_url:"https://gist.github.com/169781bb76f310e2bfde",created_at:"2014-05-21T22:50:48Z",updated_at:"2015-07-20T19:24:32Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform vec2 tileSize;uniform float checkerDistance;uniform bool flipX;uniform bool flipY;uniform bool preTileSingleColor;uniform bool postTileSingleColor;vec2 tile2Global(vec2 tex,vec2 tileNum,bool tileSingleColor){vec2 perTile=tileSize/resolution.xy;return tileNum*perTile+(tileSingleColor?vec2(0):tex*perTile);}void main(void){vec2 uv=gl_FragCoord.xy/resolution.xy;vec4 fragColor=vec4(1,1,0,1);vec2 posInTile=mod(vec2(gl_FragCoord),tileSize);vec2 tileNum=floor(vec2(gl_FragCoord)/tileSize);int num=int(tileNum.x);vec2 totalTiles=ceil(resolution.xy/tileSize);float countTiles=totalTiles.x*totalTiles.y;vec2 perTile=ceil(tileSize/resolution.xy);float offset=0.0;offset=(tileNum.y+tileNum.x*perTile.y)/(sqrt(countTiles)*2.0);float timeOffset=(progress-offset)*countTiles;timeOffset=clamp(timeOffset,0.0,0.5);float sinTime=1.0-abs(cos(fract(timeOffset)*3.1415926));fragColor.rg=uv;fragColor.b=sinTime;vec2 texC=posInTile/tileSize;if(sinTime<=0.5){if(flipX){if((texC.x1.0-sinTime)){discard;}if(texC.x<0.5){texC.x=(texC.x-sinTime)*0.5/(0.5-sinTime);}else{texC.x=(texC.x-0.5)*0.5/(0.5-sinTime)+0.5;}}if(flipY){if((texC.y1.0-sinTime)){discard;}if(texC.y<0.5){texC.y=(texC.y-sinTime)*0.5/(0.5-sinTime);}else{texC.y=(texC.y-0.5)*0.5/(0.5-sinTime)+0.5;}}fragColor=texture2D(from,tile2Global(texC,tileNum,preTileSingleColor));}else{if(flipX){if((texC.x>sinTime)||(texC.x<1.0-sinTime)){discard;}if(texC.x<0.5){texC.x=(texC.x-sinTime)*0.5/(0.5-sinTime);}else{texC.x=(texC.x-0.5)*0.5/(0.5-sinTime)+0.5;}texC.x=1.0-texC.x;}if(flipY){if((texC.y>sinTime)||(texC.y<1.0-sinTime)){discard;}if(texC.y<0.5){texC.y=(texC.y-sinTime)*0.5/(0.5-sinTime);}else{texC.y=(texC.y-0.5)*0.5/(0.5-sinTime)+0.5;}texC.y=1.0-texC.y;}fragColor.rgb=texture2D(to,tile2Global(texC,tileNum,postTileSingleColor)).rgb;}gl_FragColor=fragColor;}"},{id:"5ebd3442a208861c7a8a",name:"TilesScanline",owner:"numb3r23",uniforms:{},html_url:"https://gist.github.com/5ebd3442a208861c7a8a",created_at:"2014-05-21T22:49:22Z",updated_at:"2015-07-20T19:31:40Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;const vec2 tileSize=vec2(64,64);const float checkerDistance=0.015;const bool flipX=true;const bool flipY=false;const bool preTileSingleColor=false;const bool postTileSingleColor=false;vec2 tile2Global(vec2 tex,vec2 tileNum,bool tileSingleColor){vec2 perTile=tileSize/resolution.xy;return tileNum*perTile+(tileSingleColor?vec2(0):tex*perTile);}void main(void){vec2 uv=gl_FragCoord.xy/resolution.xy;vec4 fragColor=vec4(1,1,0,1);vec2 posInTile=mod(vec2(gl_FragCoord),tileSize);vec2 tileNum=floor(vec2(gl_FragCoord)/tileSize);int num=int(tileNum.x);vec2 totalTiles=ceil(resolution.xy/tileSize);float countTiles=totalTiles.x*totalTiles.y;vec2 perTile=ceil(tileSize/resolution.xy);float offset=0.0;offset=(tileNum.x+tileNum.y*totalTiles.x)/countTiles;float timeOffset=(progress-offset)*countTiles;timeOffset=clamp(timeOffset,0.0,0.5);float sinTime=1.0-abs(cos(fract(timeOffset)*3.1415926));fragColor.rg=uv;fragColor.b=sinTime;vec2 texC=posInTile/tileSize;if(sinTime<=0.5){if(flipX){if((texC.x1.0-sinTime)){discard;}if(texC.x<0.5){texC.x=(texC.x-sinTime)*0.5/(0.5-sinTime);}else{texC.x=(texC.x-0.5)*0.5/(0.5-sinTime)+0.5;}}if(flipY){if((texC.y1.0-sinTime)){discard;}if(texC.y<0.5){texC.y=(texC.y-sinTime)*0.5/(0.5-sinTime);}else{texC.y=(texC.y-0.5)*0.5/(0.5-sinTime)+0.5;}}fragColor=texture2D(from,tile2Global(texC,tileNum,preTileSingleColor));}else{if(flipX){if((texC.x>sinTime)||(texC.x<1.0-sinTime)){discard;}if(texC.x<0.5){texC.x=(texC.x-sinTime)*0.5/(0.5-sinTime);}else{texC.x=(texC.x-0.5)*0.5/(0.5-sinTime)+0.5;}texC.x=1.0-texC.x;}if(flipY){if((texC.y>sinTime)||(texC.y<1.0-sinTime)){discard;}if(texC.y<0.5){texC.y=(texC.y-sinTime)*0.5/(0.5-sinTime);}else{texC.y=(texC.y-0.5)*0.5/(0.5-sinTime)+0.5;}texC.y=1.0-texC.y;}fragColor.rgb=texture2D(to,tile2Global(texC,tileNum,postTileSingleColor)).rgb;}gl_FragColor=fragColor;}"},{id:"9e86d2712e123542758b",name:"Dreamy",owner:"mikolalysenko",uniforms:{},html_url:"https://gist.github.com/9e86d2712e123542758b",created_at:"2014-05-21T14:55:01Z",updated_at:"2015-07-20T19:34:01Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;vec2 offset(float progress,float x,float theta){float phase=progress*progress+progress+theta;float shifty=0.03*progress*cos(10.0*(progress+x));return vec2(0,shifty);}void main(){vec2 p=gl_FragCoord.xy/resolution.xy;gl_FragColor=mix(texture2D(from,p+offset(progress,p.x,0.0)),texture2D(to,p+offset(1.0-progress,p.x,3.14)),progress);}"},{id:"21d2fdd24c706952dc8c",name:"AdvancedMosaic",owner:"corporateshark",uniforms:{},html_url:"https://gist.github.com/21d2fdd24c706952dc8c",created_at:"2014-05-21T14:45:52Z",updated_at:"2015-07-20T19:19:04Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;void main(void){vec2 p=gl_FragCoord.xy/resolution.xy;float T=progress;float S0=1.0;float S1=50.0;float S2=1.0;float Half=0.5;float PixelSize=(Tprogress?fTex:tTex,tTex,pow(progress,interpolationPower));}"},{id:"b93818de23d4511fde10",name:"Dissolve",owner:"nwoeanhinnogaehr",uniforms:{blocksize:1},html_url:"https://gist.github.com/b93818de23d4511fde10",created_at:"2014-05-20T23:40:57Z",updated_at:"2015-07-25T20:07:28Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform float blocksize;float rand(vec2 co){return fract(sin(dot(co,vec2(12.9898,78.233)))*43758.5453);}void main(){vec2 p=gl_FragCoord.xy/resolution.xy;gl_FragColor=mix(texture2D(from,p),texture2D(to,p),step(rand(floor(gl_FragCoord.xy/blocksize)),progress));}"},{id:"b185145363d65751009b",name:"HSVfade",owner:"nwoeanhinnogaehr",uniforms:{},html_url:"https://gist.github.com/b185145363d65751009b",created_at:"2014-05-20T23:21:27Z",updated_at:"2015-07-20T19:18:54Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;vec3 hsv2rgb(vec3 c){const vec4 K=vec4(1.0,2.0/3.0,1.0/3.0,3.0);vec3 p=abs(fract(c.xxx+K.xyz)*6.0-K.www);return c.z*mix(K.xxx,clamp(p-K.xxx,0.0,1.0),c.y);}vec3 rgb2hsv(vec3 c){const vec4 K=vec4(0.0,-1.0/3.0,2.0/3.0,-1.0);vec4 p=mix(vec4(c.bg,K.wz),vec4(c.gb,K.xy),step(c.b,c.g));vec4 q=mix(vec4(p.xyw,c.r),vec4(c.r,p.yzx),step(p.x,c.r));float d=q.x-min(q.w,q.y);return vec3(abs(q.z+(q.w-q.y)/(6.0*d+0.001)),d/(q.x+0.001),q.x);}void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec3 a=rgb2hsv(texture2D(from,p).rgb);vec3 b=rgb2hsv(texture2D(to,p).rgb);vec3 m=mix(a,b,progress);gl_FragColor=vec4(hsv2rgb(m),1.0);}"},{id:"f6fc39f4cfcbb97f96a6",name:"Fold",owner:"nwoeanhinnogaehr",uniforms:{},html_url:"https://gist.github.com/f6fc39f4cfcbb97f96a6",created_at:"2014-05-20T23:14:23Z",updated_at:"2015-07-20T19:24:57Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec4 a=texture2D(from,(p-vec2(progress,0.0))/vec2(1.0-progress,1.0));vec4 b=texture2D(to,p/vec2(progress,1.0));gl_FragColor=mix(a,b,step(p.x,progress));}"},{id:"80c2d40cac3f98453176",name:"linearblur",owner:"gre",uniforms:{intensity:.1},html_url:"https://gist.github.com/80c2d40cac3f98453176",created_at:"2014-05-20T22:02:35Z",updated_at:"2015-07-20T19:18:37Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform float intensity;const int PASSES=8;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec4 c1=vec4(0.0),c2=vec4(0.0);float disp=intensity*(0.5-distance(0.5,progress));for(int xi=0;xi2.0) return color1;float dd=pow(1.0-distanc/2.0,sharpness);return ((color2-color1)*dd)+color1;}float distanceToEdge(vec3 point){float dx=abs(point.x>0.5?1.0-point.x:point.x);float dy=abs(point.y>0.5?1.0-point.y:point.y);if(point.x<0.0) dx=-point.x;if(point.x>1.0) dx=point.x-1.0;if(point.y<0.0) dy=-point.y;if(point.y>1.0) dy=point.y-1.0;if((point.x<0.0||point.x>1.0)&&(point.y<0.0||point.y>1.0)) return sqrt(dx*dx+dy*dy);return min(dx,dy);}vec4 seeThrough(float yc,vec2 p,mat3 rotation,mat3 rrotation){float hitAngle=PI-(acos(yc/cylinderRadius)-cylinderAngle);vec3 point=hitPoint(hitAngle,yc,rotation*vec3(p,1.0),rrotation);if(yc<=0.0&&(point.x<0.0||point.y<0.0||point.x>1.0||point.y>1.0)){vec2 texCoord=gl_FragCoord.xy/resolution.xy;return texture2D(to,texCoord);}if(yc>0.0) return texture2D(from,p);vec4 color=texture2D(from,point.xy);vec4 tcolor=vec4(0.0);return antiAlias(color,tcolor,distanceToEdge(point));}vec4 seeThroughWithShadow(float yc,vec2 p,vec3 point,mat3 rotation,mat3 rrotation){float shadow=distanceToEdge(point)*30.0;shadow=(1.0-shadow)/3.0;if(shadow<0.0) shadow=0.0;else shadow*=amount;vec4 shadowColor=seeThrough(yc,p,rotation,rrotation);shadowColor.r-=shadow;shadowColor.g-=shadow;shadowColor.b-=shadow;return shadowColor;}vec4 backside(float yc,vec3 point){vec4 color=texture2D(from,point.xy);float gray=(color.r+color.b+color.g)/15.0;gray+=(8.0/10.0)*(pow(1.0-abs(yc/cylinderRadius),2.0/10.0)/2.0+(5.0/10.0));color.rgb=vec3(gray);return color;}vec4 behindSurface(float yc,vec3 point,mat3 rrotation){float shado=(1.0-((-cylinderRadius-yc)/amount*7.0))/6.0;shado*=1.0-abs(point.x-0.5);yc=(-cylinderRadius-cylinderRadius-yc);float hitAngle=(acos(yc/cylinderRadius)+cylinderAngle)-PI;point=hitPoint(hitAngle,yc,point,rrotation);if(yc<0.0&&point.x>=0.0&&point.y>=0.0&&point.x<=1.0&&point.y<=1.0&&(hitAngle0.5)){shado=1.0-(sqrt(pow(point.x-0.5,2.0)+pow(point.y-0.5,2.0))/(71.0/100.0));shado*=pow(-yc/cylinderRadius,3.0);shado*=0.5;}else{shado=0.0;}vec2 texCoord=gl_FragCoord.xy/resolution.xy;return vec4(texture2D(to,texCoord).rgb-shado,1.0);}void main(){vec2 texCoord=gl_FragCoord.xy/resolution.xy;const float angle=30.0*PI/180.0;float c=cos(-angle);float s=sin(-angle);mat3 rotation=mat3(c,s,0,-s,c,0,0.12,0.258,1);c=cos(angle);s=sin(angle);mat3 rrotation=mat3(c,s,0,-s,c,0,0.15,-0.5,1);vec3 point=rotation*vec3(texCoord,1.0);float yc=point.y-cylinderCenter;if(yc<-cylinderRadius){gl_FragColor=behindSurface(yc,point,rrotation);return;}if(yc>cylinderRadius){gl_FragColor=texture2D(from,texCoord);return;}float hitAngle=(acos(yc/cylinderRadius)+cylinderAngle)-PI;float hitAngleMod=mod(hitAngle,2.0*PI);if((hitAngleMod>PI&&amount<0.5)||(hitAngleMod>PI/2.0&&amount<0.0)){gl_FragColor=seeThrough(yc,texCoord,rotation,rrotation);return;}point=hitPoint(hitAngle,yc,point,rrotation);if(point.x<0.0||point.y<0.0||point.x>1.0||point.y>1.0){gl_FragColor=seeThroughWithShadow(yc,texCoord,point,rotation,rrotation);return;}vec4 color=backside(yc,point);vec4 otherColor;if(yc<0.0){float shado=1.0-(sqrt(pow(point.x-0.5,2.0)+pow(point.y-0.5,2.0))/0.71);shado*=pow(-yc/cylinderRadius,3.0);shado*=0.5;otherColor=vec4(0.0,0.0,0.0,shado);}else{otherColor=texture2D(from,texCoord);}color=antiAlias(color,otherColor,cylinderRadius-abs(yc));vec4 cl=seeThroughWithShadow(yc,texCoord,point,rotation,rrotation);float dist=distanceToEdge(point);gl_FragColor=antiAlias(color,cl,dist);}"},{id:"06450f79cab706705bf9",name:"Polka_dots",owner:"bobylito",uniforms:{dots:5},html_url:"https://gist.github.com/06450f79cab706705bf9",created_at:"2014-05-20T12:09:38Z",updated_at:"2015-07-20T19:20:01Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform float dots;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;float x=progress;bool nextImage=distance(fract(p*dots),vec2(0.5,0.5)).5){gl_FragColor=texture2D(to,mrp);}else{gl_FragColor=texture2D(from,mrp);}}"},{id:"ce1d48f0ce00bb379750",name:"Radial",owner:"Xaychru",uniforms:{},html_url:"https://gist.github.com/ce1d48f0ce00bb379750",created_at:"2014-05-19T15:18:28Z",updated_at:"2015-07-20T19:15:51Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\n\n#define PI 3.141592653589\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec2 rp=p*2.-1.;float a=atan(rp.y,rp.x);float pa=progress*PI*2.5-PI*1.25;vec4 fromc=texture2D(from,p);vec4 toc=texture2D(to,p);if(a>pa){gl_FragColor=mix(toc,fromc,smoothstep(0.,1.,(a-pa)));}else{gl_FragColor=toc;}}"},{id:"c3bc914de09227713787",name:"ButterflyWaveScrawler",owner:"mandubian",uniforms:{amplitude:1,waves:30,colorSeparation:.3},html_url:"https://gist.github.com/c3bc914de09227713787",created_at:"2014-05-19T11:48:15Z",updated_at:"2015-07-20T19:33:28Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform float amplitude;uniform float waves;uniform float colorSeparation;float PI=3.14159265358979323846264;float compute(vec2 p,float progress,vec2 center){vec2 o=p*sin(progress*amplitude)-center;vec2 h=vec2(1.,0.);float theta=acos(dot(o,h))*waves;return (exp(cos(theta))-2.*cos(4.*theta)+pow(sin((2.*theta-PI)/24.),5.))/10.;}void main(){vec2 p=gl_FragCoord.xy/resolution.xy;float inv=1.-progress;vec2 dir=p-vec2(.5);float dist=length(dir);float disp=compute(p,progress,vec2(0.5,0.5));vec4 texTo=texture2D(to,p+inv*disp);vec4 texFrom=vec4(texture2D(from,p+progress*disp*(1.0-colorSeparation)).r,texture2D(from,p+progress*disp).g,texture2D(from,p+progress*disp*(1.0+colorSeparation)).b,1.0);gl_FragColor=texTo*progress+texFrom*inv;}"},{id:"4268c81d39bd4ca00ae2",name:"CrazyParametricFun",owner:"mandubian",uniforms:{a:4,b:1,amplitude:120,smoothness:.1},html_url:"https://gist.github.com/4268c81d39bd4ca00ae2",created_at:"2014-05-19T08:04:52Z",updated_at:"2015-07-20T19:20:51Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform float a;uniform float b;uniform float amplitude;uniform float smoothness;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec2 dir=p-vec2(.5);float dist=length(dir);float x=(a-b)*cos(progress)+b*cos(progress*((a/b)-1.));float y=(a-b)*sin(progress)-b*sin(progress*((a/b)-1.));vec2 offset=dir*vec2(sin(progress*dist*amplitude*x),sin(progress*dist*amplitude*y))/smoothness;gl_FragColor=mix(texture2D(from,p+offset),texture2D(to,p),smoothstep(0.2,1.0,progress));}"},{id:"2bcfb59096fcaed82355",name:"powerdisformation",owner:"gre",uniforms:{power:3,powerDest:!0},html_url:"https://gist.github.com/2bcfb59096fcaed82355",created_at:"2014-05-17T10:58:29Z",updated_at:"2015-07-20T19:18:59Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from,to;uniform float progress;uniform vec2 resolution;uniform float power;uniform bool powerDest;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec2 p2=mix(p,vec2(pow(p.x,power),pow(p.y,power)),(powerDest?0.5:1.0)-distance(progress,powerDest?0.5:1.0));gl_FragColor=mix(texture2D(from,p2),texture2D(to,powerDest?p2:p),progress);}"},{id:"2a3f2e907e1c0a152e60",name:"swap",owner:"gre",uniforms:{reflection:.4,perspective:.2,depth:3},html_url:"https://gist.github.com/2a3f2e907e1c0a152e60",created_at:"2014-05-16T13:59:07Z",updated_at:"2015-07-20T19:31:24Z",stars:1,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from;uniform sampler2D to;uniform float progress;uniform vec2 resolution;uniform float reflection;uniform float perspective;uniform float depth;const vec4 black=vec4(0.0,0.0,0.0,1.0);const vec2 boundMin=vec2(0.0,0.0);const vec2 boundMax=vec2(1.0,1.0);bool inBounds(vec2 p){return all(lessThan(boundMin,p))&&all(lessThan(p,boundMax));}vec2 project(vec2 p){return p*vec2(1.0,-1.2)+vec2(0.0,-0.02);}vec4 bgColor(vec2 p,vec2 pfr,vec2 pto){vec4 c=black;pfr=project(pfr);if(inBounds(pfr)){c+=mix(black,texture2D(from,pfr),reflection*mix(1.0,0.0,pfr.y));}pto=project(pto);if(inBounds(pto)){c+=mix(black,texture2D(to,pto),reflection*mix(1.0,0.0,pto.y));}return c;}void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec2 pfr,pto=vec2(-1.);float size=mix(1.0,depth,progress);float persp=perspective*progress;pfr=(p+vec2(-0.0,-0.5))*vec2(size/(1.0-perspective*progress),size/(1.0-size*persp*p.x))+vec2(0.0,0.5);size=mix(1.0,depth,1.-progress);persp=perspective*(1.-progress);pto=(p+vec2(-1.0,-0.5))*vec2(size/(1.0-perspective*(1.0-progress)),size/(1.0-size*persp*(0.5-p.x)))+vec2(1.0,0.5);bool fromOver=progress<0.5;if(fromOver){if(inBounds(pfr)){gl_FragColor=texture2D(from,pfr);}else if(inBounds(pto)){gl_FragColor=texture2D(to,pto);}else{gl_FragColor=bgColor(p,pfr,pto);}}else{if(inBounds(pto)){gl_FragColor=texture2D(to,pto);}else if(inBounds(pfr)){gl_FragColor=texture2D(from,pfr);}else{gl_FragColor=bgColor(p,pfr,pto);}}}"},{id:"94ffa2725b65aa8b9979",name:"ripple",owner:"gre",uniforms:{amplitude:100,speed:50},html_url:"https://gist.github.com/94ffa2725b65aa8b9979",created_at:"2014-05-16T13:58:42Z",updated_at:"2015-07-20T19:17:37Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from;uniform sampler2D to;uniform float progress;uniform vec2 resolution;uniform float amplitude;uniform float speed;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec2 dir=p-vec2(.5);float dist=length(dir);vec2 offset=dir*(sin(progress*dist*amplitude-progress*speed)+.5)/30.;gl_FragColor=mix(texture2D(from,p+offset),texture2D(to,p),smoothstep(0.2,1.0,progress));}"},{id:"99bced7d9b5311fd166e",name:"flash",owner:"gre",uniforms:{flashPhase:.3,flashIntensity:3,flashZoomEffect:.5},html_url:"https://gist.github.com/99bced7d9b5311fd166e",created_at:"2014-05-16T13:58:17Z",updated_at:"2015-07-20T19:32:11Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from;uniform sampler2D to;uniform float progress;uniform vec2 resolution;uniform float flashPhase;uniform float flashIntensity;uniform float flashZoomEffect;const vec3 flashColor=vec3(1.0,0.8,0.3);const float flashVelocity=3.0;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec4 fc=texture2D(from,p);vec4 tc=texture2D(to,p);float intensity=mix(1.0,2.0*distance(p,vec2(0.5,0.5)),flashZoomEffect)*flashIntensity*pow(smoothstep(flashPhase,0.0,distance(0.5,progress)),flashVelocity);vec4 c=mix(texture2D(from,p),texture2D(to,p),smoothstep(0.5*(1.0-flashPhase),0.5*(1.0+flashPhase),progress));c+=intensity*vec4(flashColor,1.0);gl_FragColor=c;}"},{id:"81c6f2e6fce88f9075d2",name:"flyeye",owner:"gre",uniforms:{size:.04,zoom:30,colorSeparation:.3},html_url:"https://gist.github.com/81c6f2e6fce88f9075d2",created_at:"2014-05-16T13:56:53Z",updated_at:"2015-07-20T19:18:40Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from;uniform sampler2D to;uniform float progress;uniform vec2 resolution;uniform float size;uniform float zoom;uniform float colorSeparation;void main(){vec2 p=gl_FragCoord.xy/resolution.xy;float inv=1.-progress;vec2 disp=size*vec2(cos(zoom*p.x),sin(zoom*p.y));vec4 texTo=texture2D(to,p+inv*disp);vec4 texFrom=vec4(texture2D(from,p+progress*disp*(1.0-colorSeparation)).r,texture2D(from,p+progress*disp).g,texture2D(from,p+progress*disp*(1.0+colorSeparation)).b,1.0);gl_FragColor=texTo*progress+texFrom*inv;}"},{id:"979934722820b5e715fa",name:"doorway",owner:"gre",uniforms:{reflection:.4,perspective:.4,depth:3},html_url:"https://gist.github.com/979934722820b5e715fa",created_at:"2014-05-16T13:54:38Z",updated_at:"2015-07-20T19:20:19Z",stars:1,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from;uniform sampler2D to;uniform float progress;uniform vec2 resolution;uniform float reflection;uniform float perspective;uniform float depth;const vec4 black=vec4(0.0,0.0,0.0,1.0);const vec2 boundMin=vec2(0.0,0.0);const vec2 boundMax=vec2(1.0,1.0);bool inBounds(vec2 p){return all(lessThan(boundMin,p))&&all(lessThan(p,boundMax));}vec2 project(vec2 p){return p*vec2(1.0,-1.2)+vec2(0.0,-0.02);}vec4 bgColor(vec2 p,vec2 pto){vec4 c=black;pto=project(pto);if(inBounds(pto)){c+=mix(black,texture2D(to,pto),reflection*mix(1.0,0.0,pto.y));}return c;}void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec2 pfr=vec2(-1.),pto=vec2(-1.);float middleSlit=2.0*abs(p.x-0.5)-progress;if(middleSlit>0.0){pfr=p+(p.x>0.5?-1.0:1.0)*vec2(0.5*progress,0.0);float d=1.0/(1.0+perspective*progress*(1.0-middleSlit));pfr.y-=d/2.;pfr.y*=d;pfr.y+=d/2.;}float size=mix(1.0,depth,1.-progress);pto=(p+vec2(-0.5,-0.5))*vec2(size,size)+vec2(0.5,0.5);if(inBounds(pfr)){gl_FragColor=texture2D(from,pfr);}else if(inBounds(pto)){gl_FragColor=texture2D(to,pto);}else{gl_FragColor=bgColor(p,pto);}}"},{id:"731fcad4f8956866f34a",name:"randomsquares",owner:"gre",uniforms:{size:[10,10],smoothness:.5},html_url:"https://gist.github.com/731fcad4f8956866f34a",created_at:"2014-05-16T13:52:46Z",updated_at:"2015-07-20T19:20:42Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from;uniform sampler2D to;uniform float progress;uniform vec2 resolution;uniform ivec2 size;uniform float smoothness;float rand(vec2 co){return fract(sin(dot(co.xy,vec2(12.9898,78.233)))*43758.5453);}void main(){vec2 p=gl_FragCoord.xy/resolution.xy;float r=rand(floor(vec2(size)*p));float m=smoothstep(0.0,-smoothness,r-(progress*(1.0+smoothness)));gl_FragColor=mix(texture2D(from,p),texture2D(to,p),m);}"},{id:"df8797fd112e8e429064",name:"squeeze",owner:"gre",uniforms:{colorSeparation:.02},html_url:"https://gist.github.com/df8797fd112e8e429064",created_at:"2014-05-16T13:51:39Z",updated_at:"2015-07-20T19:17:38Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from;uniform sampler2D to;uniform float progress;uniform vec2 resolution;uniform float colorSeparation;float progressY(float y){return 0.5+(y-0.5)/(1.0-progress);}void main(){vec2 p=gl_FragCoord.xy/resolution.xy;float y=progressY(p.y);if(y<0.0||y>1.0){gl_FragColor=texture2D(to,p);}else{vec2 fp=vec2(p.x,y);vec3 c=vec3(texture2D(from,fp-progress*vec2(0.0,colorSeparation)).r,texture2D(from,fp).g,texture2D(from,fp+progress*vec2(0.0,colorSeparation)).b);gl_FragColor=vec4(c,1.0);}}" +},{id:"90000743fedc953f11a4",name:"directionalwipe",owner:"gre",uniforms:{direction:[1,-1],smoothness:.5},html_url:"https://gist.github.com/90000743fedc953f11a4",created_at:"2014-05-16T13:50:51Z",updated_at:"2015-07-20T19:17:06Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from;uniform sampler2D to;uniform float progress;uniform vec2 resolution;uniform vec2 direction;uniform float smoothness;const vec2 center=vec2(0.5,0.5);void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec2 v=normalize(direction);v/=abs(v.x)+abs(v.y);float d=v.x*center.x+v.y*center.y;float m=smoothstep(-smoothness,0.0,v.x*p.x+v.y*p.y-(d-0.5+progress*(1.+smoothness)));gl_FragColor=mix(texture2D(to,p),texture2D(from,p),m);}"},{id:"7de3f4b9482d2b0bf7bb",name:"wind",owner:"gre",uniforms:{size:.2},html_url:"https://gist.github.com/7de3f4b9482d2b0bf7bb",created_at:"2014-05-16T13:49:36Z",updated_at:"2015-07-20T19:16:52Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from;uniform sampler2D to;uniform float progress;uniform vec2 resolution;uniform float size;float rand(vec2 co){return fract(sin(dot(co.xy,vec2(12.9898,78.233)))*43758.5453);}void main(){vec2 p=gl_FragCoord.xy/resolution.xy;float r=rand(vec2(0,p.y));float m=smoothstep(0.0,-size,p.x*(1.0-size)+size*r-(progress*(1.0+size)));gl_FragColor=mix(texture2D(from,p),texture2D(to,p),m);}"},{id:"d9f8b4df19584f1f0474",name:"fadegrayscale",owner:"gre",uniforms:{grayPhase:.3},html_url:"https://gist.github.com/d9f8b4df19584f1f0474",created_at:"2014-05-16T13:49:13Z",updated_at:"2015-07-20T19:31:17Z",stars:0,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D from;uniform sampler2D to;uniform float progress;uniform vec2 resolution;uniform float grayPhase;vec3 grayscale(vec3 color){return vec3(0.2126*color.r+0.7152*color.g+0.0722*color.b);}void main(){vec2 p=gl_FragCoord.xy/resolution.xy;vec4 fc=texture2D(from,p);vec4 tc=texture2D(to,p);gl_FragColor=mix(mix(vec4(grayscale(fc.rgb),1.0),texture2D(from,p),smoothstep(1.0-grayPhase,0.0,progress)),mix(vec4(grayscale(tc.rgb),1.0),texture2D(to,p),smoothstep(grayPhase,1.0,progress)),progress);}"},{id:"206b96128ad6085f9911",name:"dispersionblur",owner:"gre",uniforms:{size:.6},html_url:"https://gist.github.com/206b96128ad6085f9911",created_at:"2014-05-16T13:47:09Z",updated_at:"2015-07-20T19:31:34Z",stars:1,glsl:"\n#ifdef GL_ES\nprecision highp float;\n#endif\n\n#define QUALITY 32\nuniform sampler2D from;uniform sampler2D to;uniform float progress;uniform vec2 resolution;uniform float size;const float GOLDEN_ANGLE=2.399963229728653;vec4 blur(sampler2D t,vec2 c,float radius){vec4 sum=vec4(0.0);float q=float(QUALITY);for(int i=0;i + + {children} + + ; + } +} + +module.exports = Blur; diff --git a/Examples/Simple/BlurX.js b/Examples/Simple/Blur1D.js similarity index 78% rename from Examples/Simple/BlurX.js rename to Examples/Simple/Blur1D.js index 488dbeb3ed07d0f2ea0d7c40384c1ab319ccd8b7..e1647a6a0e404e89b0bd0698a2a98d74a82a4ad0 100644 --- a/Examples/Simple/BlurX.js +++ b/Examples/Simple/Blur1D.js @@ -2,12 +2,12 @@ const React = require("react-native"); const GL = require("gl-react-native"); const shaders = GL.Shaders.create({ - blurX: { + blur1D: { frag: ` precision highp float; varying vec2 uv; -uniform sampler2D image; -uniform float factor; +uniform sampler2D t; +uniform vec2 direction; uniform vec2 resolution; // from https://github.com/Jam3/glsl-fast-gaussian-blur @@ -27,26 +27,26 @@ vec4 blur13(sampler2D image, vec2 uv, vec2 resolution, vec2 direction) { } void main () { - gl_FragColor = blur13(image, uv, resolution, vec2(factor, 0.0)); + gl_FragColor = blur13(t, uv, resolution, direction); } ` } }); -class BlurX extends React.Component { +class Blur1D extends GL.Component { render () { - const { width, height, factor, children } = this.props; + const { width, height, direction, children } = this.props; return - {children} + {children} ; } } -module.exports = BlurX; +module.exports = Blur1D; diff --git a/Examples/Simple/iOS/main.jsbundle b/Examples/Simple/iOS/main.jsbundle index cb308a1f764a6f0a605c301de1b29199d2242495..ef00ad15ca342b91b120ca5c2bc08054334edabc 100644 --- a/Examples/Simple/iOS/main.jsbundle +++ b/Examples/Simple/iOS/main.jsbundle @@ -1,19 +1,19 @@ -__DEV__=!1,__BUNDLE_START_TIME__=Date.now(),function(e){function t(e){for(var t,n,r,o,i=Array.prototype.slice.call(e),a={};i.length;)if(n=i.shift(),!a[n]&&(a[n]=!0,r=d[n],r&&r.waiting))for(t=0;t=0||p.indexOf("description")>=0))return i(t);if(0===p.length){if(_(t)){var d=t.name?": "+t.name:"";return e.stylize("[Function"+d+"]","special")}if(m(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(g(t))return e.stylize(Date.prototype.toString.call(t),"date");if(y(t))return i(t)}var f="",v=!1,b=["{","}"];if(c(t)&&(v=!0,b=["[","]"]),_(t)){var S=t.name?": "+t.name:"";f=" [Function"+S+"]"}if(m(t)&&(f=" "+RegExp.prototype.toString.call(t)),g(t)&&(f=" "+Date.prototype.toUTCString.call(t)),y(t)&&(f=" "+i(t)),0===p.length&&(!v||0==t.length))return b[0]+f+b[1];if(0>r)return m(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special");e.seen.push(t);var R;return R=v?a(e,t,r,h,p):p.map(function(n){return s(e,t,r,h,n,v)}),e.seen.pop(),u(R,f,b)}function o(e,t){if(f(t))return e.stylize("undefined","undefined");if(d(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return h(t)?e.stylize(""+t,"number"):l(t)?e.stylize(""+t,"boolean"):p(t)?e.stylize("null","null"):void 0}function i(e){return"["+Error.prototype.toString.call(e)+"]"}function a(e,t,n,r,o){for(var i=[],a=0,u=t.length;u>a;++a)S(t,String(a))?i.push(s(e,t,n,r,String(a),!0)):i.push("");return o.forEach(function(o){o.match(/^\d+$/)||i.push(s(e,t,n,r,o,!0))}),i}function s(e,t,n,o,i,a){var s,u,c;if(c=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]},c.get?u=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(u=e.stylize("[Setter]","special")),S(o,i)||(s="["+i+"]"),u||(e.seen.indexOf(c.value)<0?(u=p(n)?r(e,c.value,null):r(e,c.value,n-1),u.indexOf("\n")>-1&&(u=a?u.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+u.split("\n").map(function(e){return" "+e}).join("\n"))):u=e.stylize("[Circular]","special")),f(s)){if(a&&i.match(/^\d+$/))return u;s=JSON.stringify(""+i),s.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+u}function u(e,t,n){var r=0,o=e.reduce(function(e,t){return r++,t.indexOf("\n")>=0&&r++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0);return o>60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}function c(e){return Array.isArray(e)}function l(e){return"boolean"==typeof e}function p(e){return null===e}function h(e){return"number"==typeof e}function d(e){return"string"==typeof e}function f(e){return void 0===e}function m(e){return v(e)&&"[object RegExp]"===b(e)}function v(e){return"object"==typeof e&&null!==e}function g(e){return v(e)&&"[object Date]"===b(e)}function y(e){return v(e)&&("[object Error]"===b(e)||e instanceof Error)}function _(e){return"function"==typeof e}function b(e){return Object.prototype.toString.call(e)}function S(e,t){return Object.prototype.hasOwnProperty.call(e,t)}return e}(),r="(index)",o={trace:0,log:1,info:2,warn:3,error:4};"undefined"!=typeof module?module.exports=t:t(e)}(this),function(e){function t(){var t=function(t){e.console.error("Error: \n stack: "+t.stack+"\n line: "+t.line+"\n message: "+t.message,t)};e.ErrorUtils.setGlobalHandler(t)}var n={_inGuard:0,_globalHandler:null,setGlobalHandler:function(e){n._globalHandler=e},reportError:function(e){n._globalHandler&&n._globalHandler(e)},reportFatalError:function(e){n._globalHandler&&n._globalHandler(e,!0)},applyWithGuard:function(e,t,r){try{return n._inGuard++,e.apply(t,r)}catch(o){n.reportError(o)}finally{n._inGuard--}},applyWithGuardIfNeeded:function(e,t,r){return n.inGuard()?e.apply(t,r):void n.applyWithGuard(e,t,r)},inGuard:function(){return n._inGuard},guard:function(e,t,r){function o(){return n.applyWithGuard(e,r||this,arguments,null,t)}return"function"!=typeof e?(console.warn("A function must be passed to ErrorUtils.guard, got ",e),null):(t=t||e.name||"",o)}};e.ErrorUtils=n,t()}(this),String.prototype.startsWith||(String.prototype.startsWith=function(e){"use strict";if(null==this)throw TypeError();var t=String(this),n=arguments.length>1?Number(arguments[1])||0:0,r=Math.min(Math.max(n,0),t.length);return t.indexOf(String(e),n)===r}),String.prototype.endsWith||(String.prototype.endsWith=function(e){"use strict";if(null==this)throw TypeError();var t=String(this),n=t.length,r=String(e),o=arguments.length>1?Number(arguments[1])||0:n,i=Math.min(Math.max(o,0),n),a=i-r.length;return 0>a?!1:t.lastIndexOf(r,a)===a}),String.prototype.contains||(String.prototype.contains=function(e){"use strict";if(null==this)throw TypeError();var t=String(this),n=arguments.length>1?Number(arguments[1])||0:0;return-1!==t.indexOf(String(e),n)}),String.prototype.repeat||(String.prototype.repeat=function(e){"use strict";if(null==this)throw TypeError();var t=String(this);if(e=Number(e)||0,0>e||e===1/0)throw RangeError();if(1===e)return t;for(var n="";e;)1&e&&(n+=t),(e>>=1)&&(t+=t);return n}),function(e){function t(e,t){if(null==this)throw new TypeError("Array.prototype.findIndex called on null or undefined");if("function"!=typeof e)throw new TypeError("predicate must be a function");for(var n=Object(this),r=n.length>>>0,o=0;r>o;o++)if(e.call(t,n[o],o,n))return o;return-1}Array.prototype.findIndex||Object.defineProperty(Array.prototype,"findIndex",{enumerable:!1,writable:!0,configurable:!0,value:t}),Array.prototype.find||Object.defineProperty(Array.prototype,"find",{enumerable:!1,writable:!0,configurable:!0,value:function(n,r){if(null==this)throw new TypeError("Array.prototype.find called on null or undefined");var o=t.call(this,n,r);return-1===o?e:this[o]}})}(),__d("Simple/index.ios.js",["react-native/Libraries/react-native/react-native.js","Simple/HelloGL.js","Simple/Saturation.js","Simple/HueRotate.js","Simple/PieProgress.js","Simple/OneFingerResponse.js","Simple/AnimatedHelloGL.js"],function(e,t,n,r,o,i){function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n1){for(var p=Array(l),h=0;l>h;h++)p[h]=arguments[h+2];o.children=p}if(e&&e.defaultProps){var d=e.defaultProps;for(r in d)"undefined"==typeof o[r]&&(o[r]=d[r])}return new c(e,i,s,a.current,o)},c.createFactory=function(e){var t=c.createElement.bind(null,e);return t.type=e,t},c.cloneAndReplaceProps=function(e,t){var n=new c(e.type,e.key,e.ref,e._owner,t);return __DEV__&&(n._store.validated=e._store.validated),n},c.cloneElement=function(e,t,n){var r,o=s({},e.props),i=e.key,l=e.ref,p=e._owner;if(null!=t){void 0!==t.ref&&(l=t.ref,p=a.current),void 0!==t.key&&(i=""+t.key);for(r in t)t.hasOwnProperty(r)&&!u.hasOwnProperty(r)&&(o[r]=t[r])}var h=arguments.length-2;if(1===h)o.children=n;else if(h>1){for(var d=Array(h),f=0;h>f;f++)d[f]=arguments[f+2];o.children=d}return new c(e.type,i,l,p,o)},c.isValidElement=function(e){var t=!(!e||!e._isReactElement);return t},o.exports=c}),__d("ReactCurrentOwner",[],function(e,t,n,r,o,i){"use strict";var a={current:null};o.exports=a}),__d("Object.assign",[],function(e,t,n,r,o,i){"use strict";function a(e,t){if(null==e)throw new TypeError("Object.assign target cannot be null or undefined");for(var n=Object(e),r=Object.prototype.hasOwnProperty,o=1;o2?n-2:0),o=2;n>o;o++)r[o-2]=arguments[o];if(void 0===t)throw new Error("`warning(condition, format, ...args)` requires a warning message argument");if(0!==t.indexOf("Failed Composite propType: ")&&!e){var i=0,a="Warning: "+t.replace(/%s/g,function(){return r[i++]});"undefined"!=typeof console&&console.error(a);try{throw new Error(a)}catch(s){}}}),o.exports=s}),__d("emptyFunction",[],function(e,t,n,r,o,i){function a(e){return function(){return e}}function s(){}s.thatReturns=a,s.thatReturnsFalse=a(!1),s.thatReturnsTrue=a(!0),s.thatReturnsNull=a(null),s.thatReturnsThis=function(){return this},s.thatReturnsArgument=function(e){return e},o.exports=s}),__d("traverseAllChildren",["ReactElement","ReactFragment","ReactInstanceHandles","getIteratorFn","invariant","warning"],function(e,t,n,r,o,i){"use strict";function a(e){return b[e]}function s(e,t){return e&&null!=e.key?c(e.key):t.toString(36)}function u(e){return(""+e).replace(S,a)}function c(e){return"$"+u(e)}function l(e,t,n,r){var o=typeof e;if(("undefined"===o||"boolean"===o)&&(e=null),null===e||"string"===o||"number"===o||h.isValidElement(e))return n(r,e,""===t?y+s(e,0):t),1;var i,a,u=0;if(Array.isArray(e))for(var p=0;p=o;o++)if(s(e,o)&&s(t,o))r=o;else if(e.charAt(o)!==t.charAt(o))break;var i=e.substr(0,r);return m(u(i),"getFirstCommonAncestorID(%s, %s): Expected a valid React DOM ID: %s",e,t,i),i}function d(e,t,n,r,o,i){e=e||"",t=t||"",m(e!==t,"traverseParentPath(...): Cannot traverse from and to the same ID, `%s`.",e);var a=c(t,e);m(a||c(e,t),"traverseParentPath(%s, %s, ...): Cannot traverse from two IDs that do not have a parent path.",e,t);for(var s=0,u=a?l:p,h=e;;h=u(h,t)){var d;if(o&&h===e||i&&h===t||(d=n(h,a,r)),d===!1||h===t)break;m(s++1){var t=e.indexOf(v,1);return t>-1?e.substr(0,t):e}return null},traverseEnterLeave:function(e,t,n,r,o){var i=h(e,t);i!==e&&d(e,i,n,r,!1,!0),i!==t&&d(i,t,n,o,!0,!1)},traverseTwoPhase:function(e,t,n){e&&(d("",e,t,n,!0,!1),d(e,"",t,n,!1,!0))},traverseTwoPhaseSkipTarget:function(e,t,n){e&&(d("",e,t,n,!0,!0),d(e,"",t,n,!0,!0))},traverseAncestors:function(e,t,n){d("",e,t,n,!0,!1)},_getFirstCommonAncestorID:h,_getNextDescendantID:p,isAncestorIDOf:c,SEPARATOR:v};o.exports=_}),__d("ReactRootIndex",[],function(e,t,n,r,o,i){"use strict";var a={injectCreateReactRootIndex:function(e){s.createReactRootIndex=e}},s={createReactRootIndex:null,injection:a};o.exports=s}),__d("getIteratorFn",[],function(e,t,n,r,o,i){"use strict";function a(e){var t=e&&(s&&e[s]||e[u]);return"function"==typeof t?t:void 0}var s="function"==typeof Symbol&&Symbol.iterator,u="@@iterator";o.exports=a}),__d("ReactClass",["ReactComponent","ReactElement","ReactErrorUtils","ReactPropTypeLocations","ReactPropTypeLocationNames","ReactNoopUpdateQueue","Object.assign","emptyObject","invariant","keyMirror","keyOf","warning"],function(e,t,n,r,o,i){"use strict";function a(){N||(N=!0,I(!1,"setProps(...) and replaceProps(...) are deprecated. Instead, call React.render again at the top level."))}function s(e,t,n){for(var r in t)t.hasOwnProperty(r)&&I("function"==typeof t[r],"%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.",e.displayName||"ReactClass",b[n],r)}function u(e,t){var n=D.hasOwnProperty(t)?D[t]:null;k.hasOwnProperty(t)&&T(n===O.OVERRIDE_BASE,"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.",t),e.hasOwnProperty(t)&&T(n===O.DEFINE_MANY||n===O.DEFINE_MANY_MERGED,"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",t)}function c(e,t){if(t){T("function"!=typeof t,"ReactClass: You're attempting to use a component class as a mixin. Instead, just use a regular object."),T(!g.isValidElement(t),"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.");var n=e.prototype;t.hasOwnProperty(x)&&M.mixins(e,t.mixins);for(var r in t)if(t.hasOwnProperty(r)&&r!==x){var o=t[r];if(u(n,r),M.hasOwnProperty(r))M[r](e,o);else{var i=D.hasOwnProperty(r),a=n.hasOwnProperty(r),s="function"==typeof o,c=s&&!i&&!a;if(c)n.__reactAutoBindMap||(n.__reactAutoBindMap={}),n.__reactAutoBindMap[r]=o,n[r]=o;else if(a){var l=D[r];T(i&&(l===O.DEFINE_MANY_MERGED||l===O.DEFINE_MANY),"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.",l,r),l===O.DEFINE_MANY_MERGED?n[r]=h(n[r],o):l===O.DEFINE_MANY&&(n[r]=d(n[r],o))}else n[r]=o,__DEV__&&"function"==typeof o&&t.displayName&&(n[r].displayName=t.displayName+"_"+r)}}}}function l(e,t){if(t)for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){var o=n in M;T(!o,'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.',n);var i=n in e;T(!i,"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",n),e[n]=r}}}function p(e,t){T(e&&t&&"object"==typeof e&&"object"==typeof t,"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.");for(var n in t)t.hasOwnProperty(n)&&(T(void 0===e[n],"mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.",n),e[n]=t[n]);return e}function h(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);if(null==n)return r;if(null==r)return n;var o={};return p(o,n),p(o,r),o}}function d(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function f(e,t){var n=t.bind(e);if(__DEV__){n.__reactBoundContext=e,n.__reactBoundMethod=t,n.__reactBoundArguments=null;var r=e.constructor.displayName,o=n.bind;n.bind=function(i){for(var a=arguments.length,s=Array(a>1?a-1:0),u=1;a>u;u++)s[u-1]=arguments[u];if(i!==e&&null!==i)I(!1,"bind(): React component methods may only be bound to the component instance. See %s",r);else if(!s.length)return I(!1,"bind(): You are binding a component method to the component. React does this for you automatically in a high-performance way, so you can safely remove this call. See %s",r),n;var c=o.apply(n,arguments);return c.__reactBoundContext=e,c.__reactBoundMethod=t,c.__reactBoundArguments=s,c}}return n}function m(e){for(var t in e.__reactAutoBindMap)if(e.__reactAutoBindMap.hasOwnProperty(t)){var n=e.__reactAutoBindMap[t];e[t]=f(e,y.guard(n,e.constructor.displayName+"."+t))}}var v=t("ReactComponent"),g=t("ReactElement"),y=t("ReactErrorUtils"),_=t("ReactPropTypeLocations"),b=t("ReactPropTypeLocationNames"),S=t("ReactNoopUpdateQueue"),R=t("Object.assign"),E=t("emptyObject"),T=t("invariant"),w=t("keyMirror"),C=t("keyOf"),I=t("warning"),x=C({mixins:null}),O=w({DEFINE_ONCE:null,DEFINE_MANY:null,OVERRIDE_BASE:null,DEFINE_MANY_MERGED:null}),P=[],N=!1,D={mixins:O.DEFINE_MANY,statics:O.DEFINE_MANY,propTypes:O.DEFINE_MANY,contextTypes:O.DEFINE_MANY,childContextTypes:O.DEFINE_MANY,getDefaultProps:O.DEFINE_MANY_MERGED,getInitialState:O.DEFINE_MANY_MERGED,getChildContext:O.DEFINE_MANY_MERGED,render:O.DEFINE_ONCE,componentWillMount:O.DEFINE_MANY,componentDidMount:O.DEFINE_MANY,componentWillReceiveProps:O.DEFINE_MANY,shouldComponentUpdate:O.DEFINE_ONCE,componentWillUpdate:O.DEFINE_MANY,componentDidUpdate:O.DEFINE_MANY,componentWillUnmount:O.DEFINE_MANY,updateComponent:O.OVERRIDE_BASE},M={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n.":null,url:" See https://fb.me/react-warning-keys for more information.",childOwner:null};return t&&t._owner&&t._owner!==_.current&&(c.childOwner=" It was passed a child from "+s(t._owner)+"."),c}function h(e,t){if(Array.isArray(e))for(var n=0;n=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e){var t=e.message,n=a(e,["message"]),r=new Error(t);return r.framesToPop=1,Object.assign(r,n)}var c=function(){function e(e,t){for(var n=0;n32&&(this._debugInfo[this._callbackID>>5]=null),this._debugInfo[this._callbackID>>1]=[e,t]),r&&n.push(this._callbackID),this._callbacks[this._callbackID++]=r,o&&n.push(this._callbackID),this._callbacks[this._callbackID++]=o),this._queue[g].push(e),this._queue[y].push(t),this._queue[_].push(n),__DEV__&&b&&isFinite(e)&&console.log("JS->N : "+this._remoteModuleTable[e]+"."+this._remoteMethodTable[e][t]+"("+JSON.stringify(n)+")")}},{key:"__callFunction",value:function(e,t,n){l.profile(function(){return e+"."+t+"("+v(n)+")"}),isFinite(e)&&(t=this._methodTable[e][t],e=this._moduleTable[e]),__DEV__&&b&&console.log("N->JS : "+e+"."+t+"("+JSON.stringify(n)+")"),e=this._require(e),e[t].apply(e,n),l.profileEnd()}},{key:"__invokeCallback",value:function(e,t){l.profile(function(){return"MessageQueue.invokeCallback("+e+", "+v(t)+")"});var n=this._callbacks[e];if(__DEV__){var r=this._debugInfo[e>>1],o=r&&this._remoteModuleTable[r[0]],i=r&&this._remoteMethodTable[r[0]][r[1]];n?b&&console.log("N->JS : ("+JSON.stringify(t)+")"):console.error("Callback with id "+e+": "+o+"."+i+"() not found")}this._callbacks[-2&e]=null,this._callbacks[1|e]=null,n.apply(null,t),l.profileEnd()}},{key:"_genLookupTables",value:function(e,t,n){for(var r=Object.keys(e),o=0,i=r.length;i>o;o++){var a=r[o],s=e[a].methods,u=e[a].moduleID;t[u]=a,n[u]={};for(var c=Object.keys(s),l=0,p=c.length;p>l;l++){var h=c[l],d=s[h];n[u][d.methodID]=h}}}},{key:"_genModules",value:function(e){for(var t=Object.keys(e),n=0,r=t.length;r>n;n++){var o=t[n],i=e[o];this.RemoteModules[o]=this._genModule({},i)}}},{key:"_genModule",value:function(e,t){for(var n=Object.keys(t.methods),r=0,o=n.length;o>r;r++){var i=n[r],a=t.methods[i];e[i]=this._genMethod(t.moduleID,a.methodID,a.type)}return Object.assign(e,t.constants),e}},{key:"_genMethod",value:function(e,t,n){if(n===S.local)return null;var r=this;return n===S.remoteAsync?function(){for(var n=arguments.length,o=Array(n),i=0;n>i;i++)o[i]=arguments[i];return new Promise(function(n,i){r.__nativeCall(e,t,o,n,function(e){var t=u(e);i(t)})})}:function(){for(var n=arguments.length,o=Array(n),i=0;n>i;i++)o[i]=arguments[i];var a=o.length>0?o[o.length-1]:null,s=o.length>1?o[o.length-2]:null,u="function"==typeof a,c="function"==typeof s;c&&f(u,"Cannot have a non-function arg after a function arg.");var l=u+c,p=u?a:null,h=c?s:null;return o=o.slice(0,o.length-l),r.__nativeCall(e,t,o,h,p)}}}]),e}();o.exports=E}),__d("BridgeProfiling",["ReactPerf"],function(e,t,n,r,o,i){"use strict";var a=a||this,s={profile:function(e,t){if(a.__BridgeProfilingIsProfiling){if(t)try{t=JSON.stringify(t)}catch(n){t=n.message}e="function"==typeof e?e():e,console.profile(e,t)}},profileEnd:function(e){a.__BridgeProfilingIsProfiling&&console.profileEnd(e)},swizzleReactPerf:function(){var e=t("ReactPerf"),n=e.measure;e.measure=function(t,r,o){return o=n.call(e,t,r,o),function(e){s.profile();var n=o.apply(this,arguments);if(a.__BridgeProfilingIsProfiling){var i=this._instance&&this._instance.constructor&&(this._instance.constructor.displayName||this._instance.constructor.name);s.profileEnd(t+"."+r+"("+i+")")}return n}}}};o.exports=s}),__d("ReactPerf",[],function(e,t,n,r,o,i){"use strict";function a(e,t,n){return n}var s={enableMeasure:!1,storedMeasure:a,measureMethods:function(e,t,n){if(__DEV__)for(var r in n)n.hasOwnProperty(r)&&(e[r]=s.measure(t,n[r],e[r]))},measure:function(e,t,n){if(__DEV__){var r=null,o=function(){return s.enableMeasure?(r||(r=s.storedMeasure(e,t,n)),r.apply(this,arguments)):n.apply(this,arguments)};return o.displayName=e+"_"+t,o}return n},injection:{injectMeasure:function(e){s.storedMeasure=e}}};o.exports=s}),__d("ErrorUtils",[],function(e,t,n,r,o,i){var a=this;o.exports=a.ErrorUtils}),__d("JSTimersExecution",["invariant","keyMirror","performanceNow","warning","JSTimers","JSTimers"],function(e,t,n,r,o,i){"use strict";var a=t("invariant"),s=t("keyMirror"),u=t("performanceNow"),c=t("warning"),l={GUID:1,Type:s({setTimeout:null,setInterval:null,requestAnimationFrame:null,setImmediate:null}),callbacks:[],types:[],timerIDs:[],immediates:[],callTimer:function(e){c(e<=l.GUID,"Tried to call timer with ID "+e+" but no such timer exists");var t=l.timerIDs.indexOf(e);if(-1!==t){var n=l.types[t],r=l.callbacks[t];(n===l.Type.setTimeout||n===l.Type.setImmediate||n===l.Type.requestAnimationFrame)&&l._clearIndex(t);try{if(n===l.Type.setTimeout||n===l.Type.setInterval||n===l.Type.setImmediate)r();else{if(n!==l.Type.requestAnimationFrame)return void console.error("Tried to call a callback with invalid type: "+n);var o=u();r(o)}}catch(i){l.errors=l.errors||[],l.errors.push(i)}}},callTimers:function(e){a(0!==e.length,'Probably shouldn\'t call "callTimers" with no timerIDs'),l.errors=null,e.forEach(l.callTimer);var n=l.errors;if(n){var r=n.length;if(r>1)for(var o=1;r>o;o++)t("JSTimers").setTimeout(function(e){throw e}.bind(null,n[o]),0);throw n[0]}},callImmediates:function(){for(l.errors=null;0!==l.immediates.length;)l.callTimer(l.immediates.shift());l.errors&&l.errors.forEach(function(e){return t("JSTimers").setTimeout(function(){throw e},0)})},_clearIndex:function(e){l.timerIDs[e]=null,l.callbacks[e]=null,l.types[e]=null}};o.exports=l}),__d("performanceNow",["performance"],function(e,t,n,r,o,i){var a=t("performance");a&&a.now||(a=Date);var s=a.now.bind(a);o.exports=s}),__d("performance",["ExecutionEnvironment"],function(e,t,n,r,o,i){"use strict";var a,s=t("ExecutionEnvironment");s.canUseDOM&&(a=window.performance||window.msPerformance||window.webkitPerformance),o.exports=a||{}}),__d("ExecutionEnvironment",[],function(e,t,n,r,o,i){"use strict";var a=!1,s={canUseDOM:a,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:a&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:a&&!!window.screen,isInWorker:!a};o.exports=s}),__d("JSTimers",["NativeModules","JSTimersExecution"],function(e,t,n,r,o,i){"use strict";var a=t("NativeModules").Timing,s=t("JSTimersExecution"),u={Types:s.Types,_getFreeIndex:function(){var e=s.timerIDs.indexOf(null);return-1===e&&(e=s.timerIDs.length),e},setTimeout:function(e,t){for(var n=arguments.length,r=Array(n>2?n-2:0),o=2;n>o;o++)r[o-2]=arguments[o];var i=s.GUID++,c=u._getFreeIndex();return s.timerIDs[c]=i,s.callbacks[c]=function(){return e.apply(void 0,r)},s.types[c]=s.Type.setTimeout,a.createTimer(i,t,Date.now(),!1),i},setInterval:function(e,t){for(var n=arguments.length,r=Array(n>2?n-2:0),o=2;n>o;o++)r[o-2]=arguments[o];var i=s.GUID++,c=u._getFreeIndex();return s.timerIDs[c]=i,s.callbacks[c]=function(){return e.apply(void 0,r)},s.types[c]=s.Type.setInterval,a.createTimer(i,t,Date.now(),!0),i},setImmediate:function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;t>r;r++)n[r-1]=arguments[r];var o=s.GUID++,i=u._getFreeIndex();return s.timerIDs[i]=o,s.callbacks[i]=function(){return e.apply(void 0,n)},s.types[i]=s.Type.setImmediate,s.immediates.push(o),o},requestAnimationFrame:function(e){var t=s.GUID++,n=u._getFreeIndex();return s.timerIDs[n]=t,s.callbacks[n]=e,s.types[n]=s.Type.requestAnimationFrame,a.createTimer(t,1,Date.now(),!1),t},clearTimeout:function(e){u._clearTimerID(e)},clearInterval:function(e){u._clearTimerID(e)},clearImmediate:function(e){u._clearTimerID(e),s.immediates.splice(s.immediates.indexOf(e),1)},cancelAnimationFrame:function(e){u._clearTimerID(e)},_clearTimerID:function(e){if(null!=e){var t=s.timerIDs.indexOf(e);-1!==t&&(s._clearIndex(t),s.types[t]!==s.Type.setImmediate&&a.deleteTimer(e))}}};o.exports=u}),__d("ReactUpdates",["CallbackQueue","PooledClass","ReactPerf","ReactReconciler","Transaction","Object.assign","invariant"],function(e,t,n,r,o,i){"use strict";function a(){_(O.ReactReconcileTransaction&&E,"ReactUpdates: must inject a reconcile transaction class and batching strategy")}function s(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=d.getPooled(),this.reconcileTransaction=O.ReactReconcileTransaction.getPooled()}function u(e,t,n,r,o,i){a(),E.batchedUpdates(e,t,n,r,o,i)}function c(e,t){return e._mountOrder-t._mountOrder}function l(e){var t=e.dirtyComponentsLength;_(t===b.length,"Expected flush transaction's stored dirty-components length (%s) to match dirty-components array length (%s).",t,b.length),b.sort(c);for(var n=0;t>n;n++){var r=b[n],o=r._pendingCallbacks;if(r._pendingCallbacks=null,v.performUpdateIfNecessary(r,e.reconcileTransaction),o)for(var i=0;in;n+=2){var o=t[n/2];u.addTimespan(o,e[n+1]-e[n],o)}}};o.exports=u}),__d("ExceptionsManager",["NativeModules","loadSourceMap","parseErrorStack","stringifySafe"],function(e,t,n,r,o,i){"use strict";function a(e,t,n){var r=++g;d&&(n||(n=m(e)),t?d.reportFatalException(e.message,n,r):d.reportSoftException(e.message,n),__DEV__&&(h=h||f()).then(function(t){var n=m(e,t);d.updateExceptionMessage(e.message,n,r)})["catch"](function(e){console.warn("Unable to load source map: "+e.message)}))}function s(e,t){var n=m(e),r="Error: "+e.message+"\n stack: \n"+c(n)+"\n URL: "+e.sourceURL+"\n line: "+e.line+"\n message: "+e.message;console.errorOriginal?console.errorOriginal(r):console.error(r),a(e,t,n)}function u(){console.reportException||(console.reportException=a,console.errorOriginal=console.error.bind(console),console.error=function(){if(console.errorOriginal.apply(null,arguments),console.reportErrorsAsExceptions){var e=Array.prototype.map.call(arguments,v).join(", ");if('"Warning: '!==e.slice(0,10)){var t=new Error("console.error: "+e);t.framesToPop=1,a(t,!1)}}},void 0===console.reportErrorsAsExceptions&&(console.reportErrorsAsExceptions=!0))}function c(e){var t=Math.max.apply(null,e.map(function(e){return e.methodName.length}));return e.map(function(e){return l(e,t)}).join("\n")}function l(e,t){var n=e.file.split("/"),r=n[n.length-1];r.length>18&&(r=r.substr(0,17)+"…");var o=p(t-e.methodName.length);return" "+e.methodName+o+" "+r+":"+e.lineNumber}function p(e){return new Array(e+1).join(" ")}var h,d=t("NativeModules").ExceptionsManager,f=t("loadSourceMap"),m=t("parseErrorStack"),v=t("stringifySafe"),g=0;o.exports={handleException:s,installConsoleErrorReporter:u}}),__d("loadSourceMap",["Promise","NativeModules","SourceMap","react-native/Libraries/JavaScriptAppEngine/Initialization/source-map-url.js"],function(e,t,n,r,o,i){"use strict";function a(){return s().then(function(e){return new p(e)})}function s(){return e.RAW_SOURCE_MAP?c.resolve(e.RAW_SOURCE_MAP):d?f?new c(d.getScriptText).then(u).then(function(e){return null===e?c.reject(new Error("No source map URL found. May be running from bundled file.")):c.resolve(e)}).then(fetch).then(function(e){return e.text()}):c.reject(new Error("RCTNetworking module is not available")):c.reject(new Error("RCTSourceCode module is not available"))}function u(e){var t=e.url,n=e.text,r=e.fullSourceMappingURL;if(r)return r;var o=h.getFrom(n);if(!o)return null;var i=t.match(/(.+:\/\/.*?)\//)[1];return i+o}var c=t("Promise"),l=t("NativeModules"),p=t("SourceMap").SourceMapConsumer,h=t("react-native/Libraries/JavaScriptAppEngine/Initialization/source-map-url.js"),d=l.SourceCode,f=l.Networking;o.exports=a}),__d("Promise",["setImmediate","promise/setimmediate/es6-extensions.js","promise/setimmediate/done.js"],function(e,t,n,r,o,i){"use strict";e.setImmediate=t("setImmediate");var a=t("promise/setimmediate/es6-extensions.js");t("promise/setimmediate/done.js"),a.prototype["finally"]=function(e){return this.then(e,e)},o.exports=a}),__d("setImmediate",["ImmediateImplementation"],function(e,t,n,r,o,i){o.exports=e.setImmediate||t("ImmediateImplementation").setImmediate}),__d("ImmediateImplementation",[],function(e,t,n,r,o,i){!function(e,t){"use strict";function n(e){var n=e[0];return e=Array.prototype.slice.call(e,1),d[h]=function(){n.apply(t,e)},m=m.next={handle:h++},m.handle}function r(){for(var e,t;!v&&(e=f.next);)if(f=e,t=d[e.handle]){v=!0;try{t(),v=!1}finally{o(e.handle),v&&(v=!1,f.next&&p(r))}}}function o(e){delete d[e]}function a(){if(e.postMessage&&!e.importScripts){var t=!0,n=function(){t=!1,e.removeEventListener?e.removeEventListener("message",n,!1):e.detachEvent("onmessage",n)};if(e.addEventListener)e.addEventListener("message",n,!1);else{if(!e.attachEvent)return!1;e.attachEvent("onmessage",n)}return e.postMessage("","*"),t}}function s(){var t="setImmediate$"+Math.random()+"$",o=function(n){n.source===e&&"string"==typeof n.data&&0===n.data.indexOf(t)&&r()};e.addEventListener?e.addEventListener("message",o,!1):e.attachEvent("onmessage",o),p=function(){var r=n(arguments);return e.postMessage(t+r,"*"),r}}function u(){var e=new MessageChannel;e.port1.onmessage=r,p=function(){var t=n(arguments);return e.port2.postMessage(t),t}}function c(){var e=g.documentElement;p=function(){var t=n(arguments),o=g.createElement("script");return o.onreadystatechange=function(){o.onreadystatechange=null,e.removeChild(o),o=null,r()},e.appendChild(o),t}}function l(){p=function(){return setTimeout(r,0),n(arguments)}}var p,h=1,d={},f={},m=f,v=!1,g=e.document;a()?s():e.MessageChannel?u():g&&"onreadystatechange"in g.createElement("script")?c():l(),i.setImmediate=p,i.clearImmediate=o}(Function("return this")())}),__d("promise/setimmediate/es6-extensions.js",["promise/setimmediate/core.js"],function(e,t,n,r,o,i){"use strict";function a(e){var t=new s(s._99);return t._37=1,t._12=e,t}var s=t("promise/setimmediate/core.js");o.exports=s;var u=a(!0),c=a(!1),l=a(null),p=a(void 0),h=a(0),d=a("");s.resolve=function(e){if(e instanceof s)return e;if(null===e)return l;if(void 0===e)return p;if(e===!0)return u;if(e===!1)return c;if(0===e)return h;if(""===e)return d;if("object"==typeof e||"function"==typeof e)try{var t=e.then;if("function"==typeof t)return new s(t.bind(e))}catch(n){return new s(function(e,t){t(n)})}return a(e)},s.all=function(e){var t=Array.prototype.slice.call(e);return new s(function(e,n){function r(i,a){if(a&&("object"==typeof a||"function"==typeof a)){if(a instanceof s&&a.then===s.prototype.then){for(;3===a._37;)a=a._12;return 1===a._37?r(i,a._12):(2===a._37&&n(a._12),void a.then(function(e){r(i,e)},n))}var u=a.then;if("function"==typeof u){var c=new s(u.bind(a));return void c.then(function(e){r(i,e)},n)}}t[i]=a,0===--o&&e(t)}if(0===t.length)return e([]);for(var o=t.length,i=0;i0&&e.column>=0)||t||n||r)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&n))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:n,orginal:t,name:r}))},r.prototype._serializeMappings=function(){var e,t=0,n=1,r=0,a=0,s=0,u=0,c="";this._mappings.sort(i.compareByGeneratedPositions);for(var l=0,p=this._mappings.length;p>l;l++){if(e=this._mappings[l],e.generatedLine!==n)for(t=0;e.generatedLine!==n;)c+=";",n++;else if(l>0){if(!i.compareByGeneratedPositions(e,this._mappings[l-1]))continue;c+=","}c+=o.encode(e.generatedColumn-t),t=e.generatedColumn,e.source&&(c+=o.encode(this._sources.indexOf(e.source)-u),u=this._sources.indexOf(e.source),c+=o.encode(e.originalLine-1-a),a=e.originalLine-1,c+=o.encode(e.originalColumn-r),r=e.originalColumn,e.name&&(c+=o.encode(this._names.indexOf(e.name)-s),s=this._names.indexOf(e.name)))}return c},r.prototype._generateSourcesContent=function(e,t){return e.map(function(e){if(!this._sourcesContents)return null;t&&(e=i.relative(t,e));var n=i.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,n)?this._sourcesContents[n]:null},this)},r.prototype.toJSON=function(){var e={version:this._version,file:this._file,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},r.prototype.toString=function(){return JSON.stringify(this)},t.SourceMapGenerator=r}),e("source-map/base64-vlq",["require","exports","module","source-map/base64"],function(e,t,n){function r(e){return 0>e?(-e<<1)+1:(e<<1)+0}function o(e){var t=1===(1&e),n=e>>1;return t?-n:n}var i=e("./base64"),a=5,s=1<>>=a,o>0&&(t|=c),n+=i.encode(t);while(o>0);return n},t.decode=function(e){var t,n,r=0,s=e.length,l=0,p=0;do{if(r>=s)throw new Error("Expected more digits in base 64 VLQ value.");n=i.decode(e.charAt(r++)),t=!!(n&c),n&=u,l+=n<r)-(r>n)}function p(e,t,n){var r;return(r=l(e.source,t.source))?r:(r=e.originalLine-t.originalLine)?r:(r=e.originalColumn-t.originalColumn,r||n?r:(r=l(e.name,t.name))?r:(r=e.generatedLine-t.generatedLine,r?r:e.generatedColumn-t.generatedColumn))}function h(e,t,n){var r;return(r=e.generatedLine-t.generatedLine)?r:(r=e.generatedColumn-t.generatedColumn,r||n?r:(r=l(e.source,t.source))?r:(r=e.originalLine-t.originalLine)?r:(r=e.originalColumn-t.originalColumn,r?r:l(e.name,t.name)))}t.getArg=r;var d=/([\w+\-.]+):\/\/((\w+:\w+)@)?([\w.]+)?(:(\d+))?(\S+)?/,f=/^data:.+\,.+/;t.urlParse=o,t.urlGenerate=i,t.join=a,t.toSetString=s,t.fromSetString=u,t.relative=c,t.compareByOriginalPositions=p,t.compareByGeneratedPositions=h}),e("source-map/array-set",["require","exports","module","source-map/util"],function(e,t,n){function r(){this._array=[],this._set={}}var o=e("./util");r.fromArray=function(e,t){for(var n=new r,o=0,i=e.length;i>o;o++)n.add(e[o],t);return n},r.prototype.add=function(e,t){var n=this.has(e),r=this._array.length;(!n||t)&&this._array.push(e),n||(this._set[o.toSetString(e)]=r)},r.prototype.has=function(e){return Object.prototype.hasOwnProperty.call(this._set,o.toSetString(e))},r.prototype.indexOf=function(e){if(this.has(e))return this._set[o.toSetString(e)];throw new Error('"'+e+'" is not in the set.')},r.prototype.at=function(e){if(e>=0&&e0;)if(";"===d.charAt(0))i++,d=d.slice(1),a=0;else if(","===d.charAt(0))d=d.slice(1);else{if(n={},n.generatedLine=i,r=s.decode(d),n.generatedColumn=a+r.value,a=n.generatedColumn,d=r.rest,d.length>0&&!h.test(d.charAt(0))){if(r=s.decode(d),n.source=this._sources.at(l+r.value),l+=r.value,d=r.rest,0===d.length||h.test(d.charAt(0)))throw new Error("Found a source, but no line and column");if(r=s.decode(d),n.originalLine=u+r.value,u=n.originalLine,n.originalLine+=1,d=r.rest,0===d.length||h.test(d.charAt(0)))throw new Error("Found a source and line, but no column");r=s.decode(d),n.originalColumn=c+r.value,c=n.originalColumn,d=r.rest,d.length>0&&!h.test(d.charAt(0))&&(r=s.decode(d),n.name=this._names.at(p+r.value),p+=r.value,d=r.rest)}this.__generatedMappings.push(n),"number"==typeof n.originalLine&&this.__originalMappings.push(n)}this.__originalMappings.sort(o.compareByOriginalPositions)},r.prototype._findMapping=function(e,t,n,r,o){if(e[n]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[n]);if(e[r]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[r]);return i.search(e,t,o)},r.prototype.originalPositionFor=function(e){var t={generatedLine:o.getArg(e,"line"),generatedColumn:o.getArg(e,"column")},n=this._findMapping(t,this._generatedMappings,"generatedLine","generatedColumn",o.compareByGeneratedPositions);if(n){var r=o.getArg(n,"source",null);return r&&this.sourceRoot&&(r=o.join(this.sourceRoot,r)),{source:r,line:o.getArg(n,"originalLine",null),column:o.getArg(n,"originalColumn",null),name:o.getArg(n,"name",null)}}return{source:null,line:null,column:null,name:null}},r.prototype.sourceContentFor=function(e){if(!this.sourcesContent)return null;if(this.sourceRoot&&(e=o.relative(this.sourceRoot,e)),this._sources.has(e))return this.sourcesContent[this._sources.indexOf(e)];var t;if(this.sourceRoot&&(t=o.urlParse(this.sourceRoot))){var n=e.replace(/^file:\/\//,"");if("file"==t.scheme&&this._sources.has(n))return this.sourcesContent[this._sources.indexOf(n)];if((!t.path||"/"==t.path)&&this._sources.has("/"+e))return this.sourcesContent[this._sources.indexOf("/"+e)]}throw new Error('"'+e+'" is not in the SourceMap.')},r.prototype.generatedPositionFor=function(e){var t={source:o.getArg(e,"source"),originalLine:o.getArg(e,"line"),originalColumn:o.getArg(e,"column")};this.sourceRoot&&(t.source=o.relative(this.sourceRoot,t.source));var n=this._findMapping(t,this._originalMappings,"originalLine","originalColumn",o.compareByOriginalPositions);return n?{line:o.getArg(n,"generatedLine",null),column:o.getArg(n,"generatedColumn",null)}:{line:null,column:null}},r.GENERATED_ORDER=1,r.ORIGINAL_ORDER=2,r.prototype.eachMapping=function(e,t,n){var i,a=t||null,s=n||r.GENERATED_ORDER;switch(s){case r.GENERATED_ORDER:i=this._generatedMappings;break;case r.ORIGINAL_ORDER:i=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var u=this.sourceRoot;i.map(function(e){var t=e.source;return t&&u&&(t=o.join(u,t)),{source:t,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:e.name}}).forEach(e,a)},t.SourceMapConsumer=r}),e("source-map/binary-search",["require","exports","module"],function(e,t,n){function r(e,t,n,o,i){var a=Math.floor((t-e)/2)+e,s=i(n,o[a],!0);return 0===s?o[a]:s>0?t-a>1?r(a,t,n,o,i):o[a]:a-e>1?r(e,a,n,o,i):0>e?null:o[e]}t.search=function(e,t,n){return t.length>0?r(-1,t.length,e,t,n):null}}),e("source-map/source-node",["require","exports","module","source-map/source-map-generator","source-map/util"],function(e,t,n){function r(e,t,n,r,o){this.children=[],this.sourceContents={},this.line=void 0===e?null:e,this.column=void 0===t?null:t,this.source=void 0===n?null:n,this.name=void 0===o?null:o,null!=r&&this.add(r)}var o=e("./source-map-generator").SourceMapGenerator,i=e("./util");r.fromStringWithSourceMap=function(e,t){function n(e,t){null===e||void 0===e.source?o.add(t):o.add(new r(e.originalLine,e.originalColumn,e.source,t,e.name))}var o=new r,i=e.split("\n"),a=1,s=0,u=null;return t.eachMapping(function(e){if(null===u){for(;a=0;t--)this.prepend(e[t]);else{if(!(e instanceof r||"string"==typeof e))throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},r.prototype.walk=function(e){for(var t,n=0,o=this.children.length;o>n;n++)t=this.children[n],t instanceof r?t.walk(e):""!==t&&e(t,{source:this.source,line:this.line,column:this.column,name:this.name})},r.prototype.join=function(e){var t,n,r=this.children.length;if(r>0){for(t=[],n=0;r-1>n;n++)t.push(this.children[n]),t.push(e);t.push(this.children[n]),this.children=t}return this},r.prototype.replaceRight=function(e,t){var n=this.children[this.children.length-1];return n instanceof r?n.replaceRight(e,t):"string"==typeof n?this.children[this.children.length-1]=n.replace(e,t):this.children.push("".replace(e,t)),this},r.prototype.setSourceContent=function(e,t){this.sourceContents[i.toSetString(e)]=t},r.prototype.walkSourceContents=function(e){for(var t=0,n=this.children.length;n>t;t++)this.children[t]instanceof r&&this.children[t].walkSourceContents(e);for(var o=Object.keys(this.sourceContents),t=0,n=o.length;n>t;t++)e(i.fromSetString(o[t]),this.sourceContents[o[t]])},r.prototype.toString=function(){var e="";return this.walk(function(t){e+=t}),e},r.prototype.toStringWithSourceMap=function(e){var t={code:"",line:1,column:0},n=new o(e),r=!1,i=null,a=null,s=null,u=null;return this.walk(function(e,o){t.code+=e,null!==o.source&&null!==o.line&&null!==o.column?((i!==o.source||a!==o.line||s!==o.column||u!==o.name)&&n.addMapping({source:o.source,original:{line:o.line,column:o.column},generated:{line:t.line,column:t.column},name:o.name}),i=o.source,a=o.line,s=o.column,u=o.name,r=!0):r&&(n.addMapping({generated:{line:t.line,column:t.column}}),i=null,r=!1),e.split("").forEach(function(e){"\n"===e?(t.line++,t.column=0):t.column++})}),this.walkSourceContents(function(e,t){n.setSourceContent(e,t)}),{code:t.code,map:n}},t.SourceNode=r}),this.sourceMap={SourceMapConsumer:n("source-map/source-map-consumer").SourceMapConsumer,SourceMapGenerator:n("source-map/source-map-generator").SourceMapGenerator,SourceNode:n("source-map/source-node").SourceNode}}var s={};a.call(s),o.exports=s.sourceMap}),__d("react-native/Libraries/JavaScriptAppEngine/Initialization/source-map-url.js",[],function(e,t,n,r,o,i){!function(){var e=null;void function(t,n){"function"==typeof e&&e.amd?e(n):"object"==typeof i?o.exports=n():t.sourceMappingURL=n()}(this,function(){var e=/[#@] sourceMappingURL=([^\s'"]*)/,t=RegExp("(?:/\\*(?:\\s*\r?\n(?://)?)?(?:"+e.source+")\\s*\\*/|//(?:"+e.source+"))\\s*$");return{regex:t,_innerRegex:e,getFrom:function(e){var n=e.match(t);return n?n[1]||n[2]||"":null},existsIn:function(e){return t.test(e)},removeFrom:function(e){return e.replace(t,"")},insertBefore:function(e,n){var r=e.match(t);return r?e.slice(0,r.index)+n+e.slice(r.index):e+n}}})}()}),__d("parseErrorStack",["stacktrace-parser/index.js"],function(e,t,n,r,o,i){"use strict";function a(e,t){try{var n=e.originalPositionFor({line:t.lineNumber,column:t.column});n&&(t.file=n.source,t.lineNumber=n.line,t.column=n.column)}catch(r){}}function s(e,t){if(!e||!e.stack)return[];for(var n=u.parse(e.stack),r=e.framesToPop||0;r--;)n.shift();return t&&n.forEach(a.bind(null,t)),n}var u=t("stacktrace-parser/index.js");o.exports=s}),__d("stacktrace-parser/index.js",["stacktrace-parser/lib/stacktrace-parser.js"],function(e,t,n,r,o,i){o.exports=t("stacktrace-parser/lib/stacktrace-parser.js")}),__d("stacktrace-parser/lib/stacktrace-parser.js",[],function(e,t,n,r,o,i){var a="",s={parse:function(e){for(var t,n,r=/^\s*at (?:(?:(?:Anonymous function)?|((?:\[object object\])?\S+(?: \[as \S+\])?)) )?\(?((?:file|http|https):.*?):(\d+)(?::(\d+))?\)?\s*$/i,o=/^(?:\s*(\S*)(?:\((.*?)\))?@)?((?:\w).*?):(\d+)(?::(\d+))?\s*$/i,i=/^\s*at (?:((?:\[object object\])?\S+(?: \[as \S+\])?) )?\(?(.*?):(\d+)(?::(\d+))?\)?\s*$/i,s=e.split("\n"),u=[],c=0,l=s.length;l>c;++c){if(t=o.exec(s[c]))n={file:t[3],methodName:t[1]||a,lineNumber:+t[4],column:t[5]?+t[5]:null};else if(t=r.exec(s[c]))n={file:t[2],methodName:t[1]||a,lineNumber:+t[3],column:t[4]?+t[4]:null};else{if(!(t=i.exec(s[c])))continue;n={file:t[2],methodName:t[1]||a,lineNumber:+t[3],column:t[4]?+t[4]:null}}u.push(n)}return u}};o.exports=s}),__d("Platform",[],function(e,t,n,r,o,i){"use strict";var a={OS:"ios"};o.exports=a}),__d("XMLHttpRequest",["FormData","NativeModules","RCTDeviceEventEmitter","XMLHttpRequestBase"],function(e,t,n,r,o,i){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n-1?t:e}function l(e,t){if(t=t||{},this.url=e,this.credentials=t.credentials||"omit",this.headers=new n(t.headers),this.method=c(t.method||"GET"),this.mode=t.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&t.body)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(t.body)}function p(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(o))}}),t}function h(e){var t=new n,r=e.getAllResponseHeaders().trim().split("\n");return r.forEach(function(e){var n=e.trim().split(":"),r=n.shift().trim(),o=n.join(":").trim();t.append(r,o)}),t}function d(e,t){t||(t={}),this._initBody(e),this.type="default",this.url=null,this.status=t.status,this.ok=this.status>=200&&this.status<300,this.statusText=t.statusText,this.headers=t.headers instanceof n?t.headers:new n(t.headers),this.url=t.url||""}if(!a.fetch){n.prototype.append=function(n,r){n=e(n),r=t(r);var o=this.map[n];o||(o=[],this.map[n]=o),o.push(r)},n.prototype["delete"]=function(t){delete this.map[e(t)]},n.prototype.get=function(t){var n=this.map[e(t)];return n?n[0]:null},n.prototype.getAll=function(t){return this.map[e(t)]||[]},n.prototype.has=function(t){return this.map.hasOwnProperty(e(t))},n.prototype.set=function(n,r){this.map[e(n)]=[t(r)]},n.prototype.forEach=function(e){var t=this;Object.getOwnPropertyNames(this.map).forEach(function(n){e(n,t.map[n])})};var f={blob:"FileReader"in a&&"Blob"in a&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in a},m=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];u.call(l.prototype),u.call(d.prototype),a.Headers=n,a.Request=l,a.Response=d,a.fetch=function(e,t){var n;return n=l.prototype.isPrototypeOf(e)&&!t?e:new l(e,t),new Promise(function(e,t){function r(){return"responseURL"in o?o.responseURL:/^X-Request-URL:/m.test(o.getAllResponseHeaders())?o.getResponseHeader("X-Request-URL"):void 0}var o=new XMLHttpRequest;"cors"===n.credentials&&(o.withCredentials=!0),o.onload=function(){var n=1223===o.status?204:o.status;if(100>n||n>599)return void t(new TypeError("Network request failed"));var i={status:n,statusText:o.statusText,headers:h(o),url:r()},a="response"in o?o.response:o.responseText;e(new d(a,i))},o.onerror=function(){t(new TypeError("Network request failed"))},o.open(n.method,n.url,!0),"responseType"in o&&f.blob&&(o.responseType="blob"),n.headers.forEach(function(e,t){t.forEach(function(t){o.setRequestHeader(e,t)})}),o.send("undefined"==typeof n._bodyInit?null:n._bodyInit)})},a.fetch.polyfill=!0}}(),o.exports=a}),__d("Geolocation",["RCTDeviceEventEmitter","NativeModules","invariant","logError","warning"],function(e,t,n,r,o,i){"use strict";var a=t("RCTDeviceEventEmitter"),s=t("NativeModules").LocationObserver,u=t("invariant"),c=t("logError"),l=t("warning"),p=[],h=!1,d={getCurrentPosition:function(e,t,n){u("function"==typeof e,"Must provide a valid geo_success callback."),s.getCurrentPosition(n||{},e,t||c)},watchPosition:function(e,t,n){h||(s.startObserving(n||{}),h=!0);var r=p.length;return p.push([a.addListener("geolocationDidChange",e),t?a.addListener("geolocationError",t):null]),r},clearWatch:function(e){var t=p[e];if(t){t[0].remove();var n=t[1];n&&n.remove(),p[e]=void 0;for(var r=!0,o=0;o-1,"EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.",e),!h.plugins[n]){c(t.extractEvents,"EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.",e),h.plugins[n]=t;var r=t.eventTypes;for(var o in r)c(s(r[o],t,o),"EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.",o,e)}}}function s(e,t,n){c(!h.eventNameDispatchConfigs.hasOwnProperty(n),"EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.",n),h.eventNameDispatchConfigs[n]=e;var r=e.phasedRegistrationNames;if(r){for(var o in r)if(r.hasOwnProperty(o)){var i=r[o];u(i,t,n)}return!0}return e.registrationName?(u(e.registrationName,t,n),!0):!1}function u(e,t,n){c(!h.registrationNameModules[e],"EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.",e),h.registrationNameModules[e]=t,h.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var c=t("invariant"),l=null,p={},h={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},injectEventPluginOrder:function(e){c(!l,"EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React."),l=Array.prototype.slice.call(e),a()},injectEventPluginsByName:function(e){var t=!1;for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];p.hasOwnProperty(n)&&p[n]===r||(c(!p[n],"EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.",n),p[n]=r,t=!0)}t&&a()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return h.registrationNameModules[t.registrationName]||null;for(var n in t.phasedRegistrationNames)if(t.phasedRegistrationNames.hasOwnProperty(n)){var r=h.registrationNameModules[t.phasedRegistrationNames[n]];if(r)return r}return null},_resetEventPlugins:function(){l=null;for(var e in p)p.hasOwnProperty(e)&&delete p[e];h.plugins.length=0;var t=h.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=h.registrationNameModules;for(var o in r)r.hasOwnProperty(o)&&delete r[o]}};o.exports=h}),__d("EventPluginUtils",["EventConstants","invariant","warning"],function(e,t,n,r,o,i){"use strict";function a(e){return e===S.topMouseUp||e===S.topTouchEnd||e===S.topTouchCancel}function s(e){return e===S.topMouseMove||e===S.topTouchMove}function u(e){return e===S.topMouseDown||e===S.topTouchStart}function c(e,t){var n=e._dispatchListeners,r=e._dispatchIDs;if(__DEV__&&v(e),Array.isArray(n))for(var o=0;oe,"Maximum deep merge depth exceeded. You may be attempting to merge circular structures in an unsupported way.")},checkArrayStrategy:function(e){a(void 0===e||e in l.ArrayStrategies,"You must provide an array strategy to deep merge functions to instruct the deep merge how to resolve merging two arrays.")},ArrayStrategies:s({Clobber:!0,IndexByIndex:!0})};o.exports=l}),__d("NodeHandle",[],function(e,t,n,r,o,i){var a={injection:{injectImplementation:function(e){a._Implementation=e}},_Implementation:null,getRootNodeID:function(e){return a._Implementation.getRootNodeID(e)}};o.exports=a}),__d("ReactDefaultBatchingStrategy",["ReactUpdates","Transaction","Object.assign","emptyFunction"],function(e,t,n,r,o,i){"use strict";function a(){this.reinitializeTransaction()}var s=t("ReactUpdates"),u=t("Transaction"),c=t("Object.assign"),l=t("emptyFunction"),p={initialize:l,close:function(){m.isBatchingUpdates=!1}},h={initialize:l,close:s.flushBatchedUpdates.bind(s)},d=[h,p];c(a.prototype,u.Mixin,{getTransactionWrappers:function(){return d}});var f=new a,m={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,o,i){var a=m.isBatchingUpdates;m.isBatchingUpdates=!0,a?e(t,n,r,o,i):f.perform(e,null,t,n,r,o,i)}};o.exports=m}),__d("ReactNativeComponentEnvironment",["ReactNativeDOMIDOperations","ReactNativeReconcileTransaction"],function(e,t,n,r,o,i){"use strict";var a=t("ReactNativeDOMIDOperations"),s=t("ReactNativeReconcileTransaction"),u={processChildrenUpdates:a.dangerouslyProcessChildrenUpdates,replaceNodeWithMarkupByID:a.dangerouslyReplaceNodeWithMarkupByID,unmountIDFromEnvironment:function(){},clearNode:function(){},ReactReconcileTransaction:s};o.exports=u}),__d("ReactNativeDOMIDOperations",["ReactNativeTagHandles","ReactMultiChildUpdateTypes","NativeModules","ReactPerf"],function(e,t,n,r,o,i){"use strict";var a=t("ReactNativeTagHandles"),s=t("ReactMultiChildUpdateTypes"),u=t("NativeModules").UIManager,c=t("ReactPerf"),l=function(e,t){if(e.length){for(var n={},r=0;r=r?(this._iteratedObject=void 0,e(void 0,!0)):(this._nextIndex=o+1,i===u?e(o,!1):i===c?e(n[o],!1):i===l?e([o,n[o]],!1):void 0)}},{key:"@@iterator",value:function(){return this}}]),t}(),n=function(){function t(e){if(a(this,t),"string"!=typeof e)throw new TypeError("Object is not a string");this._iteratedString=e,this._nextIndex=0}return s(t,[{key:"next",value:function(){if(!this instanceof t)throw new TypeError("Object is not a StringIterator");if(null==this._iteratedString)return e(void 0,!0);var n=this._nextIndex,r=this._iteratedString,o=r.length;if(n>=o)return this._iteratedString=void 0,e(void 0,!0);var i,a=r.charCodeAt(n);if(55296>a||a>56319||n+1===o)i=r[n];else{var s=r.charCodeAt(n+1);i=56320>s||s>57343?r[n]:r[n]+r[n+1]}return this._nextIndex=n+i.length,e(i,!1)}},{key:"@@iterator",value:function(){return this}}]),t}();return function(e,r){return"string"==typeof e?new n(e):Array.isArray(e)?new t(e,r||c):e[p]()}}()}();Object.assign(h,{KIND_KEY:u,KIND_VALUE:c,KIND_KEY_VAL:l,ITERATOR_SYMBOL:p}),o.exports=h}),__d("_shouldPolyfillES6Collection",[],function(e,t,n,r,o,i){function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}function u(t){var n=e[t];if(null==n)return!0;var r=n.prototype;return null==n||"function"!=typeof n||"function"!=typeof r.clear||0!==(new n).size||"function"!=typeof r.keys||"function"!=typeof r.forEach||l(n)||!c(n)}function c(e){var t=function(e){function t(){a(this,t),p(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return s(t,e),t}(e);try{var n=new t([]);return n.size,n instanceof e}catch(r){return!1}}function l(e){try{e()}catch(t){return!1}return!0}var p=function h(e,t,n){null===e&&(e=Function.prototype);var r=Object.getOwnPropertyDescriptor(e,t);if(void 0===r){var o=Object.getPrototypeOf(e);return null===o?void 0:h(o,t,n)}if("value"in r)return r.value;var i=r.get;return void 0===i?void 0:i.call(n)};o.exports=u}),__d("ReactNativeGlobalResponderHandler",["NativeModules","ReactNativeTagHandles"],function(e,t,n,r,o,i){"use strict";var a=t("NativeModules").UIManager,s=t("ReactNativeTagHandles"),u={onChange:function(e,t,n){null!==t?a.setJSResponder(s.mostRecentMountedNodeHandleForRootNodeID(t),n):a.clearJSResponder()}};o.exports=u}),__d("ReactNativeTextComponent",["ReactNativeTagHandles","NativeModules","Object.assign"],function(e,t,n,r,o,i){"use strict";var a=t("ReactNativeTagHandles"),s=t("NativeModules").UIManager,u=t("Object.assign"),c=function(e){};u(c.prototype,{construct:function(e){this._currentElement=e,this._stringText=""+e,this._rootNodeID=null},mountComponent:function(e,t,n){this._rootNodeID=e;var r=a.allocateTag(),o=a.getNativeTopRootIDFromNodeID(e);return s.createView(r,"RCTRawText",o?a.rootNodeIDToTag[o]:null,{text:this._stringText}),{rootNodeID:e,tag:r}},receiveComponent:function(e,t,n){if(e!==this._currentElement){this._currentElement=e;var r=""+e;r!==this._stringText&&(this._stringText=r,s.updateView(a.mostRecentMountedNodeHandleForRootNodeID(this._rootNodeID),"RCTRawText",{text:this._stringText}))}},unmountComponent:function(){this._currentElement=null,this._stringText=null,this._rootNodeID=null}}),o.exports=c}),__d("ResponderEventPlugin",["EventConstants","EventPluginUtils","EventPropagators","NodeHandle","ReactInstanceHandles","ResponderSyntheticEvent","ResponderTouchHistoryStore","accumulate","invariant","keyOf"],function(e,t,n,r,o,i){"use strict";function a(e,t,n){var r=_(e)?O.startShouldSetResponder:b(e)?O.moveShouldSetResponder:e===c.topLevelTypes.topSelectionChange?O.selectionChangeShouldSetResponder:O.scrollShouldSetResponder,o=w?d._getFirstCommonAncestorID(w,t):t,i=o===w,a=f.getPooled(r,o,n);a.touchHistory=m.touchHistory,i?p.accumulateTwoPhaseDispatchesSkipTarget(a):p.accumulateTwoPhaseDispatches(a);var s=T(a);if(a.isPersistent()||a.constructor.release(a),!s||s===w)return null;var u,l=f.getPooled(O.responderGrant,s,n);l.touchHistory=m.touchHistory,p.accumulateDirectDispatches(l);var h=R(l)===!0;if(w){var g=f.getPooled(O.responderTerminationRequest,w,n);g.touchHistory=m.touchHistory,p.accumulateDirectDispatches(g);var y=!E(g)||R(g);if(g.isPersistent()||g.constructor.release(g),y){var S=O.responderTerminate,C=f.getPooled(S,w,n);C.touchHistory=m.touchHistory,p.accumulateDirectDispatches(C),u=v(u,[l,C]),x(s,h)}else{var I=f.getPooled(O.responderReject,s,n);I.touchHistory=m.touchHistory,p.accumulateDirectDispatches(I),u=v(u,I)}}else u=v(u,l),x(s,h);return u}function s(e,t){return t&&(e===c.topLevelTypes.topScroll||C>0&&e===c.topLevelTypes.topSelectionChange||_(e)||b(e))}function u(e){var t=e.touches;if(!t||0===t.length)return!0;for(var n=0;n=0,"Ended a touch event which was not counted in trackedTouchCount.")),m.recordTouchTrack(e,r);var o=s(e,n)?a(e,n,r):null,i=w&&_(e),l=w&&b(e),h=w&&S(e),d=i?O.responderStart:l?O.responderMove:h?O.responderEnd:null;if(d){var y=f.getPooled(d,w,r);y.touchHistory=m.touchHistory,p.accumulateDirectDispatches(y),o=v(o,y)}var R=w&&e===c.topLevelTypes.topTouchCancel,E=w&&!R&&S(e)&&u(r),T=R?O.responderTerminate:E?O.responderRelease:null;if(T){var N=f.getPooled(T,w,r);N.touchHistory=m.touchHistory,p.accumulateDirectDispatches(N),o=v(o,N),x(null)}var D=m.touchHistory.numberActiveTouches;return P.GlobalInteractionHandler&&D!==I&&P.GlobalInteractionHandler.onChange(D),I=D,o},GlobalResponderHandler:null,GlobalInteractionHandler:null,injection:{injectGlobalResponderHandler:function(e){P.GlobalResponderHandler=e},injectGlobalInteractionHandler:function(e){P.GlobalInteractionHandler=e}}};o.exports=P}),__d("ResponderSyntheticEvent",["SyntheticEvent"],function(e,t,n,r,o,i){"use strict";function a(e,t,n){s.call(this,e,t,n)}var s=t("SyntheticEvent"),u={touchHistory:function(e){return null}};s.augmentClass(a,u),o.exports=a}),__d("ResponderTouchHistoryStore",["EventPluginUtils","invariant"],function(e,t,n,r,o,i){"use strict";var a=t("EventPluginUtils"),s=t("invariant"),u=a.isMoveish,c=a.isStartish,l=a.isEndish,p=20,h={touchBank:[],numberActiveTouches:0,indexOfSingleActiveTouch:-1,mostRecentTimeStamp:0},d=function(e){return e.timeStamp||e.timestamp},f=function(e){return{touchActive:!0,startTimeStamp:d(e),startPageX:e.pageX,startPageY:e.pageY,currentPageX:e.pageX,currentPageY:e.pageY,currentTimeStamp:d(e),previousPageX:e.pageX,previousPageY:e.pageY,previousTimeStamp:d(e)}},m=function(e,t){e.touchActive=!0,e.startTimeStamp=d(t),e.startPageX=t.pageX,e.startPageY=t.pageY,e.currentPageX=t.pageX,e.currentPageY=t.pageY,e.currentTimeStamp=d(t),e.previousPageX=t.pageX,e.previousPageY=t.pageY,e.previousTimeStamp=d(t)},v=function(e){var t=e.identifier;s(null!=t,"Touch object is missing identifier"),t>p&&console.warn("Touch identifier "+t+" is greater than maximum supported "+p+" which causes performance issues backfilling array locations for all of the indices.")},g=function(e){var t=h.touchBank,n=e.identifier,r=t[n];__DEV__&&v(e),r?m(r,e):t[e.identifier]=f(e),h.mostRecentTimeStamp=d(e)},y=function(e){var t=h.touchBank,n=t[e.identifier];__DEV__&&(v(e),s(n,"Touch data should have been recorded on start")),n.touchActive=!0,n.previousPageX=n.currentPageX,n.previousPageY=n.currentPageY,n.previousTimeStamp=n.currentTimeStamp,n.currentPageX=e.pageX,n.currentPageY=e.pageY,n.currentTimeStamp=d(e),h.mostRecentTimeStamp=d(e)},_=function(e){var t=h.touchBank,n=t[e.identifier];__DEV__&&(v(e),s(n,"Touch data should have been recorded on start")),n.previousPageX=n.currentPageX,n.previousPageY=n.currentPageY,n.previousTimeStamp=n.currentTimeStamp,n.currentPageX=e.pageX,n.currentPageY=e.pageY,n.currentTimeStamp=d(e),n.touchActive=!1,h.mostRecentTimeStamp=d(e)},b={recordTouchTrack:function(e,t){var n=h.touchBank;if(u(e))t.changedTouches.forEach(y);else if(c(e))t.changedTouches.forEach(g),h.numberActiveTouches=t.touches.length,1===h.numberActiveTouches&&(h.indexOfSingleActiveTouch=t.touches[0].identifier);else if(l(e)&&(t.changedTouches.forEach(_),h.numberActiveTouches=t.touches.length,1===h.numberActiveTouches)){for(var r=0;rr;r++)n[r]=r;return R._cache[e]=n,n};R._cache={},S.Mixin={getPublicInstance:function(){return this},construct:function(e){this._currentElement=e},unmountComponent:function(){b(this._rootNodeID),this.unmountChildren(),this._rootNodeID=null},initializeChildren:function(e,t,n,r){var o=this.mountChildren(e,n,r);if(o.length){for(var i=R(o.length),a=[],s=0;s-1?t:t*Math.PI/180}function l(e,t,n){m(!t.getValue,"You passed an Animated.Value to a normal component. You need to wrap that component in an Animated. For example, replace by .");var r=["matrix","translate"];switch(-1!==r.indexOf(e)&&m(Array.isArray(t),"Transform with key of %s must have an array as the value: %s",e,v(n)),e){case"matrix":m(9===t.length||16===t.length,"Matrix transform must have a length of 9 (2d) or 16 (3d). Provided matrix has a length of %s: %s",t.length,v(n));break;case"translate":break;case"rotateX":case"rotateY":case"rotateZ":case"rotate":m("string"==typeof t,'Transform with key of "%s" must be a string: %s',e,v(n)),m(t.indexOf("deg")>-1||t.indexOf("rad")>-1,"Rotate transform must be expressed in degrees (deg) or radians (rad): %s",v(n));break;default:m("number"==typeof t,'Transform with key of "%s" must be a number: %s',e,v(n))}}var p=Object.assign||function(e){for(var t=1;t.49999*d?[0,2*Math.atan2(r,a)*f,90]:-.49999*d>h?[0,-2*Math.atan2(r,a)*f,-90]:[s.roundTo3Places(Math.atan2(2*r*a-2*o*i,1-2*c-2*p)*f),s.roundTo3Places(Math.atan2(2*o*a-2*r*i,1-2*l-2*p)*f),s.roundTo3Places(Math.asin(2*r*o+2*i*a)*f)]},roundTo3Places:function(e){var t=e.toString().split("e");return.001*Math.round(t[0]+"e"+(t[1]?+t[1]-3:3))},decomposeMatrix:function(e){a(16===e.length,"Matrix decomposition needs a list of 3d matrix values, received %s",e);var t=[],n=[],r=[],o=[],i=[];if(e[15]){for(var u=[],c=[],l=0;4>l;l++){u.push([]);for(var p=0;4>p;p++){var h=e[4*l+p]/e[15];u[l].push(h),c.push(3===p?0:h)}}if(c[15]=1,s.determinant(c)){if(0!==u[0][3]||0!==u[1][3]||0!==u[2][3])var d=[u[0][3],u[1][3],u[2][3],u[3][3]],f=s.inverse3x3(c),m=s.transpose4x4(f),t=s.multiplyVectorByMatrix(d,m);else t[0]=t[1]=t[2]=0,t[3]=1;for(var l=0;3>l;l++)i[l]=u[3][l];var v=[];for(l=0;3>l;l++)v[l]=[u[l][0],u[l][1],u[l][2]];r[0]=s.v3Length(v[0]),v[0]=s.v3Normalize(v[0],r[0]),o[0]=s.v3Dot(v[0],v[1]),v[1]=s.v3Combine(v[1],v[0],1,-o[0]),o[0]=s.v3Dot(v[0],v[1]),v[1]=s.v3Combine(v[1],v[0],1,-o[0]),r[1]=s.v3Length(v[1]),v[1]=s.v3Normalize(v[1],r[1]),o[0]/=r[1],o[1]=s.v3Dot(v[0],v[2]),v[2]=s.v3Combine(v[2],v[0],1,-o[1]),o[2]=s.v3Dot(v[1],v[2]),v[2]=s.v3Combine(v[2],v[1],1,-o[2]),r[2]=s.v3Length(v[2]),v[2]=s.v3Normalize(v[2],r[2]),o[1]/=r[2],o[2]/=r[2];var g=s.v3Cross(v[1],v[2]);if(s.v3Dot(v[0],g)<0)for(l=0;3>l;l++)r[l]*=-1,v[l][0]*=-1,v[l][1]*=-1,v[l][2]*=-1;n[0]=.5*Math.sqrt(Math.max(1+v[0][0]-v[1][1]-v[2][2],0)),n[1]=.5*Math.sqrt(Math.max(1-v[0][0]+v[1][1]-v[2][2],0)),n[2]=.5*Math.sqrt(Math.max(1-v[0][0]-v[1][1]+v[2][2],0)),n[3]=.5*Math.sqrt(Math.max(1+v[0][0]+v[1][1]+v[2][2],0)),v[2][1]>v[1][2]&&(n[0]=-n[0]),v[0][2]>v[2][0]&&(n[1]=-n[1]),v[1][0]>v[0][1]&&(n[2]=-n[2]);var y;return y=n[0]<.001&&n[0]>=0&&n[1]<.001&&n[1]>=0?[0,0,s.roundTo3Places(180*Math.atan2(v[0][1],v[0][0])/Math.PI)]:s.quaternionToDegreesXYZ(n,u,v),{rotationDegrees:y,perspective:t,quaternion:n,scale:r,skew:o,translation:i,rotate:y[2],scaleX:r[0],scaleY:r[1],translateX:i[0],translateY:i[1]}}}}};o.exports=s}),__d("deepFreezeAndThrowOnMutationInDev",[],function(e,t,n,r,o,i){"use strict";function a(e){if(__DEV__){if("object"!=typeof e||null===e||Object.isFrozen(e)||Object.isSealed(e))return;for(var t in e)e.hasOwnProperty(t)&&(e.__defineGetter__(t,u.bind(null,e[t])),e.__defineSetter__(t,s.bind(null,t)),a(e[t]));Object.freeze(e),Object.seal(e)}}function s(e,t){throw Error("You attempted to set the key `"+e+"` with the value `"+JSON.stringify(t)+"` on an object that is meant to be immutable and has been frozen.")}function u(e){return e}o.exports=a}),__d("ReactNativeEventEmitter",["EventPluginHub","ReactEventEmitterMixin","ReactNativeTagHandles","NodeHandle","EventConstants","merge","warning"],function(e,t,n,r,o,i){"use strict";var a=t("EventPluginHub"),s=t("ReactEventEmitterMixin"),u=t("ReactNativeTagHandles"),c=t("NodeHandle"),l=t("EventConstants"),p=t("merge"),h=t("warning"),d=l.topLevelTypes,f={},m=function(e,t){for(var n=[],r=0;r>",w={array:s("array"),bool:s("boolean"),func:s("function"),number:s("number"),object:s("object"),string:s("string"),any:u(),arrayOf:c,element:l(),instanceOf:p,node:m(),objectOf:d,oneOf:h,oneOfType:f,shape:v};o.exports=w}),__d("TransformPropTypes",["ReactPropTypes"],function(e,t,n,r,o,i){"use strict";var a=t("ReactPropTypes"),s={transform:a.arrayOf(a.oneOfType([a.shape({perspective:a.number}),a.shape({rotate:a.string}),a.shape({rotateX:a.string}),a.shape({rotateY:a.string}),a.shape({rotateZ:a.string}),a.shape({scale:a.number}),a.shape({scaleX:a.number}),a.shape({scaleY:a.number}),a.shape({translateX:a.number}),a.shape({translateY:a.number})])),transformMatrix:a.arrayOf(a.number),rotation:a.number,scaleX:a.number,scaleY:a.number,translateX:a.number,translateY:a.number};o.exports=s}),__d("TextStylePropTypes",["ReactPropTypes","ViewStylePropTypes"],function(e,t,n,r,o,i){"use strict";for(var a=t("ReactPropTypes"),s=t("ViewStylePropTypes"),u=Object.assign(Object.create(s),{color:a.string,fontFamily:a.string,fontSize:a.number,fontStyle:a.oneOf(["normal","italic"]),fontWeight:a.oneOf(["normal","bold","100","200","300","400","500","600","700","800","900"]),letterSpacing:a.number,lineHeight:a.number,textAlign:a.oneOf(["auto","left","right","center","justify"]),textDecorationLine:a.oneOf(["none","underline","line-through","underline line-through"]),textDecorationStyle:a.oneOf(["solid","double","dotted","dashed"]),textDecorationColor:a.string,writingDirection:a.oneOf(["auto","ltr","rtl"])}),c=Object.keys({padding:null,paddingTop:null,paddingLeft:null,paddingRight:null,paddingBottom:null,paddingVertical:null,paddingHorizontal:null}),l=0;lr;r++)if(a(e[r],t[r]))return!0}else{for(var o in e)if(a(e[o],t[o]))return!0;for(var i in t)if(void 0===e[i]&&void 0!==t[i])return!0}return!1};o.exports=a}),__d("diffRawProperties",["deepDiffer"],function(e,t,n,r,o,i){"use strict";function a(e,t,n,r){var o,i,a,u,c,l;if(n)for(var p in n)o=r[p],o&&(a=t&&t[p],i=n[p],"function"==typeof a&&(a=!0),"function"==typeof i&&(i=!0),a!==i&&(l=o.diff||s,u="object"!=typeof i||null===i,c=u||!a||l(a,i),c&&(e=e||{},e[p]=i)));if(t)for(var p in t)o=r[p],o&&(e&&void 0!==e[p]||(a=t[p],i=n&&n[p],"function"==typeof a&&(a=!0),"function"==typeof i&&(i=!0),a!==i&&(void 0===i&&(i=null),l=o.diff||s,u="object"!=typeof i||null===i,c=u&&a!==i||l(a,i),c&&(e=e||{},e[p]=i))));return e}var s=t("deepDiffer");o.exports=a}),__d("RCTEventEmitter",["ReactNativeEventEmitter"],function(e,t,n,r,o,i){"use strict";var a=t("ReactNativeEventEmitter");o.exports=a}),__d("RCTLog",["invariant"],function(e,t,n,r,o,i){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var s=function(){function e(e,t){for(var n=0;n=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}var s=t("NativeMethodsMixin"),u=t("ReactPropTypes"),c=t("React"),l=t("StyleSheet"),p=t("View"),h=t("requireNativeComponent"),d="#999999",f=c.createClass({displayName:"ActivityIndicatorIOS",mixins:[s],propTypes:{animating:u.bool,color:u.string,hidesWhenStopped:u.bool,size:u.oneOf(["small","large"]),onLayout:u.func},getDefaultProps:function(){return{animating:!0,color:d,hidesWhenStopped:!0,size:"small"}},render:function(){var e=this.props,t=e.onLayout,n=e.style,r=a(e,["onLayout","style"]),o="large"===this.props.size?m.sizeLarge:m.sizeSmall;return c.createElement(p,{onLayout:t,style:[m.container,o,n]},c.createElement(v,r))}}),m=l.create({container:{alignItems:"center",justifyContent:"center"},sizeSmall:{width:20,height:20},sizeLarge:{width:36,height:36}}),v=h("RCTActivityIndicatorView",f,{nativeOnly:{activityIndicatorViewStyle:!0}});o.exports=f}),__d("StyleSheet",["StyleSheetRegistry","StyleSheetValidation"],function(e,t,n,r,o,i){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var s=function(){function e(e,t){for(var n=0;n>")+": "+JSON.stringify(t,null," ")+(r||""))},m={};d.addValidStylePropTypes(u),d.addValidStylePropTypes(l),d.addValidStylePropTypes(p),o.exports=d}),__d("View",["NativeMethodsMixin","ReactPropTypes","NativeModules","React","ReactNativeStyleAttributes","ReactNativeViewAttributes","StyleSheetPropType","ViewStylePropTypes","createReactNativeComponentClass"],function(e,t,n,r,o,i){"use strict";var a=t("NativeMethodsMixin"),s=t("ReactPropTypes"),u=t("NativeModules").UIManager,c=t("React"),l=t("ReactNativeStyleAttributes"),p=t("ReactNativeViewAttributes"),h=t("StyleSheetPropType"),d=t("ViewStylePropTypes"),f=t("createReactNativeComponentClass"),m=h(d),v=["none","button","link","header","search","image","selected","plays","key","text","summary","disabled","frequentUpdates","startsMedia","adjustable","allowsDirectInteraction","pageTurn"],g=c.createClass({displayName:"View",mixins:[a],viewConfig:{uiViewClassName:"RCTView",validAttributes:p.RCTView},propTypes:{accessible:s.bool,accessibilityLabel:s.string,accessibilityTraits:s.oneOfType([s.oneOf(v),s.arrayOf(s.oneOf(v))]),onAcccessibilityTap:s.func,onMagicTap:s.func,testID:s.string,onMoveShouldSetResponder:s.func,onResponderGrant:s.func,onResponderMove:s.func,onResponderReject:s.func,onResponderRelease:s.func,onResponderTerminate:s.func,onResponderTerminationRequest:s.func,onStartShouldSetResponder:s.func,onStartShouldSetResponderCapture:s.func,onLayout:s.func,pointerEvents:s.oneOf(["box-none","none","box-only","auto"]),style:m,removeClippedSubviews:s.bool,renderToHardwareTextureAndroid:s.bool},render:function(){return c.createElement(y,this.props)}}),y=f({validAttributes:p.RCTView,uiViewClassName:"RCTView"});if(y.propTypes=g.propTypes,__DEV__){var _=u.viewConfigs&&u.viewConfigs.RCTView||{};for(var b in _.nativeProps){var S=g;if(!S.propTypes[b]&&!l[b])throw new Error("View is missing propType for native prop `"+b+"`")}}var R=y;__DEV__&&(R=g),o.exports=R}),__d("ReactNativeViewAttributes",["merge"],function(e,t,n,r,o,i){"use strict";var a=t("merge"),s={};s.UIView={pointerEvents:!0,accessible:!0,accessibilityLabel:!0,accessibilityTraits:!0,testID:!0,onLayout:!0,onAccessibilityTap:!0,onMagicTap:!0},s.RCTView=a(s.UIView,{removeClippedSubviews:!0}),o.exports=s}),__d("StyleSheetPropType",["createStrictShapeTypeChecker","flattenStyle"],function(e,t,n,r,o,i){"use strict";function a(e){var t=s(e);return function(e,n,r,o){var i=e;return e[n]&&(i={},i[n]=u(e[n])),t(i,n,r,o)}}var s=t("createStrictShapeTypeChecker"),u=t("flattenStyle");o.exports=a}),__d("createStrictShapeTypeChecker",["ReactPropTypeLocationNames","invariant","merge"],function(e,t,n,r,o,i){"use strict";function a(e){function t(t,n,r,o,i){if(!n[r])return void(t&&u(!1,"Required object `"+r+"` was not specified in "+("`"+o+"`.")));var a=n[r],l=typeof a,p=i&&s[i]||"(unknown)";"object"!==l&&u(!1,"Invalid "+p+" `"+r+"` of type `"+l+"` "+("supplied to `"+o+"`, expected `object`."));var h=c(n[r],e);for(var d in h){var f=e[d];f||u(!1,"Invalid props."+r+" key `"+d+"` supplied to `"+o+"`.\nBad object: "+JSON.stringify(n[r],null," ")+"\nValid keys: "+JSON.stringify(Object.keys(e),null," "));var m=f(a,d,o,i);m&&u(!1,m.message+"\nBad object: "+JSON.stringify(n[r],null," "))}}function n(e,n,r,o){return t(!1,e,n,r,o)}return n.isRequired=t.bind(null,!0),n}var s=t("ReactPropTypeLocationNames"),u=t("invariant"),c=t("merge");o.exports=a}),__d("requireNativeComponent",["verifyPropTypes","NativeModules","UnimplementedView","createReactNativeComponentClass","insetsDiffer","pointsDiffer","matricesDiffer","sizesDiffer","verifyPropTypes","warning"],function(e,t,n,r,o,i){function a(e,t,n){var r=u[e];if(!r||!r.NativeProps)return v(!1,'Native component for "%s" does not exist',e),c;var o=s({},u.RCTView.NativeProps,r.NativeProps);r.uiViewClassName=e,r.validAttributes={},r.propTypes=t&&t.propTypes;for(var i in o){var a=g[o[i]];r.validAttributes[i]=a?{diff:a}:!0}return __DEV__&&t&&m(t,r,n&&n.nativeOnly),l(r)}var s=Object.assign||function(e){for(var t=1;t=t)return e[n];return e[e.length-1]||1}function h(e){if("object"==typeof e)return e;var t=m.getAssetByID(e);return t?d(t):null}function d(e){var t=a();return t?{width:e.width,height:e.height,uri:u(t,e),isStatic:!1}:{width:e.width,height:e.height,uri:s(e),isStatic:!0}}var f,m=t("AssetRegistry"),v=t("PixelRatio"),g=t("Platform"),y=t("NativeModules").SourceCode;o.exports=h,o.exports.pickScale=p}),__d("AssetRegistry",[],function(e,t,n,r,o,i){"use strict";function a(e){return u.push(e)}function s(e){return u[e-1]}var u=[];o.exports={registerAsset:a,getAssetByID:s}}),__d("PixelRatio",["Dimensions"],function(e,t,n,r,o,i){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var s=function(){function e(e,t){for(var n=0;n=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}var s=Object.assign||function(e){for(var t=1;t=this.state.prevRenderedRowsCount&&t.sectionHeaderShouldUpdate(l);e.push(c.createElement(f,{key:"s_"+p,shouldUpdate:!!d,render:this.props.renderSectionHeader.bind(null,t.getSectionHeaderData(l),p)})),o.push(u++)}for(var m=0;m=this.state.prevRenderedRowsCount&&t.rowShouldUpdate(l,m),_=c.createElement(f,{key:"r_"+g,shouldUpdate:!!y,render:this.props.renderRow.bind(null,t.getRowData(l,m),p,v,this.onRowHighlighted)});if(e.push(_),u++,this.props.renderSeparator&&(m!==h.length-1||l===n.length-1)){var b=this.state.highlightedRow.sectionID===p&&(this.state.highlightedRow.rowID===v||this.state.highlightedRow.rowID===h[m+1]),S=this.props.renderSeparator(p,v,b);e.push(S),u++}if(++r===this.state.curRenderedRowsCount)break}if(r>=this.state.curRenderedRowsCount)break}}var R=this.props,E=R.renderScrollComponent,C=a(R,["renderScrollComponent"]);return C.scrollEventThrottle||(C.scrollEventThrottle=T),Object.assign(C,{onScroll:this._onScroll,stickyHeaderIndices:o,onKeyboardWillShow:void 0,onKeyboardWillHide:void 0,onKeyboardDidShow:void 0,onKeyboardDidHide:void 0}),c.cloneElement(E(C),{ref:w},i,e,s)},_measureAndUpdateScrollProps:function(){var e=this.getScrollResponder();e&&e.getInnerViewNode&&(l.measureLayout(e.getInnerViewNode(),c.findNodeHandle(e),g,this._setScrollContentLength),l.measureLayoutRelativeToParent(c.findNodeHandle(e),g,this._setScrollVisibleLength),p&&p.calculateChildFrames&&p.calculateChildFrames(c.findNodeHandle(e),this._updateChildFrames))},_setScrollContentLength:function(e,t,n,r){this.scrollProperties.contentLength=this.props.horizontal?n:r},_setScrollVisibleLength:function(e,t,n,r){this.scrollProperties.visibleLength=this.props.horizontal?n:r,this._updateVisibleRows(),this._renderMoreRowsIfNeeded()},_updateChildFrames:function(e){this._updateVisibleRows(e)},_renderMoreRowsIfNeeded:function(){if(null!==this.scrollProperties.contentLength&&null!==this.scrollProperties.visibleLength&&this.state.curRenderedRowsCount!==this.props.dataSource.getRowCount()){var e=this._getDistanceFromEnd(this.scrollProperties);ei||o>R?b&&(c=!0,delete f[g],l[d]||(l[d]={}),l[d][g]=!1):b||(c=!0,f[g]=!0,l[d]||(l[d]={}),l[d][g]=!0)}v(f)?this._visibleRows[d]&&delete this._visibleRows[d]:this._visibleRows[d]=f}}c&&this.props.onChangeVisibleRows(this._visibleRows,l)}},_onScroll:function(e){var t=!this.props.horizontal;this.scrollProperties.visibleLength=e.nativeEvent.layoutMeasurement[t?"height":"width"],this.scrollProperties.contentLength=e.nativeEvent.contentSize[t?"height":"width"],this.scrollProperties.offset=e.nativeEvent.contentOffset[t?"y":"x"],this._updateVisibleRows(e.nativeEvent.updatedChildFrames);var n=this._getDistanceFromEnd(this.scrollProperties)=this.rowIdentities[n].length))return this.rowIdentities[n][t];t-=this.rowIdentities[n].length}return null}},{key:"getSectionIDForFlatIndex",value:function(e){for(var t=e,n=0;n=this.rowIdentities[n].length))return this.sectionIdentities[n];t-=this.rowIdentities[n].length}return null}},{key:"getSectionLengths",value:function(){for(var e=[],t=0;t but not `scrollEventThrottle`. You will only receive one event. Using `16` you get all the events but be aware that it may cause frame drops, use a bigger number if you don't need as much precision."),this.scrollResponderHandleScroll(e)},render:function(){var e=[this.props.horizontal&&N.contentContainerHorizontal,this.props.contentContainerStyle];if(__DEV__&&this.props.style){var t=R(this.props.style),n=["alignItems","justifyContent"].filter(function(e){return t&&void 0!==t[e]});T(0===n.length,"ScrollView child layout ("+JSON.stringify(n)+") must by applied through the contentContainerStyle prop.")}var r,o=h.createElement(y,{ref:O,style:e,removeClippedSubviews:this.props.removeClippedSubviews},this.props.children),i=void 0!==this.props.alwaysBounceHorizontal?this.props.alwaysBounceHorizontal:this.props.horizontal,s=void 0!==this.props.alwaysBounceVertical?this.props.alwaysBounceVertical:!this.props.horizontal,c=a({},this.props,{alwaysBounceHorizontal:i,alwaysBounceVertical:s,style:[N.base,this.props.style],onTouchStart:this.scrollResponderHandleTouchStart,onTouchMove:this.scrollResponderHandleTouchMove,onTouchEnd:this.scrollResponderHandleTouchEnd,onScrollBeginDrag:this.scrollResponderHandleScrollBeginDrag,onScrollEndDrag:this.scrollResponderHandleScrollEndDrag,onMomentumScrollBegin:this.scrollResponderHandleMomentumScrollBegin,onMomentumScrollEnd:this.scrollResponderHandleMomentumScrollEnd,onStartShouldSetResponder:this.scrollResponderHandleStartShouldSetResponder,onStartShouldSetResponderCapture:this.scrollResponderHandleStartShouldSetResponderCapture,onScrollShouldSetResponder:this.scrollResponderHandleScrollShouldSetResponder,onScroll:this.handleScroll,onResponderGrant:this.scrollResponderHandleResponderGrant,onResponderTerminationRequest:this.scrollResponderHandleTerminationRequest,onResponderTerminate:this.scrollResponderHandleTerminate,onResponderRelease:this.scrollResponderHandleResponderRelease,onResponderReject:this.scrollResponderHandleResponderReject});if("ios"===u.OS)r=l;else if("android"===u.OS){r=this.props.horizontal?k:M;var d={none:p.KeyboardDismissMode.None,interactive:p.KeyboardDismissMode.Interactive,"on-drag":p.KeyboardDismissMode.OnDrag};c.keyboardDismissMode=c.keyboardDismissMode?d[c.keyboardDismissMode]:void 0}return T(void 0!==r,"ScrollViewClass must not be undefined"),h.createElement(r,a({},c,{ref:x}),o)}}),N=v.create({base:{flex:1},contentContainerHorizontal:{alignSelf:"flex-start",flexDirection:"row"}}),D=a({},d.UIView,{alwaysBounceHorizontal:!0,alwaysBounceVertical:!0,automaticallyAdjustContentInsets:!0,bounces:!0,centerContent:!0,contentInset:{diff:E},contentOffset:{diff:w},decelerationRate:!0,horizontal:!0,keyboardDismissMode:!0,keyboardShouldPersistTaps:!0,maximumZoomScale:!0,minimumZoomScale:!0,pagingEnabled:!0,removeClippedSubviews:!0,scrollEnabled:!0,scrollIndicatorInsets:{diff:E},scrollsToTop:!0,showsHorizontalScrollIndicator:!0,showsVerticalScrollIndicator:!0,stickyHeaderIndices:{diff:S},scrollEventThrottle:!0,zoomScale:!0});if("android"===u.OS)var M=b({validAttributes:D,uiViewClassName:"RCTScrollView"}),k=b({validAttributes:D,uiViewClassName:"AndroidHorizontalScrollView"});else if("ios"===u.OS)var l=C("RCTScrollView",P);o.exports=P}),__d("PointPropType",["ReactPropTypes","createStrictShapeTypeChecker"],function(e,t,n,r,o,i){"use strict";var a=t("ReactPropTypes"),s=t("createStrictShapeTypeChecker"),u=s({x:a.number,y:a.number});o.exports=u}),__d("ScrollResponder",["NativeModules","Platform","RCTDeviceEventEmitter","React","Subscribable","TextInputState","warning"],function(e,t,n,r,o,i){"use strict";var a=t("NativeModules"),s=t("Platform"),u=t("RCTDeviceEventEmitter"),c=t("React"),l=t("Subscribable"),p=t("TextInputState"),h=a.UIManager,d=h.RCTScrollView.Constants,f=t("warning"),m=16,v={mixins:[l.Mixin],statics:d,scrollResponderMixinGetInitialState:function(){return{isTouching:!1,lastMomentumScrollBeginTime:0,lastMomentumScrollEndTime:0,observedScrollSinceBecomingResponder:!1,becameResponderWhileAnimating:!1}},scrollResponderHandleScrollShouldSetResponder:function(){return this.state.isTouching},scrollResponderHandleStartShouldSetResponder:function(){return!1},scrollResponderHandleStartShouldSetResponderCapture:function(e){var t=p.currentlyFocusedField();return this.props.keyboardShouldPersistTaps||null==t||e.target===t?this.scrollResponderIsAnimating():!0},scrollResponderHandleResponderReject:function(){f(!1,"ScrollView doesn't take rejection well - scrolls anyway")},scrollResponderHandleTerminationRequest:function(){return!this.state.observedScrollSinceBecomingResponder},scrollResponderHandleTouchEnd:function(e){var t=e.nativeEvent;this.state.isTouching=0!==t.touches.length,this.props.onTouchEnd&&this.props.onTouchEnd(e)},scrollResponderHandleResponderRelease:function(e){this.props.onResponderRelease&&this.props.onResponderRelease(e);var t=p.currentlyFocusedField();this.props.keyboardShouldPersistTaps||null==t||e.target===t||this.state.observedScrollSinceBecomingResponder||this.state.becameResponderWhileAnimating||(this.props.onScrollResponderKeyboardDismissed&&this.props.onScrollResponderKeyboardDismissed(e),p.blurTextInput(t))},scrollResponderHandleScroll:function(e){this.state.observedScrollSinceBecomingResponder=!0,this.props.onScroll&&this.props.onScroll(e)},scrollResponderHandleResponderGrant:function(e){this.state.observedScrollSinceBecomingResponder=!1,this.props.onResponderGrant&&this.props.onResponderGrant(e),this.state.becameResponderWhileAnimating=this.scrollResponderIsAnimating()},scrollResponderHandleScrollBeginDrag:function(e){this.props.onScrollBeginDrag&&this.props.onScrollBeginDrag(e)},scrollResponderHandleScrollEndDrag:function(e){this.props.onScrollEndDrag&&this.props.onScrollEndDrag(e)},scrollResponderHandleMomentumScrollBegin:function(e){this.state.lastMomentumScrollBeginTime=Date.now(),this.props.onMomentumScrollBegin&&this.props.onMomentumScrollBegin(e)},scrollResponderHandleMomentumScrollEnd:function(e){this.state.lastMomentumScrollEndTime=Date.now(),this.props.onMomentumScrollEnd&&this.props.onMomentumScrollEnd(e)},scrollResponderHandleTouchStart:function(e){this.state.isTouching=!0,this.props.onTouchStart&&this.props.onTouchStart(e)},scrollResponderHandleTouchMove:function(e){this.props.onTouchMove&&this.props.onTouchMove(e)},scrollResponderIsAnimating:function(){var e=Date.now(),t=e-this.state.lastMomentumScrollEndTime,n=m>t||this.state.lastMomentumScrollEndTime=1,"Navigator requires props.initialRoute or props.initialRouteStack.");var n=t.length-1;return this.props.initialRoute&&(n=t.indexOf(this.props.initialRoute),w(-1!==n,"initialRoute is not in initialRouteStack.")),{sceneConfigStack:t.map(function(t){return e.props.configureScene(t)}),routeStack:t,presentedIndex:n,transitionFromIndex:null,activeGesture:null,pendingGestureProgress:null,transitionQueue:[]}},componentWillMount:function(){var e=this;this.__defineGetter__("navigationContext",this._getNavigationContext),this._subRouteFocus=[],this.parentNavigator=this.props.navigator,this._handlers={},this.springSystem=new C.SpringSystem,this.spring=this.springSystem.createSpring(),this.spring.setRestSpeedThreshold(.05),this.spring.setCurrentValue(0).setAtRest(),this.spring.addListener({onSpringEndStateChange:function(){e._interactionHandle||(e._interactionHandle=e.createInteractionHandle())},onSpringUpdate:function(){e._handleSpringUpdate()},onSpringAtRest:function(){e._completeTransition()}}),this.panGesture=g.create({onMoveShouldSetPanResponder:this._handleMoveShouldSetPanResponder,onPanResponderGrant:this._handlePanResponderGrant,onPanResponderRelease:this._handlePanResponderRelease,onPanResponderMove:this._handlePanResponderMove,onPanResponderTerminate:this._handlePanResponderTerminate}),this._interactionHandle=null,this._emitWillFocus(this.state.routeStack[this.state.presentedIndex])},componentDidMount:function(){this._handleSpringUpdate(),this._emitDidFocus(this.state.routeStack[this.state.presentedIndex])},componentWillUnmount:function(){this._navigationContext&&(this._navigationContext.dispose(),this._navigationContext=null)},immediatelyResetRouteStack:function(e){var t=this,n=e.length-1;this.setState({routeStack:e,sceneConfigStack:e.map(this.props.configureScene),presentedIndex:n,activeGesture:null,transitionFromIndex:null,transitionQueue:[]},function(){t._handleSpringUpdate()})},_transitionTo:function(e,t,n,r){if(e!==this.state.presentedIndex){if(null!==this.state.transitionFromIndex)return void this.state.transitionQueue.push({destIndex:e,velocity:t,cb:r});this.state.transitionFromIndex=this.state.presentedIndex,this.state.presentedIndex=e,this.state.transitionCb=r,this._onAnimationStart(),c&&c.startRecordingFps();var o=this.state.sceneConfigStack[this.state.transitionFromIndex]||this.state.sceneConfigStack[this.state.presentedIndex];w(o,"Cannot configure scene at index "+this.state.transitionFromIndex),null!=n&&this.spring.setCurrentValue(n),this.spring.setOvershootClampingEnabled(!0),this.spring.getSpringConfig().friction=o.springFriction,this.spring.getSpringConfig().tension=o.springTension,this.spring.setVelocity(t||o.defaultTransitionVelocity),this.spring.setEndValue(1)}},_handleSpringUpdate:function(){if(null!=this.state.transitionFromIndex)this._transitionBetween(this.state.transitionFromIndex,this.state.presentedIndex,this.spring.getCurrentValue());else if(null!=this.state.activeGesture){var e=this.state.presentedIndex+this._deltaForGestureAction(this.state.activeGesture);this._transitionBetween(this.state.presentedIndex,e,this.spring.getCurrentValue())}},_completeTransition:function(){if(1!==this.spring.getCurrentValue()&&0!==this.spring.getCurrentValue())return void(this.state.pendingGestureProgress&&(this.state.pendingGestureProgress=null));this._onAnimationEnd();var e=this.state.presentedIndex,t=this._subRouteFocus[e]||this.state.routeStack[e];if(this._emitDidFocus(t),c&&c.stopRecordingFps(Date.now()),this.state.transitionFromIndex=null,this.spring.setCurrentValue(0).setAtRest(),this._hideScenes(),this.state.transitionCb&&(this.state.transitionCb(),this.state.transitionCb=null),this._interactionHandle&&(this.clearInteractionHandle(this._interactionHandle),this._interactionHandle=null),this.state.pendingGestureProgress){var n=this.state.presentedIndex+this._deltaForGestureAction(this.state.activeGesture);return this._enableScene(n),void this.spring.setEndValue(this.state.pendingGestureProgress)}if(this.state.transitionQueue.length){var r=this.state.transitionQueue.shift();this._enableScene(r.destIndex),this._emitWillFocus(this.state.routeStack[r.destIndex]),this._transitionTo(r.destIndex,r.velocity,null,r.cb)}},_emitDidFocus:function(e){this.navigationContext.emit("didfocus",{route:e}),this.props.onDidFocus&&this.props.onDidFocus(e)},_emitWillFocus:function(e){this.navigationContext.emit("willfocus",{route:e});var t=this._navBar;t&&t.handleWillFocus&&t.handleWillFocus(e),this.props.onWillFocus&&this.props.onWillFocus(e)},_hideScenes:function(){var e=null;this.state.activeGesture&&(e=this.state.presentedIndex+this._deltaForGestureAction(this.state.activeGesture));for(var t=0;t=t;t++)this._setRenderSceneToHarwareTextureAndroid(t,!1);var n=this._navBar;n&&n.onAnimationEnd&&n.onAnimationEnd()},_setRenderSceneToHarwareTextureAndroid:function(e,t){var n=this.refs["scene_"+e];null!==n&&void 0!==n&&n.setNativeProps({renderToHardwareTextureAndroid:t})},_handleTouchStart:function(){this._eligibleGestures=M},_handleMoveShouldSetPanResponder:function(e,t){var n=this.state.sceneConfigStack[this.state.presentedIndex];return this._expectingGestureGrant=this._matchGestureAction(this._eligibleGestures,n.gestures,t),!!this._expectingGestureGrant},_doesGestureOverswipe:function(e){var t=this.state.presentedIndex<=0&&("pop"===e||"jumpBack"===e),n=this.state.presentedIndex>=this.state.routeStack.length-1&&"jumpForward"===e;return n||t},_handlePanResponderGrant:function(e,t){w(this._expectingGestureGrant,"Responder granted unexpectedly."),this._attachGesture(this._expectingGestureGrant),this._onAnimationStart(),this._expectingGestureGrant=null},_deltaForGestureAction:function(e){switch(e){case"pop":case"jumpBack":return-1;case"jumpForward":return 1;default:return void w(!1,"Unsupported gesture action "+e)}},_handlePanResponderRelease:function(e,t){var n=this,r=this.state.sceneConfigStack[this.state.presentedIndex],o=this.state.activeGesture;if(o){var i=r.gestures[o],a=this.state.presentedIndex+this._deltaForGestureAction(this.state.activeGesture);if(0===this.spring.getCurrentValue())return this.spring.setCurrentValue(0).setAtRest(),void this._completeTransition();var s,u,c="top-to-bottom"===i.direction||"bottom-to-top"===i.direction,l="right-to-left"===i.direction||"bottom-to-top"===i.direction;c?(s=l?-t.vy:t.vy,u=l?-t.dy:t.dy):(s=l?-t.vx:t.vx,u=l?-t.dx:t.dx);var p=E(-10,s,10);if(Math.abs(s)i.fullDistance*i.stillCompletionRatio;p=h?i.snapVelocity:-i.snapVelocity}if(0>p||this._doesGestureOverswipe(o)){if(null==this.state.transitionFromIndex){var d=this.state.presentedIndex;this.state.presentedIndex=a,this._transitionTo(d,-p,1-this.spring.getCurrentValue())}}else this._emitWillFocus(this.state.routeStack[a]),this._transitionTo(a,p,null,function(){"pop"===o&&n._cleanScenesPastIndex(a)});this._detachGesture()}},_handlePanResponderTerminate:function(e,t){var n=this.state.presentedIndex+this._deltaForGestureAction(this.state.activeGesture);this._detachGesture();var r=this.state.presentedIndex;this.state.presentedIndex=n,this._transitionTo(r,null,1-this.spring.getCurrentValue())},_attachGesture:function(e){this.state.activeGesture=e;var t=this.state.presentedIndex+this._deltaForGestureAction(this.state.activeGesture);this._enableScene(t)},_detachGesture:function(){this.state.activeGesture=null,this.state.pendingGestureProgress=null,this._hideScenes()},_handlePanResponderMove:function(e,t){var n=this.state.sceneConfigStack[this.state.presentedIndex];if(this.state.activeGesture){var r=n.gestures[this.state.activeGesture];return this._moveAttachedGesture(r,t)}var o=this._matchGestureAction(M,n.gestures,t);o&&this._attachGesture(o)},_moveAttachedGesture:function(e,t){var n="top-to-bottom"===e.direction||"bottom-to-top"===e.direction,r="right-to-left"===e.direction||"bottom-to-top"===e.direction,o=n?t.dy:t.dx;o=r?-o:o;var i=e.gestureDetectMovement,a=(o-i)/(e.fullDistance-i);if(0>a&&e.isDetachable){var s=this.state.presentedIndex+this._deltaForGestureAction(this.state.activeGesture);return this._transitionBetween(this.state.presentedIndex,s,0),this._detachGesture(),void(null!=this.state.pendingGestureProgress&&this.spring.setCurrentValue(0))}if(this._doesGestureOverswipe(this.state.activeGesture)){var u=e.overswipe.frictionConstant,c=e.overswipe.frictionByDistance,l=1/(u+Math.abs(a)*c);a*=l}a=E(0,a,1),null!=this.state.transitionFromIndex?this.state.pendingGestureProgress=a:this.state.pendingGestureProgress?this.spring.setEndValue(a):this.spring.setCurrentValue(a)},_matchGestureAction:function(e,t,n){var r=this;if(!t)return null;var o=null;return e.some(function(e,i){var a=t[e];if(a){if(null==a.overswipe&&r._doesGestureOverswipe(e))return!1;var s="top-to-bottom"===a.direction||"bottom-to-top"===a.direction,u="right-to-left"===a.direction||"bottom-to-top"===a.direction,c=s?n.moveY:n.moveX,l=s?n.dy:n.dx,p=s?n.dx:n.dy,h=a.edgeHitWidth;u&&(c=-c,l=-l,p=-p,h=s?-(O-h):-(x-h));var d=null==a.edgeHitWidth||h>c;if(!d)return!1;var f=l>=a.gestureDetectMovement;if(!f)return!1;var m=Math.abs(l)>Math.abs(p)*a.directionRatio;return m?(o=e,!0):void(r._eligibleGestures=r._eligibleGestures.slice().splice(i,1))}}),o},_transitionSceneStyle:function(e,t,n,r){var o=this.refs["scene_"+r];if(null!==o&&void 0!==o){var i=t>e?t:e,a=this.state.sceneConfigStack[i];a||(a=this.state.sceneConfigStack[i-1]);var s={},u=e>r||t>r?a.animationInterpolators.out:a.animationInterpolators.into,c=t>e?n:1-n,l=u(s,c);l&&o.setNativeProps({style:s})}},_transitionBetween:function(e,t,n){this._transitionSceneStyle(e,t,n,e),this._transitionSceneStyle(e,t,n,t);var r=this._navBar;r&&r.updateProgress&&t>=0&&e>=0&&r.updateProgress(n,e,t)},_handleResponderTerminationRequest:function(){return!1},_getDestIndexWithinBounds:function(e){var t=this.state.presentedIndex,n=t+e;w(n>=0,"Cannot jump before the first route.");var r=this.state.routeStack.length-1;return w(r>=n,"Cannot jump past the last route."),n},_jumpN:function(e){var t=this._getDestIndexWithinBounds(e);this._enableScene(t),this._emitWillFocus(this.state.routeStack[t]),this._transitionTo(t)},jumpTo:function(e){var t=this.state.routeStack.indexOf(e);w(-1!==t,"Cannot jump to route that is not in the route stack"),this._jumpN(t-this.state.presentedIndex)},jumpForward:function(){this._jumpN(1)},jumpBack:function(){this._jumpN(-1)},push:function(e){var t=this;w(!!e,"Must supply route to push");var n=this.state.presentedIndex+1,r=this.state.routeStack.slice(0,n),o=this.state.sceneConfigStack.slice(0,n),i=r.concat([e]),a=i.length-1,s=o.concat([this.props.configureScene(e)]);this._emitWillFocus(i[a]),this.setState({routeStack:i,sceneConfigStack:s},function(){t._enableScene(a),t._transitionTo(a)})},_popN:function(e){var t=this;if(0!==e){w(this.state.presentedIndex-e>=0,"Cannot pop below zero");var n=this.state.presentedIndex-e;this._enableScene(n),this._emitWillFocus(this.state.routeStack[n]),this._transitionTo(n,null,null,function(){t._cleanScenesPastIndex(n)})}},pop:function(){this._popN(1)},replaceAtIndex:function(e,t,n){var r=this;if(w(!!e,"Must supply route to replace"),0>t&&(t+=this.state.routeStack.length),!(this.state.routeStack.length<=t)){var o=this.state.routeStack.slice(),i=this.state.sceneConfigStack.slice();o[t]=e,i[t]=this.props.configureScene(e),t===this.state.presentedIndex&&this._emitWillFocus(e),this.setState({routeStack:o,sceneConfigStack:i},function(){t===r.state.presentedIndex&&r._emitDidFocus(e),n&&n()})}},replace:function(e){this.replaceAtIndex(e,this.state.presentedIndex)},replacePrevious:function(e){this.replaceAtIndex(e,this.state.presentedIndex-1)},popToTop:function(){this.popToRoute(this.state.routeStack[0])},popToRoute:function(e){var t=this.state.routeStack.indexOf(e);w(-1!==t,"Calling popToRoute for a route that doesn't exist!");var n=this.state.presentedIndex-t;this._popN(n)},replacePreviousAndPop:function(e){this.state.routeStack.length<2||(this.replacePrevious(e),this.pop())},resetTo:function(e){var t=this;w(!!e,"Must supply route to push"),this.replaceAtIndex(e,0,function(){t.state.presentedIndex>0&&t._popN(t.state.presentedIndex)})},getCurrentRoutes:function(){return this.state.routeStack.slice()},_cleanScenesPastIndex:function(e){var t=e+1;t0?(r=this._list.pop(),r.constructor.call(r,e,t,n)):r=new p(e,t,n),r}},{key:"put",value:function(e){this._list.push(e)}}]),e}(),l=new c,p=function(){function e(t,n,r){a(this,e),this._type=t,this._target=n,this._data=r,this._defaultPrevented=!1,this._disposed=!1}return s(e,[{key:"preventDefault",value:function(){this._defaultPrevented=!0}},{key:"dispose",value:function(){u(!this._disposed,"NavigationEvent is already disposed"),this._disposed=!0,this._type=null,this._target=null,this._data=null,this._defaultPrevented=!1,l.put(this)}},{key:"type",get:function(){return this._type}},{key:"target",get:function(){return this._target}},{key:"data",get:function(){return this._data}},{key:"defaultPrevented",get:function(){return this._defaultPrevented}}],[{key:"pool",value:function(e,t,n){return l.get(e,t,n)}}]),e}();o.exports=p}),__d("NavigationEventEmitter",["EventEmitter","NavigationEvent"],function(e,t,n,r,o,i){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;ne?a.Left[e]:a.Right[e]},E=u.createClass({displayName:"NavigatorBreadcrumbNavigationBar",propTypes:{navigator:m.shape({push:m.func,pop:m.func,replace:m.func,popToRoute:m.func,popToTop:m.func}),routeMapper:m.shape({rightContentForRoute:m.func,titleContentForRoute:m.func,iconForRoute:m.func}),navState:u.PropTypes.shape({routeStack:u.PropTypes.arrayOf(u.PropTypes.object),presentedIndex:u.PropTypes.number}),style:l.propTypes.style},statics:{Styles:a},_updateIndexProgress:function(e,t,n,r){var o,i=r>n?e:1-e,a=t-n,s=t-r;d(f[t],"Cannot find breadcrumb interpolators for "+t),o=a>0&&0===s||s>0&&0===a?f[t].RightToCenter:0>a&&0===s||0>s&&0===a?f[t].CenterToLeft:a===s?f[t].RightToCenter:f[t].RightToLeft,o.Crumb(v[t].style,i)&&this.refs["crumb_"+t].setNativeProps(v[t]),o.Icon(g[t].style,i)&&this.refs["icon_"+t].setNativeProps(g[t]),o.Separator(y[t].style,i)&&this.refs["separator_"+t].setNativeProps(y[t]),o.Title(_[t].style,i)&&this.refs["title_"+t].setNativeProps(_[t]);var u=this.refs["right_"+t];u&&o.RightItem(b[t].style,i)&&u.setNativeProps(b[t])},updateProgress:function(e,t,n){for(var r=Math.max(t,n),o=Math.min(t,n),i=o;r>=i;i++)this._updateIndexProgress(e,i,t,n)},onAnimationStart:function(e,t){for(var n=Math.max(e,t),r=Math.min(e,t),o=r;n>=o;o++)this._setRenderViewsToHardwareTextureAndroid(o,!0)},onAnimationEnd:function(){for(var e=this.props.navState.routeStack.length-1,t=0;e>=t;t++)this._setRenderViewsToHardwareTextureAndroid(t,!1)},_setRenderViewsToHardwareTextureAndroid:function(e,t){var n={renderToHardwareTextureAndroid:t};this.refs["icon_"+e].setNativeProps(n),this.refs["separator_"+e].setNativeProps(n),this.refs["title_"+e].setNativeProps(n);var r=this.refs["right_"+e];r&&r.setNativeProps(n)},componentWillMount:function(){this._descriptors={crumb:new h,title:new h,right:new h}},render:function(){var e=this.props.navState,t=e&&e.routeStack.map(this._getBreadcrumb),n=e.routeStack.map(this._getTitle),r=e.routeStack.map(this._getRightButton);return u.createElement(l,{style:[T.breadCrumbContainer,this.props.style]},n,t,r)},_getBreadcrumb:function(e,t){if(this._descriptors.crumb.has(e))return this._descriptors.crumb.get(e);var n=this.props.routeMapper,r=R(t,S(this.props.navState)),o=u.createElement(l,{ref:"crumb_"+t,style:r.Crumb},u.createElement(l,{ref:"icon_"+t,style:r.Icon},n.iconForRoute(e,this.props.navigator)),u.createElement(l,{ref:"separator_"+t,style:r.Separator},n.separatorForRoute(e,this.props.navigator)));return this._descriptors.crumb=this._descriptors.crumb.set(e,o),o},_getTitle:function(e,t){if(this._descriptors.title.has(e))return this._descriptors.title.get(e);var n=this.props.routeMapper.titleContentForRoute(this.props.navState.routeStack[t],this.props.navigator),r=R(t,S(this.props.navState)),o=u.createElement(l,{ref:"title_"+t,style:r.Title},n);return this._descriptors.title=this._descriptors.title.set(e,o),o},_getRightButton:function(e,t){if(this._descriptors.right.has(e))return this._descriptors.right.get(e);var n=this.props.routeMapper.rightContentForRoute(this.props.navState.routeStack[t],this.props.navigator);if(!n)return this._descriptors.right=this._descriptors.right.set(e,null),null;var r=R(t,S(this.props.navState)),o=u.createElement(l,{ref:"right_"+t,style:r.RightItem},n);return this._descriptors.right=this._descriptors.right.set(e,o),o}}),T=c.create({breadCrumbContainer:{overflow:"hidden",position:"absolute",height:s.General.TotalNavHeight,top:0,left:0,right:0}});o.exports=E}),__d("NavigatorBreadcrumbNavigationBarStyles",["Dimensions","NavigatorNavigationBarStyles","buildStyleInterpolator","merge"],function(e,t,n,r,o,i){"use strict";for(var a=t("Dimensions"),s=t("NavigatorNavigationBarStyles"),u=t("buildStyleInterpolator"),c=t("merge"),l=a.get("window").width,p=s.General.StatusBarHeight,h=s.General.NavBarHeight,d=4,f=40,m=9,v=f+m,g=100,y=.6,_=10,b={position:"absolute",flexDirection:"row",top:p,width:v,height:h,backgroundColor:"transparent"},S={width:f,height:h},R={width:m,height:h},E={position:"absolute",top:p,height:h,backgroundColor:"transparent"},T=c(E,{left:0,right:0,alignItems:"center",height:h}),w={position:"absolute",top:p,right:d,overflow:"hidden",opacity:1,height:h,backgroundColor:"transparent"},C=[],I=[],x=[],O=0;_>O;O++){var P=v*O+d;C[O]={Crumb:c(b,{left:P}),Icon:c(S,{opacity:y}),Separator:c(R,{opacity:1}),Title:c(E,{left:P,opacity:0}),RightItem:c(w,{opacity:0})},I[O]={Crumb:c(b,{left:P}),Icon:c(S,{opacity:1}),Separator:c(R,{opacity:0}),Title:c(E,{left:P+f,opacity:1}),RightItem:c(w,{opacity:1})};var N=l-100;x[O]={Crumb:c(b,{left:N}),Icon:c(S,{opacity:0}),Separator:c(R,{opacity:0}),Title:c(E,{left:N+f,opacity:0}),RightItem:c(w,{opacity:0})}}I[0]={Crumb:c(b,{left:l/4}),Icon:c(S,{opacity:0}),Separator:c(R,{opacity:0}),Title:c(T,{opacity:1}),RightItem:I[0].RightItem},C[0].Title=c(T,{left:-l/4,opacity:0}),x[0].Title=c(T,{opacity:0});var D=function(e,t){return{Crumb:u({left:{type:"linear",from:e.Crumb.left,to:t.Crumb.left,min:0,max:1,extrapolate:!0}}),Icon:u({opacity:{type:"linear",from:e.Icon.opacity,to:t.Icon.opacity,min:0,max:1}}),Separator:u({opacity:{type:"linear",from:e.Separator.opacity,to:t.Separator.opacity,min:0,max:1}}),Title:u({opacity:{type:"linear",from:e.Title.opacity,to:t.Title.opacity,min:0,max:1},left:{type:"linear",from:e.Title.left,to:t.Title.left,min:0,max:1,extrapolate:!0}}),RightItem:u({opacity:{type:"linear",from:e.RightItem.opacity,to:t.RightItem.opacity,min:0,max:1,round:g}})}},M=I.map(function(e,t){return{RightToCenter:D(x[t],I[t]),CenterToLeft:D(I[t],C[t]),RightToLeft:D(x[t],C[t])}});o.exports={Interpolators:M,Left:C,Center:I,Right:x,IconWidth:f,IconHeight:h,SeparatorWidth:m,SeparatorHeight:h}}),__d("NavigatorNavigationBarStyles",["Dimensions","buildStyleInterpolator","merge"],function(e,t,n,r,o,i){"use strict";function a(e,t){return{Title:u({opacity:{type:"linear",from:e.Title.opacity,to:t.Title.opacity,min:0,max:1},left:{type:"linear",from:e.Title.left,to:t.Title.left,min:0,max:1,extrapolate:!0}}),LeftButton:u({opacity:{type:"linear",from:e.LeftButton.opacity,to:t.LeftButton.opacity,min:0,max:1,round:v},left:{type:"linear",from:e.LeftButton.left,to:t.LeftButton.left,min:0,max:1}}),RightButton:u({opacity:{type:"linear",from:e.RightButton.opacity,to:t.RightButton.opacity,min:0,max:1,round:v},left:{type:"linear",from:e.RightButton.left,to:t.RightButton.left,min:0,max:1,extrapolate:!0}})}}var s=t("Dimensions"),u=t("buildStyleInterpolator"),c=t("merge"),l=s.get("window").width,p=44,h=20,d=p+h,f={Title:{position:"absolute",top:h,left:0,alignItems:"center",width:l,height:p,backgroundColor:"transparent"},LeftButton:{position:"absolute",top:h,left:0,overflow:"hidden",opacity:1,width:l/3,height:p,backgroundColor:"transparent"},RightButton:{position:"absolute",top:h,left:2*l/3,overflow:"hidden",opacity:1,alignItems:"flex-end",width:l/3,height:p,backgroundColor:"transparent"}},m={Left:{Title:c(f.Title,{left:-l/2,opacity:0}),LeftButton:c(f.LeftButton,{left:-l/3,opacity:1}),RightButton:c(f.RightButton,{left:l/3,opacity:0})},Center:{Title:c(f.Title,{left:0,opacity:1}),LeftButton:c(f.LeftButton,{left:0,opacity:1}),RightButton:c(f.RightButton,{left:2*l/3-0,opacity:1})},Right:{Title:c(f.Title,{left:l/2,opacity:0}),LeftButton:c(f.LeftButton,{left:0,opacity:0}),RightButton:c(f.RightButton,{left:l,opacity:0})}},v=100,g={RightToCenter:a(m.Right,m.Center),CenterToLeft:a(m.Center,m.Left),RightToLeft:a(m.Right,m.Left)};o.exports={General:{NavBarHeight:p,StatusBarHeight:h,TotalNavHeight:d},Interpolators:g,Stages:m}}),__d("buildStyleInterpolator",["keyOf"],function(e,t,n,r,o,i){for(var a=t("keyOf"),s=a({x:null}),u=a({y:null}),c=a({z:null}),l=a({w:null}),p=a({transformRotateRadians:null}),h={transformRotateRadians:!0,transformScale:!0,transformTranslate:!0},d={transformRotateRadians:[0,0,0,1],transformTranslate:[0,0,0],transformScale:[1,1,1]},f=/([^\s,]+)/g,m=function(e,t){var n=e.toString(),r=n.slice(n.indexOf("(")+1,n.indexOf(")")).match(f)||[],o=r.map(function(e){return"\\b"+e+"\\b"}).join("|"),i=new RegExp(o,"g"),a=n.substring(n.indexOf("{")+1,n.lastIndexOf("}")),s=a.replace(i,function(e){var n=r.indexOf(e),o=t[n];return o});return s.split("\n")},v={unroll:function(e,t,n,r,o,i,a,s,u,c,l,p,h,d,f,m,v){t=e[0],n=e[1],r=e[2],o=e[3],i=e[4],a=e[5],s=e[6],u=e[7],c=e[8],l=e[9],p=e[10],h=e[11],d=e[12],f=e[13],m=e[14],v=e[15]},matrixDiffers:function(e,t,n,r,o,i,a,s,u,c,l,p,h,d,f,m,v,g){e=e||n!==t[0]||r!==t[1]||o!==t[2]||i!==t[3]||a!==t[4]||s!==t[5]||u!==t[6]||c!==t[7]||l!==t[8]||p!==t[9]||h!==t[10]||d!==t[11]||f!==t[12]||m!==t[13]||v!==t[14]||g!==t[15]},transformScale:function(e,t){var n=t[0],r=t[1],o=t[2];e[0]=e[0]*n,e[1]=e[1]*n,e[2]=e[2]*n,e[3]=e[3]*n,e[4]=e[4]*r,e[5]=e[5]*r,e[6]=e[6]*r,e[7]=e[7]*r,e[8]=e[8]*o,e[9]=e[9]*o,e[10]=e[10]*o,e[11]=e[11]*o,e[12]=e[12],e[13]=e[13],e[14]=e[14],e[15]=e[15]},transformTranslate:function(e,t){var n=t[0],r=t[1],o=t[2];e[12]=e[0]*n+e[4]*r+e[8]*o+e[12],e[13]=e[1]*n+e[5]*r+e[9]*o+e[13],e[14]=e[2]*n+e[6]*r+e[10]*o+e[14],e[15]=e[3]*n+e[7]*r+e[11]*o+e[15]},transformRotateRadians:function(e,t){var n=t[0],r=t[1],o=t[2],i=t[3],a=n+n,s=r+r,u=o+o,c=n*a,l=n*s,p=n*u,h=r*s,d=r*u,f=o*u,m=i*a,v=i*s,g=i*u,y=1-(h+f),_=l+g,b=p-v,S=l-g,R=1-(c+f),E=d+m,T=p+v,w=d-m,C=1-(c+h),I=e[0],x=e[1],O=e[2],P=e[3],N=e[4],D=e[5],M=e[6],k=e[7],A=e[8],L=e[9],j=e[10],V=e[11],F=y,H=_,B=b;e[0]=F*I+H*N+B*A,e[1]=F*x+H*D+B*L,e[2]=F*O+H*M+B*j,e[3]=F*P+H*k+B*V,F=S, -H=R,B=E,e[4]=F*I+H*N+B*A,e[5]=F*x+H*D+B*L,e[6]=F*O+H*M+B*j,e[7]=F*P+H*k+B*V,F=T,H=w,B=C,e[8]=F*I+H*N+B*A,e[9]=F*x+H*D+B*L,e[10]=F*O+H*M+B*j,e[11]=F*P+H*k+B*V}},g={transformScale:function(e,t){e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1},transformTranslate:function(e,t){e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=t[0],e[13]=t[1],e[14]=t[2],e[15]=1},transformRotateRadians:function(e,t){var n=t[0],r=t[1],o=t[2],i=t[3],a=n+n,s=r+r,u=o+o,c=n*a,l=n*s,p=n*u,h=r*s,d=r*u,f=o*u,m=i*a,v=i*s,g=i*u,y=1-(h+f),_=l+g,b=p-v,S=l-g,R=1-(c+f),E=d+m,T=p+v,w=d-m,C=1-(c+h),I=y,x=_,O=b;e[0]=I,e[1]=x,e[2]=O,e[3]=0,I=S,x=R,O=E,e[4]=I,e[5]=x,e[6]=O,e[7]=0,I=T,x=w,O=C,e[8]=I,e[9]=x,e[10]=O,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1}},y=function(e,t){return" if (!didChange) {\n var prevVal = result."+e+";\n result."+e+" = "+t+";\n didChange = didChange || ("+t+" !== prevVal);\n } else {\n result."+e+" = "+t+";\n }\n"},_=(function(e,t,n,r){var o="round"in e,i=e.round,a=" ratio = (value - "+e.min+") / "+(e.max-e.min)+";\n";e.extrapolate||(a+=" ratio = ratio > 1 ? 1 : (ratio < 0 ? 0 : ratio);\n");var s=o?"Math.round("+i+" * ":"",u=o?") / "+i:"";return a+=" "+r+" = "+s+"("+t+" * (1 - ratio) + "+n+" * ratio)"+u+";\n"}),b=function(e){return _(e,e.from,e.to,"nextScalarVal")},S=function(e){var t=JSON.stringify(e.value);return" nextScalarVal = "+t+";\n"},R=function(e){return" nextScalarVal = value >= "+(e.threshold+" ? "+e.to+" : "+e.from)+";\n"},E=function(e){return" nextScalarVal = value;\n"},T=function(e){return e+"ReuseOp"},w=function(e){var t="";for(var n in e)h[n]&&(t+="var "+T(n)+" = [];\n");return t},C=function(e){return"\n"+e.join("\n")+"\n"},I=function(e,t,n,r){var o=T(t)+"["+r+"]";return void 0!==e.from[n]&&void 0!==e.to[n]?" "+e.from[n]!==e.to[n]?_(e,e.from[n],e.to[n],o):o+" = "+e.from[n]+";":" "+o+" = "+d[t][r]+";"},x=[],O=0;16>O;O++)x.push("m"+O);var P=function(e){var t=[" var transformMatrix = result.transformMatrix !== undefined ? result.transformMatrix : (result.transformMatrix = []);"];t.push.apply(t,m(v.unroll,["transformMatrix"].concat(x)));for(var n=0;no;o++)r[o]=e[o+t];return r}function i(e){return void 0===e.size&&(e.size=e.__iterate(s)),e.size}function a(e,t){return t>=0?+t:i(e)+ +t}function s(){return!0}function u(e,t,n){return(0===e||void 0!==n&&-n>=e)&&(void 0===t||void 0!==n&&t>=n)}function c(e,t){return p(e,t,0)}function l(e,t){return p(e,t,t)}function p(e,t,n){return void 0===e?n:0>e?Math.max(0,t+e):void 0===t?e:Math.min(t,e)}function h(e){return v(e)?e:O(e)}function d(e){return g(e)?e:P(e)}function f(e){return y(e)?e:N(e)}function m(e){return v(e)&&!_(e)?e:D(e)}function v(e){return!(!e||!e[mn])}function g(e){return!(!e||!e[vn])}function y(e){return!(!e||!e[gn])}function _(e){return g(e)||y(e)}function b(e){return!(!e||!e[yn])}function S(e){this.next=e}function R(e,t,n,r){var o=0===e?t:1===e?n:[t,n];return r?r.value=o:r={value:o,done:!1},r}function E(){return{value:void 0,done:!0}}function T(e){return!!I(e)}function w(e){return e&&"function"==typeof e.next}function C(e){var t=I(e);return t&&t.call(e)}function I(e){var t=e&&(Rn&&e[Rn]||e[En]);return"function"==typeof t?t:void 0}function x(e){return e&&"number"==typeof e.length}function O(e){return null===e||void 0===e?V():v(e)?e.toSeq():B(e)}function P(e){return null===e||void 0===e?V().toKeyedSeq():v(e)?g(e)?e.toSeq():e.fromEntrySeq():F(e)}function N(e){return null===e||void 0===e?V():v(e)?g(e)?e.entrySeq():e.toIndexedSeq():H(e)}function D(e){return(null===e||void 0===e?V():v(e)?g(e)?e.entrySeq():e:H(e)).toSetSeq()}function M(e){this._array=e,this.size=e.length}function k(e){var t=Object.keys(e);this._object=e,this._keys=t,this.size=t.length}function A(e){this._iterable=e,this.size=e.length||e.size}function L(e){this._iterator=e,this._iteratorCache=[]}function j(e){return!(!e||!e[wn])}function V(){return Cn||(Cn=new M([]))}function F(e){var t=Array.isArray(e)?new M(e).fromEntrySeq():w(e)?new L(e).fromEntrySeq():T(e)?new A(e).fromEntrySeq():"object"==typeof e?new k(e):void 0;if(!t)throw new TypeError("Expected Array or iterable object of [k, v] entries, or keyed object: "+e);return t}function H(e){var t=U(e);if(!t)throw new TypeError("Expected Array or iterable object of values: "+e);return t}function B(e){var t=U(e)||"object"==typeof e&&new k(e);if(!t)throw new TypeError("Expected Array or iterable object of values, or keyed object: "+e);return t}function U(e){return x(e)?new M(e):w(e)?new L(e):T(e)?new A(e):void 0}function q(e,t,n,r){var o=e._cache;if(o){for(var i=o.length-1,a=0;i>=a;a++){var s=o[n?i-a:a];if(t(s[1],r?s[0]:a,e)===!1)return a+1}return a}return e.__iterateUncached(t,n)}function z(e,t,n,r){var o=e._cache;if(o){var i=o.length-1,a=0;return new S(function(){var e=o[n?i-a:a];return a++>i?E():R(t,r?e[0]:a-1,e[1])})}return e.__iteratorUncached(t,n)}function G(){throw TypeError("Abstract")}function W(){}function Y(){}function K(){}function X(e,t){if(e===t||e!==e&&t!==t)return!0;if(!e||!t)return!1;if("function"==typeof e.valueOf&&"function"==typeof t.valueOf){if(e=e.valueOf(),t=t.valueOf(),e===t||e!==e&&t!==t)return!0;if(!e||!t)return!1}return"function"==typeof e.equals&&"function"==typeof t.equals&&e.equals(t)?!0:!1}function J(e,t){return t?Q(t,e,"",{"":e}):$(e)}function Q(e,t,n,r){return Array.isArray(t)?e.call(r,n,N(t).map(function(n,r){return Q(e,n,r,t)})):Z(t)?e.call(r,n,P(t).map(function(n,r){return Q(e,n,r,t)})):t}function $(e){return Array.isArray(e)?N(e).map($).toList():Z(e)?P(e).map($).toMap():e}function Z(e){return e&&(e.constructor===Object||void 0===e.constructor)}function ee(e){return e>>>1&1073741824|3221225471&e}function te(e){if(e===!1||null===e||void 0===e)return 0;if("function"==typeof e.valueOf&&(e=e.valueOf(),e===!1||null===e||void 0===e))return 0;if(e===!0)return 1;var t=typeof e;if("number"===t){var n=0|e;for(n!==e&&(n^=4294967295*e);e>4294967295;)e/=4294967295,n^=e;return ee(n)}return"string"===t?e.length>kn?ne(e):re(e):"function"==typeof e.hashCode?e.hashCode():oe(e)}function ne(e){var t=jn[e];return void 0===t&&(t=re(e),Ln===An&&(Ln=0,jn={}),Ln++,jn[e]=t),t}function re(e){for(var t=0,n=0;n0)switch(e.nodeType){case 1:return e.uniqueID;case 9:return e.documentElement&&e.documentElement.uniqueID}}function ae(e,t){if(!e)throw new Error(t)}function se(e){ae(e!==1/0,"Cannot perform this action with an infinite size.")}function ue(e,t){this._iter=e,this._useKeys=t,this.size=e.size}function ce(e){this._iter=e,this.size=e.size}function le(e){this._iter=e,this.size=e.size}function pe(e){this._iter=e,this.size=e.size}function he(e){var t=Me(e);return t._iter=e,t.size=e.size,t.flip=function(){return e},t.reverse=function(){var t=e.reverse.apply(this);return t.flip=function(){return e.reverse()},t},t.has=function(t){return e.includes(t)},t.includes=function(t){return e.has(t)},t.cacheResult=ke,t.__iterateUncached=function(t,n){var r=this;return e.__iterate(function(e,n){return t(n,e,r)!==!1},n)},t.__iteratorUncached=function(t,n){if(t===Sn){var r=e.__iterator(t,n);return new S(function(){var e=r.next();if(!e.done){var t=e.value[0];e.value[0]=e.value[1],e.value[1]=t}return e})}return e.__iterator(t===bn?_n:bn,n)},t}function de(e,t,n){var r=Me(e);return r.size=e.size,r.has=function(t){return e.has(t)},r.get=function(r,o){var i=e.get(r,hn);return i===hn?o:t.call(n,i,r,e)},r.__iterateUncached=function(r,o){var i=this;return e.__iterate(function(e,o,a){return r(t.call(n,e,o,a),o,i)!==!1},o)},r.__iteratorUncached=function(r,o){var i=e.__iterator(Sn,o);return new S(function(){var o=i.next();if(o.done)return o;var a=o.value,s=a[0];return R(r,s,t.call(n,a[1],s,e),o)})},r}function fe(e,t){var n=Me(e);return n._iter=e,n.size=e.size,n.reverse=function(){return e},e.flip&&(n.flip=function(){var t=he(e);return t.reverse=function(){return e.flip()},t}),n.get=function(n,r){return e.get(t?n:-1-n,r)},n.has=function(n){return e.has(t?n:-1-n)},n.includes=function(t){return e.includes(t)},n.cacheResult=ke,n.__iterate=function(t,n){var r=this;return e.__iterate(function(e,n){return t(e,n,r)},!n)},n.__iterator=function(t,n){return e.__iterator(t,!n)},n}function me(e,t,n,r){var o=Me(e);return r&&(o.has=function(r){var o=e.get(r,hn);return o!==hn&&!!t.call(n,o,r,e)},o.get=function(r,o){var i=e.get(r,hn);return i!==hn&&t.call(n,i,r,e)?i:o}),o.__iterateUncached=function(o,i){var a=this,s=0;return e.__iterate(function(e,i,u){return t.call(n,e,i,u)?(s++,o(e,r?i:s-1,a)):void 0},i),s},o.__iteratorUncached=function(o,i){var a=e.__iterator(Sn,i),s=0;return new S(function(){for(;;){var i=a.next();if(i.done)return i;var u=i.value,c=u[0],l=u[1];if(t.call(n,l,c,e))return R(o,r?c:s++,l,i)}})},o}function ve(e,t,n){var r=je().asMutable();return e.__iterate(function(o,i){r.update(t.call(n,o,i,e),0,function(e){return e+1})}),r.asImmutable()}function ge(e,t,n){var r=g(e),o=(b(e)?Et():je()).asMutable();e.__iterate(function(i,a){o.update(t.call(n,i,a,e),function(e){return e=e||[],e.push(r?[a,i]:i),e})});var i=De(e);return o.map(function(t){return Oe(e,i(t))})}function ye(e,t,n,r){var o=e.size;if(u(t,n,o))return e;var i=c(t,o),s=l(n,o);if(i!==i||s!==s)return ye(e.toSeq().cacheResult(),t,n,r);var p,h=s-i;h===h&&(p=0>h?0:h);var d=Me(e);return d.size=p,!r&&j(e)&&p>=0&&(d.get=function(t,n){return t=a(this,t),t>=0&&p>t?e.get(t+i,n):n}),d.__iterateUncached=function(t,n){var o=this;if(0===p)return 0;if(n)return this.cacheResult().__iterate(t,n);var a=0,s=!0,u=0;return e.__iterate(function(e,n){return s&&(s=a++p)return E();var e=o.next();return r||t===bn?e:t===_n?R(t,s-1,void 0,e):R(t,s-1,e.value[1],e)})},d}function _e(e,t,n){var r=Me(e);return r.__iterateUncached=function(r,o){var i=this;if(o)return this.cacheResult().__iterate(r,o);var a=0;return e.__iterate(function(e,o,s){return t.call(n,e,o,s)&&++a&&r(e,o,i)}),a},r.__iteratorUncached=function(r,o){var i=this;if(o)return this.cacheResult().__iterator(r,o);var a=e.__iterator(Sn,o),s=!0;return new S(function(){if(!s)return E();var e=a.next();if(e.done)return e;var o=e.value,u=o[0],c=o[1];return t.call(n,c,u,i)?r===Sn?e:R(r,u,c,e):(s=!1,E())})},r}function be(e,t,n,r){var o=Me(e);return o.__iterateUncached=function(o,i){var a=this;if(i)return this.cacheResult().__iterate(o,i);var s=!0,u=0;return e.__iterate(function(e,i,c){return s&&(s=t.call(n,e,i,c))?void 0:(u++,o(e,r?i:u-1,a))}),u},o.__iteratorUncached=function(o,i){var a=this;if(i)return this.cacheResult().__iterator(o,i);var s=e.__iterator(Sn,i),u=!0,c=0;return new S(function(){var e,i,l;do{if(e=s.next(),e.done)return r||o===bn?e:o===_n?R(o,c++,void 0,e):R(o,c++,e.value[1],e);var p=e.value;i=p[0],l=p[1],u&&(u=t.call(n,l,i,a))}while(u);return o===Sn?e:R(o,i,l,e)})},o}function Se(e,t){var n=g(e),r=[e].concat(t).map(function(e){return v(e)?n&&(e=d(e)):e=n?F(e):H(Array.isArray(e)?e:[e]),e}).filter(function(e){return 0!==e.size});if(0===r.length)return e;if(1===r.length){var o=r[0];if(o===e||n&&g(o)||y(e)&&y(o))return o}var i=new M(r);return n?i=i.toKeyedSeq():y(e)||(i=i.toSetSeq()),i=i.flatten(!0),i.size=r.reduce(function(e,t){if(void 0!==e){var n=t.size;if(void 0!==n)return e+n}},0),i}function Re(e,t,n){var r=Me(e);return r.__iterateUncached=function(r,o){function i(e,u){var c=this;e.__iterate(function(e,o){return(!t||t>u)&&v(e)?i(e,u+1):r(e,n?o:a++,c)===!1&&(s=!0),!s},o)}var a=0,s=!1;return i(e,0),a},r.__iteratorUncached=function(r,o){var i=e.__iterator(r,o),a=[],s=0;return new S(function(){for(;i;){var e=i.next();if(e.done===!1){var u=e.value;if(r===Sn&&(u=u[1]),t&&!(a.length0}function xe(e,t,n){var r=Me(e);return r.size=new M(n).map(function(e){return e.size}).min(),r.__iterate=function(e,t){for(var n,r=this.__iterator(bn,t),o=0;!(n=r.next()).done&&e(n.value,o++,this)!==!1;);return o},r.__iteratorUncached=function(e,r){var o=n.map(function(e){return e=h(e),C(r?e.reverse():e)}),i=0,a=!1;return new S(function(){var n;return a||(n=o.map(function(e){return e.next()}),a=n.some(function(e){return e.done})),a?E():R(e,i++,t.apply(null,n.map(function(e){return e.value})))})},r}function Oe(e,t){return j(e)?t:e.constructor(t)}function Pe(e){if(e!==Object(e))throw new TypeError("Expected [K, V] tuple: "+e)}function Ne(e){return se(e.size),i(e)}function De(e){return g(e)?d:y(e)?f:m}function Me(e){return Object.create((g(e)?P:y(e)?N:D).prototype)}function ke(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):O.prototype.cacheResult.call(this)}function Ae(e,t){return e>t?1:t>e?-1:0}function Le(e){var t=C(e);if(!t){if(!x(e))throw new TypeError("Expected iterable or array-like: "+e);t=C(h(e))}return t}function je(e){return null===e||void 0===e?Ke():Ve(e)?e:Ke().withMutations(function(t){var n=d(e);se(n.size),n.forEach(function(e,n){return t.set(n,e)})})}function Ve(e){return!(!e||!e[Vn])}function Fe(e,t){this.ownerID=e,this.entries=t}function He(e,t,n){this.ownerID=e,this.bitmap=t,this.nodes=n}function Be(e,t,n){this.ownerID=e,this.count=t,this.nodes=n}function Ue(e,t,n){this.ownerID=e,this.keyHash=t,this.entries=n}function qe(e,t,n){this.ownerID=e,this.keyHash=t,this.entry=n}function ze(e,t,n){this._type=t,this._reverse=n,this._stack=e._root&&We(e._root)}function Ge(e,t){return R(e,t[0],t[1])}function We(e,t){return{node:e,index:0,__prev:t}}function Ye(e,t,n,r){var o=Object.create(Fn);return o.size=e,o._root=t,o.__ownerID=n,o.__hash=r,o.__altered=!1,o}function Ke(){return Hn||(Hn=Ye(0))}function Xe(e,n,r){var o,i;if(e._root){var a=t(dn),s=t(fn);if(o=Je(e._root,e.__ownerID,0,void 0,n,r,a,s),!s.value)return e;i=e.size+(a.value?r===hn?-1:1:0)}else{if(r===hn)return e;i=1,o=new Fe(e.__ownerID,[[n,r]])}return e.__ownerID?(e.size=i,e._root=o,e.__hash=void 0,e.__altered=!0,e):o?Ye(i,o):Ke()}function Je(e,t,r,o,i,a,s,u){return e?e.update(t,r,o,i,a,s,u):a===hn?e:(n(u),n(s),new qe(t,o,[i,a]))}function Qe(e){return e.constructor===qe||e.constructor===Ue}function $e(e,t,n,r,o){if(e.keyHash===r)return new Ue(t,r,[e.entry,o]);var i,a=(0===n?e.keyHash:e.keyHash>>>n)&pn,s=(0===n?r:r>>>n)&pn,u=a===s?[$e(e,t,n+cn,r,o)]:(i=new qe(t,r,o),s>a?[e,i]:[i,e]);return new He(t,1<s;s++,u<<=1){var l=t[s];void 0!==l&&s!==r&&(o|=u,a[i++]=l)}return new He(e,o,a)}function tt(e,t,n,r,o){for(var i=0,a=new Array(ln),s=0;0!==n;s++,n>>>=1)a[s]=1&n?t[i++]:void 0;return a[r]=o,new Be(e,i+1,a)}function nt(e,t,n){for(var r=[],o=0;o>1&1431655765,e=(858993459&e)+(e>>2&858993459),e=e+(e>>4)&252645135,e+=e>>8,e+=e>>16,127&e}function st(e,t,n,r){var i=r?e:o(e);return i[t]=n,i}function ut(e,t,n,r){var o=e.length+1;if(r&&t+1===o)return e[t]=n,e;for(var i=new Array(o),a=0,s=0;o>s;s++)s===t?(i[s]=n,a=-1):i[s]=e[s+a];return i}function ct(e,t,n){var r=e.length-1;if(n&&t===r)return e.pop(),e;for(var o=new Array(r),i=0,a=0;r>a;a++)a===t&&(i=1),o[a]=e[a+i];return o}function lt(e){var t=mt();if(null===e||void 0===e)return t;if(pt(e))return e;var n=f(e),r=n.size;return 0===r?t:(se(r),r>0&&ln>r?ft(0,r,cn,null,new ht(n.toArray())):t.withMutations(function(e){e.setSize(r),n.forEach(function(t,n){return e.set(n,t)})}))}function pt(e){return!(!e||!e[zn])}function ht(e,t){this.array=e,this.ownerID=t}function dt(e,t){function n(e,t,n){return 0===t?r(e,n):o(e,t,n)}function r(e,n){var r=n===s?u&&u.array:e&&e.array,o=n>i?0:i-n,c=a-n;return c>ln&&(c=ln),function(){if(o===c)return Yn;var e=t?--c:o++;return r&&r[e]}}function o(e,r,o){var s,u=e&&e.array,c=o>i?0:i-o>>r,l=(a-o>>r)+1;return l>ln&&(l=ln),function(){for(;;){if(s){var e=s();if(e!==Yn)return e;s=null}if(c===l)return Yn;var i=t?--l:c++;s=n(u&&u[i],r-cn,o+(i<=e.size||0>n)return e.withMutations(function(e){0>n?bt(e,n).set(0,r):bt(e,0,n+1).set(n,r)});n+=e._origin;var o=e._tail,i=e._root,s=t(fn);return n>=Rt(e._capacity)?o=gt(o,e.__ownerID,0,n,r,s):i=gt(i,e.__ownerID,e._level,n,r,s),s.value?e.__ownerID?(e._root=i,e._tail=o,e.__hash=void 0,e.__altered=!0,e):ft(e._origin,e._capacity,e._level,i,o):e}function gt(e,t,r,o,i,a){var s=o>>>r&pn,u=e&&s0){var l=e&&e.array[s],p=gt(l,t,r-cn,o,i,a);return p===l?e:(c=yt(e,t),c.array[s]=p,c)}return u&&e.array[s]===i?e:(n(a),c=yt(e,t),void 0===i&&s===c.array.length-1?c.array.pop():c.array[s]=i,c)}function yt(e,t){return t&&e&&t===e.ownerID?e:new ht(e?e.array.slice():[],t)}function _t(e,t){if(t>=Rt(e._capacity))return e._tail;if(t<1<0;)n=n.array[t>>>r&pn],r-=cn;return n}}function bt(e,t,n){var o=e.__ownerID||new r,i=e._origin,a=e._capacity,s=i+t,u=void 0===n?a:0>n?a+n:i+n;if(s===i&&u===a)return e;if(s>=u)return e.clear();for(var c=e._level,l=e._root,p=0;0>s+p;)l=new ht(l&&l.array.length?[void 0,l]:[],o),c+=cn,p+=1<=1<d?_t(e,u-1):d>h?new ht([],o):f;if(f&&d>h&&a>s&&f.array.length){l=yt(l,o);for(var v=l,g=c;g>cn;g-=cn){var y=h>>>g&pn;v=v.array[y]=yt(v.array[y],o)}v.array[h>>>cn&pn]=f}if(a>u&&(m=m&&m.removeAfter(o,0,u)),s>=d)s-=d,u-=d,c=cn,l=null,m=m&&m.removeBefore(o,0,s);else if(s>i||h>d){for(p=0;l;){var _=s>>>c&pn;if(_!==d>>>c&pn)break;_&&(p+=(1<i&&(l=l.removeBefore(o,c,s-p)),l&&h>d&&(l=l.removeAfter(o,c,d-p)),p&&(s-=p,u-=p)}return e.__ownerID?(e.size=u-s,e._origin=s,e._capacity=u,e._level=c,e._root=l,e._tail=m,e.__hash=void 0,e.__altered=!0,e):ft(s,u,c,l,m)}function St(e,t,n){for(var r=[],o=0,i=0;io&&(o=s.size),v(a)||(s=s.map(function(e){return J(e)})),r.push(s)}return o>e.size&&(e=e.setSize(o)),ot(e,t,r)}function Rt(e){return ln>e?0:e-1>>>cn<=ln&&a.size>=2*i.size?(o=a.filter(function(e,t){return void 0!==e&&s!==t}),r=o.toKeyedSeq().map(function(e){return e[0]}).flip().toMap(),e.__ownerID&&(r.__ownerID=o.__ownerID=e.__ownerID)):(r=i.remove(t),o=s===a.size-1?a.pop():a.set(s,void 0))}else if(u){if(n===a.get(s)[1])return e;r=i,o=a.set(s,[t,n])}else r=i.set(t,a.size),o=a.set(a.size,[t,n]);return e.__ownerID?(e.size=r.size,e._map=r,e._list=o,e.__hash=void 0,e):wt(r,o)}function xt(e){return null===e||void 0===e?Nt():Ot(e)?e:Nt().unshiftAll(e)}function Ot(e){return!(!e||!e[Xn])}function Pt(e,t,n,r){var o=Object.create(Jn);return o.size=e,o._head=t,o.__ownerID=n,o.__hash=r,o.__altered=!1,o}function Nt(){return Qn||(Qn=Pt(0))}function Dt(e){return null===e||void 0===e?Lt():Mt(e)?e:Lt().withMutations(function(t){var n=m(e);se(n.size),n.forEach(function(e){return t.add(e)})})}function Mt(e){return!(!e||!e[$n])}function kt(e,t){return e.__ownerID?(e.size=t.size,e._map=t,e):t===e._map?e:0===t.size?e.__empty():e.__make(t)}function At(e,t){var n=Object.create(Zn);return n.size=e?e.size:0,n._map=e,n.__ownerID=t,n}function Lt(){return er||(er=At(Ke()))}function jt(e){return null===e||void 0===e?Ht():Vt(e)?e:Ht().withMutations(function(t){var n=m(e);se(n.size),n.forEach(function(e){return t.add(e)})})}function Vt(e){return Mt(e)&&b(e)}function Ft(e,t){var n=Object.create(tr);return n.size=e?e.size:0,n._map=e,n.__ownerID=t,n}function Ht(){return nr||(nr=Ft(Ct()))}function Bt(e,t){var n,r=function(i){if(i instanceof r)return i;if(!(this instanceof r))return new r(i);if(!n){n=!0;var a=Object.keys(e);zt(o,a),o.size=a.length,o._name=t,o._keys=a,o._defaultValues=e}this._map=je(i)},o=r.prototype=Object.create(rr);return o.constructor=r,r}function Ut(e,t,n){var r=Object.create(Object.getPrototypeOf(e));return r._map=t,r.__ownerID=n,r}function qt(e){return e._name||e.constructor.name||"Record"}function zt(e,t){try{t.forEach(Gt.bind(void 0,e))}catch(n){}}function Gt(e,t){Object.defineProperty(e,t,{get:function(){return this.get(t)},set:function(e){ae(this.__ownerID,"Cannot set on an immutable record."),this.set(t,e)}})}function Wt(e,t){if(e===t)return!0;if(!v(t)||void 0!==e.size&&void 0!==t.size&&e.size!==t.size||void 0!==e.__hash&&void 0!==t.__hash&&e.__hash!==t.__hash||g(e)!==g(t)||y(e)!==y(t)||b(e)!==b(t))return!1;if(0===e.size&&0===t.size)return!0;var n=!_(e);if(b(e)){var r=e.entries();return t.every(function(e,t){var o=r.next().value;return o&&X(o[1],e)&&(n||X(o[0],t))})&&r.next().done}var o=!1;if(void 0===e.size)if(void 0===t.size)"function"==typeof e.cacheResult&&e.cacheResult();else{o=!0;var i=e;e=t,t=i}var a=!0,s=t.__iterate(function(t,r){return(n?e.has(t):o?X(t,e.get(r,hn)):X(e.get(r,hn),t))?void 0:(a=!1,!1)});return a&&e.size===s}function Yt(e,t,n){if(!(this instanceof Yt))return new Yt(e,t,n);if(ae(0!==n,"Cannot step a Range by 0"),e=e||0,void 0===t&&(t=1/0),n=void 0===n?1:Math.abs(n),e>t&&(n=-n),this._start=e,this._end=t,this._step=n,this.size=Math.max(0,Math.ceil((t-e)/n-1)+1),0===this.size){if(or)return or;or=this}}function Kt(e,t){if(!(this instanceof Kt))return new Kt(e,t);if(this._value=e,this.size=void 0===t?1/0:Math.max(0,t),0===this.size){if(ir)return ir;ir=this}}function Xt(e,t){var n=function(n){e.prototype[n]=t[n]};return Object.keys(t).forEach(n),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(t).forEach(n),e}function Jt(e,t){return t}function Qt(e,t){return[t,e]}function $t(e){return function(){return!e.apply(this,arguments)}}function Zt(e){return function(){return-e.apply(this,arguments)}}function en(e){return"string"==typeof e?JSON.stringify(e):e}function tn(){return o(arguments)}function nn(e,t){return t>e?1:e>t?-1:0}function rn(e){if(e.size===1/0)return 0;var t=b(e),n=g(e),r=t?1:0,o=e.__iterate(n?t?function(e,t){r=31*r+an(te(e),te(t))|0}:function(e,t){r=r+an(te(e),te(t))|0}:t?function(e){r=31*r+te(e)|0}:function(e){r=r+te(e)|0});return on(o,r)}function on(e,t){return t=xn(t,3432918353),t=xn(t<<15|t>>>-15,461845907),t=xn(t<<13|t>>>-13,5),t=(t+3864292196|0)^e,t=xn(t^t>>>16,2246822507),t=xn(t^t>>>13,3266489909),t=ee(t^t>>>16)}function an(e,t){return e^t+2654435769+(e<<6)+(e>>2)|0}var sn=Array.prototype.slice,un="delete",cn=5,ln=1<=o;o++)if(e(n[t?r-o:o],o,this)===!1)return o+1;return o},M.prototype.__iterator=function(e,t){var n=this._array,r=n.length-1,o=0;return new S(function(){return o>r?E():R(e,o,n[t?r-o++:o++])})},e(k,P),k.prototype.get=function(e,t){return void 0===t||this.has(e)?this._object[e]:t},k.prototype.has=function(e){return this._object.hasOwnProperty(e)},k.prototype.__iterate=function(e,t){for(var n=this._object,r=this._keys,o=r.length-1,i=0;o>=i;i++){var a=r[t?o-i:i];if(e(n[a],a,this)===!1)return i+1}return i},k.prototype.__iterator=function(e,t){var n=this._object,r=this._keys,o=r.length-1,i=0;return new S(function(){var a=r[t?o-i:i];return i++>o?E():R(e,a,n[a])})},k.prototype[yn]=!0,e(A,N),A.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);var n=this._iterable,r=C(n),o=0;if(w(r))for(var i;!(i=r.next()).done&&e(i.value,o++,this)!==!1;);return o},A.prototype.__iteratorUncached=function(e,t){if(t)return this.cacheResult().__iterator(e,t);var n=this._iterable,r=C(n);if(!w(r))return new S(E);var o=0;return new S(function(){var t=r.next();return t.done?t:R(e,o++,t.value)})},e(L,N),L.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);for(var n=this._iterator,r=this._iteratorCache,o=0;o=r.length){var t=n.next();if(t.done)return t;r[o]=t.value}return R(e,o,r[o++])})};var Cn;e(G,h),e(W,G),e(Y,G),e(K,G),G.Keyed=W,G.Indexed=Y,G.Set=K;var In,xn="function"==typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function(e,t){e=0|e, -t=0|t;var n=65535&e,r=65535&t;return n*r+((e>>>16)*r+n*(t>>>16)<<16>>>0)|0},On=Object.isExtensible,Pn=function(){try{return Object.defineProperty({},"@",{}),!0}catch(e){return!1}}(),Nn="function"==typeof WeakMap;Nn&&(In=new WeakMap);var Dn=0,Mn="__immutablehash__";"function"==typeof Symbol&&(Mn=Symbol(Mn));var kn=16,An=255,Ln=0,jn={};e(ue,P),ue.prototype.get=function(e,t){return this._iter.get(e,t)},ue.prototype.has=function(e){return this._iter.has(e)},ue.prototype.valueSeq=function(){return this._iter.valueSeq()},ue.prototype.reverse=function(){var e=this,t=fe(this,!0);return this._useKeys||(t.valueSeq=function(){return e._iter.toSeq().reverse()}),t},ue.prototype.map=function(e,t){var n=this,r=de(this,e,t);return this._useKeys||(r.valueSeq=function(){return n._iter.toSeq().map(e,t)}),r},ue.prototype.__iterate=function(e,t){var n,r=this;return this._iter.__iterate(this._useKeys?function(t,n){return e(t,n,r)}:(n=t?Ne(this):0,function(o){return e(o,t?--n:n++,r)}),t)},ue.prototype.__iterator=function(e,t){if(this._useKeys)return this._iter.__iterator(e,t);var n=this._iter.__iterator(bn,t),r=t?Ne(this):0;return new S(function(){var o=n.next();return o.done?o:R(e,t?--r:r++,o.value,o)})},ue.prototype[yn]=!0,e(ce,N),ce.prototype.includes=function(e){return this._iter.includes(e)},ce.prototype.__iterate=function(e,t){var n=this,r=0;return this._iter.__iterate(function(t){return e(t,r++,n)},t)},ce.prototype.__iterator=function(e,t){var n=this._iter.__iterator(bn,t),r=0;return new S(function(){var t=n.next();return t.done?t:R(e,r++,t.value,t)})},e(le,D),le.prototype.has=function(e){return this._iter.includes(e)},le.prototype.__iterate=function(e,t){var n=this;return this._iter.__iterate(function(t){return e(t,t,n)},t)},le.prototype.__iterator=function(e,t){var n=this._iter.__iterator(bn,t);return new S(function(){var t=n.next();return t.done?t:R(e,t.value,t.value,t)})},e(pe,P),pe.prototype.entrySeq=function(){return this._iter.toSeq()},pe.prototype.__iterate=function(e,t){var n=this;return this._iter.__iterate(function(t){if(t){Pe(t);var r=v(t);return e(r?t.get(1):t[1],r?t.get(0):t[0],n)}},t)},pe.prototype.__iterator=function(e,t){var n=this._iter.__iterator(bn,t);return new S(function(){for(;;){var t=n.next();if(t.done)return t;var r=t.value;if(r){Pe(r);var o=v(r);return R(e,o?r.get(0):r[0],o?r.get(1):r[1],t)}}})},ce.prototype.cacheResult=ue.prototype.cacheResult=le.prototype.cacheResult=pe.prototype.cacheResult=ke,e(je,W),je.prototype.toString=function(){return this.__toString("Map {","}")},je.prototype.get=function(e,t){return this._root?this._root.get(0,void 0,e,t):t},je.prototype.set=function(e,t){return Xe(this,e,t)},je.prototype.setIn=function(e,t){return this.updateIn(e,hn,function(){return t})},je.prototype.remove=function(e){return Xe(this,e,hn)},je.prototype.deleteIn=function(e){return this.updateIn(e,function(){return hn})},je.prototype.update=function(e,t,n){return 1===arguments.length?e(this):this.updateIn([e],t,n)},je.prototype.updateIn=function(e,t,n){n||(n=t,t=void 0);var r=it(this,Le(e),t,n);return r===hn?void 0:r},je.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):Ke()},je.prototype.merge=function(){return nt(this,void 0,arguments)},je.prototype.mergeWith=function(e){var t=sn.call(arguments,1);return nt(this,e,t)},je.prototype.mergeIn=function(e){var t=sn.call(arguments,1);return this.updateIn(e,Ke(),function(e){return"function"==typeof e.merge?e.merge.apply(e,t):t[t.length-1]})},je.prototype.mergeDeep=function(){return nt(this,rt(void 0),arguments)},je.prototype.mergeDeepWith=function(e){var t=sn.call(arguments,1);return nt(this,rt(e),t)},je.prototype.mergeDeepIn=function(e){var t=sn.call(arguments,1);return this.updateIn(e,Ke(),function(e){return"function"==typeof e.mergeDeep?e.mergeDeep.apply(e,t):t[t.length-1]})},je.prototype.sort=function(e){return Et(we(this,e))},je.prototype.sortBy=function(e,t){return Et(we(this,t,e))},je.prototype.withMutations=function(e){var t=this.asMutable();return e(t),t.wasAltered()?t.__ensureOwner(this.__ownerID):this},je.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new r)},je.prototype.asImmutable=function(){return this.__ensureOwner()},je.prototype.wasAltered=function(){return this.__altered},je.prototype.__iterator=function(e,t){return new ze(this,e,t)},je.prototype.__iterate=function(e,t){var n=this,r=0;return this._root&&this._root.iterate(function(t){return r++,e(t[1],t[0],n)},t),r},je.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?Ye(this.size,this._root,e,this.__hash):(this.__ownerID=e,this.__altered=!1,this)},je.isMap=Ve;var Vn="@@__IMMUTABLE_MAP__@@",Fn=je.prototype;Fn[Vn]=!0,Fn[un]=Fn.remove,Fn.removeIn=Fn.deleteIn,Fe.prototype.get=function(e,t,n,r){for(var o=this.entries,i=0,a=o.length;a>i;i++)if(X(n,o[i][0]))return o[i][1];return r},Fe.prototype.update=function(e,t,r,i,a,s,u){for(var c=a===hn,l=this.entries,p=0,h=l.length;h>p&&!X(i,l[p][0]);p++);var d=h>p;if(d?l[p][1]===a:c)return this;if(n(u),(c||!d)&&n(s),!c||1!==l.length){if(!d&&!c&&l.length>=Bn)return Ze(e,l,i,a);var f=e&&e===this.ownerID,m=f?l:o(l);return d?c?p===h-1?m.pop():m[p]=m.pop():m[p]=[i,a]:m.push([i,a]),f?(this.entries=m,this):new Fe(e,m)}},He.prototype.get=function(e,t,n,r){void 0===t&&(t=te(n));var o=1<<((0===e?t:t>>>e)&pn),i=this.bitmap;return 0===(i&o)?r:this.nodes[at(i&o-1)].get(e+cn,t,n,r)},He.prototype.update=function(e,t,n,r,o,i,a){void 0===n&&(n=te(r));var s=(0===t?n:n>>>t)&pn,u=1<=Un)return tt(e,h,c,s,f);if(l&&!f&&2===h.length&&Qe(h[1^p]))return h[1^p];if(l&&f&&1===h.length&&Qe(f))return f;var m=e&&e===this.ownerID,v=l?f?c:c^u:c|u,g=l?f?st(h,p,f,m):ct(h,p,m):ut(h,p,f,m);return m?(this.bitmap=v,this.nodes=g,this):new He(e,v,g)},Be.prototype.get=function(e,t,n,r){void 0===t&&(t=te(n));var o=(0===e?t:t>>>e)&pn,i=this.nodes[o];return i?i.get(e+cn,t,n,r):r},Be.prototype.update=function(e,t,n,r,o,i,a){void 0===n&&(n=te(r));var s=(0===t?n:n>>>t)&pn,u=o===hn,c=this.nodes,l=c[s];if(u&&!l)return this;var p=Je(l,e,t+cn,n,r,o,i,a);if(p===l)return this;var h=this.count;if(l){if(!p&&(h--,qn>h))return et(e,c,h,s)}else h++;var d=e&&e===this.ownerID,f=st(c,s,p,d);return d?(this.count=h,this.nodes=f,this):new Be(e,h,f)},Ue.prototype.get=function(e,t,n,r){for(var o=this.entries,i=0,a=o.length;a>i;i++)if(X(n,o[i][0]))return o[i][1];return r},Ue.prototype.update=function(e,t,r,i,a,s,u){void 0===r&&(r=te(i));var c=a===hn;if(r!==this.keyHash)return c?this:(n(u),n(s),$e(this,e,t,r,[i,a]));for(var l=this.entries,p=0,h=l.length;h>p&&!X(i,l[p][0]);p++);var d=h>p;if(d?l[p][1]===a:c)return this;if(n(u),(c||!d)&&n(s),c&&2===h)return new qe(e,this.keyHash,l[1^p]);var f=e&&e===this.ownerID,m=f?l:o(l);return d?c?p===h-1?m.pop():m[p]=m.pop():m[p]=[i,a]:m.push([i,a]),f?(this.entries=m,this):new Ue(e,this.keyHash,m)},qe.prototype.get=function(e,t,n,r){return X(n,this.entry[0])?this.entry[1]:r},qe.prototype.update=function(e,t,r,o,i,a,s){var u=i===hn,c=X(o,this.entry[0]);return(c?i===this.entry[1]:u)?this:(n(s),u?void n(a):c?e&&e===this.ownerID?(this.entry[1]=i,this):new qe(e,this.keyHash,[o,i]):(n(a),$e(this,e,t,te(o),[o,i])))},Fe.prototype.iterate=Ue.prototype.iterate=function(e,t){for(var n=this.entries,r=0,o=n.length-1;o>=r;r++)if(e(n[t?o-r:r])===!1)return!1},He.prototype.iterate=Be.prototype.iterate=function(e,t){for(var n=this.nodes,r=0,o=n.length-1;o>=r;r++){var i=n[t?o-r:r];if(i&&i.iterate(e,t)===!1)return!1}},qe.prototype.iterate=function(e,t){return e(this.entry)},e(ze,S),ze.prototype.next=function(){for(var e=this._type,t=this._stack;t;){var n,r=t.node,o=t.index++;if(r.entry){if(0===o)return Ge(e,r.entry)}else if(r.entries){if(n=r.entries.length-1,n>=o)return Ge(e,r.entries[this._reverse?n-o:o])}else if(n=r.nodes.length-1,n>=o){var i=r.nodes[this._reverse?n-o:o];if(i){if(i.entry)return Ge(e,i.entry);t=this._stack=We(i,t)}continue}t=this._stack=this._stack.__prev}return E()};var Hn,Bn=ln/4,Un=ln/2,qn=ln/4;e(lt,Y),lt.of=function(){return this(arguments)},lt.prototype.toString=function(){return this.__toString("List [","]")},lt.prototype.get=function(e,t){if(e=a(this,e),0>e||e>=this.size)return t;e+=this._origin;var n=_t(this,e);return n&&n.array[e&pn]},lt.prototype.set=function(e,t){return vt(this,e,t)},lt.prototype.remove=function(e){return this.has(e)?0===e?this.shift():e===this.size-1?this.pop():this.splice(e,1):this},lt.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=this._origin=this._capacity=0,this._level=cn,this._root=this._tail=null,this.__hash=void 0,this.__altered=!0,this):mt()},lt.prototype.push=function(){var e=arguments,t=this.size;return this.withMutations(function(n){bt(n,0,t+e.length);for(var r=0;r>>t&pn;if(r>=this.array.length)return new ht([],e);var o,i=0===r;if(t>0){var a=this.array[r];if(o=a&&a.removeBefore(e,t-cn,n),o===a&&i)return this}if(i&&!o)return this;var s=yt(this,e);if(!i)for(var u=0;r>u;u++)s.array[u]=void 0;return o&&(s.array[r]=o),s},ht.prototype.removeAfter=function(e,t,n){if(n===t?1<>>t&pn;if(r>=this.array.length)return this;var o,i=r===this.array.length-1;if(t>0){var a=this.array[r];if(o=a&&a.removeAfter(e,t-cn,n),o===a&&i)return this}if(i&&!o)return this;var s=yt(this,e);return i||s.array.pop(),o&&(s.array[r]=o),s};var Wn,Yn={};e(Et,je),Et.of=function(){return this(arguments)},Et.prototype.toString=function(){return this.__toString("OrderedMap {","}")},Et.prototype.get=function(e,t){var n=this._map.get(e);return void 0!==n?this._list.get(n)[1]:t},Et.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._map.clear(),this._list.clear(),this):Ct()},Et.prototype.set=function(e,t){return It(this,e,t)},Et.prototype.remove=function(e){return It(this,e,hn)},Et.prototype.wasAltered=function(){return this._map.wasAltered()||this._list.wasAltered()},Et.prototype.__iterate=function(e,t){var n=this;return this._list.__iterate(function(t){return t&&e(t[1],t[0],n)},t)},Et.prototype.__iterator=function(e,t){return this._list.fromEntrySeq().__iterator(e,t)},Et.prototype.__ensureOwner=function(e){if(e===this.__ownerID)return this;var t=this._map.__ensureOwner(e),n=this._list.__ensureOwner(e);return e?wt(t,n,e,this.__hash):(this.__ownerID=e,this._map=t,this._list=n,this)},Et.isOrderedMap=Tt,Et.prototype[yn]=!0,Et.prototype[un]=Et.prototype.remove;var Kn;e(xt,Y),xt.of=function(){return this(arguments)},xt.prototype.toString=function(){return this.__toString("Stack [","]")},xt.prototype.get=function(e,t){var n=this._head;for(e=a(this,e);n&&e--;)n=n.next;return n?n.value:t},xt.prototype.peek=function(){return this._head&&this._head.value},xt.prototype.push=function(){if(0===arguments.length)return this;for(var e=this.size+arguments.length,t=this._head,n=arguments.length-1;n>=0;n--)t={value:arguments[n],next:t};return this.__ownerID?(this.size=e,this._head=t,this.__hash=void 0,this.__altered=!0,this):Pt(e,t)},xt.prototype.pushAll=function(e){if(e=f(e),0===e.size)return this;se(e.size);var t=this.size,n=this._head;return e.reverse().forEach(function(e){t++,n={value:e,next:n}}),this.__ownerID?(this.size=t,this._head=n,this.__hash=void 0,this.__altered=!0,this):Pt(t,n)},xt.prototype.pop=function(){return this.slice(1)},xt.prototype.unshift=function(){return this.push.apply(this,arguments)},xt.prototype.unshiftAll=function(e){return this.pushAll(e)},xt.prototype.shift=function(){return this.pop.apply(this,arguments)},xt.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):Nt()},xt.prototype.slice=function(e,t){if(u(e,t,this.size))return this;var n=c(e,this.size),r=l(t,this.size);if(r!==this.size)return Y.prototype.slice.call(this,e,t);for(var o=this.size-n,i=this._head;n--;)i=i.next;return this.__ownerID?(this.size=o,this._head=i,this.__hash=void 0,this.__altered=!0,this):Pt(o,i)},xt.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?Pt(this.size,this._head,e,this.__hash):(this.__ownerID=e,this.__altered=!1,this)},xt.prototype.__iterate=function(e,t){if(t)return this.reverse().__iterate(e);for(var n=0,r=this._head;r&&e(r.value,n++,this)!==!1;)r=r.next;return n},xt.prototype.__iterator=function(e,t){if(t)return this.reverse().__iterator(e);var n=0,r=this._head;return new S(function(){if(r){var t=r.value;return r=r.next,R(e,n++,t)}return E()})},xt.isStack=Ot;var Xn="@@__IMMUTABLE_STACK__@@",Jn=xt.prototype;Jn[Xn]=!0,Jn.withMutations=Fn.withMutations,Jn.asMutable=Fn.asMutable,Jn.asImmutable=Fn.asImmutable,Jn.wasAltered=Fn.wasAltered;var Qn;e(Dt,K),Dt.of=function(){return this(arguments)},Dt.fromKeys=function(e){return this(d(e).keySeq())},Dt.prototype.toString=function(){return this.__toString("Set {","}")},Dt.prototype.has=function(e){return this._map.has(e)},Dt.prototype.add=function(e){return kt(this,this._map.set(e,!0))},Dt.prototype.remove=function(e){return kt(this,this._map.remove(e))},Dt.prototype.clear=function(){return kt(this,this._map.clear())},Dt.prototype.union=function(){var e=sn.call(arguments,0);return e=e.filter(function(e){return 0!==e.size}),0===e.length?this:0!==this.size||this.__ownerID||1!==e.length?this.withMutations(function(t){for(var n=0;n1?" by "+this._step:"")+" ]"},Yt.prototype.get=function(e,t){return this.has(e)?this._start+a(this,e)*this._step:t},Yt.prototype.includes=function(e){var t=(e-this._start)/this._step;return t>=0&&t=t?new Yt(0,0):new Yt(this.get(e,this._end),this.get(t,this._end),this._step))},Yt.prototype.indexOf=function(e){var t=e-this._start;if(t%this._step===0){var n=t/this._step;if(n>=0&&n=i;i++){if(e(o,i,this)===!1)return i+1;o+=t?-r:r}return i},Yt.prototype.__iterator=function(e,t){var n=this.size-1,r=this._step,o=t?this._start+n*r:this._start,i=0;return new S(function(){var a=o;return o+=t?-r:r,i>n?E():R(e,i++,a)})},Yt.prototype.equals=function(e){return e instanceof Yt?this._start===e._start&&this._end===e._end&&this._step===e._step:Wt(this,e)};var or;e(Kt,N),Kt.prototype.toString=function(){return 0===this.size?"Repeat []":"Repeat [ "+this._value+" "+this.size+" times ]"},Kt.prototype.get=function(e,t){return this.has(e)?this._value:t},Kt.prototype.includes=function(e){return X(this._value,e)},Kt.prototype.slice=function(e,t){var n=this.size;return u(e,t,n)?this:new Kt(this._value,l(t,n)-c(e,n))},Kt.prototype.reverse=function(){return this},Kt.prototype.indexOf=function(e){return X(this._value,e)?0:-1},Kt.prototype.lastIndexOf=function(e){return X(this._value,e)?this.size:-1},Kt.prototype.__iterate=function(e,t){for(var n=0;ne||this.size===1/0||void 0!==this.size&&e>this.size?t:this.find(function(t,n){return n===e},void 0,t)},has:function(e){return e=a(this,e),e>=0&&(void 0!==this.size?this.size===1/0||en?e:1-e,a=t-n,u=t-r;o=a>0&&0===u||u>0&&0===a?s.Interpolators.RightToCenter:0>a&&0===u||0>u&&0===a?s.Interpolators.CenterToLeft:a===u?s.Interpolators.RightToCenter:s.Interpolators.RightToLeft,h.forEach(function(e){var n=this._components[e].get(this.props.navState.routeStack[t]),r=this._getReusableProps(e,t);n&&o[e](r.style,i)&&n.setNativeProps(r)},this)},updateProgress:function(e,t,n){for(var r=Math.max(t,n),o=Math.min(t,n),i=o;r>=i;i++)this._updateIndexProgress(e,i,t,n)},render:function(){var e=this.props.navState,t=h.map(function(t){return e.routeStack.map(this._getComponent.bind(this,t))},this);return a.createElement(c,{style:[m.navBarContainer,this.props.style]},t)},_getComponent:function(e,t,n){var r=this;if(this._descriptors[e].includes(t))return this._descriptors[e].get(t);var o=null,i=this.props.routeMapper[e](this.props.navState.routeStack[n],this.props.navigator,n,this.props.navState);if(!i)return null;var u=n===d(this.props.navState)?s.Stages.Center:s.Stages.Left;return o=a.createElement(c,{ref:function(n){r._components[e]=r._components[e].set(t,n)},style:u[e]},i),this._descriptors[e]=this._descriptors[e].set(t,o),o}}),m=u.create({navBarContainer:{position:"absolute",height:s.General.TotalNavHeight,top:0,left:0,right:0,backgroundColor:"transparent"}});o.exports=f}),__d("NavigatorSceneConfigs",["Dimensions","PixelRatio","buildStyleInterpolator"],function(e,t,n,r,o,i){"use strict";var a=Object.assign||function(e){for(var t=1;tt&&(i+=r&&n?u.currentPageX:r&&!n?u.currentPageY:!r&&n?u.previousPageX:u.previousPageY,s=1);else for(var c=0;c=t){var p;p=r&&n?l.currentPageX:r&&!n?l.currentPageY:!r&&n?l.previousPageX:l.previousPageY,i+=p,s++}}return s>0?i/s:a.noCentroid},currentCentroidXOfTouchesChangedAfter:function(e,t){return a.centroidDimension(e,t,!0,!0)},currentCentroidYOfTouchesChangedAfter:function(e,t){return a.centroidDimension(e,t,!1,!0)},previousCentroidXOfTouchesChangedAfter:function(e,t){return a.centroidDimension(e,t,!0,!1)},previousCentroidYOfTouchesChangedAfter:function(e,t){return a.centroidDimension(e,t,!1,!1)},currentCentroidX:function(e){return a.centroidDimension(e,0,!0,!0)},currentCentroidY:function(e){return a.centroidDimension(e,0,!1,!0)},noCentroid:-1};o.exports=a}),__d("clamp",[],function(e,t,n,r,o,i){function a(e,t,n){return e>t?e:t>n?n:t}o.exports=a}),__d("rebound/rebound.js",[],function(e,t,n,r,o,i){!function(){function e(e,t){var n=e.indexOf(t);-1!=n&&e.splice(n,1)}var t={},n=t.util={},r=Array.prototype.concat,o=Array.prototype.slice;n.bind=function(e,t){var n=o.call(arguments,2);return function(){e.apply(t,r.call(n,o.call(arguments)))}},n.extend=function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};var a=t.SpringSystem=function(e){this._springRegistry={},this._activeSprings=[],this.listeners=[],this._idleSpringIndices=[],this.looper=e||new l,this.looper.springSystem=this};n.extend(a.prototype,{_springRegistry:null,_isIdle:!0,_lastTimeMillis:-1,_activeSprings:null,listeners:null,_idleSpringIndices:null,setLooper:function(e){this.looper=e,e.springSystem=this},createSpring:function(e,t){var n;return n=void 0===e||void 0===t?c.DEFAULT_ORIGAMI_SPRING_CONFIG:c.fromOrigamiTensionAndFriction(e,t),this.createSpringWithConfig(n)},createSpringWithBouncinessAndSpeed:function(e,t){var n;return n=void 0===e||void 0===t?c.DEFAULT_ORIGAMI_SPRING_CONFIG:c.fromBouncinessAndSpeed(e,t),this.createSpringWithConfig(n)},createSpringWithConfig:function(e){var t=new s(this);return this.registerSpring(t),t.setSpringConfig(e),t},getIsIdle:function(){return this._isIdle},getSpringById:function(e){return this._springRegistry[e]},getAllSprings:function(){var e=[];for(var t in this._springRegistry)this._springRegistry.hasOwnProperty(t)&&e.push(this._springRegistry[t]);return e},registerSpring:function(e){this._springRegistry[e.getId()]=e},deregisterSpring:function(t){e(this._activeSprings,t),delete this._springRegistry[t.getId()]},advance:function(e,t){for(;this._idleSpringIndices.length>0;)this._idleSpringIndices.pop();for(var n=0,r=this._activeSprings.length;r>n;n++){var o=this._activeSprings[n];o.systemShouldAdvance()?o.advance(e/1e3,t/1e3):this._idleSpringIndices.push(this._activeSprings.indexOf(o))}for(;this._idleSpringIndices.length>0;){var i=this._idleSpringIndices.pop();i>=0&&this._activeSprings.splice(i,1)}},loop:function(e){var t;-1===this._lastTimeMillis&&(this._lastTimeMillis=e-1);var n=e-this._lastTimeMillis;this._lastTimeMillis=e;var r=0,o=this.listeners.length;for(r=0;o>r;r++)t=this.listeners[r],t.onBeforeIntegrate&&t.onBeforeIntegrate(this);for(this.advance(e,n),0===this._activeSprings.length&&(this._isIdle=!0,this._lastTimeMillis=-1),r=0;o>r;r++)t=this.listeners[r],t.onAfterIntegrate&&t.onAfterIntegrate(this);this._isIdle||this.looper.run()},activateSpring:function(e){var t=this._springRegistry[e];-1==this._activeSprings.indexOf(t)&&this._activeSprings.push(t),this.getIsIdle()&&(this._isIdle=!1,this.looper.run())},addListener:function(e){this.listeners.push(e)},removeListener:function(t){e(this.listeners,t)},removeAllListeners:function(){this.listeners=[]}});var s=t.Spring=function v(e){this._id="s"+v._ID++,this._springSystem=e,this.listeners=[],this._currentState=new u,this._previousState=new u,this._tempState=new u};n.extend(s,{_ID:0,MAX_DELTA_TIME_SEC:.064,SOLVER_TIMESTEP_SEC:.001}),n.extend(s.prototype,{_id:0,_springConfig:null,_overshootClampingEnabled:!1,_currentState:null,_previousState:null,_tempState:null,_startValue:0,_endValue:0,_wasAtRest:!0,_restSpeedThreshold:.001,_displacementFromRestThreshold:.001,listeners:null,_timeAccumulator:0,_springSystem:null,destroy:function(){this.listeners=[],this.frames=[],this._springSystem.deregisterSpring(this)},getId:function(){return this._id},setSpringConfig:function(e){return this._springConfig=e,this},getSpringConfig:function(){return this._springConfig},setCurrentValue:function(e,t){return this._startValue=e,this._currentState.position=e,t||this.setAtRest(),this.notifyPositionUpdated(!1,!1),this},getStartValue:function(){return this._startValue},getCurrentValue:function(){return this._currentState.position},getCurrentDisplacementDistance:function(){return this.getDisplacementDistanceForState(this._currentState)},getDisplacementDistanceForState:function(e){return Math.abs(this._endValue-e.position)},setEndValue:function(e){if(this._endValue==e&&this.isAtRest())return this;this._startValue=this.getCurrentValue(),this._endValue=e,this._springSystem.activateSpring(this.getId());for(var t=0,n=this.listeners.length;n>t;t++){var r=this.listeners[t],o=r.onSpringEndStateChange;o&&o(this)}return this},getEndValue:function(){return this._endValue},setVelocity:function(e){return e===this._currentState.velocity?this:(this._currentState.velocity=e,this._springSystem.activateSpring(this.getId()),this)},getVelocity:function(){return this._currentState.velocity},setRestSpeedThreshold:function(e){return this._restSpeedThreshold=e,this},getRestSpeedThreshold:function(){return this._restSpeedThreshold},setRestDisplacementThreshold:function(e){this._displacementFromRestThreshold=e},getRestDisplacementThreshold:function(){return this._displacementFromRestThreshold},setOvershootClampingEnabled:function(e){return this._overshootClampingEnabled=e,this},isOvershootClampingEnabled:function(){return this._overshootClampingEnabled},isOvershooting:function(){var e=this._startValue,t=this._endValue;return this._springConfig.tension>0&&(t>e&&this.getCurrentValue()>t||e>t&&this.getCurrentValue()s.MAX_DELTA_TIME_SEC&&(r=s.MAX_DELTA_TIME_SEC),this._timeAccumulator+=r;for(var o,i,a,u,c,l,p,h,d,f,m=this._springConfig.tension,v=this._springConfig.friction,g=this._currentState.position,y=this._currentState.velocity,_=this._tempState.position,b=this._tempState.velocity;this._timeAccumulator>=s.SOLVER_TIMESTEP_SEC;)this._timeAccumulator-=s.SOLVER_TIMESTEP_SEC,this._timeAccumulator0&&this.interpolate(this._timeAccumulator/s.SOLVER_TIMESTEP_SEC),(this.isAtRest()||this._overshootClampingEnabled&&this.isOvershooting())&&(this._springConfig.tension>0?(this._startValue=this._endValue,this._currentState.position=this._endValue):(this._endValue=this._currentState.position,this._startValue=this._endValue),this.setVelocity(0),n=!0);var S=!1;this._wasAtRest&&(this._wasAtRest=!1,S=!0);var R=!1;n&&(this._wasAtRest=!0,R=!0),this.notifyPositionUpdated(S,R)}},notifyPositionUpdated:function(e,t){for(var n=0,r=this.listeners.length;r>n;n++){var o=this.listeners[n];e&&o.onSpringActivate&&o.onSpringActivate(this),o.onSpringUpdate&&o.onSpringUpdate(this),t&&o.onSpringAtRest&&o.onSpringAtRest(this)}},systemShouldAdvance:function(){return!this.isAtRest()||!this.wasAtRest()},wasAtRest:function(){return this._wasAtRest},isAtRest:function(){return Math.abs(this._currentState.velocity)=e?this.b3Friction1(e):e>18&&44>=e?this.b3Friction2(e):this.b3Friction3(e)}}),n.extend(c,{fromOrigamiTensionAndFriction:function(e,t){return new c(p.tensionFromOrigamiValue(e),p.frictionFromOrigamiValue(t))},fromBouncinessAndSpeed:function(e,n){var r=new t.BouncyConversion(e,n);return this.fromOrigamiTensionAndFriction(r.bouncyTension,r.bouncyFriction)},coastingConfigWithOrigamiFriction:function(e){return new c(0,p.frictionFromOrigamiValue(e))}}),c.DEFAULT_ORIGAMI_SPRING_CONFIG=c.fromOrigamiTensionAndFriction(40,7),n.extend(c.prototype,{friction:0,tension:0});var d={};n.hexToRGB=function(e){if(d[e])return d[e];e=e.replace("#",""),3===e.length&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]);var t=e.match(/.{2}/g),n={r:parseInt(t[0],16),g:parseInt(t[1],16),b:parseInt(t[2],16)};return d[e]=n,n},n.rgbToHex=function(e,t,n){return e=e.toString(16),t=t.toString(16),n=n.toString(16),e=e.length<2?"0"+e:e,t=t.length<2?"0"+t:t,n=n.length<2?"0"+n:n,"#"+e+t+n};var f=t.MathUtil={mapValueInRange:function(e,t,n,r,o){var i=n-t,a=o-r,s=(e-t)/i;return r+s*a},interpolateColor:function(e,t,r,o,i,a){o=void 0===o?0:o,i=void 0===i?1:i,t=n.hexToRGB(t),r=n.hexToRGB(r);var s=Math.floor(n.mapValueInRange(e,o,i,t.r,r.r)),u=Math.floor(n.mapValueInRange(e,o,i,t.g,r.g)),c=Math.floor(n.mapValueInRange(e,o,i,t.b,r.b));return a?"rgb("+s+","+u+","+c+")":n.rgbToHex(s,u,c)},degreesToRadians:function(e){return e*Math.PI/180},radiansToDegrees:function(e){return 180*e/Math.PI}};n.extend(n,f);var m;"undefined"!=typeof window&&(m=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),m||"undefined"==typeof process||"node"!==process.title||(m=setImmediate),n.onFrame=function(e){return m(e)},"undefined"!=typeof i?n.extend(i,t):"undefined"!=typeof window&&(window.rebound=t)}()}),__d("NavigatorIOS",["EventEmitter","Image","NavigationContext","React","NativeModules","StyleSheet","StaticContainer.react","View","requireNativeComponent","invariant","logError"],function(e,t,n,r,o,i){"use strict";function a(){return S++}var s=Object.assign||function(e){for(var t=1;tthis.state.observedTopOfStack+1?this.state.observedTopOfStack+1:null;this.setState({idStack:this.state.idStack.slice(0,this.state.observedTopOfStack+1),routeStack:this.state.routeStack.slice(0,this.state.observedTopOfStack+1),requestedTopOfStack:this.state.observedTopOfStack,makingNavigatorRequest:!0,updatingAllIndicesAtOrBeyond:e})},_emitDidFocus:function(e){this.navigationContext.emit("didfocus",{route:e})},_emitWillFocus:function(e){this.navigationContext.emit("willfocus",{route:e})},push:function(e){var t=this;g(!!e,"Must supply route to push"),this.state.requestedTopOfStack===this.state.observedTopOfStack&&this._tryLockNavigator(function(){t._emitWillFocus(e);var n=t.state.routeStack.concat([e]),r=t.state.idStack.concat([a()]);t.setState({idStack:r,routeStack:n,requestedTopOfStack:n.length-1,makingNavigatorRequest:!0,updatingAllIndicesAtOrBeyond:n.length-1})})},popN:function(e){var t=this;0!==e&&this.state.requestedTopOfStack===this.state.observedTopOfStack&&this.state.requestedTopOfStack>0&&this._tryLockNavigator(function(){var n=t.state.requestedTopOfStack-e;g(n>=0,"Cannot pop below 0"),t._emitWillFocus(t.state.routeStack[n]),t.setState({requestedTopOfStack:n,makingNavigatorRequest:!0,updatingAllIndicesAtOrBeyond:null})})},pop:function(){this.popN(1)},replaceAtIndex:function(e,t){if(g(!!e,"Must supply route to replace"),0>t&&(t+=this.state.routeStack.length),!(this.state.routeStack.length<=t)){var n=this.state.idStack.slice(),r=this.state.routeStack.slice();n[t]=a(),r[t]=e,this.setState({idStack:n,routeStack:r,makingNavigatorRequest:!1,updatingAllIndicesAtOrBeyond:t}),this._emitWillFocus(e),this._emitDidFocus(e)}},replace:function(e){this.replaceAtIndex(e,-1)},replacePrevious:function(e){this.replaceAtIndex(e,-2)},popToTop:function(){this.popToRoute(this.state.routeStack[0])},popToRoute:function(e){var t=this.state.routeStack.indexOf(e);g(-1!==t,"Calling pop to route for a route that doesn't exist!");var n=this.state.routeStack.length-t-1;this.popN(n)},replacePreviousAndPop:function(e){var t=this;this.state.requestedTopOfStack===this.state.observedTopOfStack&&(this.state.routeStack.length<2||this._tryLockNavigator(function(){t.replacePrevious(e),t.setState({requestedTopOfStack:t.state.requestedTopOfStack-1,makingNavigatorRequest:!0})}))},resetTo:function(e){g(!!e,"Must supply route to push"),this.state.requestedTopOfStack===this.state.observedTopOfStack&&(this.replaceAtIndex(e,0),this.popToRoute(e))},handleNavigationComplete:function(e){this._toFocusOnNavigationComplete&&(this._getFocusEmitter().emit("focus",this._toFocusOnNavigationComplete),this._toFocusOnNavigationComplete=null),this._handleNavigatorStackChanged(e)},_routeToStackItem:function(e,t){var n=e.component,r=null!==this.state.updatingAllIndicesAtOrBeyond&&this.state.updatingAllIndicesAtOrBeyond>=t;return p.createElement(f,{key:"nav"+t,shouldUpdate:r},p.createElement(C,{title:e.title,style:[T.stackItem,this.props.itemWrapperStyle,e.wrapperStyle],backButtonIcon:this._imageNameFromSource(e.backButtonIcon),backButtonTitle:e.backButtonTitle,leftButtonIcon:this._imageNameFromSource(e.leftButtonIcon),leftButtonTitle:e.leftButtonTitle,onNavLeftButtonTap:e.onLeftButtonPress,rightButtonIcon:this._imageNameFromSource(e.rightButtonIcon),rightButtonTitle:e.rightButtonTitle,onNavRightButtonTap:e.onRightButtonPress,navigationBarHidden:this.props.navigationBarHidden,shadowHidden:this.props.shadowHidden,tintColor:this.props.tintColor,barTintColor:this.props.barTintColor,translucent:this.props.translucent!==!1,titleTextColor:this.props.titleTextColor},p.createElement(n,s({navigator:this.navigator,route:e},e.passProps))))},_imageNameFromSource:function(e){return e?e.uri:void 0},renderNavigationStackItems:function(){var e=this.state.makingNavigatorRequest||null!==this.state.updatingAllIndicesAtOrBeyond,t=e?this.state.routeStack.map(this._routeToStackItem):null;return p.createElement(f,{shouldUpdate:e},p.createElement(R,{ref:_,style:T.transitioner,vertical:this.props.vertical,requestedTopOfStack:this.state.requestedTopOfStack,onNavigationComplete:this.handleNavigationComplete},t))},render:function(){return p.createElement(m,{style:this.props.style},this.renderNavigationStackItems())}}),T=d.create({stackItem:{backgroundColor:"white",overflow:"hidden",position:"absolute",top:0,left:0,right:0,bottom:0},transitioner:{flex:1}}),w=v("RCTNavigator"),C=v("RCTNavItem");o.exports=E}),__d("PickerIOS",["NativeMethodsMixin","React","ReactChildren","ReactNativeViewAttributes","NativeModules","StyleSheet","View","requireNativeComponent","merge"],function(e,t,n,r,o,i){"use strict";var a=t("NativeMethodsMixin"),s=t("React"),u=t("ReactChildren"),c=(t("ReactNativeViewAttributes"),t("NativeModules").UIManager.RCTPicker.Constants),l=t("StyleSheet"),p=t("View"),h=t("requireNativeComponent"),d=(t("merge"),"picker"),f=s.createClass({displayName:"PickerIOS",mixins:[a],propTypes:{onValueChange:s.PropTypes.func,selectedValue:s.PropTypes.any},getInitialState:function(){return this._stateFromProps(this.props)},componentWillReceiveProps:function(e){this.setState(this._stateFromProps(e))},_stateFromProps:function(e){var t=0,n=[];return u.forEach(e.children,function(r,o){r.props.value===e.selectedValue&&(t=o),n.push({value:r.props.value,label:r.props.label})}),{selectedIndex:t,items:n}},render:function(){return s.createElement(p,{style:this.props.style},s.createElement(v,{ref:d,style:m.pickerIOS,items:this.state.items,selectedIndex:this.state.selectedIndex,onChange:this._onChange}))},_onChange:function(e){this.props.onChange&&this.props.onChange(e),this.props.onValueChange&&this.props.onValueChange(e.nativeEvent.newValue),this.state.selectedIndex!==e.nativeEvent.newIndex&&this.refs[d].setNativeProps({selectedIndex:this.state.selectedIndex})}});f.Item=s.createClass({displayName:"Item",propTypes:{value:s.PropTypes.any,label:s.PropTypes.string},render:function(){return null}});var m=l.create({pickerIOS:{height:c.ComponentHeight}}),v=h("RCTPicker",null);o.exports=f}),__d("ProgressViewIOS",["Image","NativeMethodsMixin","NativeModules","ReactPropTypes","React","StyleSheet","requireNativeComponent"],function(e,t,n,r,o,i){"use strict";var a=Object.assign||function(e){for(var t=1;tS&&this._cancelLongPressDelayTimeout()}var f=l>t.left-o&&h>t.top-i&&l0,o=n&&n.length>0;return!r&&o?n[0]:r?t[0]:e}};o.exports=a}),__d("queryLayoutByID",["ReactNativeTagHandles","NativeModules"],function(e,t,n,r,o,i){"use strict";var a=t("ReactNativeTagHandles"),s=t("NativeModules").UIManager,u=function(e,t,n){s.measure(a.rootNodeIDToTag[e],n)};o.exports=u}),__d("TextInput",["DocumentSelectionState","EventEmitter","NativeMethodsMixin","NativeModules","Platform","ReactPropTypes","React","ReactChildren","StyleSheet","Text","TextInputState","TouchableWithoutFeedback","createReactNativeComponentClass","emptyFunction","invariant","requireNativeComponent","react-timer-mixin/TimerMixin.js"],function(e,t,n,r,o,i){"use strict";var a=Object.assign||function(e){for(var t=1;t1&&(r=d.createElement(v,null,r)),t.inputView&&(r=[r,t.inputView]),e=d.createElement(x,a({ref:"input"},t,{children:r,mostRecentEventCount:this.state.mostRecentEventCount,onFocus:this._onFocus,onBlur:this._onBlur,onChange:this._onChange,onSelectionChange:this._onSelectionChange,onTextInput:this._onTextInput,onSelectionChangeShouldSetResponder:S.thatReturnsTrue,text:this._getText()}))}else{for(var n in T)if(t[n])throw new Error("TextInput prop `"+n+"` is only supported with multiline.");e=d.createElement(O,a({ref:"input"},t,{onFocus:this._onFocus,onBlur:this._onBlur,onChange:this._onChange,onSelectionChangeShouldSetResponder:function(){return!0},text:this._getText(),mostRecentEventCount:this.state.mostRecentEventCount}))}return d.createElement(_,{onPress:this._onPress,rejectResponderTermination:!0,testID:t.testID},e)},_renderAndroid:function(){var e=l.UIText.AutocapitalizationType[this.props.autoCapitalize],t=l.AndroidTextInput.Constants.TextAlign[this.props.textAlign],n=l.AndroidTextInput.Constants.TextAlignVertical[this.props.textAlignVertical],r=this.props.children,o=0;f.forEach(r,function(){return++o}),R(!(this.props.value&&o),"Cannot specify both value and children."),o>1&&(r=d.createElement(v,null,r));var i=d.createElement(D,{ref:"input",style:[this.props.style],autoCapitalize:e,autoCorrect:this.props.autoCorrect,textAlign:t,textAlignVertical:n,keyboardType:this.props.keyboardType,multiline:this.props.multiline,onFocus:this._onFocus,onBlur:this._onBlur,onChange:this._onChange,onTextInput:this._onTextInput,onEndEditing:this.props.onEndEditing,onSubmitEditing:this.props.onSubmitEditing,onLayout:this.props.onLayout,password:this.props.password||this.props.secureTextEntry,placeholder:this.props.placeholder,placeholderTextColor:this.props.placeholderTextColor,text:this._getText(),underlineColorAndroid:this.props.underlineColorAndroid,children:r});return d.createElement(_,{onPress:this._onPress,testID:this.props.testID},i)},_onFocus:function(e){this.props.onFocus&&this.props.onFocus(e)},_onPress:function(e){(this.props.editable||void 0===this.props.editable)&&this.focus()},_onChange:function(e){var t=this,n=e.nativeEvent.text,r=e.nativeEvent.eventCount;this.props.onChange&&this.props.onChange(e),this.props.onChangeText&&this.props.onChangeText(n),this.setState({mostRecentEventCount:r},function(){n!==t.props.value&&"string"==typeof t.props.value&&t.refs.input.setNativeProps({text:t.props.value})})},_onBlur:function(e){this.blur(),this.props.onBlur&&this.props.onBlur(e)},_onSelectionChange:function(e){if(this.props.selectionState){var t=e.nativeEvent.selection;this.props.selectionState.update(t.start,t.end)}this.props.onSelectionChange&&this.props.onSelectionChange(e)},_onTextInput:function(e){this.props.onTextInput&&this.props.onTextInput(e)}}),N=m.create({input:{alignSelf:"stretch"}}),D=b({validAttributes:C,uiViewClassName:"AndroidTextInput"});o.exports=P}),__d("DocumentSelectionState",["mixInEventEmitter"],function(e,t,n,r,o,i){function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var s=function(){function e(e,t){for(var n=0;nthis._focusOffset}},{key:"getAnchorOffset",value:function(){return this._hasFocus?this._anchorOffset:null}},{key:"getFocusOffset",value:function(){return this._hasFocus?this._focusOffset:null}},{key:"getStartOffset",value:function(){return this._hasFocus?Math.min(this._anchorOffset,this._focusOffset):null}},{key:"getEndOffset",value:function(){return this._hasFocus?Math.max(this._anchorOffset,this._focusOffset):null}},{key:"overlaps",value:function(e,t){return this.hasFocus()&&this.getStartOffset()<=t&&e<=this.getEndOffset()}}]),e}();u(c,{blur:!0,focus:!0,update:!0}),o.exports=c}),__d("mixInEventEmitter",["EventEmitter","EventEmitterWithHolding","EventHolder","EventValidator","copyProperties","invariant","keyOf"],function(e,t,n,r,o,i){function a(e,t){h(t,"Must supply set of valid event types"),h(!this.__eventEmitter,"An active emitter is already mixed in");var n=e.prototype||e,r=e.constructor;r&&h(r===Object||r===Function,"Mix EventEmitter into a class, not an instance"),n.hasOwnProperty(f)?p(n.__types,t):n.__types?n.__types=p({},n.__types,t):n.__types=t,p(n,m)}var s=t("EventEmitter"),u=t("EventEmitterWithHolding"),c=t("EventHolder"),l=t("EventValidator"),p=t("copyProperties"),h=t("invariant"),d=t("keyOf"),f=d({__types:!0}),m={emit:function(e,t,n,r,o,i,a){return this.__getEventEmitter().emit(e,t,n,r,o,i,a)},emitAndHold:function(e,t,n,r,o,i,a){return this.__getEventEmitter().emitAndHold(e,t,n,r,o,i,a)},addListener:function(e,t,n){return this.__getEventEmitter().addListener(e,t,n)},once:function(e,t,n){return this.__getEventEmitter().once(e,t,n)},addRetroactiveListener:function(e,t,n){return this.__getEventEmitter().addRetroactiveListener(e,t,n)},addListenerMap:function(e,t){return this.__getEventEmitter().addListenerMap(e,t)},addRetroactiveListenerMap:function(e,t){return this.__getEventEmitter().addListenerMap(e,t)},removeAllListeners:function(){this.__getEventEmitter().removeAllListeners()},removeCurrentListener:function(){this.__getEventEmitter().removeCurrentListener()},releaseHeldEventType:function(e){this.__getEventEmitter().releaseHeldEventType(e)},__getEventEmitter:function(){if(!this.__eventEmitter){var e=new s;e=l.addValidation(e,this.__types);var t=new c;this.__eventEmitter=new u(e,t)}return this.__eventEmitter}};o.exports=a}),__d("EventEmitterWithHolding",[],function(e,t,n,r,o,i){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var s=function(){function e(e,t){for(var n=0;nt.distance?1:0},f=function(e,t){return e.distance/t.length<.334},m=function(e,t){var n,r,o=[];for(n=0;n<=e.length;n++)o[n]=[n];for(r=1;r<=t.length;r++)o[0][r]=r;for(n=1;n<=e.length;n++)for(r=1;r<=t.length;r++){var i=e.charAt(n-1)===t.charAt(r-1)?0:1;o[n][r]=Math.min(o[n-1][r]+1,o[n][r-1]+1,o[n-1][r-1]+i),n>1&&r>1&&e.charAt(n-1)==t.charAt(r-2)&&e.charAt(n-2)==t.charAt(r-1)&&(o[n][r]=Math.min(o[n][r],o[n-2][r-2]+i))}return o[e.length][t.length]};o.exports=c}),__d("copyProperties",[],function(e,t,n,r,o,i){function a(e,t,n,r,o,i,a){if(e=e||{},__DEV__&&a)throw new Error("Too many arguments passed to copyProperties");for(var s,u=[t,n,r,o,i],c=0;u[c];){s=u[c++];for(var l in s)e[l]=s[l];s.hasOwnProperty&&s.hasOwnProperty("toString")&&"undefined"!=typeof s.toString&&e.toString!==s.toString&&(e.toString=s.toString)}return e}o.exports=a}),__d("TouchableWithoutFeedback",["React","Touchable","ensurePositiveDelayProps","onlyChild","react-timer-mixin/TimerMixin.js"],function(e,t,n,r,o,i){"use strict";var a=t("React"),s=t("react-timer-mixin/TimerMixin.js"),u=t("Touchable"),c=t("ensurePositiveDelayProps"),l=t("onlyChild"),p={top:20,left:20,right:20,bottom:30},h=a.createClass({displayName:"TouchableWithoutFeedback",mixins:[s,u.Mixin],propTypes:{accessible:a.PropTypes.bool,onPress:a.PropTypes.func,onPressIn:a.PropTypes.func, -onPressOut:a.PropTypes.func,onLongPress:a.PropTypes.func,delayPressIn:a.PropTypes.number,delayPressOut:a.PropTypes.number,delayLongPress:a.PropTypes.number},getInitialState:function(){return this.touchableGetInitialState()},componentDidMount:function(){c(this.props)},componentWillReceiveProps:function(e){c(e)},touchableHandlePress:function(e){this.props.onPress&&this.props.onPress(e)},touchableHandleActivePressIn:function(){this.props.onPressIn&&this.props.onPressIn()},touchableHandleActivePressOut:function(){this.props.onPressOut&&this.props.onPressOut()},touchableHandleLongPress:function(){this.props.onLongPress&&this.props.onLongPress()},touchableGetPressRectOffset:function(){return p},touchableGetHighlightDelayMS:function(){return this.props.delayPressIn||0},touchableGetLongPressDelayMS:function(){return 0===this.props.delayLongPress?0:this.props.delayLongPress||500},touchableGetPressOutDelayMS:function(){return this.props.delayPressOut||0},render:function(){return a.cloneElement(l(this.props.children),{accessible:this.props.accessible!==!1,testID:this.props.testID,onStartShouldSetResponder:this.touchableHandleStartShouldSetResponder,onResponderTerminationRequest:this.touchableHandleResponderTerminationRequest,onResponderGrant:this.touchableHandleResponderGrant,onResponderMove:this.touchableHandleResponderMove,onResponderRelease:this.touchableHandleResponderRelease,onResponderTerminate:this.touchableHandleResponderTerminate})}});o.exports=h}),__d("ensurePositiveDelayProps",["invariant"],function(e,t,n,r,o,i){"use strict";var a=t("invariant"),s=function(e){a(!(e.delayPressIn<0||e.delayPressOut<0||e.delayLongPress<0),"Touchable components cannot have negative delay properties")};o.exports=s}),__d("TouchableHighlight",["NativeMethodsMixin","React","ReactNativeViewAttributes","StyleSheet","Touchable","TouchableWithoutFeedback","View","cloneWithProps","ensureComponentIsNative","ensurePositiveDelayProps","keyOf","merge","onlyChild","react-timer-mixin/TimerMixin.js"],function(e,t,n,r,o,i){"use strict";var a=Object.assign||function(e){for(var t=1;t1)for(var r=1;n>r;r++)t=arguments[r],t&&(e=(e?e+" ":"")+t);return e}o.exports=a}),__d("ensureComponentIsNative",["invariant"],function(e,t,n,r,o,i){"use strict";var a=t("invariant"),s=function(e){a(e&&"function"==typeof e.setNativeProps,"Touchable child must either be native or forward setNativeProps to a native component")};o.exports=s}),__d("TouchableOpacity",["Animated","NativeMethodsMixin","React","Touchable","TouchableWithoutFeedback","ensurePositiveDelayProps","flattenStyle","keyOf","react-timer-mixin/TimerMixin.js"],function(e,t,n,r,o,i){"use strict";var a=Object.assign||function(e){for(var t=1;t=this._startTime+this._duration?(0===this._duration?this._onUpdate(this._toValue):this._onUpdate(this._fromValue+this._easing(1)*(this._toValue-this._fromValue)),void this.__debouncedOnEnd({finished:!0})):(this._onUpdate(this._fromValue+this._easing((e-this._startTime)/this._duration)*(this._toValue-this._fromValue)),void(this.__active&&(this._animationFrame=w(this.onUpdate.bind(this)))))}},{key:"stop",value:function(){this.__active=!1,clearTimeout(this._timeout),window.cancelAnimationFrame(this._animationFrame),this.__debouncedOnEnd({finished:!1})}}]),t}(I),N=function(e){function t(e){s(this,t),h(Object.getPrototypeOf(t.prototype),"constructor",this).call(this),this._deceleration=e.deceleration||.998,this._velocity=e.velocity}return a(t,e),d(t,[{key:"start",value:function(e,t,n){this.__active=!0,this._lastValue=e,this._fromValue=e,this._onUpdate=t,this.__onEnd=n,this._startTime=Date.now(),this._animationFrame=w(this.onUpdate.bind(this))}},{key:"onUpdate",value:function(){var e=Date.now(),t=this._fromValue+this._velocity/(1-this._deceleration)*(1-Math.exp(-(1-this._deceleration)*(e-this._startTime)));return this._onUpdate(t),Math.abs(this._lastValue-t)<.1?void this.__debouncedOnEnd({finished:!0}):(this._lastValue=t,void(this.__active&&(this._animationFrame=w(this.onUpdate.bind(this)))))}},{key:"stop",value:function(){this.__active=!1,window.cancelAnimationFrame(this._animationFrame),this.__debouncedOnEnd({finished:!1})}}]),t}(I),D=function(e){function t(e){s(this,t),h(Object.getPrototypeOf(t.prototype),"constructor",this).call(this),this._overshootClamping=c(e.overshootClamping,!1),this._restDisplacementThreshold=c(e.restDisplacementThreshold,.001),this._restSpeedThreshold=c(e.restSpeedThreshold,.001),this._initialVelocity=e.velocity,this._lastVelocity=c(e.velocity,0),this._toValue=e.toValue;var n;void 0!==e.bounciness||void 0!==e.speed?(R(void 0===e.tension&&void 0===e.friction,"You can only define bounciness/speed or tension/friction but not both"),n=T.SpringConfig.fromBouncinessAndSpeed(c(e.bounciness,8),c(e.speed,12))):n=T.SpringConfig.fromOrigamiTensionAndFriction(c(e.tension,40),c(e.friction,7)),this._tension=n.tension,this._friction=n.friction}return a(t,e),d(t,[{key:"start",value:function(e,n,r,o){if(this.__active=!0,this._startPosition=e,this._lastPosition=this._startPosition,this._onUpdate=n,this.__onEnd=r,this._lastTime=Date.now(),o instanceof t){var i=o.getInternalState();this._lastPosition=i.lastPosition,this._lastVelocity=i.lastVelocity,this._lastTime=i.lastTime}void 0!==this._initialVelocity&&null!==this._initialVelocity&&(this._lastVelocity=this._initialVelocity),this.onUpdate()}},{key:"getInternalState",value:function(){return{lastPosition:this._lastPosition,lastVelocity:this._lastVelocity,lastTime:this._lastTime}}},{key:"onUpdate",value:function(){var e=this._lastPosition,t=this._lastVelocity,n=this._lastPosition,r=this._lastVelocity,o=64,i=Date.now();i>this._lastTime+o&&(i=this._lastTime+o);for(var a=1,s=Math.floor((i-this._lastTime)/a),u=0;s>u;++u){var c=a/1e3,l=t,p=this._tension*(this._toValue-n)-this._friction*r,n=e+l*c/2,r=t+p*c/2,h=r,d=this._tension*(this._toValue-n)-this._friction*r;n=e+h*c/2,r=t+d*c/2;var f=r,m=this._tension*(this._toValue-n)-this._friction*r;n=e+f*c/2,r=t+m*c/2;var v=r,g=this._tension*(this._toValue-n)-this._friction*r;n=e+f*c/2,r=t+m*c/2;var y=(l+2*(h+f)+v)/6,_=(p+2*(d+m)+g)/6;e+=y*c,t+=_*c}if(this._lastTime=i,this._lastPosition=e,this._lastVelocity=t,this._onUpdate(e),this.__active){var b=!1;this._overshootClamping&&0!==this._tension&&(b=this._startPositionthis._toValue:eo;o++)r[o]=arguments[o];var i=function(e,t,n){if("number"==typeof t)return R(e instanceof k,"Bad mapping of type "+typeof e+" for key "+n+", event value must map to AnimatedValue"),void e.setValue(t);R("object"==typeof e,"Bad mapping of type "+typeof e+" for key "+n),R("object"==typeof t,"Bad event of type "+typeof t+" for key "+n);for(var n in e)i(e[n],t[n],n)};e.forEach(function(e,t){i(e,r[t],"arg"+t)}),t&&t.listener&&t.listener.apply(null,r)}};o.exports={delay:Y,sequence:G,parallel:W,stagger:K,decay:z,timing:q,spring:U,event:X,Value:k,ValueXY:A,__PropsOnlyForTests:F,View:l(S),Text:l(b),Image:l(m),createAnimatedComponent:l}}),__d("Interpolation",[],function(e,t,n,r,o,i){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t,n,r,o,i,a,s){var u=e;if(t>u){if("identity"===a)return u;"clamp"===a&&(u=t)}if(u>n){if("identity"===s)return u;"clamp"===s&&(u=n)}return r===o?r:t===n?t>=e?r:o:(t===-(1/0)?u=-u:n===1/0?u-=t:u=(u-t)/(n-t),u=i(u),r===-(1/0)?u=-u:o===1/0?u+=r:u=u*(o-r)+r,u)}function u(e){var t=e.outputRange;m(t.length>=2,"Bad output range"),c(t);var n=t[0].match(y).map(function(){return[]});t.forEach(function(e){e.match(y).forEach(function(e,t){n[t].push(+e)})});var r=t[0].match(y).map(function(t,r){return g.create(d({},e,{outputRange:n[r]}))});return function(e){var n=0;return t[0].replace(y,function(){return String(r[n++](e))})}}function c(e){for(var t=e[0].replace(y,""),n=1;n=e);++n);return n-1}function p(e){m(e.length>=2,"inputRange must have at least 2 elements");for(var t=1;t=e[t-1],"inputRange must be monotonically increasing "+e)}function h(e,t){m(t.length>=2,e+" must have at least 2 elements"),m(2!==t.length||t[0]!==-(1/0)||t[1]!==1/0,e+"cannot be ]-infinity;+infinity[ "+t)}var d=Object.assign||function(e){for(var t=1;t0?1:0}},{key:"step1",value:function(e){return e>=1?1:0}},{key:"linear",value:function(e){return e}},{key:"ease",value:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}(function(e){return l(e)})},{key:"quad",value:function(e){return e*e}},{key:"cubic",value:function(e){return e*e*e}},{key:"poly",value:function(e){return function(t){return Math.pow(t,e)}}},{key:"sin",value:function(e){return 1-Math.cos(e*Math.PI/2)}},{key:"circle",value:function(e){return 1-Math.sqrt(1-e*e)}},{key:"exp",value:function(e){return Math.pow(2,10*(e-1))}},{key:"elastic",value:function(e,t){var n,r=2*Math.PI;return arguments.length<2&&(t=.45),arguments.length?n=t/r*Math.asin(1/e):(e=1,n=t/4),function(o){return 1+e*Math.pow(2,-10*o)*Math.sin((o-n)*r/t)}}},{key:"back",value:function(e){return void 0===e&&(e=1.70158),function(t){return t*t*((e+1)*t-e)}}},{key:"bounce",value:function(e){return 1/2.75>e?7.5625*e*e:2/2.75>e?(e-=1.5/2.75,7.5625*e*e+.75):2.5/2.75>e?(e-=2.25/2.75,7.5625*e*e+.9375):(e-=2.625/2.75,7.5625*e*e+.984375)}},{key:"bezier",value:function(e,t,n,r,o){if(void 0===o){var i=500;o=1e3/60/i/4}return u(e,t,n,r,o)}},{key:"in",value:function(e){return e}},{key:"out",value:function(e){return function(t){return 1-e(1-t)}}},{key:"inOut",value:function(e){return function(t){return.5>t?e(2*t)/2:1-e(2*(1-t))/2}}}]),e}(),l=c.bezier(.42,0,1,1);o.exports=c}),__d("bezier",[],function(e,t,n,r,o,i){o.exports=function(e,t,n,r,o){var i=function(t){var r=1-t;return 3*r*r*t*e+3*r*t*t*n+t*t*t},a=function(e){var n=1-e;return 3*n*n*e*t+3*n*e*e*r+e*e*e},s=function(t){var r=1-t;return 3*(2*(t-1)*t+r*r)*e+3*(-t*t*t+2*r*t)*n};return function(e){var t,n,r,u,c,l,p=e;for(r=p,l=0;8>l;l++){if(u=i(r)-p,Math.abs(u)r)return a(t);if(r>n)return a(n);for(;n>t;){if(u=i(r),Math.abs(u-p)u?t=r:n=r,r=.5*(n-t)+t}return a(r)}}}),__d("requestAnimationFrame",["emptyFunction","nativeRequestAnimationFrame"],function(e,t,n,r,o,i){ -var a=t("emptyFunction"),s=t("nativeRequestAnimationFrame"),u=0,c=s||function(t){var n=Date.now(),r=Math.max(0,16-(n-u));return u=n+r,e.setTimeout(function(){t(Date.now())},r)};c(a),o.exports=c}),__d("nativeRequestAnimationFrame",[],function(e,t,n,r,o,i){var a=e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame;o.exports=a}),__d("WebView",["ActivityIndicatorIOS","EdgeInsetsPropType","React","StyleSheet","Text","View","invariant","keyMirror","requireNativeComponent","NativeModules"],function(e,t,n,r,o,i){"use strict";var a=t("ActivityIndicatorIOS"),s=t("EdgeInsetsPropType"),u=t("React"),c=t("StyleSheet"),l=t("Text"),p=t("View"),h=t("invariant"),d=t("keyMirror"),f=t("requireNativeComponent"),m=u.PropTypes,v=t("NativeModules").WebViewManager,g="rgba(255,255,255,0.8)",y="webview",_=d({IDLE:null,LOADING:null,ERROR:null}),b={click:v.NavigationType.LinkClicked,formsubmit:v.NavigationType.FormSubmitted,backforward:v.NavigationType.BackForward,reload:v.NavigationType.Reload,formresubmit:v.NavigationType.FormResubmitted,other:v.NavigationType.Other},S=v.JSNavigationScheme,R=function(){return u.createElement(p,{style:C.loadingView},u.createElement(a,null))},E=function(e,t,n){return u.createElement(p,{style:C.errorContainer},u.createElement(l,{style:C.errorTextTitle},"Error loading page"),u.createElement(l,{style:C.errorText},"Domain: "+e),u.createElement(l,{style:C.errorText},"Error Code: "+t),u.createElement(l,{style:C.errorText},"Description: "+n))},T=u.createClass({displayName:"WebView",statics:{JSNavigationScheme:S,NavigationType:b},propTypes:{url:m.string,html:m.string,renderError:m.func,renderLoading:m.func,bounces:m.bool,scrollEnabled:m.bool,automaticallyAdjustContentInsets:m.bool,contentInset:s,onNavigationStateChange:m.func,startInLoadingState:m.bool,style:p.propTypes.style,javaScriptEnabledAndroid:m.bool,injectedJavaScript:m.string,scalesPageToFit:m.bool},getInitialState:function(){return{viewState:_.IDLE,lastErrorEvent:null,startInLoadingState:!0}},componentWillMount:function(){this.props.startInLoadingState&&this.setState({viewState:_.LOADING})},render:function(){var e=null;if(this.state.viewState===_.LOADING)e=(this.props.renderLoading||R)();else if(this.state.viewState===_.ERROR){var t=this.state.lastErrorEvent;h(null!=t,"lastErrorEvent expected to be non-null"),e=(this.props.renderError||E)(t.domain,t.code,t.description)}else this.state.viewState!==_.IDLE&&console.error("RCTWebView invalid state encountered: "+this.state.loading);var n=[C.container,C.webView,this.props.style];(this.state.viewState===_.LOADING||this.state.viewState===_.ERROR)&&n.push(C.hidden);var r=u.createElement(w,{ref:y,key:"webViewKey",style:n,url:this.props.url,html:this.props.html,injectedJavaScript:this.props.injectedJavaScript,bounces:this.props.bounces,scrollEnabled:this.props.scrollEnabled,contentInset:this.props.contentInset,automaticallyAdjustContentInsets:this.props.automaticallyAdjustContentInsets,onLoadingStart:this.onLoadingStart,onLoadingFinish:this.onLoadingFinish,onLoadingError:this.onLoadingError,scalesPageToFit:this.props.scalesPageToFit});return u.createElement(p,{style:C.container},r,e)},goForward:function(){v.goForward(this.getWebViewHandle())},goBack:function(){v.goBack(this.getWebViewHandle())},reload:function(){v.reload(this.getWebViewHandle())},updateNavigationState:function(e){this.props.onNavigationStateChange&&this.props.onNavigationStateChange(e.nativeEvent)},getWebViewHandle:function(){return u.findNodeHandle(this.refs[y])},onLoadingStart:function(e){this.updateNavigationState(e)},onLoadingError:function(e){e.persist(),console.error("Encountered an error loading page",e.nativeEvent),this.setState({lastErrorEvent:e.nativeEvent,viewState:_.ERROR})},onLoadingFinish:function(e){this.setState({viewState:_.IDLE}),this.updateNavigationState(e)}}),w=f("RCTWebView",T),C=c.create({container:{flex:1},errorContainer:{flex:1,justifyContent:"center",alignItems:"center",backgroundColor:g},errorText:{fontSize:14,textAlign:"center",marginBottom:2},errorTextTitle:{fontSize:15,fontWeight:"500",marginBottom:10},hidden:{height:0,flex:0},loadingView:{backgroundColor:g,flex:1,justifyContent:"center",alignItems:"center"},webView:{backgroundColor:"#ffffff"}});o.exports=T}),__d("ActionSheetIOS",["NativeModules","invariant"],function(e,t,n,r,o,i){"use strict";var a=t("NativeModules").ActionSheetManager,s=t("invariant"),u={showActionSheetWithOptions:function(e,t){s("object"==typeof e&&null!==e,"Options must a valid object"),s("function"==typeof t,"Must provide a valid callback"),a.showActionSheetWithOptions(e,function(){},t)},showShareActionSheetWithOptions:function(e,t,n){s("object"==typeof e&&null!==e,"Options must a valid object"),s("function"==typeof t,"Must provide a valid failureCallback"),s("function"==typeof n,"Must provide a valid successCallback"),a.showShareActionSheetWithOptions(e,t,n)}};o.exports=u}),__d("AdSupportIOS",["NativeModules"],function(e,t,n,r,o,i){"use strict";var a=t("NativeModules").AdSupport;o.exports={getAdvertisingId:function(e,t){a.getAdvertisingId(e,t)},getAdvertisingTrackingEnabled:function(e,t){a.getAdvertisingTrackingEnabled(e,t)}}}),__d("AlertIOS",["NativeModules","invariant"],function(e,t,n,r,o,i){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var s=function(){function e(e,t){for(var n=0;nl.get("window").height/2?"top":"bottom",selection:r.length-1,hierarchy:r,inspected:{style:i.style||{},frame:t}})}},{key:"setPerfing",value:function(e){this.setState({perfing:e,inspecting:!1,inspected:null})}},{key:"setInspecting",value:function(e){this.setState({inspecting:e,inspected:null})}},{key:"render",value:function(){var e="bottom"===this.state.panelPos?{bottom:0}:{top:0};return f.createElement(g,{style:_.container,pointerEvents:"box-none"},this.state.inspecting&&f.createElement(p,{rootTag:this.props.rootTag,inspected:this.state.inspected,inspectedViewTag:this.props.inspectedViewTag,onTouchInstance:this.onTouchInstance.bind(this)}),f.createElement(g,{style:[_.panelContainer,e]},f.createElement(h,{devtoolsIsOpen:!!this.state.devtoolsAgent,inspecting:this.state.inspecting,perfing:this.state.perfing,setPerfing:this.setPerfing.bind(this),setInspecting:this.setInspecting.bind(this),inspected:this.state.inspected,hierarchy:this.state.hierarchy,selection:this.state.selection,setSelection:this.setSelection.bind(this)})))}}]),t}(f.Component),_=m.create({container:{position:"absolute",backgroundColor:"transparent",top:0,left:0,right:0,bottom:0},panelContainer:{position:"absolute",left:0,right:0}});o.exports=y}),__d("InspectorOverlay",["Dimensions","InspectorUtils","React","StyleSheet","NativeModules","View","ElementBox"],function(e,t,n,r,o,i){"use strict";var a=t("Dimensions"),s=t("InspectorUtils"),u=t("React"),c=t("StyleSheet"),l=t("NativeModules").UIManager,p=t("View"),h=t("ElementBox"),d=u.PropTypes,f=u.createClass({displayName:"InspectorOverlay",propTypes:{inspected:d.shape({frame:d.object,style:d.any}),inspectedViewTag:d.number,onTouchInstance:d.func.isRequired},findViewForTouchEvent:function(e){var t=this,n=e.nativeEvent.touches[0],r=n.locationX,o=n.locationY;l.findSubviewIn(this.props.inspectedViewTag,[r,o],function(e,n,r,i,a){var u=s.findInstanceByNativeTag(t.props.rootTag,e);u&&t.props.onTouchInstance(u,{left:n,top:r,width:i,height:a},o)})},shouldSetResponser:function(e){return this.findViewForTouchEvent(e),!0},render:function(){var e=null;return this.props.inspected&&(e=u.createElement(h,{frame:this.props.inspected.frame,style:this.props.inspected.style})),u.createElement(p,{onStartShouldSetResponder:this.shouldSetResponser,onResponderMove:this.findViewForTouchEvent,style:[m.inspector,{height:a.get("window").height}]},e)}}),m=c.create({inspector:{backgroundColor:"transparent",position:"absolute",left:0,top:0,right:0}});o.exports=f}),__d("ElementBox",["React","View","StyleSheet","BorderBox","resolveBoxStyle","flattenStyle"],function(e,t,n,r,o,i){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n.5;e.dismissalSpring.setEndValue(o?1:0)}}})},render:function(){var e,t=this;return E.get(this.props.warning)>1&&(e=h.createElement(f,{style:N.bold},"(",E.get(this.props.warning),")"," ")),h.createElement(v,s({style:N.warningBox,ref:function(e){t.container=e}},this.panGesture.panHandlers),h.createElement(m,{onPress:this.props.onOpened},h.createElement(f,{style:N.warningText,numberOfLines:2,ref:function(e){t.text=e}},e,this.props.warning)),h.createElement(v,{ref:function(e){t.closeButton=e},style:N.closeButton},h.createElement(m,{onPress:function(){t.dismissalSpring.setEndValue(1)}},h.createElement(f,{style:N.closeButtonText},"✕"))))}}),x=h.createClass({displayName:"WarningBoxOpened",render:function(){var e;return E.get(this.props.warning)>1&&(e=h.createElement(f,{style:N.bold},"(",E.get(this.props.warning),")"," ")),h.createElement(m,{activeOpacity:.9,onPress:this.props.onClose,style:N.yellowBox},h.createElement(f,{ -style:N.yellowBoxText},e,this.props.warning),h.createElement(v,{style:N.yellowBoxButtons},h.createElement(m,{onPress:this.props.onDismissed,style:N.yellowBoxButton},h.createElement(f,{style:N.yellowBoxButtonText},"Dismiss")),h.createElement(m,{onPress:this.props.onIgnored,style:N.yellowBoxButton},h.createElement(f,{style:N.yellowBoxButtonText},"Ignore"))))}}),O=!0,P=h.createClass({displayName:"WarningBox",getInitialState:function(){return{totalWarningCount:w,openWarning:null}},componentWillMount:function(){console.yellowBoxResetIgnored&&(u.setItem(S,"[]",function(e){e&&console.warn("Could not reset ignored warnings.",e)}),T=[])},componentDidMount:function(){g(O,"There can only be one WarningBox"),O=!1,C.addListener("count",this._onWarningCount)},componentWillUnmount:function(){C.removeAllListeners(),O=!0},_onWarningCount:function(e){var t=this;setImmediate(function(){t.setState({totalWarningCount:e})})},_onDismiss:function(e){E["delete"](e),this.setState({openWarning:null})},render:function(){var e=this;if(0===E.size)return h.createElement(v,null);if(this.state.openWarning)return h.createElement(x,{warning:this.state.openWarning,onClose:function(){e.setState({openWarning:null})},onDismissed:this._onDismiss.bind(this,this.state.openWarning),onIgnored:function(){T.push(e.state.openWarning),a(),e._onDismiss(e.state.openWarning)}});var t=[];return E.forEach(function(n,r){t.push(h.createElement(I,{key:r,onOpened:function(){e.setState({openWarning:r})},onDismissed:e._onDismiss.bind(e,r),warning:r}))}),h.createElement(v,{style:N.warningContainer},t)}}),N=d.create({bold:{fontWeight:"bold"},closeButton:{position:"absolute",right:0,height:46,width:46},closeButtonText:{color:"white",fontSize:32,position:"relative",left:8},warningContainer:{position:"absolute",left:0,right:0,bottom:0},warningBox:{position:"relative",backgroundColor:"rgba(171, 124, 36, 0.9)",flex:1,height:46},warningText:{color:"white",position:"absolute",left:0,marginLeft:15,marginRight:46,top:7},yellowBox:{backgroundColor:"rgba(171, 124, 36, 0.9)",position:"absolute",left:0,right:0,top:0,bottom:0,padding:15,paddingTop:35},yellowBoxText:{color:"white",fontSize:20},yellowBoxButtons:{flexDirection:"row",position:"absolute",bottom:0},yellowBoxButton:{flex:1,padding:25},yellowBoxButtonText:{color:"white",fontSize:16}});o.exports=P}),__d("AsyncStorage",["NativeModules"],function(e,t,n,r,o,i){"use strict";function a(e){if(!e)return null;var t=new Error(e.message);return t.key=e.key,t}var s=t("NativeModules"),u=s.AsyncLocalStorage,c=s.AsyncRocksDBStorage,l=c||u,p={getItem:function(e,t){return new Promise(function(n,r){l.multiGet([e],function(e,o){var i=o&&o[0]&&o[0][1]?o[0][1]:null;t&&t(e&&a(e[0])||null,i),e?r(a(e[0])):n(i)})})},setItem:function(e,t,n){return new Promise(function(r,o){l.multiSet([[e,t]],function(e){n&&n(e&&a(e[0])||null),e?o(a(e[0])):r(null)})})},removeItem:function(e,t){return new Promise(function(n,r){l.multiRemove([e],function(e){t&&t(e&&a(e[0])||null),e?r(a(e[0])):n(null)})})},mergeItem:function(e,t,n){return new Promise(function(r,o){l.multiMerge([[e,t]],function(e){n&&n(e&&a(e[0])||null),e?o(a(e[0])):r(null)})})},clear:function(e){return new Promise(function(t,n){l.clear(function(r){e&&e(a(r)),r&&a(r)?n(a(r)):t(null)})})},getAllKeys:function(e){return new Promise(function(t,n){l.getAllKeys(function(r,o){e&&e(a(r),o),r?n(a(r)):t(o)})})},multiGet:function(e,t){return new Promise(function(n,r){l.multiGet(e,function(e,o){var i=e&&e.map(function(e){return a(e)})||null;t&&t(i,o),e?r(i):n(o)})})},multiSet:function(e,t){return new Promise(function(n,r){l.multiSet(e,function(e){var o=e&&e.map(function(e){return a(e)})||null;t&&t(o),e?r(o):n(null)})})},multiRemove:function(e,t){return new Promise(function(n,r){l.multiRemove(e,function(e){var o=e&&e.map(function(e){return a(e)})||null;t&&t(o),e?r(o):n(null)})})},multiMerge:function(e,t){return new Promise(function(n,r){l.multiMerge(e,function(e){var o=e&&e.map(function(e){return a(e)})||null;t&&t(o),e?r(o):n(null)})})}};l.multiMerge||(delete p.mergeItem,delete p.multiMerge),o.exports=p}),__d("setupDevtools",["flattenStyle","ReactCurrentOwner","ReactInstanceHandles","ReactNativeMount","ReactReconciler","ReactNativeTextComponent"],function(global,require,requireDynamic,requireLazy,module,exports){"use strict";function setupDevtools(){function tryToConnect(){ws.send("attach:agent");var e=setInterval(function(){return ws.send("attach:agent")},500);ws.onmessage=function(t){0===t.data.indexOf("eval:")&&(clearInterval(e),initialize(t.data.slice("eval:".length)))}}function initialize(text){try{eval(text)}catch(e){return void console.error("Failed to eval"+e.message)}window.__REACT_DEVTOOLS_GLOBAL_HOOK__.inject({CurrentOwner:require("ReactCurrentOwner"),InstanceHandles:require("ReactInstanceHandles"),Mount:require("ReactNativeMount"),Reconciler:require("ReactReconciler"),TextComponent:require("ReactNativeTextComponent")}),ws.onmessage=handleMessage}function handleMessage(e){var t;try{t=JSON.parse(e.data)}catch(n){return console.error("failed to parse json: "+e.data)}return t.$close||t.$error?(closeListeners.forEach(function(e){return e()}),window.__REACT_DEVTOOLS_GLOBAL_HOOK__.emit("shutdown"),void tryToConnect()):void(t.$open||messageListeners.forEach(function(e){try{e(t)}catch(n){throw console.log(t),n}}))}var messageListeners=[],closeListeners=[],ws=new window.WebSocket("ws://localhost:8081/devtools"),FOR_BACKEND={resolveRNStyle:require("flattenStyle"),wall:{listen:function(e){messageListeners.push(e)},onClose:function(e){closeListeners.push(e)},send:function(e){ws.send(JSON.stringify(e))}}};ws.onclose=function(){console.warn("devtools socket closed"),closeListeners.forEach(function(e){return e()})},ws.onerror=function(e){console.warn("devtools socket errored",e),closeListeners.forEach(function(e){return e()})},ws.onopen=function(){tryToConnect()}}module.exports=setupDevtools}),__d("RCTRenderingPerf",["ReactDefaultPerf","invariant"],function(e,t,n,r,o,i){"use strict";var a=t("ReactDefaultPerf"),s=t("invariant"),u=[],c=!1,l={toggle:function(){console.log("Render perfomance measurements enabled"),c=!0},start:function(){c&&(a.start(),u.forEach(function(e){return e.start()}))},stop:function(){if(c){a.stop(),a.printInclusive(),a.printWasted();for(var e=0,t=0,n=a.getLastMeasurements(),r=0;r component":e.componentName,"Inclusive time (ms)":a(e.time),Instances:e.count}})),console.log("Total time:",c.getTotalTime(e).toFixed(2)+" ms")},getMeasurementsSummaryMap:function(e){var t=c.getInclusiveSummary(e,!0);return t.map(function(e){return{"Owner > component":e.componentName,"Wasted time (ms)":e.time,Instances:e.count}})},printWasted:function(e){e=e||d._allMeasurements,console.table(d.getMeasurementsSummaryMap(e)),console.log("Total time:",c.getTotalTime(e).toFixed(2)+" ms")},printDOM:function(e){e=e||d._allMeasurements;var t=c.getDOMSummary(e);console.table(t.map(function(e){var t={};return t[u.ID_ATTRIBUTE_NAME]=e.id,t.type=e.type,t.args=JSON.stringify(e.args),t})),console.log("Total time:",c.getTotalTime(e).toFixed(2)+" ms")},_recordWrite:function(e,t,n,r){var o=d._allMeasurements[d._allMeasurements.length-1].writes;o[e]=o[e]||[],o[e].push({type:t,time:n,args:r})},measure:function(e,t,n){return function(){for(var r=arguments.length,o=Array(r),i=0;r>i;i++)o[i]=arguments[i];var a,u,c;if("_renderNewRootComponent"===t||"flushBatchedUpdates"===t)return d._allMeasurements.push({exclusive:{},inclusive:{},render:{},counts:{},writes:{},displayNames:{},totalTime:0}),c=h(),u=n.apply(this,o),d._allMeasurements[d._allMeasurements.length-1].totalTime=h()-c,u;if("_mountImageIntoNode"===t||"ReactDOMIDOperations"===e){if(c=h(),u=n.apply(this,o),a=h()-c,"_mountImageIntoNode"===t){var p=l.getID(o[1]);d._recordWrite(p,t,a,o[0])}else"dangerouslyProcessChildrenUpdates"===t?o[0].forEach(function(e){var t={};null!==e.fromIndex&&(t.fromIndex=e.fromIndex),null!==e.toIndex&&(t.toIndex=e.toIndex),null!==e.textContent&&(t.textContent=e.textContent),null!==e.markupIndex&&(t.markup=o[1][e.markupIndex]),d._recordWrite(e.parentID,e.type,a,t)}):d._recordWrite(o[0],t,a,Array.prototype.slice.call(o,1));return u}if("ReactCompositeComponent"!==e||"mountComponent"!==t&&"updateComponent"!==t&&"_renderValidatedComponent"!==t)return n.apply(this,o);if("string"==typeof this._currentElement.type)return n.apply(this,o);var f="mountComponent"===t?o[0]:this._rootNodeID,m="_renderValidatedComponent"===t,v="mountComponent"===t,g=d._mountStack,y=d._allMeasurements[d._allMeasurements.length-1];if(m?s(y.counts,f,1):v&&g.push(0),c=h(),u=n.apply(this,o),a=h()-c,m)s(y.render,f,a);else if(v){var _=g.pop();g[g.length-1]+=a,s(y.exclusive,f,a-_),s(y.inclusive,f,a)}else s(y.inclusive,f,a);return y.displayNames[f]={current:this.getName(),owner:this._currentElement._owner?this._currentElement._owner.getName():""},u}}};o.exports=d}),__d("DOMProperty",["invariant"],function(e,t,n,r,o,i){"use strict";function a(e,t){return(e&t)===t}var s=t("invariant"),u={MUST_USE_ATTRIBUTE:1,MUST_USE_PROPERTY:2,HAS_SIDE_EFFECTS:4,HAS_BOOLEAN_VALUE:8,HAS_NUMERIC_VALUE:16,HAS_POSITIVE_NUMERIC_VALUE:48,HAS_OVERLOADED_BOOLEAN_VALUE:64,injectDOMPropertyConfig:function(e){var t=u,n=e.Properties||{},r=e.DOMAttributeNamespaces||{},o=e.DOMAttributeNames||{},i=e.DOMPropertyNames||{},c=e.DOMMutationMethods||{};e.isCustomAttribute&&l._isCustomAttributeFunctions.push(e.isCustomAttribute);for(var p in n){s(!l.properties.hasOwnProperty(p),"injectDOMPropertyConfig(...): You're trying to inject DOM property '%s' which has already been injected. You may be accidentally injecting the same DOM property config twice, or you may be injecting two configs that have conflicting property names.",p);var h=p.toLowerCase(),d=n[p],f={attributeName:h,attributeNamespace:null,propertyName:p,mutationMethod:null,mustUseAttribute:a(d,t.MUST_USE_ATTRIBUTE),mustUseProperty:a(d,t.MUST_USE_PROPERTY),hasSideEffects:a(d,t.HAS_SIDE_EFFECTS),hasBooleanValue:a(d,t.HAS_BOOLEAN_VALUE),hasNumericValue:a(d,t.HAS_NUMERIC_VALUE),hasPositiveNumericValue:a(d,t.HAS_POSITIVE_NUMERIC_VALUE),hasOverloadedBooleanValue:a(d,t.HAS_OVERLOADED_BOOLEAN_VALUE)};if(s(!f.mustUseAttribute||!f.mustUseProperty,"DOMProperty: Cannot require using both attribute and property: %s",p),s(f.mustUseProperty||!f.hasSideEffects,"DOMProperty: Properties that have side effects must use property: %s",p),s(f.hasBooleanValue+f.hasNumericValue+f.hasOverloadedBooleanValue<=1,"DOMProperty: Value can be one of boolean, overloaded boolean, or numeric value, but not a combination: %s",p),__DEV__&&(l.getPossibleStandardName[h]=p),o.hasOwnProperty(p)){var m=o[p];f.attributeName=m,__DEV__&&(l.getPossibleStandardName[m]=p)}r.hasOwnProperty(p)&&(f.attributeNamespace=r[p]),i.hasOwnProperty(p)&&(f.propertyName=i[p]),c.hasOwnProperty(p)&&(f.mutationMethod=c[p]),l.properties[p]=f}}},c={},l={ID_ATTRIBUTE_NAME:"data-reactid",properties:{},getPossibleStandardName:__DEV__?{}:null,_isCustomAttributeFunctions:[],isCustomAttribute:function(e){for(var t=0;t=h&&s.push(n[t]);return s.sort(function(e,t){return t.exclusive-e.exclusive}),s}function c(e,t){for(var n,r={},o=0;o "+c.current,r[n]=r[n]||{componentName:n,time:0,count:0},a.inclusive[u]&&(r[n].time+=a.inclusive[u]),a.counts[u]&&(r[n].count+=a.counts[u])}}var d=[];for(n in r)r[n].time>=h&&d.push(r[n]);return d.sort(function(e,t){return t.time-e.time}),d}function l(e){var t={},n=Object.keys(e.writes),r=p({},e.exclusive,e.inclusive);for(var o in r){for(var i=!1,a=0;a0&&(t[o]=!0)}return t}var p=t("Object.assign"),h=1.2,d={_mountImageIntoNode:"set innerHTML",INSERT_MARKUP:"set innerHTML",MOVE_EXISTING:"move",REMOVE_NODE:"remove",TEXT_CONTENT:"set textContent",updatePropertyByID:"update attribute",deletePropertyByID:"delete attribute",updateStylesByID:"update styles",updateInnerHTMLByID:"set innerHTML",dangerouslyReplaceNodeWithMarkupByID:"replace"},f={getExclusiveSummary:u,getInclusiveSummary:c,getDOMSummary:s,getTotalTime:a};o.exports=f}),__d("ReactMount",["DOMProperty","ReactBrowserEventEmitter","ReactCurrentOwner","ReactElement","ReactEmptyComponent","ReactInstanceHandles","ReactInstanceMap","ReactMarkupChecksum","ReactPerf","ReactReconciler","ReactUpdateQueue","ReactUpdates","emptyObject","containsNode","instantiateReactComponent","invariant","setInnerHTML","shouldUpdateReactComponent","validateDOMNesting","warning"],function(e,t,n,r,o,i){"use strict";function a(e,t){for(var n=Math.min(e.length,t.length),r=0;n>r;r++)if(e.charAt(r)!==t.charAt(r))return r;return e.length===t.length?-1:n}function s(e){return e?e.nodeType===G?e.documentElement:e.firstChild:null}function u(e){var t=s(e);return t&&Z.getID(t)}function c(e){var t=l(e);if(t)if(q.hasOwnProperty(t)){var n=q[t];n!==e&&(L(!f(n,t),"ReactMount: Two valid but unequal nodes with the same `%s`: %s",U,t),q[t]=e)}else q[t]=e;return t}function l(e){return e&&e.getAttribute&&e.getAttribute(U)||""}function p(e,t){var n=l(e);n!==t&&delete q[n],e.setAttribute(U,t),q[t]=e}function h(e){return q.hasOwnProperty(e)&&f(q[e],e)||(q[e]=Z.findReactNodeByID(e)),q[e]}function d(e){var t=I.get(e)._rootNodeID;return w.isNullComponentID(t)?null:(q.hasOwnProperty(t)&&f(q[t],t)||(q[t]=Z.findReactNodeByID(t)),q[t])}function f(e,t){if(e){L(l(e)===t,"ReactMount: Unexpected modification of `%s`",U);var n=Z.findReactContainerForID(t);if(n&&k(n,e))return!0}return!1}function m(e){delete q[e]}function v(e){var t=q[e];return t&&f(t,e)?void(Q=t):!1}function g(e){Q=null,C.traverseAncestors(e,v);var t=Q;return Q=null,t}function y(e,t,n,r,o,i){if(__DEV__){i===M&&(i={});var a=n.nodeName.toLowerCase();i[F.ancestorInfoContextKey]=F.updatedAncestorInfo(null,a,null)}var s=P.mountComponent(e,t,r,i);e._renderedComponent._topLevelWrapper=e,Z._mountImageIntoNode(s,n,o)}function _(e,t,n,r,o){var i=D.ReactReconcileTransaction.getPooled();i.perform(y,null,e,t,n,i,r,o),D.ReactReconcileTransaction.release(i)}function b(e,t){for(P.unmountComponent(e),t.nodeType===G&&(t=t.documentElement);t.lastChild;)t.removeChild(t.lastChild)}var S=t("DOMProperty"),R=t("ReactBrowserEventEmitter"),E=t("ReactCurrentOwner"),T=t("ReactElement"),w=t("ReactEmptyComponent"),C=t("ReactInstanceHandles"),I=t("ReactInstanceMap"),x=t("ReactMarkupChecksum"),O=t("ReactPerf"),P=t("ReactReconciler"),N=t("ReactUpdateQueue"),D=t("ReactUpdates"),M=t("emptyObject"),k=t("containsNode"),A=t("instantiateReactComponent"),L=t("invariant"),j=t("setInnerHTML"),V=t("shouldUpdateReactComponent"),F=t("validateDOMNesting"),H=t("warning"),B=C.SEPARATOR,U=S.ID_ATTRIBUTE_NAME,q={},z=1,G=9,W=11,Y={},K={};if(__DEV__)var X={};var J=[],Q=null,$=function(){};$.prototype.render=function(){return this.props};var Z={_instancesByReactRootID:Y,scrollMonitor:function(e,t){t()},_updateRootComponent:function(e,t,n,r){return Z.scrollMonitor(n,function(){N.enqueueElementInternal(e,t),r&&N.enqueueCallbackInternal(e,r)}),__DEV__&&(X[u(n)]=s(n)),e},_registerComponent:function(e,t){L(t&&(t.nodeType===z||t.nodeType===G||t.nodeType===W),"_registerComponent(...): Target container is not a DOM element."),R.ensureScrollValueMonitoring();var n=Z.registerContainer(t);return Y[n]=e,n},_renderNewRootComponent:function(e,t,n,r){H(null==E.current,"_renderNewRootComponent(): Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate. Check the render method of %s.",E.current&&E.current.getName()||"ReactCompositeComponent");var o=A(e,null),i=Z._registerComponent(o,t);return D.batchedUpdates(_,o,i,t,n,r),__DEV__&&(X[i]=s(t)),o},renderSubtreeIntoContainer:function(e,t,n,r){return L(null!=e&&null!=e._reactInternalInstance,"parentComponent must be a valid React Component"),Z._renderSubtreeIntoContainer(e,t,n,r)},_renderSubtreeIntoContainer:function(e,t,n,r){L(T.isValidElement(t),"React.render(): Invalid component element.%s","string"==typeof t?" Instead of passing an element string, make sure to instantiate it by passing it to React.createElement.":"function"==typeof t?" Instead of passing a component class, make sure to instantiate it by passing it to React.createElement.":null!=t&&void 0!==t.props?" This may be caused by unintentionally loading two independent copies of React.":""),H(!n||!n.tagName||"BODY"!==n.tagName.toUpperCase(),"render(): Rendering components directly into document.body is discouraged, since its children are often manipulated by third-party scripts and browser extensions. This may lead to subtle reconciliation issues. Try rendering into a container element created for your app.");var o=new T($,null,null,null,t),i=Y[u(n)];if(i){var a=i._currentElement,c=a.props;if(V(c,t))return Z._updateRootComponent(i,o,n,r)._renderedComponent.getPublicInstance();Z.unmountComponentAtNode(n)}var l=s(n),p=l&&Z.isRenderedByReact(l);if(__DEV__&&(!p||l.nextSibling))for(var h=l;h;){if(Z.isRenderedByReact(h)){H(!1,"render(): Target node has markup rendered by React, but there are unrelated nodes as well. This is most commonly caused by white-space inserted around server-rendered markup.");break}h=h.nextSibling}var d=p&&!i,f=Z._renderNewRootComponent(o,n,d,null!=e?e._reactInternalInstance._processChildContext(e._reactInternalInstance._context):M)._renderedComponent.getPublicInstance();return r&&r.call(f),f},render:function(e,t,n){return Z._renderSubtreeIntoContainer(null,e,t,n)},registerContainer:function(e){var t=u(e);return t&&(t=C.getReactRootIDFromNodeID(t)),t||(t=C.createReactRootID()),K[t]=e,t},unmountComponentAtNode:function(e){H(null==E.current,"unmountComponentAtNode(): Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate. Check the render method of %s.",E.current&&E.current.getName()||"ReactCompositeComponent"),L(e&&(e.nodeType===z||e.nodeType===G||e.nodeType===W),"unmountComponentAtNode(...): Target container is not a DOM element.");var t=u(e),n=Y[t];return n?(D.batchedUpdates(b,n,e),delete Y[t],delete K[t],__DEV__&&delete X[t],!0):!1},findReactContainerForID:function(e){var t=C.getReactRootIDFromNodeID(e),n=K[t];if(__DEV__){var r=X[t];if(r&&r.parentNode!==n){H(l(r)===t,"ReactMount: Root element ID differed from reactRootID.");var o=n.firstChild;o&&t===l(o)?X[t]=o:H(!1,"ReactMount: Root element has been removed from its original container. New container: %s",r.parentNode)}}return n},findReactNodeByID:function(e){var t=Z.findReactContainerForID(e);return Z.findComponentRoot(t,e)},isRenderedByReact:function(e){if(1!==e.nodeType)return!1;var t=Z.getID(e);return t?t.charAt(0)===B:!1},getFirstReactDOM:function(e){for(var t=e;t&&t.parentNode!==t;){if(Z.isRenderedByReact(t))return t;t=t.parentNode}return null},findComponentRoot:function(e,t){var n=J,r=0,o=g(t)||e;for(n[0]=o.firstChild,n.length=1;r when using tables, nesting tags like
,

, or , or using non-SVG elements in an parent. Try inspecting the child nodes of the element with React ID `%s`.",t,Z.getID(e))},_mountImageIntoNode:function(e,t,n){if(L(t&&(t.nodeType===z||t.nodeType===G||t.nodeType===W),"mountComponentIntoNode(...): Target container is not valid."),n){var r=s(t);if(x.canReuseMarkup(e,r))return;var o=r.getAttribute(x.CHECKSUM_ATTR_NAME);r.removeAttribute(x.CHECKSUM_ATTR_NAME);var i=r.outerHTML;r.setAttribute(x.CHECKSUM_ATTR_NAME,o);var u=a(e,i),c=" (client) "+e.substring(u-20,u+20)+"\n (server) "+i.substring(u-20,u+20);L(t.nodeType!==G,"You're trying to render a component to the document using server rendering but the checksum was invalid. This usually means you rendered a different component type or props on the client from the one on the server, or your render() methods are impure. React cannot handle this case due to cross-browser quirks by rendering at the document root. You should look for environment dependent code in your components and ensure the props are the same client and server side:\n%s",c),__DEV__&&H(!1,"React attempted to reuse markup in a container but the checksum was invalid. This generally means that you are using server rendering and the markup generated on the server was not what the client was expecting. React injected new markup to compensate which works but you have lost many of the benefits of server rendering. Instead, figure out why the markup being generated is different on the client or server:\n%s",c)}L(t.nodeType!==G,"You're trying to render a component to the document but you didn't use server rendering. We can't do this without using server rendering due to cross-browser quirks. See React.renderToString() for server rendering."),j(t,e)},getReactRootID:u,getID:c,setID:p,getNode:h,getNodeFromInstance:d,purgeID:m};O.measureMethods(Z,"ReactMount",{_renderNewRootComponent:"_renderNewRootComponent",_mountImageIntoNode:"_mountImageIntoNode"}),o.exports=Z}),__d("ReactBrowserEventEmitter",["EventConstants","EventPluginHub","EventPluginRegistry","ReactEventEmitterMixin","ViewportMetrics","Object.assign","isEventSupported"],function(e,t,n,r,o,i){"use strict";function a(e){return Object.prototype.hasOwnProperty.call(e,y)||(e[y]=v++,f[e[y]]={}),f[e[y]]}var s=t("EventConstants"),u=t("EventPluginHub"),c=t("EventPluginRegistry"),l=t("ReactEventEmitterMixin"),p=t("ViewportMetrics"),h=t("Object.assign"),d=t("isEventSupported"),f={},m=!1,v=0,g={topBlur:"blur",topChange:"change",topClick:"click",topCompositionEnd:"compositionend",topCompositionStart:"compositionstart",topCompositionUpdate:"compositionupdate",topContextMenu:"contextmenu",topCopy:"copy",topCut:"cut",topDoubleClick:"dblclick",topDrag:"drag",topDragEnd:"dragend",topDragEnter:"dragenter",topDragExit:"dragexit",topDragLeave:"dragleave",topDragOver:"dragover",topDragStart:"dragstart",topDrop:"drop",topFocus:"focus",topInput:"input",topKeyDown:"keydown",topKeyPress:"keypress",topKeyUp:"keyup",topMouseDown:"mousedown",topMouseMove:"mousemove",topMouseOut:"mouseout",topMouseOver:"mouseover",topMouseUp:"mouseup",topPaste:"paste",topScroll:"scroll",topSelectionChange:"selectionchange",topTextInput:"textInput",topTouchCancel:"touchcancel",topTouchEnd:"touchend",topTouchMove:"touchmove",topTouchStart:"touchstart",topWheel:"wheel"},y="_reactListenersID"+String(Math.random()).slice(2),_=h({},l,{ReactEventListener:null,injection:{injectReactEventListener:function(e){e.setHandleTopLevel(_.handleTopLevel),_.ReactEventListener=e}},setEnabled:function(e){_.ReactEventListener&&_.ReactEventListener.setEnabled(e)},isEnabled:function(){return!(!_.ReactEventListener||!_.ReactEventListener.isEnabled())},listenTo:function(e,t){for(var n=t,r=a(n),o=c.registrationNameDependencies[e],i=s.topLevelTypes,u=0;u"," "+s.CHECKSUM_ATTR_NAME+'="'+t+'">')},canReuseMarkup:function(e,t){var n=t.getAttribute(s.CHECKSUM_ATTR_NAME);n=n&&parseInt(n,10);var r=a(e);return r===n}};o.exports=s}),__d("adler32",[],function(e,t,n,r,o,i){"use strict";function a(e){for(var t=1,n=0,r=0;r]/,c=function(e,t){e.innerHTML=t};if("undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction&&(c=function(e,t){MSApp.execUnsafeLocalFunction(function(){e.innerHTML=t})}),a.canUseDOM){var l=document.createElement("div");l.innerHTML=" ",""===l.innerHTML&&(c=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),s.test(t)||"<"===t[0]&&u.test(t)){e.innerHTML=String.fromCharCode(65279)+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t})}o.exports=c}),__d("validateDOMNesting",["Object.assign","emptyFunction","warning"],function(e,t,n,r,o,i){"use strict";var a=t("Object.assign"),s=t("emptyFunction"),u=t("warning"),c=s;if(__DEV__){var l=["address","applet","area","article","aside","base","basefont","bgsound","blockquote","body","br","button","caption","center","col","colgroup","dd","details","dir","div","dl","dt","embed","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","iframe","img","input","isindex","li","link","listing","main","marquee","menu","menuitem","meta","nav","noembed","noframes","noscript","object","ol","p","param","plaintext","pre","script","section","select","source","style","summary","table","tbody","td","template","textarea","tfoot","th","thead","title","tr","track","ul","wbr","xmp"],p=["applet","caption","html","table","td","th","marquee","object","template","foreignObject","desc","title"],h=p.concat(["button"]),d=["dd","dt","li","option","optgroup","p","rp","rt"],f={parentTag:null,formTag:null,aTagInScope:null,buttonTagInScope:null,nobrTagInScope:null,pTagInButtonScope:null,listItemTagAutoclosing:null,dlItemTagAutoclosing:null},m=function(e,t,n){var r=a({},e||f),o={tag:t,instance:n};return-1!==p.indexOf(t)&&(r.aTagInScope=null,r.buttonTagInScope=null,r.nobrTagInScope=null),-1!==h.indexOf(t)&&(r.pTagInButtonScope=null),-1!==l.indexOf(t)&&"address"!==t&&"div"!==t&&"p"!==t&&(r.listItemTagAutoclosing=null,r.dlItemTagAutoclosing=null),r.parentTag=o,"form"===t&&(r.formTag=o),"a"===t&&(r.aTagInScope=o),"button"===t&&(r.buttonTagInScope=o),"nobr"===t&&(r.nobrTagInScope=o),"p"===t&&(r.pTagInButtonScope=o),"li"===t&&(r.listItemTagAutoclosing=o),("dd"===t||"dt"===t)&&(r.dlItemTagAutoclosing=o),r},v=function(e,t){switch(t){case"select":return"option"===e||"optgroup"===e||"#text"===e;case"optgroup":return"option"===e||"#text"===e;case"option":return"#text"===e;case"tr":return"th"===e||"td"===e||"style"===e||"script"===e||"template"===e;case"tbody":case"thead":case"tfoot":return"tr"===e||"style"===e||"script"===e||"template"===e;case"colgroup":return"col"===e||"template"===e;case"table":return"caption"===e||"colgroup"===e||"tbody"===e||"tfoot"===e||"thead"===e||"style"===e||"script"===e||"template"===e;case"head":return"base"===e||"basefont"===e||"bgsound"===e||"link"===e||"meta"===e||"title"===e||"noscript"===e||"noframes"===e||"style"===e||"script"===e||"template"===e;case"html":return"head"===e||"body"===e}switch(e){case"h1":case"h2": -case"h3":case"h4":case"h5":case"h6":return"h1"!==t&&"h2"!==t&&"h3"!==t&&"h4"!==t&&"h5"!==t&&"h6"!==t;case"rp":case"rt":return-1===d.indexOf(t);case"caption":case"col":case"colgroup":case"frame":case"head":case"tbody":case"td":case"tfoot":case"th":case"thead":case"tr":return null==t}return!0},g=function(e,t){switch(e){case"address":case"article":case"aside":case"blockquote":case"center":case"details":case"dialog":case"dir":case"div":case"dl":case"fieldset":case"figcaption":case"figure":case"footer":case"header":case"hgroup":case"main":case"menu":case"nav":case"ol":case"p":case"section":case"summary":case"ul":case"pre":case"listing":case"table":case"hr":case"xmp":case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":return t.pTagInButtonScope;case"form":return t.formTag||t.pTagInButtonScope;case"li":return t.listItemTagAutoclosing;case"dd":case"dt":return t.dlItemTagAutoclosing;case"button":return t.buttonTagInScope;case"a":return t.aTagInScope;case"nobr":return t.nobrTagInScope}return null},y=function(e){if(!e)return[];var t=[];do t.push(e);while(e=e._currentElement._owner);return t.reverse(),t},_={};c=function(e,t,n){n=n||f;var r=n.parentTag,o=r&&r.tag,i=v(e,o)?null:r,a=i?null:g(e,n),s=i||a;if(s){var c,l=s.tag,p=s.instance,h=t&&t._currentElement._owner,d=p&&p._currentElement._owner,m=y(h),b=y(d),S=Math.min(m.length,b.length),R=-1;for(c=0;S>c&&m[c]===b[c];c++)R=c;var E="(unknown)",T=m.slice(R+1).map(function(e){return e.getName()||E}),w=b.slice(R+1).map(function(e){return e.getName()||E}),C=[].concat(-1!==R?m[R].getName()||E:[],w,l,a?["..."]:[],T,e).join(" > "),I=!!i+"|"+e+"|"+l+"|"+C;if(_[I])return;if(_[I]=!0,i){var x="";"table"===l&&"tr"===e&&(x+=" Add a to your code to match the DOM tree generated by the browser."),u(!1,"validateDOMNesting(...): <%s> cannot appear as a child of <%s>. See %s.%s",e,l,C,x)}else u(!1,"validateDOMNesting(...): <%s> cannot appear as a descendant of <%s>. See %s.",e,l,C)}},c.ancestorInfoContextKey="__validateDOMNesting_ancestorInfo$"+Math.random().toString(36).slice(2),c.updatedAncestorInfo=m,c.isTagValidInContext=function(e,t){t=t||f;var n=t.parentTag,r=n&&n.tag;return v(e,r)&&!g(e,t)}}o.exports=c}),__d("AppStateIOS",["Map","NativeModules","RCTDeviceEventEmitter","logError","invariant"],function(e,t,n,r,o,i){"use strict";var a=t("Map"),s=t("NativeModules"),u=t("RCTDeviceEventEmitter"),c=s.AppState,l=t("logError"),p=t("invariant"),h={change:new a,memoryWarning:new a},d={addEventListener:function(e,t){p(-1!==["change","memoryWarning"].indexOf(e),'Trying to subscribe to unknown event: "%s"',e),"change"===e?h[e].set(t,u.addListener("appStateDidChange",function(e){t(e.app_state)})):"memoryWarning"===e&&h[e].set(t,u.addListener("memoryWarning",t))},removeEventListener:function(e,t){p(-1!==["change","memoryWarning"].indexOf(e),'Trying to remove listener for unknown event: "%s"',e),h[e].has(t)&&(h[e].get(t).remove(),h[e]["delete"](t))},currentState:"active"};u.addListener("appStateDidChange",function(e){d.currentState=e.app_state}),c.getCurrentAppState(function(e){d.currentState=e.app_state},l),o.exports=d}),__d("CameraRoll",["ReactPropTypes","NativeModules","createStrictShapeTypeChecker","deepFreezeAndThrowOnMutationInDev","invariant"],function(e,t,n,r,o,i){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var s=function(){function e(e,t){for(var n=0;n=1&&y>e}};var b=function(e){function t(){a(this,t),l(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return s(t,e),c(t,[{key:"render",value:function(){p(!1,"GL.Target elements are for GL.View configuration only and should not be rendered")}}]),t}(m);b.displayName="GL.Target",b.propTypes={children:v.any.isRequired,uniform:v.string.isRequired};const S=f("GLView",R);var R=function(e){function t(e,n){a(this,t),l(Object.getPrototypeOf(t.prototype),"constructor",this).call(this,e,n),this._targetIncrement=0}return s(t,e),c(t,[{key:"setNativeProps",value:function(e){this.refs["native"].setNativeProps(e)}},{key:"render",value:function(){const e=this.props,t=e.style,n=e.width,r=e.height,o=e.children,i=e.shader;p(_.exists(i),"Shader #%s does not exists",i);const a=u({width:n,height:r},t);if(o){const s={position:"relative",width:n,height:r,overflow:"hidden"},c={position:"absolute",top:0,left:0,width:n,height:r},l=[],d=h.Children.map(o,function(e){p(e.type===b,"GL.View can only contains children of type GL.Target. Got '%s'",e.type&&e.type.displayName||e);const t=e.props.uniform;return l.push(t),h.createElement(g,{style:[c,e.props.style]},e.props.children)});return h.createElement(g,{style:s},d,h.createElement(S,u({ref:"native"},e,{style:a,children:void 0,targetUniforms:l,targetIncrement:this._targetIncrement++})))}return h.createElement(S,u({ref:"native"},e,{style:a}))}}]),t}(m);R.displayName="GL.View",R.propTypes={shader:v.number.isRequired,width:v.number.isRequired,height:v.number.isRequired,uniforms:v.object,childrenUniform:v.string,opaque:v.bool},R.defaultProps={opaque:!0},o.exports={View:R,Target:b,Shaders:_}}),__d("invariant",[],function(e,t,n,r,o,i){"use strict";var a=function(e,t,n,r,o,i,a,s){if("production"!==process.env.NODE_ENV&&void 0===t)throw new Error("invariant requires an error message argument");if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,i,a,s],l=0;u=new Error("Invariant Violation: "+t.replace(/%s/g,function(){return c[l++]}))}throw u.framesToPop=1,u}};o.exports=a}),__d("Simple/Saturation.js",["react-native/Libraries/react-native/react-native.js","gl-react-native/index.js"],function(e,t,n,r,o,i){function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n=0||p.indexOf("description")>=0))return i(t);if(0===p.length){if(_(t)){var d=t.name?": "+t.name:"";return e.stylize("[Function"+d+"]","special")}if(v(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(g(t))return e.stylize(Date.prototype.toString.call(t),"date");if(y(t))return i(t)}var f="",m=!1,b=["{","}"];if(c(t)&&(m=!0,b=["[","]"]),_(t)){var S=t.name?": "+t.name:"";f=" [Function"+S+"]"}if(v(t)&&(f=" "+RegExp.prototype.toString.call(t)),g(t)&&(f=" "+Date.prototype.toUTCString.call(t)),y(t)&&(f=" "+i(t)),0===p.length&&(!m||0==t.length))return b[0]+f+b[1];if(0>r)return v(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special");e.seen.push(t);var R;return R=m?a(e,t,r,h,p):p.map(function(n){return s(e,t,r,h,n,m)}),e.seen.pop(),u(R,f,b)}function o(e,t){if(f(t))return e.stylize("undefined","undefined");if(d(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return h(t)?e.stylize(""+t,"number"):l(t)?e.stylize(""+t,"boolean"):p(t)?e.stylize("null","null"):void 0}function i(e){return"["+Error.prototype.toString.call(e)+"]"}function a(e,t,n,r,o){for(var i=[],a=0,u=t.length;u>a;++a)S(t,String(a))?i.push(s(e,t,n,r,String(a),!0)):i.push("");return o.forEach(function(o){o.match(/^\d+$/)||i.push(s(e,t,n,r,o,!0))}),i}function s(e,t,n,o,i,a){var s,u,c;if(c=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]},c.get?u=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(u=e.stylize("[Setter]","special")),S(o,i)||(s="["+i+"]"),u||(e.seen.indexOf(c.value)<0?(u=p(n)?r(e,c.value,null):r(e,c.value,n-1),u.indexOf("\n")>-1&&(u=a?u.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+u.split("\n").map(function(e){return" "+e}).join("\n"))):u=e.stylize("[Circular]","special")),f(s)){if(a&&i.match(/^\d+$/))return u;s=JSON.stringify(""+i),s.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+u}function u(e,t,n){var r=0,o=e.reduce(function(e,t){return r++,t.indexOf("\n")>=0&&r++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0);return o>60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}function c(e){return Array.isArray(e)}function l(e){return"boolean"==typeof e}function p(e){return null===e}function h(e){return"number"==typeof e}function d(e){return"string"==typeof e}function f(e){return void 0===e}function v(e){return m(e)&&"[object RegExp]"===b(e)}function m(e){return"object"==typeof e&&null!==e}function g(e){return m(e)&&"[object Date]"===b(e)}function y(e){return m(e)&&("[object Error]"===b(e)||e instanceof Error)}function _(e){return"function"==typeof e}function b(e){return Object.prototype.toString.call(e)}function S(e,t){return Object.prototype.hasOwnProperty.call(e,t)}return e}(),r="(index)",o={trace:0,log:1,info:2,warn:3,error:4};"undefined"!=typeof module?module.exports=t:t(e)}(this),function(e){function t(){var t=function(t){e.console.error("Error: \n stack: "+t.stack+"\n line: "+t.line+"\n message: "+t.message,t)};e.ErrorUtils.setGlobalHandler(t)}var n={_inGuard:0,_globalHandler:null,setGlobalHandler:function(e){n._globalHandler=e},reportError:function(e){n._globalHandler&&n._globalHandler(e)},reportFatalError:function(e){n._globalHandler&&n._globalHandler(e,!0)},applyWithGuard:function(e,t,r){try{return n._inGuard++,e.apply(t,r)}catch(o){n.reportError(o)}finally{n._inGuard--}},applyWithGuardIfNeeded:function(e,t,r){return n.inGuard()?e.apply(t,r):void n.applyWithGuard(e,t,r)},inGuard:function(){return n._inGuard},guard:function(e,t,r){function o(){return n.applyWithGuard(e,r||this,arguments,null,t)}return"function"!=typeof e?(console.warn("A function must be passed to ErrorUtils.guard, got ",e),null):(t=t||e.name||"",o)}};e.ErrorUtils=n,t()}(this),String.prototype.startsWith||(String.prototype.startsWith=function(e){"use strict";if(null==this)throw TypeError();var t=String(this),n=arguments.length>1?Number(arguments[1])||0:0,r=Math.min(Math.max(n,0),t.length);return t.indexOf(String(e),n)===r}),String.prototype.endsWith||(String.prototype.endsWith=function(e){"use strict";if(null==this)throw TypeError();var t=String(this),n=t.length,r=String(e),o=arguments.length>1?Number(arguments[1])||0:n,i=Math.min(Math.max(o,0),n),a=i-r.length;return 0>a?!1:t.lastIndexOf(r,a)===a}),String.prototype.contains||(String.prototype.contains=function(e){"use strict";if(null==this)throw TypeError();var t=String(this),n=arguments.length>1?Number(arguments[1])||0:0;return-1!==t.indexOf(String(e),n)}),String.prototype.repeat||(String.prototype.repeat=function(e){"use strict";if(null==this)throw TypeError();var t=String(this);if(e=Number(e)||0,0>e||e===1/0)throw RangeError();if(1===e)return t;for(var n="";e;)1&e&&(n+=t),(e>>=1)&&(t+=t);return n}),function(e){function t(e,t){if(null==this)throw new TypeError("Array.prototype.findIndex called on null or undefined");if("function"!=typeof e)throw new TypeError("predicate must be a function");for(var n=Object(this),r=n.length>>>0,o=0;r>o;o++)if(e.call(t,n[o],o,n))return o;return-1}Array.prototype.findIndex||Object.defineProperty(Array.prototype,"findIndex",{enumerable:!1,writable:!0,configurable:!0,value:t}),Array.prototype.find||Object.defineProperty(Array.prototype,"find",{enumerable:!1,writable:!0,configurable:!0,value:function(n,r){if(null==this)throw new TypeError("Array.prototype.find called on null or undefined");var o=t.call(this,n,r);return-1===o?e:this[o]}})}(),__d("Simple/index.ios.js",["react-native/Libraries/react-native/react-native.js","Simple/HelloGL.js","Simple/Saturation.js","Simple/HueRotate.js","Simple/PieProgress.js","Simple/OneFingerResponse.js","Simple/AnimatedHelloGL.js","Simple/Blur.js"],function(e,t,n,r,o,i){function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n1){for(var p=Array(l),h=0;l>h;h++)p[h]=arguments[h+2];o.children=p}if(e&&e.defaultProps){var d=e.defaultProps;for(r in d)"undefined"==typeof o[r]&&(o[r]=d[r])}return new c(e,i,s,a.current,o)},c.createFactory=function(e){var t=c.createElement.bind(null,e);return t.type=e,t},c.cloneAndReplaceProps=function(e,t){var n=new c(e.type,e.key,e.ref,e._owner,t);return __DEV__&&(n._store.validated=e._store.validated),n},c.cloneElement=function(e,t,n){var r,o=s({},e.props),i=e.key,l=e.ref,p=e._owner;if(null!=t){void 0!==t.ref&&(l=t.ref,p=a.current),void 0!==t.key&&(i=""+t.key);for(r in t)t.hasOwnProperty(r)&&!u.hasOwnProperty(r)&&(o[r]=t[r])}var h=arguments.length-2;if(1===h)o.children=n;else if(h>1){for(var d=Array(h),f=0;h>f;f++)d[f]=arguments[f+2];o.children=d}return new c(e.type,i,l,p,o)},c.isValidElement=function(e){var t=!(!e||!e._isReactElement);return t},o.exports=c}),__d("ReactCurrentOwner",[],function(e,t,n,r,o,i){"use strict";var a={current:null};o.exports=a}),__d("Object.assign",[],function(e,t,n,r,o,i){"use strict";function a(e,t){if(null==e)throw new TypeError("Object.assign target cannot be null or undefined");for(var n=Object(e),r=Object.prototype.hasOwnProperty,o=1;o2?n-2:0),o=2;n>o;o++)r[o-2]=arguments[o];if(void 0===t)throw new Error("`warning(condition, format, ...args)` requires a warning message argument");if(0!==t.indexOf("Failed Composite propType: ")&&!e){var i=0,a="Warning: "+t.replace(/%s/g,function(){return r[i++]});"undefined"!=typeof console&&console.error(a);try{throw new Error(a)}catch(s){}}}),o.exports=s}),__d("emptyFunction",[],function(e,t,n,r,o,i){function a(e){return function(){return e}}function s(){}s.thatReturns=a,s.thatReturnsFalse=a(!1),s.thatReturnsTrue=a(!0),s.thatReturnsNull=a(null),s.thatReturnsThis=function(){return this},s.thatReturnsArgument=function(e){return e},o.exports=s}),__d("traverseAllChildren",["ReactElement","ReactFragment","ReactInstanceHandles","getIteratorFn","invariant","warning"],function(e,t,n,r,o,i){"use strict";function a(e){return b[e]}function s(e,t){return e&&null!=e.key?c(e.key):t.toString(36)}function u(e){return(""+e).replace(S,a)}function c(e){return"$"+u(e)}function l(e,t,n,r){var o=typeof e;if(("undefined"===o||"boolean"===o)&&(e=null),null===e||"string"===o||"number"===o||h.isValidElement(e))return n(r,e,""===t?y+s(e,0):t),1;var i,a,u=0;if(Array.isArray(e))for(var p=0;p=o;o++)if(s(e,o)&&s(t,o))r=o;else if(e.charAt(o)!==t.charAt(o))break;var i=e.substr(0,r);return v(u(i),"getFirstCommonAncestorID(%s, %s): Expected a valid React DOM ID: %s",e,t,i),i}function d(e,t,n,r,o,i){e=e||"",t=t||"",v(e!==t,"traverseParentPath(...): Cannot traverse from and to the same ID, `%s`.",e);var a=c(t,e); +v(a||c(e,t),"traverseParentPath(%s, %s, ...): Cannot traverse from two IDs that do not have a parent path.",e,t);for(var s=0,u=a?l:p,h=e;;h=u(h,t)){var d;if(o&&h===e||i&&h===t||(d=n(h,a,r)),d===!1||h===t)break;v(s++1){var t=e.indexOf(m,1);return t>-1?e.substr(0,t):e}return null},traverseEnterLeave:function(e,t,n,r,o){var i=h(e,t);i!==e&&d(e,i,n,r,!1,!0),i!==t&&d(i,t,n,o,!0,!1)},traverseTwoPhase:function(e,t,n){e&&(d("",e,t,n,!0,!1),d(e,"",t,n,!1,!0))},traverseTwoPhaseSkipTarget:function(e,t,n){e&&(d("",e,t,n,!0,!0),d(e,"",t,n,!0,!0))},traverseAncestors:function(e,t,n){d("",e,t,n,!0,!1)},_getFirstCommonAncestorID:h,_getNextDescendantID:p,isAncestorIDOf:c,SEPARATOR:m};o.exports=_}),__d("ReactRootIndex",[],function(e,t,n,r,o,i){"use strict";var a={injectCreateReactRootIndex:function(e){s.createReactRootIndex=e}},s={createReactRootIndex:null,injection:a};o.exports=s}),__d("getIteratorFn",[],function(e,t,n,r,o,i){"use strict";function a(e){var t=e&&(s&&e[s]||e[u]);return"function"==typeof t?t:void 0}var s="function"==typeof Symbol&&Symbol.iterator,u="@@iterator";o.exports=a}),__d("ReactClass",["ReactComponent","ReactElement","ReactErrorUtils","ReactPropTypeLocations","ReactPropTypeLocationNames","ReactNoopUpdateQueue","Object.assign","emptyObject","invariant","keyMirror","keyOf","warning"],function(e,t,n,r,o,i){"use strict";function a(){N||(N=!0,I(!1,"setProps(...) and replaceProps(...) are deprecated. Instead, call React.render again at the top level."))}function s(e,t,n){for(var r in t)t.hasOwnProperty(r)&&I("function"==typeof t[r],"%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.",e.displayName||"ReactClass",b[n],r)}function u(e,t){var n=D.hasOwnProperty(t)?D[t]:null;k.hasOwnProperty(t)&&T(n===O.OVERRIDE_BASE,"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.",t),e.hasOwnProperty(t)&&T(n===O.DEFINE_MANY||n===O.DEFINE_MANY_MERGED,"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",t)}function c(e,t){if(t){T("function"!=typeof t,"ReactClass: You're attempting to use a component class as a mixin. Instead, just use a regular object."),T(!g.isValidElement(t),"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.");var n=e.prototype;t.hasOwnProperty(x)&&M.mixins(e,t.mixins);for(var r in t)if(t.hasOwnProperty(r)&&r!==x){var o=t[r];if(u(n,r),M.hasOwnProperty(r))M[r](e,o);else{var i=D.hasOwnProperty(r),a=n.hasOwnProperty(r),s="function"==typeof o,c=s&&!i&&!a;if(c)n.__reactAutoBindMap||(n.__reactAutoBindMap={}),n.__reactAutoBindMap[r]=o,n[r]=o;else if(a){var l=D[r];T(i&&(l===O.DEFINE_MANY_MERGED||l===O.DEFINE_MANY),"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.",l,r),l===O.DEFINE_MANY_MERGED?n[r]=h(n[r],o):l===O.DEFINE_MANY&&(n[r]=d(n[r],o))}else n[r]=o,__DEV__&&"function"==typeof o&&t.displayName&&(n[r].displayName=t.displayName+"_"+r)}}}}function l(e,t){if(t)for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){var o=n in M;T(!o,'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.',n);var i=n in e;T(!i,"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",n),e[n]=r}}}function p(e,t){T(e&&t&&"object"==typeof e&&"object"==typeof t,"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.");for(var n in t)t.hasOwnProperty(n)&&(T(void 0===e[n],"mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.",n),e[n]=t[n]);return e}function h(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);if(null==n)return r;if(null==r)return n;var o={};return p(o,n),p(o,r),o}}function d(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function f(e,t){var n=t.bind(e);if(__DEV__){n.__reactBoundContext=e,n.__reactBoundMethod=t,n.__reactBoundArguments=null;var r=e.constructor.displayName,o=n.bind;n.bind=function(i){for(var a=arguments.length,s=Array(a>1?a-1:0),u=1;a>u;u++)s[u-1]=arguments[u];if(i!==e&&null!==i)I(!1,"bind(): React component methods may only be bound to the component instance. See %s",r);else if(!s.length)return I(!1,"bind(): You are binding a component method to the component. React does this for you automatically in a high-performance way, so you can safely remove this call. See %s",r),n;var c=o.apply(n,arguments);return c.__reactBoundContext=e,c.__reactBoundMethod=t,c.__reactBoundArguments=s,c}}return n}function v(e){for(var t in e.__reactAutoBindMap)if(e.__reactAutoBindMap.hasOwnProperty(t)){var n=e.__reactAutoBindMap[t];e[t]=f(e,y.guard(n,e.constructor.displayName+"."+t))}}var m=t("ReactComponent"),g=t("ReactElement"),y=t("ReactErrorUtils"),_=t("ReactPropTypeLocations"),b=t("ReactPropTypeLocationNames"),S=t("ReactNoopUpdateQueue"),R=t("Object.assign"),E=t("emptyObject"),T=t("invariant"),w=t("keyMirror"),C=t("keyOf"),I=t("warning"),x=C({mixins:null}),O=w({DEFINE_ONCE:null,DEFINE_MANY:null,OVERRIDE_BASE:null,DEFINE_MANY_MERGED:null}),P=[],N=!1,D={mixins:O.DEFINE_MANY,statics:O.DEFINE_MANY,propTypes:O.DEFINE_MANY,contextTypes:O.DEFINE_MANY,childContextTypes:O.DEFINE_MANY,getDefaultProps:O.DEFINE_MANY_MERGED,getInitialState:O.DEFINE_MANY_MERGED,getChildContext:O.DEFINE_MANY_MERGED,render:O.DEFINE_ONCE,componentWillMount:O.DEFINE_MANY,componentDidMount:O.DEFINE_MANY,componentWillReceiveProps:O.DEFINE_MANY,shouldComponentUpdate:O.DEFINE_ONCE,componentWillUpdate:O.DEFINE_MANY,componentDidUpdate:O.DEFINE_MANY,componentWillUnmount:O.DEFINE_MANY,updateComponent:O.OVERRIDE_BASE},M={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n.":null,url:" See https://fb.me/react-warning-keys for more information.",childOwner:null};return t&&t._owner&&t._owner!==_.current&&(c.childOwner=" It was passed a child from "+s(t._owner)+"."),c}function h(e,t){if(Array.isArray(e))for(var n=0;n=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e){var t=e.message,n=a(e,["message"]),r=new Error(t);return r.framesToPop=1,Object.assign(r,n)}var c=function(){function e(e,t){for(var n=0;n32&&(this._debugInfo[this._callbackID>>5]=null),this._debugInfo[this._callbackID>>1]=[e,t]),r&&n.push(this._callbackID),this._callbacks[this._callbackID++]=r,o&&n.push(this._callbackID),this._callbacks[this._callbackID++]=o),this._queue[g].push(e),this._queue[y].push(t),this._queue[_].push(n),__DEV__&&b&&isFinite(e)&&console.log("JS->N : "+this._remoteModuleTable[e]+"."+this._remoteMethodTable[e][t]+"("+JSON.stringify(n)+")")}},{key:"__callFunction",value:function(e,t,n){l.profile(function(){return e+"."+t+"("+m(n)+")"}),isFinite(e)&&(t=this._methodTable[e][t],e=this._moduleTable[e]),__DEV__&&b&&console.log("N->JS : "+e+"."+t+"("+JSON.stringify(n)+")"),e=this._require(e),e[t].apply(e,n),l.profileEnd()}},{key:"__invokeCallback",value:function(e,t){l.profile(function(){return"MessageQueue.invokeCallback("+e+", "+m(t)+")"});var n=this._callbacks[e];if(__DEV__){var r=this._debugInfo[e>>1],o=r&&this._remoteModuleTable[r[0]],i=r&&this._remoteMethodTable[r[0]][r[1]];n?b&&console.log("N->JS : ("+JSON.stringify(t)+")"):console.error("Callback with id "+e+": "+o+"."+i+"() not found")}this._callbacks[-2&e]=null,this._callbacks[1|e]=null,n.apply(null,t),l.profileEnd()}},{key:"_genLookupTables",value:function(e,t,n){for(var r=Object.keys(e),o=0,i=r.length;i>o;o++){var a=r[o],s=e[a].methods,u=e[a].moduleID;t[u]=a,n[u]={};for(var c=Object.keys(s),l=0,p=c.length;p>l;l++){var h=c[l],d=s[h];n[u][d.methodID]=h}}}},{key:"_genModules",value:function(e){for(var t=Object.keys(e),n=0,r=t.length;r>n;n++){var o=t[n],i=e[o];this.RemoteModules[o]=this._genModule({},i)}}},{key:"_genModule",value:function(e,t){for(var n=Object.keys(t.methods),r=0,o=n.length;o>r;r++){var i=n[r],a=t.methods[i];e[i]=this._genMethod(t.moduleID,a.methodID,a.type)}return Object.assign(e,t.constants),e}},{key:"_genMethod",value:function(e,t,n){if(n===S.local)return null;var r=this;return n===S.remoteAsync?function(){for(var n=arguments.length,o=Array(n),i=0;n>i;i++)o[i]=arguments[i];return new Promise(function(n,i){r.__nativeCall(e,t,o,n,function(e){var t=u(e);i(t)})})}:function(){for(var n=arguments.length,o=Array(n),i=0;n>i;i++)o[i]=arguments[i];var a=o.length>0?o[o.length-1]:null,s=o.length>1?o[o.length-2]:null,u="function"==typeof a,c="function"==typeof s;c&&f(u,"Cannot have a non-function arg after a function arg.");var l=u+c,p=u?a:null,h=c?s:null;return o=o.slice(0,o.length-l),r.__nativeCall(e,t,o,h,p)}}}]),e}();o.exports=E}),__d("BridgeProfiling",["ReactPerf"],function(e,t,n,r,o,i){"use strict";var a=a||this,s={profile:function(e,t){if(a.__BridgeProfilingIsProfiling){if(t)try{t=JSON.stringify(t)}catch(n){t=n.message}e="function"==typeof e?e():e,console.profile(e,t)}},profileEnd:function(e){a.__BridgeProfilingIsProfiling&&console.profileEnd(e)},swizzleReactPerf:function(){var e=t("ReactPerf"),n=e.measure;e.measure=function(t,r,o){return o=n.call(e,t,r,o),function(e){s.profile();var n=o.apply(this,arguments);if(a.__BridgeProfilingIsProfiling){var i=this._instance&&this._instance.constructor&&(this._instance.constructor.displayName||this._instance.constructor.name);s.profileEnd(t+"."+r+"("+i+")")}return n}}}};o.exports=s}),__d("ReactPerf",[],function(e,t,n,r,o,i){"use strict";function a(e,t,n){return n}var s={enableMeasure:!1,storedMeasure:a,measureMethods:function(e,t,n){if(__DEV__)for(var r in n)n.hasOwnProperty(r)&&(e[r]=s.measure(t,n[r],e[r]))},measure:function(e,t,n){if(__DEV__){var r=null,o=function(){return s.enableMeasure?(r||(r=s.storedMeasure(e,t,n)),r.apply(this,arguments)):n.apply(this,arguments)};return o.displayName=e+"_"+t,o}return n},injection:{injectMeasure:function(e){s.storedMeasure=e}}};o.exports=s}),__d("ErrorUtils",[],function(e,t,n,r,o,i){var a=this;o.exports=a.ErrorUtils}),__d("JSTimersExecution",["invariant","keyMirror","performanceNow","warning","JSTimers","JSTimers"],function(e,t,n,r,o,i){"use strict";var a=t("invariant"),s=t("keyMirror"),u=t("performanceNow"),c=t("warning"),l={GUID:1,Type:s({setTimeout:null,setInterval:null,requestAnimationFrame:null,setImmediate:null}),callbacks:[],types:[],timerIDs:[],immediates:[],callTimer:function(e){c(e<=l.GUID,"Tried to call timer with ID "+e+" but no such timer exists");var t=l.timerIDs.indexOf(e);if(-1!==t){var n=l.types[t],r=l.callbacks[t];(n===l.Type.setTimeout||n===l.Type.setImmediate||n===l.Type.requestAnimationFrame)&&l._clearIndex(t);try{if(n===l.Type.setTimeout||n===l.Type.setInterval||n===l.Type.setImmediate)r();else{if(n!==l.Type.requestAnimationFrame)return void console.error("Tried to call a callback with invalid type: "+n);var o=u();r(o)}}catch(i){l.errors=l.errors||[],l.errors.push(i)}}},callTimers:function(e){a(0!==e.length,'Probably shouldn\'t call "callTimers" with no timerIDs'),l.errors=null,e.forEach(l.callTimer);var n=l.errors;if(n){var r=n.length;if(r>1)for(var o=1;r>o;o++)t("JSTimers").setTimeout(function(e){throw e}.bind(null,n[o]),0);throw n[0]}},callImmediates:function(){for(l.errors=null;0!==l.immediates.length;)l.callTimer(l.immediates.shift());l.errors&&l.errors.forEach(function(e){return t("JSTimers").setTimeout(function(){throw e},0)})},_clearIndex:function(e){l.timerIDs[e]=null,l.callbacks[e]=null,l.types[e]=null}};o.exports=l}),__d("performanceNow",["performance"],function(e,t,n,r,o,i){var a=t("performance");a&&a.now||(a=Date);var s=a.now.bind(a);o.exports=s}),__d("performance",["ExecutionEnvironment"],function(e,t,n,r,o,i){"use strict";var a,s=t("ExecutionEnvironment");s.canUseDOM&&(a=window.performance||window.msPerformance||window.webkitPerformance),o.exports=a||{}}),__d("ExecutionEnvironment",[],function(e,t,n,r,o,i){"use strict";var a=!1,s={canUseDOM:a,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:a&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:a&&!!window.screen,isInWorker:!a};o.exports=s}),__d("JSTimers",["NativeModules","JSTimersExecution"],function(e,t,n,r,o,i){"use strict";var a=t("NativeModules").Timing,s=t("JSTimersExecution"),u={Types:s.Types,_getFreeIndex:function(){var e=s.timerIDs.indexOf(null);return-1===e&&(e=s.timerIDs.length),e},setTimeout:function(e,t){for(var n=arguments.length,r=Array(n>2?n-2:0),o=2;n>o;o++)r[o-2]=arguments[o];var i=s.GUID++,c=u._getFreeIndex();return s.timerIDs[c]=i,s.callbacks[c]=function(){return e.apply(void 0,r)},s.types[c]=s.Type.setTimeout,a.createTimer(i,t,Date.now(),!1),i},setInterval:function(e,t){for(var n=arguments.length,r=Array(n>2?n-2:0),o=2;n>o;o++)r[o-2]=arguments[o];var i=s.GUID++,c=u._getFreeIndex();return s.timerIDs[c]=i,s.callbacks[c]=function(){return e.apply(void 0,r)},s.types[c]=s.Type.setInterval,a.createTimer(i,t,Date.now(),!0),i},setImmediate:function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;t>r;r++)n[r-1]=arguments[r];var o=s.GUID++,i=u._getFreeIndex();return s.timerIDs[i]=o,s.callbacks[i]=function(){return e.apply(void 0,n)},s.types[i]=s.Type.setImmediate,s.immediates.push(o),o},requestAnimationFrame:function(e){var t=s.GUID++,n=u._getFreeIndex();return s.timerIDs[n]=t,s.callbacks[n]=e,s.types[n]=s.Type.requestAnimationFrame,a.createTimer(t,1,Date.now(),!1),t},clearTimeout:function(e){u._clearTimerID(e)},clearInterval:function(e){u._clearTimerID(e)},clearImmediate:function(e){u._clearTimerID(e),s.immediates.splice(s.immediates.indexOf(e),1)},cancelAnimationFrame:function(e){u._clearTimerID(e)},_clearTimerID:function(e){if(null!=e){var t=s.timerIDs.indexOf(e);-1!==t&&(s._clearIndex(t),s.types[t]!==s.Type.setImmediate&&a.deleteTimer(e))}}};o.exports=u}),__d("ReactUpdates",["CallbackQueue","PooledClass","ReactPerf","ReactReconciler","Transaction","Object.assign","invariant"],function(e,t,n,r,o,i){"use strict";function a(){_(O.ReactReconcileTransaction&&E,"ReactUpdates: must inject a reconcile transaction class and batching strategy")}function s(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=d.getPooled(),this.reconcileTransaction=O.ReactReconcileTransaction.getPooled()}function u(e,t,n,r,o,i){a(),E.batchedUpdates(e,t,n,r,o,i)}function c(e,t){return e._mountOrder-t._mountOrder}function l(e){var t=e.dirtyComponentsLength;_(t===b.length,"Expected flush transaction's stored dirty-components length (%s) to match dirty-components array length (%s).",t,b.length),b.sort(c);for(var n=0;t>n;n++){var r=b[n],o=r._pendingCallbacks;if(r._pendingCallbacks=null,m.performUpdateIfNecessary(r,e.reconcileTransaction),o)for(var i=0;in;n+=2){var o=t[n/2];u.addTimespan(o,e[n+1]-e[n],o)}}};o.exports=u}),__d("ExceptionsManager",["NativeModules","loadSourceMap","parseErrorStack","stringifySafe"],function(e,t,n,r,o,i){"use strict";function a(e,t,n){var r=++g;d&&(n||(n=v(e)),t?d.reportFatalException(e.message,n,r):d.reportSoftException(e.message,n),__DEV__&&(h=h||f()).then(function(t){var n=v(e,t);d.updateExceptionMessage(e.message,n,r)})["catch"](function(e){console.warn("Unable to load source map: "+e.message)}))}function s(e,t){var n=v(e),r="Error: "+e.message+"\n stack: \n"+c(n)+"\n URL: "+e.sourceURL+"\n line: "+e.line+"\n message: "+e.message;console.errorOriginal?console.errorOriginal(r):console.error(r),a(e,t,n)}function u(){console.reportException||(console.reportException=a,console.errorOriginal=console.error.bind(console),console.error=function(){if(console.errorOriginal.apply(null,arguments),console.reportErrorsAsExceptions){var e=Array.prototype.map.call(arguments,m).join(", ");if('"Warning: '!==e.slice(0,10)){var t=new Error("console.error: "+e);t.framesToPop=1,a(t,!1)}}},void 0===console.reportErrorsAsExceptions&&(console.reportErrorsAsExceptions=!0))}function c(e){var t=Math.max.apply(null,e.map(function(e){return e.methodName.length}));return e.map(function(e){return l(e,t)}).join("\n")}function l(e,t){var n=e.file.split("/"),r=n[n.length-1];r.length>18&&(r=r.substr(0,17)+"…");var o=p(t-e.methodName.length);return" "+e.methodName+o+" "+r+":"+e.lineNumber}function p(e){return new Array(e+1).join(" ")}var h,d=t("NativeModules").ExceptionsManager,f=t("loadSourceMap"),v=t("parseErrorStack"),m=t("stringifySafe"),g=0;o.exports={handleException:s,installConsoleErrorReporter:u}}),__d("loadSourceMap",["Promise","NativeModules","SourceMap","react-native/Libraries/JavaScriptAppEngine/Initialization/source-map-url.js"],function(e,t,n,r,o,i){"use strict";function a(){return s().then(function(e){return new p(e)})}function s(){return e.RAW_SOURCE_MAP?c.resolve(e.RAW_SOURCE_MAP):d?f?new c(d.getScriptText).then(u).then(function(e){return null===e?c.reject(new Error("No source map URL found. May be running from bundled file.")):c.resolve(e)}).then(fetch).then(function(e){return e.text()}):c.reject(new Error("RCTNetworking module is not available")):c.reject(new Error("RCTSourceCode module is not available"))}function u(e){var t=e.url,n=e.text,r=e.fullSourceMappingURL;if(r)return r;var o=h.getFrom(n);if(!o)return null;var i=t.match(/(.+:\/\/.*?)\//)[1];return i+o}var c=t("Promise"),l=t("NativeModules"),p=t("SourceMap").SourceMapConsumer,h=t("react-native/Libraries/JavaScriptAppEngine/Initialization/source-map-url.js"),d=l.SourceCode,f=l.Networking;o.exports=a}),__d("Promise",["setImmediate","promise/setimmediate/es6-extensions.js","promise/setimmediate/done.js"],function(e,t,n,r,o,i){"use strict";e.setImmediate=t("setImmediate");var a=t("promise/setimmediate/es6-extensions.js");t("promise/setimmediate/done.js"),a.prototype["finally"]=function(e){return this.then(e,e)},o.exports=a}),__d("setImmediate",["ImmediateImplementation"],function(e,t,n,r,o,i){o.exports=e.setImmediate||t("ImmediateImplementation").setImmediate}),__d("ImmediateImplementation",[],function(e,t,n,r,o,i){!function(e,t){"use strict";function n(e){var n=e[0];return e=Array.prototype.slice.call(e,1),d[h]=function(){n.apply(t,e)},v=v.next={handle:h++},v.handle}function r(){for(var e,t;!m&&(e=f.next);)if(f=e,t=d[e.handle]){m=!0;try{t(),m=!1}finally{o(e.handle),m&&(m=!1,f.next&&p(r))}}}function o(e){delete d[e]}function a(){if(e.postMessage&&!e.importScripts){var t=!0,n=function(){t=!1,e.removeEventListener?e.removeEventListener("message",n,!1):e.detachEvent("onmessage",n)};if(e.addEventListener)e.addEventListener("message",n,!1);else{if(!e.attachEvent)return!1;e.attachEvent("onmessage",n)}return e.postMessage("","*"),t}}function s(){var t="setImmediate$"+Math.random()+"$",o=function(n){n.source===e&&"string"==typeof n.data&&0===n.data.indexOf(t)&&r()};e.addEventListener?e.addEventListener("message",o,!1):e.attachEvent("onmessage",o),p=function(){var r=n(arguments);return e.postMessage(t+r,"*"),r}}function u(){var e=new MessageChannel;e.port1.onmessage=r,p=function(){var t=n(arguments);return e.port2.postMessage(t),t}}function c(){var e=g.documentElement;p=function(){var t=n(arguments),o=g.createElement("script");return o.onreadystatechange=function(){o.onreadystatechange=null,e.removeChild(o),o=null,r()},e.appendChild(o),t}}function l(){p=function(){return setTimeout(r,0),n(arguments)}}var p,h=1,d={},f={},v=f,m=!1,g=e.document;a()?s():e.MessageChannel?u():g&&"onreadystatechange"in g.createElement("script")?c():l(),i.setImmediate=p,i.clearImmediate=o}(Function("return this")())}),__d("promise/setimmediate/es6-extensions.js",["promise/setimmediate/core.js"],function(e,t,n,r,o,i){"use strict";function a(e){var t=new s(s._99);return t._37=1,t._12=e,t}var s=t("promise/setimmediate/core.js");o.exports=s;var u=a(!0),c=a(!1),l=a(null),p=a(void 0),h=a(0),d=a("");s.resolve=function(e){if(e instanceof s)return e;if(null===e)return l;if(void 0===e)return p;if(e===!0)return u;if(e===!1)return c;if(0===e)return h;if(""===e)return d;if("object"==typeof e||"function"==typeof e)try{var t=e.then;if("function"==typeof t)return new s(t.bind(e))}catch(n){return new s(function(e,t){t(n)})}return a(e)},s.all=function(e){var t=Array.prototype.slice.call(e);return new s(function(e,n){function r(i,a){if(a&&("object"==typeof a||"function"==typeof a)){if(a instanceof s&&a.then===s.prototype.then){for(;3===a._37;)a=a._12;return 1===a._37?r(i,a._12):(2===a._37&&n(a._12),void a.then(function(e){r(i,e)},n))}var u=a.then;if("function"==typeof u){var c=new s(u.bind(a));return void c.then(function(e){r(i,e)},n)}}t[i]=a,0===--o&&e(t)}if(0===t.length)return e([]);for(var o=t.length,i=0;i0&&e.column>=0)||t||n||r)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&n))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:n,orginal:t,name:r}))},r.prototype._serializeMappings=function(){var e,t=0,n=1,r=0,a=0,s=0,u=0,c="";this._mappings.sort(i.compareByGeneratedPositions);for(var l=0,p=this._mappings.length;p>l;l++){if(e=this._mappings[l],e.generatedLine!==n)for(t=0;e.generatedLine!==n;)c+=";",n++;else if(l>0){if(!i.compareByGeneratedPositions(e,this._mappings[l-1]))continue;c+=","}c+=o.encode(e.generatedColumn-t),t=e.generatedColumn,e.source&&(c+=o.encode(this._sources.indexOf(e.source)-u),u=this._sources.indexOf(e.source),c+=o.encode(e.originalLine-1-a),a=e.originalLine-1,c+=o.encode(e.originalColumn-r),r=e.originalColumn,e.name&&(c+=o.encode(this._names.indexOf(e.name)-s),s=this._names.indexOf(e.name)))}return c},r.prototype._generateSourcesContent=function(e,t){return e.map(function(e){if(!this._sourcesContents)return null;t&&(e=i.relative(t,e));var n=i.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,n)?this._sourcesContents[n]:null},this)},r.prototype.toJSON=function(){var e={version:this._version,file:this._file,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},r.prototype.toString=function(){return JSON.stringify(this)},t.SourceMapGenerator=r}),e("source-map/base64-vlq",["require","exports","module","source-map/base64"],function(e,t,n){function r(e){return 0>e?(-e<<1)+1:(e<<1)+0}function o(e){var t=1===(1&e),n=e>>1;return t?-n:n}var i=e("./base64"),a=5,s=1<>>=a,o>0&&(t|=c),n+=i.encode(t);while(o>0);return n},t.decode=function(e){var t,n,r=0,s=e.length,l=0,p=0;do{if(r>=s)throw new Error("Expected more digits in base 64 VLQ value.");n=i.decode(e.charAt(r++)),t=!!(n&c),n&=u,l+=n<r)-(r>n)}function p(e,t,n){var r;return(r=l(e.source,t.source))?r:(r=e.originalLine-t.originalLine)?r:(r=e.originalColumn-t.originalColumn,r||n?r:(r=l(e.name,t.name))?r:(r=e.generatedLine-t.generatedLine,r?r:e.generatedColumn-t.generatedColumn))}function h(e,t,n){var r;return(r=e.generatedLine-t.generatedLine)?r:(r=e.generatedColumn-t.generatedColumn,r||n?r:(r=l(e.source,t.source))?r:(r=e.originalLine-t.originalLine)?r:(r=e.originalColumn-t.originalColumn,r?r:l(e.name,t.name)))}t.getArg=r;var d=/([\w+\-.]+):\/\/((\w+:\w+)@)?([\w.]+)?(:(\d+))?(\S+)?/,f=/^data:.+\,.+/;t.urlParse=o,t.urlGenerate=i,t.join=a,t.toSetString=s,t.fromSetString=u,t.relative=c,t.compareByOriginalPositions=p,t.compareByGeneratedPositions=h}),e("source-map/array-set",["require","exports","module","source-map/util"],function(e,t,n){function r(){this._array=[],this._set={}}var o=e("./util");r.fromArray=function(e,t){for(var n=new r,o=0,i=e.length;i>o;o++)n.add(e[o],t);return n},r.prototype.add=function(e,t){var n=this.has(e),r=this._array.length;(!n||t)&&this._array.push(e),n||(this._set[o.toSetString(e)]=r)},r.prototype.has=function(e){return Object.prototype.hasOwnProperty.call(this._set,o.toSetString(e))},r.prototype.indexOf=function(e){if(this.has(e))return this._set[o.toSetString(e)];throw new Error('"'+e+'" is not in the set.')},r.prototype.at=function(e){if(e>=0&&e0;)if(";"===d.charAt(0))i++,d=d.slice(1),a=0;else if(","===d.charAt(0))d=d.slice(1);else{if(n={},n.generatedLine=i,r=s.decode(d),n.generatedColumn=a+r.value,a=n.generatedColumn,d=r.rest,d.length>0&&!h.test(d.charAt(0))){if(r=s.decode(d),n.source=this._sources.at(l+r.value),l+=r.value,d=r.rest,0===d.length||h.test(d.charAt(0)))throw new Error("Found a source, but no line and column");if(r=s.decode(d),n.originalLine=u+r.value,u=n.originalLine,n.originalLine+=1,d=r.rest,0===d.length||h.test(d.charAt(0)))throw new Error("Found a source and line, but no column");r=s.decode(d),n.originalColumn=c+r.value,c=n.originalColumn,d=r.rest,d.length>0&&!h.test(d.charAt(0))&&(r=s.decode(d),n.name=this._names.at(p+r.value),p+=r.value,d=r.rest)}this.__generatedMappings.push(n),"number"==typeof n.originalLine&&this.__originalMappings.push(n)}this.__originalMappings.sort(o.compareByOriginalPositions)},r.prototype._findMapping=function(e,t,n,r,o){if(e[n]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[n]);if(e[r]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[r]);return i.search(e,t,o)},r.prototype.originalPositionFor=function(e){var t={generatedLine:o.getArg(e,"line"),generatedColumn:o.getArg(e,"column")},n=this._findMapping(t,this._generatedMappings,"generatedLine","generatedColumn",o.compareByGeneratedPositions);if(n){var r=o.getArg(n,"source",null);return r&&this.sourceRoot&&(r=o.join(this.sourceRoot,r)),{source:r,line:o.getArg(n,"originalLine",null),column:o.getArg(n,"originalColumn",null),name:o.getArg(n,"name",null)}}return{source:null,line:null,column:null,name:null}},r.prototype.sourceContentFor=function(e){if(!this.sourcesContent)return null;if(this.sourceRoot&&(e=o.relative(this.sourceRoot,e)),this._sources.has(e))return this.sourcesContent[this._sources.indexOf(e)];var t;if(this.sourceRoot&&(t=o.urlParse(this.sourceRoot))){var n=e.replace(/^file:\/\//,"");if("file"==t.scheme&&this._sources.has(n))return this.sourcesContent[this._sources.indexOf(n)];if((!t.path||"/"==t.path)&&this._sources.has("/"+e))return this.sourcesContent[this._sources.indexOf("/"+e)]}throw new Error('"'+e+'" is not in the SourceMap.')},r.prototype.generatedPositionFor=function(e){var t={source:o.getArg(e,"source"),originalLine:o.getArg(e,"line"),originalColumn:o.getArg(e,"column")};this.sourceRoot&&(t.source=o.relative(this.sourceRoot,t.source));var n=this._findMapping(t,this._originalMappings,"originalLine","originalColumn",o.compareByOriginalPositions);return n?{line:o.getArg(n,"generatedLine",null),column:o.getArg(n,"generatedColumn",null)}:{line:null,column:null}},r.GENERATED_ORDER=1,r.ORIGINAL_ORDER=2,r.prototype.eachMapping=function(e,t,n){var i,a=t||null,s=n||r.GENERATED_ORDER;switch(s){case r.GENERATED_ORDER:i=this._generatedMappings;break;case r.ORIGINAL_ORDER:i=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var u=this.sourceRoot;i.map(function(e){var t=e.source;return t&&u&&(t=o.join(u,t)),{source:t,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:e.name}}).forEach(e,a)},t.SourceMapConsumer=r}),e("source-map/binary-search",["require","exports","module"],function(e,t,n){function r(e,t,n,o,i){var a=Math.floor((t-e)/2)+e,s=i(n,o[a],!0);return 0===s?o[a]:s>0?t-a>1?r(a,t,n,o,i):o[a]:a-e>1?r(e,a,n,o,i):0>e?null:o[e]}t.search=function(e,t,n){return t.length>0?r(-1,t.length,e,t,n):null}}),e("source-map/source-node",["require","exports","module","source-map/source-map-generator","source-map/util"],function(e,t,n){function r(e,t,n,r,o){this.children=[],this.sourceContents={},this.line=void 0===e?null:e,this.column=void 0===t?null:t,this.source=void 0===n?null:n,this.name=void 0===o?null:o,null!=r&&this.add(r)}var o=e("./source-map-generator").SourceMapGenerator,i=e("./util");r.fromStringWithSourceMap=function(e,t){function n(e,t){null===e||void 0===e.source?o.add(t):o.add(new r(e.originalLine,e.originalColumn,e.source,t,e.name))}var o=new r,i=e.split("\n"),a=1,s=0,u=null;return t.eachMapping(function(e){if(null===u){for(;a=0;t--)this.prepend(e[t]);else{if(!(e instanceof r||"string"==typeof e))throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},r.prototype.walk=function(e){for(var t,n=0,o=this.children.length;o>n;n++)t=this.children[n],t instanceof r?t.walk(e):""!==t&&e(t,{source:this.source,line:this.line,column:this.column,name:this.name})},r.prototype.join=function(e){var t,n,r=this.children.length;if(r>0){for(t=[],n=0;r-1>n;n++)t.push(this.children[n]),t.push(e);t.push(this.children[n]),this.children=t}return this},r.prototype.replaceRight=function(e,t){var n=this.children[this.children.length-1];return n instanceof r?n.replaceRight(e,t):"string"==typeof n?this.children[this.children.length-1]=n.replace(e,t):this.children.push("".replace(e,t)),this},r.prototype.setSourceContent=function(e,t){this.sourceContents[i.toSetString(e)]=t},r.prototype.walkSourceContents=function(e){for(var t=0,n=this.children.length;n>t;t++)this.children[t]instanceof r&&this.children[t].walkSourceContents(e);for(var o=Object.keys(this.sourceContents),t=0,n=o.length;n>t;t++)e(i.fromSetString(o[t]),this.sourceContents[o[t]])},r.prototype.toString=function(){var e="";return this.walk(function(t){e+=t}),e},r.prototype.toStringWithSourceMap=function(e){var t={code:"",line:1,column:0},n=new o(e),r=!1,i=null,a=null,s=null,u=null;return this.walk(function(e,o){t.code+=e,null!==o.source&&null!==o.line&&null!==o.column?((i!==o.source||a!==o.line||s!==o.column||u!==o.name)&&n.addMapping({source:o.source,original:{line:o.line,column:o.column},generated:{line:t.line,column:t.column},name:o.name}),i=o.source,a=o.line,s=o.column,u=o.name,r=!0):r&&(n.addMapping({generated:{line:t.line,column:t.column}}),i=null,r=!1),e.split("").forEach(function(e){"\n"===e?(t.line++,t.column=0):t.column++})}),this.walkSourceContents(function(e,t){n.setSourceContent(e,t)}),{code:t.code,map:n}},t.SourceNode=r}),this.sourceMap={SourceMapConsumer:n("source-map/source-map-consumer").SourceMapConsumer,SourceMapGenerator:n("source-map/source-map-generator").SourceMapGenerator,SourceNode:n("source-map/source-node").SourceNode}}var s={};a.call(s),o.exports=s.sourceMap}),__d("react-native/Libraries/JavaScriptAppEngine/Initialization/source-map-url.js",[],function(e,t,n,r,o,i){!function(){var e=null;void function(t,n){"function"==typeof e&&e.amd?e(n):"object"==typeof i?o.exports=n():t.sourceMappingURL=n()}(this,function(){var e=/[#@] sourceMappingURL=([^\s'"]*)/,t=RegExp("(?:/\\*(?:\\s*\r?\n(?://)?)?(?:"+e.source+")\\s*\\*/|//(?:"+e.source+"))\\s*$");return{regex:t,_innerRegex:e,getFrom:function(e){var n=e.match(t);return n?n[1]||n[2]||"":null},existsIn:function(e){return t.test(e)},removeFrom:function(e){return e.replace(t,"")},insertBefore:function(e,n){var r=e.match(t);return r?e.slice(0,r.index)+n+e.slice(r.index):e+n}}})}()}),__d("parseErrorStack",["stacktrace-parser/index.js"],function(e,t,n,r,o,i){"use strict";function a(e,t){try{var n=e.originalPositionFor({line:t.lineNumber,column:t.column});n&&(t.file=n.source,t.lineNumber=n.line,t.column=n.column)}catch(r){}}function s(e,t){if(!e||!e.stack)return[];for(var n=u.parse(e.stack),r=e.framesToPop||0;r--;)n.shift();return t&&n.forEach(a.bind(null,t)),n}var u=t("stacktrace-parser/index.js");o.exports=s}),__d("stacktrace-parser/index.js",["stacktrace-parser/lib/stacktrace-parser.js"],function(e,t,n,r,o,i){o.exports=t("stacktrace-parser/lib/stacktrace-parser.js")}),__d("stacktrace-parser/lib/stacktrace-parser.js",[],function(e,t,n,r,o,i){var a="",s={parse:function(e){for(var t,n,r=/^\s*at (?:(?:(?:Anonymous function)?|((?:\[object object\])?\S+(?: \[as \S+\])?)) )?\(?((?:file|http|https):.*?):(\d+)(?::(\d+))?\)?\s*$/i,o=/^(?:\s*(\S*)(?:\((.*?)\))?@)?((?:\w).*?):(\d+)(?::(\d+))?\s*$/i,i=/^\s*at (?:((?:\[object object\])?\S+(?: \[as \S+\])?) )?\(?(.*?):(\d+)(?::(\d+))?\)?\s*$/i,s=e.split("\n"),u=[],c=0,l=s.length;l>c;++c){if(t=o.exec(s[c]))n={file:t[3],methodName:t[1]||a,lineNumber:+t[4],column:t[5]?+t[5]:null};else if(t=r.exec(s[c]))n={file:t[2],methodName:t[1]||a,lineNumber:+t[3],column:t[4]?+t[4]:null};else{if(!(t=i.exec(s[c])))continue;n={file:t[2],methodName:t[1]||a,lineNumber:+t[3],column:t[4]?+t[4]:null}}u.push(n)}return u}};o.exports=s}),__d("Platform",[],function(e,t,n,r,o,i){"use strict";var a={OS:"ios"};o.exports=a}),__d("XMLHttpRequest",["FormData","NativeModules","RCTDeviceEventEmitter","XMLHttpRequestBase"],function(e,t,n,r,o,i){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n-1?t:e}function l(e,t){if(t=t||{},this.url=e,this.credentials=t.credentials||"omit",this.headers=new n(t.headers),this.method=c(t.method||"GET"),this.mode=t.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&t.body)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(t.body)}function p(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(o))}}),t}function h(e){var t=new n,r=e.getAllResponseHeaders().trim().split("\n");return r.forEach(function(e){var n=e.trim().split(":"),r=n.shift().trim(),o=n.join(":").trim();t.append(r,o)}),t}function d(e,t){t||(t={}),this._initBody(e),this.type="default",this.url=null,this.status=t.status,this.ok=this.status>=200&&this.status<300,this.statusText=t.statusText,this.headers=t.headers instanceof n?t.headers:new n(t.headers),this.url=t.url||""}if(!a.fetch){n.prototype.append=function(n,r){n=e(n),r=t(r);var o=this.map[n];o||(o=[],this.map[n]=o),o.push(r)},n.prototype["delete"]=function(t){delete this.map[e(t)]},n.prototype.get=function(t){var n=this.map[e(t)];return n?n[0]:null},n.prototype.getAll=function(t){return this.map[e(t)]||[]},n.prototype.has=function(t){return this.map.hasOwnProperty(e(t))},n.prototype.set=function(n,r){this.map[e(n)]=[t(r)]},n.prototype.forEach=function(e){var t=this;Object.getOwnPropertyNames(this.map).forEach(function(n){e(n,t.map[n])})};var f={blob:"FileReader"in a&&"Blob"in a&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in a},v=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];u.call(l.prototype),u.call(d.prototype),a.Headers=n,a.Request=l,a.Response=d,a.fetch=function(e,t){var n;return n=l.prototype.isPrototypeOf(e)&&!t?e:new l(e,t),new Promise(function(e,t){function r(){return"responseURL"in o?o.responseURL:/^X-Request-URL:/m.test(o.getAllResponseHeaders())?o.getResponseHeader("X-Request-URL"):void 0}var o=new XMLHttpRequest;"cors"===n.credentials&&(o.withCredentials=!0),o.onload=function(){var n=1223===o.status?204:o.status;if(100>n||n>599)return void t(new TypeError("Network request failed"));var i={status:n,statusText:o.statusText,headers:h(o),url:r()},a="response"in o?o.response:o.responseText;e(new d(a,i))},o.onerror=function(){t(new TypeError("Network request failed"))},o.open(n.method,n.url,!0),"responseType"in o&&f.blob&&(o.responseType="blob"),n.headers.forEach(function(e,t){t.forEach(function(t){o.setRequestHeader(e,t)})}),o.send("undefined"==typeof n._bodyInit?null:n._bodyInit)})},a.fetch.polyfill=!0}}(),o.exports=a}),__d("Geolocation",["RCTDeviceEventEmitter","NativeModules","invariant","logError","warning"],function(e,t,n,r,o,i){"use strict";var a=t("RCTDeviceEventEmitter"),s=t("NativeModules").LocationObserver,u=t("invariant"),c=t("logError"),l=t("warning"),p=[],h=!1,d={getCurrentPosition:function(e,t,n){u("function"==typeof e,"Must provide a valid geo_success callback."),s.getCurrentPosition(n||{},e,t||c)},watchPosition:function(e,t,n){h||(s.startObserving(n||{}),h=!0);var r=p.length;return p.push([a.addListener("geolocationDidChange",e),t?a.addListener("geolocationError",t):null]),r},clearWatch:function(e){var t=p[e];if(t){t[0].remove();var n=t[1];n&&n.remove(),p[e]=void 0;for(var r=!0,o=0;o-1,"EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.",e),!h.plugins[n]){c(t.extractEvents,"EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.",e),h.plugins[n]=t;var r=t.eventTypes;for(var o in r)c(s(r[o],t,o),"EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.",o,e)}}}function s(e,t,n){c(!h.eventNameDispatchConfigs.hasOwnProperty(n),"EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.",n),h.eventNameDispatchConfigs[n]=e;var r=e.phasedRegistrationNames;if(r){for(var o in r)if(r.hasOwnProperty(o)){var i=r[o];u(i,t,n)}return!0}return e.registrationName?(u(e.registrationName,t,n),!0):!1}function u(e,t,n){c(!h.registrationNameModules[e],"EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.",e),h.registrationNameModules[e]=t,h.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var c=t("invariant"),l=null,p={},h={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},injectEventPluginOrder:function(e){c(!l,"EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React."),l=Array.prototype.slice.call(e),a()},injectEventPluginsByName:function(e){var t=!1;for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];p.hasOwnProperty(n)&&p[n]===r||(c(!p[n],"EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.",n),p[n]=r,t=!0)}t&&a()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return h.registrationNameModules[t.registrationName]||null;for(var n in t.phasedRegistrationNames)if(t.phasedRegistrationNames.hasOwnProperty(n)){var r=h.registrationNameModules[t.phasedRegistrationNames[n]];if(r)return r}return null},_resetEventPlugins:function(){l=null;for(var e in p)p.hasOwnProperty(e)&&delete p[e];h.plugins.length=0;var t=h.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=h.registrationNameModules;for(var o in r)r.hasOwnProperty(o)&&delete r[o]}};o.exports=h}),__d("EventPluginUtils",["EventConstants","invariant","warning"],function(e,t,n,r,o,i){"use strict";function a(e){return e===S.topMouseUp||e===S.topTouchEnd||e===S.topTouchCancel}function s(e){return e===S.topMouseMove||e===S.topTouchMove}function u(e){return e===S.topMouseDown||e===S.topTouchStart}function c(e,t){var n=e._dispatchListeners,r=e._dispatchIDs;if(__DEV__&&m(e),Array.isArray(n))for(var o=0;oe,"Maximum deep merge depth exceeded. You may be attempting to merge circular structures in an unsupported way.")},checkArrayStrategy:function(e){a(void 0===e||e in l.ArrayStrategies,"You must provide an array strategy to deep merge functions to instruct the deep merge how to resolve merging two arrays.")},ArrayStrategies:s({Clobber:!0,IndexByIndex:!0})};o.exports=l}),__d("NodeHandle",[],function(e,t,n,r,o,i){var a={injection:{injectImplementation:function(e){a._Implementation=e}},_Implementation:null,getRootNodeID:function(e){return a._Implementation.getRootNodeID(e)}};o.exports=a}),__d("ReactDefaultBatchingStrategy",["ReactUpdates","Transaction","Object.assign","emptyFunction"],function(e,t,n,r,o,i){"use strict";function a(){this.reinitializeTransaction()}var s=t("ReactUpdates"),u=t("Transaction"),c=t("Object.assign"),l=t("emptyFunction"),p={initialize:l,close:function(){v.isBatchingUpdates=!1}},h={initialize:l,close:s.flushBatchedUpdates.bind(s)},d=[h,p];c(a.prototype,u.Mixin,{getTransactionWrappers:function(){return d}});var f=new a,v={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,o,i){var a=v.isBatchingUpdates;v.isBatchingUpdates=!0,a?e(t,n,r,o,i):f.perform(e,null,t,n,r,o,i)}};o.exports=v}),__d("ReactNativeComponentEnvironment",["ReactNativeDOMIDOperations","ReactNativeReconcileTransaction"],function(e,t,n,r,o,i){"use strict";var a=t("ReactNativeDOMIDOperations"),s=t("ReactNativeReconcileTransaction"),u={processChildrenUpdates:a.dangerouslyProcessChildrenUpdates,replaceNodeWithMarkupByID:a.dangerouslyReplaceNodeWithMarkupByID,unmountIDFromEnvironment:function(){},clearNode:function(){},ReactReconcileTransaction:s};o.exports=u}),__d("ReactNativeDOMIDOperations",["ReactNativeTagHandles","ReactMultiChildUpdateTypes","NativeModules","ReactPerf"],function(e,t,n,r,o,i){"use strict";var a=t("ReactNativeTagHandles"),s=t("ReactMultiChildUpdateTypes"),u=t("NativeModules").UIManager,c=t("ReactPerf"),l=function(e,t){if(e.length){for(var n={},r=0;r=r?(this._iteratedObject=void 0,e(void 0,!0)):(this._nextIndex=o+1,i===u?e(o,!1):i===c?e(n[o],!1):i===l?e([o,n[o]],!1):void 0)}},{key:"@@iterator",value:function(){return this}}]),t}(),n=function(){function t(e){if(a(this,t),"string"!=typeof e)throw new TypeError("Object is not a string");this._iteratedString=e,this._nextIndex=0}return s(t,[{key:"next",value:function(){if(!this instanceof t)throw new TypeError("Object is not a StringIterator");if(null==this._iteratedString)return e(void 0,!0);var n=this._nextIndex,r=this._iteratedString,o=r.length;if(n>=o)return this._iteratedString=void 0,e(void 0,!0);var i,a=r.charCodeAt(n);if(55296>a||a>56319||n+1===o)i=r[n];else{var s=r.charCodeAt(n+1);i=56320>s||s>57343?r[n]:r[n]+r[n+1]}return this._nextIndex=n+i.length,e(i,!1)}},{key:"@@iterator",value:function(){return this}}]),t}();return function(e,r){return"string"==typeof e?new n(e):Array.isArray(e)?new t(e,r||c):e[p]()}}()}();Object.assign(h,{KIND_KEY:u,KIND_VALUE:c,KIND_KEY_VAL:l,ITERATOR_SYMBOL:p}),o.exports=h}),__d("_shouldPolyfillES6Collection",[],function(e,t,n,r,o,i){function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}function u(t){var n=e[t];if(null==n)return!0;var r=n.prototype;return null==n||"function"!=typeof n||"function"!=typeof r.clear||0!==(new n).size||"function"!=typeof r.keys||"function"!=typeof r.forEach||l(n)||!c(n)}function c(e){var t=function(e){function t(){a(this,t),p(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return s(t,e),t}(e);try{var n=new t([]);return n.size,n instanceof e}catch(r){return!1}}function l(e){try{e()}catch(t){return!1}return!0}var p=function h(e,t,n){null===e&&(e=Function.prototype);var r=Object.getOwnPropertyDescriptor(e,t);if(void 0===r){var o=Object.getPrototypeOf(e);return null===o?void 0:h(o,t,n)}if("value"in r)return r.value;var i=r.get;return void 0===i?void 0:i.call(n)};o.exports=u}),__d("ReactNativeGlobalResponderHandler",["NativeModules","ReactNativeTagHandles"],function(e,t,n,r,o,i){"use strict";var a=t("NativeModules").UIManager,s=t("ReactNativeTagHandles"),u={onChange:function(e,t,n){null!==t?a.setJSResponder(s.mostRecentMountedNodeHandleForRootNodeID(t),n):a.clearJSResponder()}};o.exports=u}),__d("ReactNativeTextComponent",["ReactNativeTagHandles","NativeModules","Object.assign"],function(e,t,n,r,o,i){"use strict";var a=t("ReactNativeTagHandles"),s=t("NativeModules").UIManager,u=t("Object.assign"),c=function(e){};u(c.prototype,{construct:function(e){this._currentElement=e,this._stringText=""+e,this._rootNodeID=null},mountComponent:function(e,t,n){this._rootNodeID=e;var r=a.allocateTag(),o=a.getNativeTopRootIDFromNodeID(e);return s.createView(r,"RCTRawText",o?a.rootNodeIDToTag[o]:null,{text:this._stringText}),{rootNodeID:e,tag:r}},receiveComponent:function(e,t,n){if(e!==this._currentElement){this._currentElement=e;var r=""+e;r!==this._stringText&&(this._stringText=r,s.updateView(a.mostRecentMountedNodeHandleForRootNodeID(this._rootNodeID),"RCTRawText",{text:this._stringText}))}},unmountComponent:function(){this._currentElement=null,this._stringText=null,this._rootNodeID=null}}),o.exports=c}),__d("ResponderEventPlugin",["EventConstants","EventPluginUtils","EventPropagators","NodeHandle","ReactInstanceHandles","ResponderSyntheticEvent","ResponderTouchHistoryStore","accumulate","invariant","keyOf"],function(e,t,n,r,o,i){"use strict";function a(e,t,n){var r=_(e)?O.startShouldSetResponder:b(e)?O.moveShouldSetResponder:e===c.topLevelTypes.topSelectionChange?O.selectionChangeShouldSetResponder:O.scrollShouldSetResponder,o=w?d._getFirstCommonAncestorID(w,t):t,i=o===w,a=f.getPooled(r,o,n);a.touchHistory=v.touchHistory,i?p.accumulateTwoPhaseDispatchesSkipTarget(a):p.accumulateTwoPhaseDispatches(a);var s=T(a);if(a.isPersistent()||a.constructor.release(a),!s||s===w)return null;var u,l=f.getPooled(O.responderGrant,s,n);l.touchHistory=v.touchHistory,p.accumulateDirectDispatches(l);var h=R(l)===!0;if(w){var g=f.getPooled(O.responderTerminationRequest,w,n);g.touchHistory=v.touchHistory,p.accumulateDirectDispatches(g);var y=!E(g)||R(g);if(g.isPersistent()||g.constructor.release(g),y){var S=O.responderTerminate,C=f.getPooled(S,w,n);C.touchHistory=v.touchHistory,p.accumulateDirectDispatches(C),u=m(u,[l,C]),x(s,h)}else{var I=f.getPooled(O.responderReject,s,n);I.touchHistory=v.touchHistory,p.accumulateDirectDispatches(I),u=m(u,I)}}else u=m(u,l),x(s,h);return u}function s(e,t){return t&&(e===c.topLevelTypes.topScroll||C>0&&e===c.topLevelTypes.topSelectionChange||_(e)||b(e))}function u(e){var t=e.touches;if(!t||0===t.length)return!0;for(var n=0;n=0,"Ended a touch event which was not counted in trackedTouchCount.")),v.recordTouchTrack(e,r);var o=s(e,n)?a(e,n,r):null,i=w&&_(e),l=w&&b(e),h=w&&S(e),d=i?O.responderStart:l?O.responderMove:h?O.responderEnd:null;if(d){var y=f.getPooled(d,w,r);y.touchHistory=v.touchHistory,p.accumulateDirectDispatches(y),o=m(o,y)}var R=w&&e===c.topLevelTypes.topTouchCancel,E=w&&!R&&S(e)&&u(r),T=R?O.responderTerminate:E?O.responderRelease:null;if(T){var N=f.getPooled(T,w,r);N.touchHistory=v.touchHistory,p.accumulateDirectDispatches(N),o=m(o,N),x(null)}var D=v.touchHistory.numberActiveTouches;return P.GlobalInteractionHandler&&D!==I&&P.GlobalInteractionHandler.onChange(D),I=D,o},GlobalResponderHandler:null,GlobalInteractionHandler:null,injection:{injectGlobalResponderHandler:function(e){P.GlobalResponderHandler=e},injectGlobalInteractionHandler:function(e){P.GlobalInteractionHandler=e}}};o.exports=P}),__d("ResponderSyntheticEvent",["SyntheticEvent"],function(e,t,n,r,o,i){"use strict";function a(e,t,n){s.call(this,e,t,n)}var s=t("SyntheticEvent"),u={touchHistory:function(e){return null}};s.augmentClass(a,u),o.exports=a}),__d("ResponderTouchHistoryStore",["EventPluginUtils","invariant"],function(e,t,n,r,o,i){"use strict";var a=t("EventPluginUtils"),s=t("invariant"),u=a.isMoveish,c=a.isStartish,l=a.isEndish,p=20,h={touchBank:[],numberActiveTouches:0,indexOfSingleActiveTouch:-1,mostRecentTimeStamp:0},d=function(e){return e.timeStamp||e.timestamp},f=function(e){return{touchActive:!0,startTimeStamp:d(e),startPageX:e.pageX,startPageY:e.pageY,currentPageX:e.pageX,currentPageY:e.pageY,currentTimeStamp:d(e),previousPageX:e.pageX,previousPageY:e.pageY,previousTimeStamp:d(e)}},v=function(e,t){e.touchActive=!0,e.startTimeStamp=d(t),e.startPageX=t.pageX,e.startPageY=t.pageY,e.currentPageX=t.pageX,e.currentPageY=t.pageY,e.currentTimeStamp=d(t),e.previousPageX=t.pageX,e.previousPageY=t.pageY,e.previousTimeStamp=d(t)},m=function(e){var t=e.identifier;s(null!=t,"Touch object is missing identifier"),t>p&&console.warn("Touch identifier "+t+" is greater than maximum supported "+p+" which causes performance issues backfilling array locations for all of the indices.")},g=function(e){var t=h.touchBank,n=e.identifier,r=t[n];__DEV__&&m(e),r?v(r,e):t[e.identifier]=f(e),h.mostRecentTimeStamp=d(e)},y=function(e){var t=h.touchBank,n=t[e.identifier];__DEV__&&(m(e),s(n,"Touch data should have been recorded on start")),n.touchActive=!0,n.previousPageX=n.currentPageX,n.previousPageY=n.currentPageY,n.previousTimeStamp=n.currentTimeStamp,n.currentPageX=e.pageX,n.currentPageY=e.pageY,n.currentTimeStamp=d(e),h.mostRecentTimeStamp=d(e)},_=function(e){var t=h.touchBank,n=t[e.identifier];__DEV__&&(m(e),s(n,"Touch data should have been recorded on start")),n.previousPageX=n.currentPageX,n.previousPageY=n.currentPageY,n.previousTimeStamp=n.currentTimeStamp,n.currentPageX=e.pageX,n.currentPageY=e.pageY,n.currentTimeStamp=d(e),n.touchActive=!1,h.mostRecentTimeStamp=d(e)},b={recordTouchTrack:function(e,t){var n=h.touchBank;if(u(e))t.changedTouches.forEach(y);else if(c(e))t.changedTouches.forEach(g),h.numberActiveTouches=t.touches.length,1===h.numberActiveTouches&&(h.indexOfSingleActiveTouch=t.touches[0].identifier);else if(l(e)&&(t.changedTouches.forEach(_),h.numberActiveTouches=t.touches.length,1===h.numberActiveTouches)){for(var r=0;rr;r++)n[r]=r;return R._cache[e]=n,n};R._cache={},S.Mixin={getPublicInstance:function(){return this},construct:function(e){this._currentElement=e},unmountComponent:function(){b(this._rootNodeID),this.unmountChildren(),this._rootNodeID=null},initializeChildren:function(e,t,n,r){var o=this.mountChildren(e,n,r);if(o.length){for(var i=R(o.length),a=[],s=0;s-1?t:t*Math.PI/180}function l(e,t,n){v(!t.getValue,"You passed an Animated.Value to a normal component. You need to wrap that component in an Animated. For example, replace by .");var r=["matrix","translate"];switch(-1!==r.indexOf(e)&&v(Array.isArray(t),"Transform with key of %s must have an array as the value: %s",e,m(n)),e){case"matrix":v(9===t.length||16===t.length,"Matrix transform must have a length of 9 (2d) or 16 (3d). Provided matrix has a length of %s: %s",t.length,m(n));break;case"translate":break;case"rotateX":case"rotateY":case"rotateZ":case"rotate":v("string"==typeof t,'Transform with key of "%s" must be a string: %s',e,m(n)),v(t.indexOf("deg")>-1||t.indexOf("rad")>-1,"Rotate transform must be expressed in degrees (deg) or radians (rad): %s",m(n));break;default:v("number"==typeof t,'Transform with key of "%s" must be a number: %s',e,m(n))}}var p=Object.assign||function(e){for(var t=1;t.49999*d?[0,2*Math.atan2(r,a)*f,90]:-.49999*d>h?[0,-2*Math.atan2(r,a)*f,-90]:[s.roundTo3Places(Math.atan2(2*r*a-2*o*i,1-2*c-2*p)*f),s.roundTo3Places(Math.atan2(2*o*a-2*r*i,1-2*l-2*p)*f),s.roundTo3Places(Math.asin(2*r*o+2*i*a)*f)]},roundTo3Places:function(e){var t=e.toString().split("e");return.001*Math.round(t[0]+"e"+(t[1]?+t[1]-3:3))},decomposeMatrix:function(e){a(16===e.length,"Matrix decomposition needs a list of 3d matrix values, received %s",e);var t=[],n=[],r=[],o=[],i=[];if(e[15]){for(var u=[],c=[],l=0;4>l;l++){u.push([]);for(var p=0;4>p;p++){var h=e[4*l+p]/e[15];u[l].push(h),c.push(3===p?0:h)}}if(c[15]=1,s.determinant(c)){if(0!==u[0][3]||0!==u[1][3]||0!==u[2][3])var d=[u[0][3],u[1][3],u[2][3],u[3][3]],f=s.inverse3x3(c),v=s.transpose4x4(f),t=s.multiplyVectorByMatrix(d,v);else t[0]=t[1]=t[2]=0,t[3]=1;for(var l=0;3>l;l++)i[l]=u[3][l];var m=[];for(l=0;3>l;l++)m[l]=[u[l][0],u[l][1],u[l][2]];r[0]=s.v3Length(m[0]),m[0]=s.v3Normalize(m[0],r[0]),o[0]=s.v3Dot(m[0],m[1]),m[1]=s.v3Combine(m[1],m[0],1,-o[0]),o[0]=s.v3Dot(m[0],m[1]),m[1]=s.v3Combine(m[1],m[0],1,-o[0]),r[1]=s.v3Length(m[1]),m[1]=s.v3Normalize(m[1],r[1]),o[0]/=r[1],o[1]=s.v3Dot(m[0],m[2]),m[2]=s.v3Combine(m[2],m[0],1,-o[1]),o[2]=s.v3Dot(m[1],m[2]),m[2]=s.v3Combine(m[2],m[1],1,-o[2]),r[2]=s.v3Length(m[2]),m[2]=s.v3Normalize(m[2],r[2]),o[1]/=r[2],o[2]/=r[2];var g=s.v3Cross(m[1],m[2]);if(s.v3Dot(m[0],g)<0)for(l=0;3>l;l++)r[l]*=-1,m[l][0]*=-1,m[l][1]*=-1,m[l][2]*=-1;n[0]=.5*Math.sqrt(Math.max(1+m[0][0]-m[1][1]-m[2][2],0)),n[1]=.5*Math.sqrt(Math.max(1-m[0][0]+m[1][1]-m[2][2],0)),n[2]=.5*Math.sqrt(Math.max(1-m[0][0]-m[1][1]+m[2][2],0)),n[3]=.5*Math.sqrt(Math.max(1+m[0][0]+m[1][1]+m[2][2],0)),m[2][1]>m[1][2]&&(n[0]=-n[0]),m[0][2]>m[2][0]&&(n[1]=-n[1]),m[1][0]>m[0][1]&&(n[2]=-n[2]);var y;return y=n[0]<.001&&n[0]>=0&&n[1]<.001&&n[1]>=0?[0,0,s.roundTo3Places(180*Math.atan2(m[0][1],m[0][0])/Math.PI)]:s.quaternionToDegreesXYZ(n,u,m),{rotationDegrees:y,perspective:t,quaternion:n,scale:r,skew:o,translation:i,rotate:y[2],scaleX:r[0],scaleY:r[1],translateX:i[0],translateY:i[1]}}}}};o.exports=s}),__d("deepFreezeAndThrowOnMutationInDev",[],function(e,t,n,r,o,i){"use strict";function a(e){if(__DEV__){if("object"!=typeof e||null===e||Object.isFrozen(e)||Object.isSealed(e))return;for(var t in e)e.hasOwnProperty(t)&&(e.__defineGetter__(t,u.bind(null,e[t])),e.__defineSetter__(t,s.bind(null,t)),a(e[t]));Object.freeze(e),Object.seal(e)}}function s(e,t){throw Error("You attempted to set the key `"+e+"` with the value `"+JSON.stringify(t)+"` on an object that is meant to be immutable and has been frozen.")}function u(e){return e}o.exports=a}),__d("ReactNativeEventEmitter",["EventPluginHub","ReactEventEmitterMixin","ReactNativeTagHandles","NodeHandle","EventConstants","merge","warning"],function(e,t,n,r,o,i){"use strict";var a=t("EventPluginHub"),s=t("ReactEventEmitterMixin"),u=t("ReactNativeTagHandles"),c=t("NodeHandle"),l=t("EventConstants"),p=t("merge"),h=t("warning"),d=l.topLevelTypes,f={},v=function(e,t){for(var n=[],r=0;r>",w={array:s("array"),bool:s("boolean"),func:s("function"),number:s("number"),object:s("object"),string:s("string"),any:u(),arrayOf:c,element:l(),instanceOf:p,node:v(),objectOf:d,oneOf:h,oneOfType:f,shape:m};o.exports=w}),__d("TransformPropTypes",["ReactPropTypes"],function(e,t,n,r,o,i){"use strict";var a=t("ReactPropTypes"),s={transform:a.arrayOf(a.oneOfType([a.shape({perspective:a.number}),a.shape({rotate:a.string}),a.shape({rotateX:a.string}),a.shape({rotateY:a.string}),a.shape({rotateZ:a.string}),a.shape({scale:a.number}),a.shape({scaleX:a.number}),a.shape({scaleY:a.number}),a.shape({translateX:a.number}),a.shape({translateY:a.number})])),transformMatrix:a.arrayOf(a.number),rotation:a.number,scaleX:a.number,scaleY:a.number,translateX:a.number,translateY:a.number};o.exports=s}),__d("TextStylePropTypes",["ReactPropTypes","ViewStylePropTypes"],function(e,t,n,r,o,i){"use strict";for(var a=t("ReactPropTypes"),s=t("ViewStylePropTypes"),u=Object.assign(Object.create(s),{color:a.string,fontFamily:a.string,fontSize:a.number,fontStyle:a.oneOf(["normal","italic"]),fontWeight:a.oneOf(["normal","bold","100","200","300","400","500","600","700","800","900"]),letterSpacing:a.number,lineHeight:a.number,textAlign:a.oneOf(["auto","left","right","center","justify"]),textDecorationLine:a.oneOf(["none","underline","line-through","underline line-through"]),textDecorationStyle:a.oneOf(["solid","double","dotted","dashed"]),textDecorationColor:a.string,writingDirection:a.oneOf(["auto","ltr","rtl"])}),c=Object.keys({padding:null,paddingTop:null,paddingLeft:null,paddingRight:null,paddingBottom:null,paddingVertical:null,paddingHorizontal:null}),l=0;lr;r++)if(a(e[r],t[r]))return!0}else{for(var o in e)if(a(e[o],t[o]))return!0;for(var i in t)if(void 0===e[i]&&void 0!==t[i])return!0}return!1};o.exports=a}),__d("diffRawProperties",["deepDiffer"],function(e,t,n,r,o,i){"use strict";function a(e,t,n,r){var o,i,a,u,c,l;if(n)for(var p in n)o=r[p],o&&(a=t&&t[p],i=n[p],"function"==typeof a&&(a=!0),"function"==typeof i&&(i=!0),a!==i&&(l=o.diff||s,u="object"!=typeof i||null===i,c=u||!a||l(a,i),c&&(e=e||{},e[p]=i)));if(t)for(var p in t)o=r[p],o&&(e&&void 0!==e[p]||(a=t[p],i=n&&n[p],"function"==typeof a&&(a=!0),"function"==typeof i&&(i=!0),a!==i&&(void 0===i&&(i=null),l=o.diff||s,u="object"!=typeof i||null===i,c=u&&a!==i||l(a,i),c&&(e=e||{},e[p]=i))));return e}var s=t("deepDiffer");o.exports=a}),__d("RCTEventEmitter",["ReactNativeEventEmitter"],function(e,t,n,r,o,i){"use strict";var a=t("ReactNativeEventEmitter");o.exports=a}),__d("RCTLog",["invariant"],function(e,t,n,r,o,i){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var s=function(){function e(e,t){for(var n=0;n=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}var s=t("NativeMethodsMixin"),u=t("ReactPropTypes"),c=t("React"),l=t("StyleSheet"),p=t("View"),h=t("requireNativeComponent"),d="#999999",f=c.createClass({displayName:"ActivityIndicatorIOS",mixins:[s],propTypes:{animating:u.bool,color:u.string,hidesWhenStopped:u.bool,size:u.oneOf(["small","large"]),onLayout:u.func},getDefaultProps:function(){return{animating:!0,color:d,hidesWhenStopped:!0,size:"small"}},render:function(){var e=this.props,t=e.onLayout,n=e.style,r=a(e,["onLayout","style"]),o="large"===this.props.size?v.sizeLarge:v.sizeSmall;return c.createElement(p,{onLayout:t,style:[v.container,o,n]},c.createElement(m,r))}}),v=l.create({container:{alignItems:"center",justifyContent:"center"},sizeSmall:{width:20,height:20},sizeLarge:{width:36,height:36}}),m=h("RCTActivityIndicatorView",f,{nativeOnly:{activityIndicatorViewStyle:!0}});o.exports=f}),__d("StyleSheet",["StyleSheetRegistry","StyleSheetValidation"],function(e,t,n,r,o,i){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var s=function(){function e(e,t){for(var n=0;n>")+": "+JSON.stringify(t,null," ")+(r||""))},v={};d.addValidStylePropTypes(u),d.addValidStylePropTypes(l),d.addValidStylePropTypes(p),o.exports=d}),__d("View",["NativeMethodsMixin","ReactPropTypes","NativeModules","React","ReactNativeStyleAttributes","ReactNativeViewAttributes","StyleSheetPropType","ViewStylePropTypes","createReactNativeComponentClass"],function(e,t,n,r,o,i){"use strict";var a=t("NativeMethodsMixin"),s=t("ReactPropTypes"),u=t("NativeModules").UIManager,c=t("React"),l=t("ReactNativeStyleAttributes"),p=t("ReactNativeViewAttributes"),h=t("StyleSheetPropType"),d=t("ViewStylePropTypes"),f=t("createReactNativeComponentClass"),v=h(d),m=["none","button","link","header","search","image","selected","plays","key","text","summary","disabled","frequentUpdates","startsMedia","adjustable","allowsDirectInteraction","pageTurn"],g=c.createClass({displayName:"View",mixins:[a],viewConfig:{uiViewClassName:"RCTView",validAttributes:p.RCTView},propTypes:{accessible:s.bool,accessibilityLabel:s.string,accessibilityTraits:s.oneOfType([s.oneOf(m),s.arrayOf(s.oneOf(m))]),onAcccessibilityTap:s.func,onMagicTap:s.func,testID:s.string,onMoveShouldSetResponder:s.func,onResponderGrant:s.func,onResponderMove:s.func,onResponderReject:s.func,onResponderRelease:s.func,onResponderTerminate:s.func,onResponderTerminationRequest:s.func,onStartShouldSetResponder:s.func,onStartShouldSetResponderCapture:s.func,onLayout:s.func,pointerEvents:s.oneOf(["box-none","none","box-only","auto"]),style:v,removeClippedSubviews:s.bool,renderToHardwareTextureAndroid:s.bool},render:function(){return c.createElement(y,this.props)}}),y=f({validAttributes:p.RCTView,uiViewClassName:"RCTView"});if(y.propTypes=g.propTypes,__DEV__){var _=u.viewConfigs&&u.viewConfigs.RCTView||{};for(var b in _.nativeProps){var S=g;if(!S.propTypes[b]&&!l[b])throw new Error("View is missing propType for native prop `"+b+"`")}}var R=y;__DEV__&&(R=g),o.exports=R}),__d("ReactNativeViewAttributes",["merge"],function(e,t,n,r,o,i){"use strict";var a=t("merge"),s={};s.UIView={pointerEvents:!0,accessible:!0,accessibilityLabel:!0,accessibilityTraits:!0,testID:!0,onLayout:!0,onAccessibilityTap:!0,onMagicTap:!0},s.RCTView=a(s.UIView,{removeClippedSubviews:!0}),o.exports=s}),__d("StyleSheetPropType",["createStrictShapeTypeChecker","flattenStyle"],function(e,t,n,r,o,i){"use strict";function a(e){var t=s(e);return function(e,n,r,o){var i=e;return e[n]&&(i={},i[n]=u(e[n])),t(i,n,r,o)}}var s=t("createStrictShapeTypeChecker"),u=t("flattenStyle");o.exports=a}),__d("createStrictShapeTypeChecker",["ReactPropTypeLocationNames","invariant","merge"],function(e,t,n,r,o,i){"use strict";function a(e){function t(t,n,r,o,i){if(!n[r])return void(t&&u(!1,"Required object `"+r+"` was not specified in "+("`"+o+"`.")));var a=n[r],l=typeof a,p=i&&s[i]||"(unknown)";"object"!==l&&u(!1,"Invalid "+p+" `"+r+"` of type `"+l+"` "+("supplied to `"+o+"`, expected `object`."));var h=c(n[r],e);for(var d in h){var f=e[d];f||u(!1,"Invalid props."+r+" key `"+d+"` supplied to `"+o+"`.\nBad object: "+JSON.stringify(n[r],null," ")+"\nValid keys: "+JSON.stringify(Object.keys(e),null," "));var v=f(a,d,o,i);v&&u(!1,v.message+"\nBad object: "+JSON.stringify(n[r],null," "))}}function n(e,n,r,o){return t(!1,e,n,r,o)}return n.isRequired=t.bind(null,!0),n}var s=t("ReactPropTypeLocationNames"),u=t("invariant"),c=t("merge");o.exports=a}),__d("requireNativeComponent",["verifyPropTypes","NativeModules","UnimplementedView","createReactNativeComponentClass","insetsDiffer","pointsDiffer","matricesDiffer","sizesDiffer","verifyPropTypes","warning"],function(e,t,n,r,o,i){function a(e,t,n){var r=u[e];if(!r||!r.NativeProps)return m(!1,'Native component for "%s" does not exist',e),c;var o=s({},u.RCTView.NativeProps,r.NativeProps);r.uiViewClassName=e,r.validAttributes={},r.propTypes=t&&t.propTypes;for(var i in o){var a=g[o[i]];r.validAttributes[i]=a?{diff:a}:!0}return __DEV__&&t&&v(t,r,n&&n.nativeOnly),l(r)}var s=Object.assign||function(e){for(var t=1;t=t)return e[n];return e[e.length-1]||1}function h(e){if("object"==typeof e)return e;var t=v.getAssetByID(e);return t?d(t):null}function d(e){var t=a();return t?{width:e.width,height:e.height,uri:u(t,e),isStatic:!1}:{width:e.width,height:e.height,uri:s(e),isStatic:!0}}var f,v=t("AssetRegistry"),m=t("PixelRatio"),g=t("Platform"),y=t("NativeModules").SourceCode;o.exports=h,o.exports.pickScale=p}),__d("AssetRegistry",[],function(e,t,n,r,o,i){"use strict";function a(e){return u.push(e)}function s(e){return u[e-1]}var u=[];o.exports={registerAsset:a,getAssetByID:s}}),__d("PixelRatio",["Dimensions"],function(e,t,n,r,o,i){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var s=function(){function e(e,t){for(var n=0;n=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}var s=Object.assign||function(e){for(var t=1;t=this.state.prevRenderedRowsCount&&t.sectionHeaderShouldUpdate(l);e.push(c.createElement(f,{key:"s_"+p,shouldUpdate:!!d,render:this.props.renderSectionHeader.bind(null,t.getSectionHeaderData(l),p)})),o.push(u++)}for(var v=0;v=this.state.prevRenderedRowsCount&&t.rowShouldUpdate(l,v),_=c.createElement(f,{key:"r_"+g,shouldUpdate:!!y,render:this.props.renderRow.bind(null,t.getRowData(l,v),p,m,this.onRowHighlighted)});if(e.push(_),u++,this.props.renderSeparator&&(v!==h.length-1||l===n.length-1)){var b=this.state.highlightedRow.sectionID===p&&(this.state.highlightedRow.rowID===m||this.state.highlightedRow.rowID===h[v+1]),S=this.props.renderSeparator(p,m,b);e.push(S),u++}if(++r===this.state.curRenderedRowsCount)break}if(r>=this.state.curRenderedRowsCount)break}}var R=this.props,E=R.renderScrollComponent,C=a(R,["renderScrollComponent"]);return C.scrollEventThrottle||(C.scrollEventThrottle=T),Object.assign(C,{onScroll:this._onScroll,stickyHeaderIndices:o,onKeyboardWillShow:void 0,onKeyboardWillHide:void 0,onKeyboardDidShow:void 0,onKeyboardDidHide:void 0}),c.cloneElement(E(C),{ref:w},i,e,s)},_measureAndUpdateScrollProps:function(){var e=this.getScrollResponder();e&&e.getInnerViewNode&&(l.measureLayout(e.getInnerViewNode(),c.findNodeHandle(e),g,this._setScrollContentLength),l.measureLayoutRelativeToParent(c.findNodeHandle(e),g,this._setScrollVisibleLength),p&&p.calculateChildFrames&&p.calculateChildFrames(c.findNodeHandle(e),this._updateChildFrames))},_setScrollContentLength:function(e,t,n,r){this.scrollProperties.contentLength=this.props.horizontal?n:r},_setScrollVisibleLength:function(e,t,n,r){this.scrollProperties.visibleLength=this.props.horizontal?n:r,this._updateVisibleRows(),this._renderMoreRowsIfNeeded()},_updateChildFrames:function(e){this._updateVisibleRows(e)},_renderMoreRowsIfNeeded:function(){if(null!==this.scrollProperties.contentLength&&null!==this.scrollProperties.visibleLength&&this.state.curRenderedRowsCount!==this.props.dataSource.getRowCount()){var e=this._getDistanceFromEnd(this.scrollProperties);ei||o>R?b&&(c=!0,delete f[g],l[d]||(l[d]={}),l[d][g]=!1):b||(c=!0,f[g]=!0,l[d]||(l[d]={}),l[d][g]=!0)}m(f)?this._visibleRows[d]&&delete this._visibleRows[d]:this._visibleRows[d]=f}}c&&this.props.onChangeVisibleRows(this._visibleRows,l)}},_onScroll:function(e){var t=!this.props.horizontal;this.scrollProperties.visibleLength=e.nativeEvent.layoutMeasurement[t?"height":"width"],this.scrollProperties.contentLength=e.nativeEvent.contentSize[t?"height":"width"],this.scrollProperties.offset=e.nativeEvent.contentOffset[t?"y":"x"],this._updateVisibleRows(e.nativeEvent.updatedChildFrames);var n=this._getDistanceFromEnd(this.scrollProperties)=this.rowIdentities[n].length))return this.rowIdentities[n][t];t-=this.rowIdentities[n].length}return null}},{key:"getSectionIDForFlatIndex",value:function(e){for(var t=e,n=0;n=this.rowIdentities[n].length))return this.sectionIdentities[n];t-=this.rowIdentities[n].length}return null}},{key:"getSectionLengths",value:function(){for(var e=[],t=0;t but not `scrollEventThrottle`. You will only receive one event. Using `16` you get all the events but be aware that it may cause frame drops, use a bigger number if you don't need as much precision."),this.scrollResponderHandleScroll(e)},render:function(){var e=[this.props.horizontal&&N.contentContainerHorizontal,this.props.contentContainerStyle];if(__DEV__&&this.props.style){var t=R(this.props.style),n=["alignItems","justifyContent"].filter(function(e){return t&&void 0!==t[e]});T(0===n.length,"ScrollView child layout ("+JSON.stringify(n)+") must by applied through the contentContainerStyle prop.")}var r,o=h.createElement(y,{ref:O,style:e,removeClippedSubviews:this.props.removeClippedSubviews},this.props.children),i=void 0!==this.props.alwaysBounceHorizontal?this.props.alwaysBounceHorizontal:this.props.horizontal,s=void 0!==this.props.alwaysBounceVertical?this.props.alwaysBounceVertical:!this.props.horizontal,c=a({},this.props,{alwaysBounceHorizontal:i,alwaysBounceVertical:s,style:[N.base,this.props.style],onTouchStart:this.scrollResponderHandleTouchStart,onTouchMove:this.scrollResponderHandleTouchMove,onTouchEnd:this.scrollResponderHandleTouchEnd,onScrollBeginDrag:this.scrollResponderHandleScrollBeginDrag,onScrollEndDrag:this.scrollResponderHandleScrollEndDrag,onMomentumScrollBegin:this.scrollResponderHandleMomentumScrollBegin,onMomentumScrollEnd:this.scrollResponderHandleMomentumScrollEnd,onStartShouldSetResponder:this.scrollResponderHandleStartShouldSetResponder,onStartShouldSetResponderCapture:this.scrollResponderHandleStartShouldSetResponderCapture,onScrollShouldSetResponder:this.scrollResponderHandleScrollShouldSetResponder,onScroll:this.handleScroll,onResponderGrant:this.scrollResponderHandleResponderGrant,onResponderTerminationRequest:this.scrollResponderHandleTerminationRequest,onResponderTerminate:this.scrollResponderHandleTerminate,onResponderRelease:this.scrollResponderHandleResponderRelease,onResponderReject:this.scrollResponderHandleResponderReject});if("ios"===u.OS)r=l;else if("android"===u.OS){r=this.props.horizontal?k:M;var d={none:p.KeyboardDismissMode.None,interactive:p.KeyboardDismissMode.Interactive,"on-drag":p.KeyboardDismissMode.OnDrag};c.keyboardDismissMode=c.keyboardDismissMode?d[c.keyboardDismissMode]:void 0}return T(void 0!==r,"ScrollViewClass must not be undefined"),h.createElement(r,a({},c,{ref:x}),o)}}),N=m.create({base:{flex:1},contentContainerHorizontal:{alignSelf:"flex-start",flexDirection:"row"}}),D=a({},d.UIView,{alwaysBounceHorizontal:!0,alwaysBounceVertical:!0,automaticallyAdjustContentInsets:!0,bounces:!0,centerContent:!0,contentInset:{diff:E},contentOffset:{diff:w},decelerationRate:!0,horizontal:!0,keyboardDismissMode:!0,keyboardShouldPersistTaps:!0,maximumZoomScale:!0,minimumZoomScale:!0,pagingEnabled:!0,removeClippedSubviews:!0,scrollEnabled:!0,scrollIndicatorInsets:{diff:E},scrollsToTop:!0,showsHorizontalScrollIndicator:!0,showsVerticalScrollIndicator:!0,stickyHeaderIndices:{diff:S},scrollEventThrottle:!0,zoomScale:!0});if("android"===u.OS)var M=b({validAttributes:D,uiViewClassName:"RCTScrollView"}),k=b({validAttributes:D,uiViewClassName:"AndroidHorizontalScrollView"});else if("ios"===u.OS)var l=C("RCTScrollView",P);o.exports=P}),__d("PointPropType",["ReactPropTypes","createStrictShapeTypeChecker"],function(e,t,n,r,o,i){"use strict";var a=t("ReactPropTypes"),s=t("createStrictShapeTypeChecker"),u=s({x:a.number,y:a.number});o.exports=u}),__d("ScrollResponder",["NativeModules","Platform","RCTDeviceEventEmitter","React","Subscribable","TextInputState","warning"],function(e,t,n,r,o,i){"use strict";var a=t("NativeModules"),s=t("Platform"),u=t("RCTDeviceEventEmitter"),c=t("React"),l=t("Subscribable"),p=t("TextInputState"),h=a.UIManager,d=h.RCTScrollView.Constants,f=t("warning"),v=16,m={mixins:[l.Mixin],statics:d,scrollResponderMixinGetInitialState:function(){return{isTouching:!1,lastMomentumScrollBeginTime:0,lastMomentumScrollEndTime:0,observedScrollSinceBecomingResponder:!1,becameResponderWhileAnimating:!1}},scrollResponderHandleScrollShouldSetResponder:function(){return this.state.isTouching},scrollResponderHandleStartShouldSetResponder:function(){return!1},scrollResponderHandleStartShouldSetResponderCapture:function(e){var t=p.currentlyFocusedField();return this.props.keyboardShouldPersistTaps||null==t||e.target===t?this.scrollResponderIsAnimating():!0},scrollResponderHandleResponderReject:function(){f(!1,"ScrollView doesn't take rejection well - scrolls anyway")},scrollResponderHandleTerminationRequest:function(){return!this.state.observedScrollSinceBecomingResponder},scrollResponderHandleTouchEnd:function(e){var t=e.nativeEvent;this.state.isTouching=0!==t.touches.length,this.props.onTouchEnd&&this.props.onTouchEnd(e)},scrollResponderHandleResponderRelease:function(e){this.props.onResponderRelease&&this.props.onResponderRelease(e);var t=p.currentlyFocusedField();this.props.keyboardShouldPersistTaps||null==t||e.target===t||this.state.observedScrollSinceBecomingResponder||this.state.becameResponderWhileAnimating||(this.props.onScrollResponderKeyboardDismissed&&this.props.onScrollResponderKeyboardDismissed(e),p.blurTextInput(t))},scrollResponderHandleScroll:function(e){this.state.observedScrollSinceBecomingResponder=!0,this.props.onScroll&&this.props.onScroll(e)},scrollResponderHandleResponderGrant:function(e){this.state.observedScrollSinceBecomingResponder=!1,this.props.onResponderGrant&&this.props.onResponderGrant(e),this.state.becameResponderWhileAnimating=this.scrollResponderIsAnimating()},scrollResponderHandleScrollBeginDrag:function(e){this.props.onScrollBeginDrag&&this.props.onScrollBeginDrag(e)},scrollResponderHandleScrollEndDrag:function(e){this.props.onScrollEndDrag&&this.props.onScrollEndDrag(e)},scrollResponderHandleMomentumScrollBegin:function(e){this.state.lastMomentumScrollBeginTime=Date.now(),this.props.onMomentumScrollBegin&&this.props.onMomentumScrollBegin(e)},scrollResponderHandleMomentumScrollEnd:function(e){this.state.lastMomentumScrollEndTime=Date.now(),this.props.onMomentumScrollEnd&&this.props.onMomentumScrollEnd(e)},scrollResponderHandleTouchStart:function(e){this.state.isTouching=!0,this.props.onTouchStart&&this.props.onTouchStart(e)},scrollResponderHandleTouchMove:function(e){this.props.onTouchMove&&this.props.onTouchMove(e)},scrollResponderIsAnimating:function(){var e=Date.now(),t=e-this.state.lastMomentumScrollEndTime,n=v>t||this.state.lastMomentumScrollEndTime=1,"Navigator requires props.initialRoute or props.initialRouteStack.");var n=t.length-1;return this.props.initialRoute&&(n=t.indexOf(this.props.initialRoute),w(-1!==n,"initialRoute is not in initialRouteStack.")),{sceneConfigStack:t.map(function(t){return e.props.configureScene(t)}),routeStack:t,presentedIndex:n,transitionFromIndex:null,activeGesture:null,pendingGestureProgress:null,transitionQueue:[]}},componentWillMount:function(){var e=this;this.__defineGetter__("navigationContext",this._getNavigationContext),this._subRouteFocus=[],this.parentNavigator=this.props.navigator,this._handlers={},this.springSystem=new C.SpringSystem,this.spring=this.springSystem.createSpring(),this.spring.setRestSpeedThreshold(.05),this.spring.setCurrentValue(0).setAtRest(),this.spring.addListener({onSpringEndStateChange:function(){e._interactionHandle||(e._interactionHandle=e.createInteractionHandle())},onSpringUpdate:function(){e._handleSpringUpdate()},onSpringAtRest:function(){e._completeTransition()}}),this.panGesture=g.create({onMoveShouldSetPanResponder:this._handleMoveShouldSetPanResponder,onPanResponderGrant:this._handlePanResponderGrant,onPanResponderRelease:this._handlePanResponderRelease,onPanResponderMove:this._handlePanResponderMove,onPanResponderTerminate:this._handlePanResponderTerminate}),this._interactionHandle=null,this._emitWillFocus(this.state.routeStack[this.state.presentedIndex])},componentDidMount:function(){this._handleSpringUpdate(),this._emitDidFocus(this.state.routeStack[this.state.presentedIndex])},componentWillUnmount:function(){this._navigationContext&&(this._navigationContext.dispose(),this._navigationContext=null)},immediatelyResetRouteStack:function(e){var t=this,n=e.length-1;this.setState({routeStack:e,sceneConfigStack:e.map(this.props.configureScene),presentedIndex:n,activeGesture:null,transitionFromIndex:null,transitionQueue:[]},function(){t._handleSpringUpdate()})},_transitionTo:function(e,t,n,r){if(e!==this.state.presentedIndex){if(null!==this.state.transitionFromIndex)return void this.state.transitionQueue.push({destIndex:e,velocity:t,cb:r});this.state.transitionFromIndex=this.state.presentedIndex,this.state.presentedIndex=e,this.state.transitionCb=r,this._onAnimationStart(),c&&c.startRecordingFps();var o=this.state.sceneConfigStack[this.state.transitionFromIndex]||this.state.sceneConfigStack[this.state.presentedIndex];w(o,"Cannot configure scene at index "+this.state.transitionFromIndex),null!=n&&this.spring.setCurrentValue(n),this.spring.setOvershootClampingEnabled(!0),this.spring.getSpringConfig().friction=o.springFriction,this.spring.getSpringConfig().tension=o.springTension,this.spring.setVelocity(t||o.defaultTransitionVelocity),this.spring.setEndValue(1)}},_handleSpringUpdate:function(){if(null!=this.state.transitionFromIndex)this._transitionBetween(this.state.transitionFromIndex,this.state.presentedIndex,this.spring.getCurrentValue());else if(null!=this.state.activeGesture){var e=this.state.presentedIndex+this._deltaForGestureAction(this.state.activeGesture);this._transitionBetween(this.state.presentedIndex,e,this.spring.getCurrentValue())}},_completeTransition:function(){if(1!==this.spring.getCurrentValue()&&0!==this.spring.getCurrentValue())return void(this.state.pendingGestureProgress&&(this.state.pendingGestureProgress=null));this._onAnimationEnd();var e=this.state.presentedIndex,t=this._subRouteFocus[e]||this.state.routeStack[e];if(this._emitDidFocus(t),c&&c.stopRecordingFps(Date.now()),this.state.transitionFromIndex=null,this.spring.setCurrentValue(0).setAtRest(),this._hideScenes(),this.state.transitionCb&&(this.state.transitionCb(),this.state.transitionCb=null),this._interactionHandle&&(this.clearInteractionHandle(this._interactionHandle),this._interactionHandle=null),this.state.pendingGestureProgress){var n=this.state.presentedIndex+this._deltaForGestureAction(this.state.activeGesture);return this._enableScene(n),void this.spring.setEndValue(this.state.pendingGestureProgress)}if(this.state.transitionQueue.length){var r=this.state.transitionQueue.shift();this._enableScene(r.destIndex),this._emitWillFocus(this.state.routeStack[r.destIndex]),this._transitionTo(r.destIndex,r.velocity,null,r.cb)}},_emitDidFocus:function(e){this.navigationContext.emit("didfocus",{route:e}),this.props.onDidFocus&&this.props.onDidFocus(e)},_emitWillFocus:function(e){this.navigationContext.emit("willfocus",{route:e});var t=this._navBar;t&&t.handleWillFocus&&t.handleWillFocus(e),this.props.onWillFocus&&this.props.onWillFocus(e)},_hideScenes:function(){var e=null;this.state.activeGesture&&(e=this.state.presentedIndex+this._deltaForGestureAction(this.state.activeGesture));for(var t=0;t=t;t++)this._setRenderSceneToHarwareTextureAndroid(t,!1);var n=this._navBar;n&&n.onAnimationEnd&&n.onAnimationEnd()},_setRenderSceneToHarwareTextureAndroid:function(e,t){var n=this.refs["scene_"+e];null!==n&&void 0!==n&&n.setNativeProps({renderToHardwareTextureAndroid:t})},_handleTouchStart:function(){this._eligibleGestures=M},_handleMoveShouldSetPanResponder:function(e,t){var n=this.state.sceneConfigStack[this.state.presentedIndex];return this._expectingGestureGrant=this._matchGestureAction(this._eligibleGestures,n.gestures,t),!!this._expectingGestureGrant},_doesGestureOverswipe:function(e){var t=this.state.presentedIndex<=0&&("pop"===e||"jumpBack"===e),n=this.state.presentedIndex>=this.state.routeStack.length-1&&"jumpForward"===e;return n||t},_handlePanResponderGrant:function(e,t){w(this._expectingGestureGrant,"Responder granted unexpectedly."),this._attachGesture(this._expectingGestureGrant),this._onAnimationStart(),this._expectingGestureGrant=null},_deltaForGestureAction:function(e){switch(e){case"pop":case"jumpBack":return-1;case"jumpForward":return 1;default:return void w(!1,"Unsupported gesture action "+e)}},_handlePanResponderRelease:function(e,t){var n=this,r=this.state.sceneConfigStack[this.state.presentedIndex],o=this.state.activeGesture;if(o){var i=r.gestures[o],a=this.state.presentedIndex+this._deltaForGestureAction(this.state.activeGesture);if(0===this.spring.getCurrentValue())return this.spring.setCurrentValue(0).setAtRest(),void this._completeTransition();var s,u,c="top-to-bottom"===i.direction||"bottom-to-top"===i.direction,l="right-to-left"===i.direction||"bottom-to-top"===i.direction;c?(s=l?-t.vy:t.vy,u=l?-t.dy:t.dy):(s=l?-t.vx:t.vx,u=l?-t.dx:t.dx);var p=E(-10,s,10);if(Math.abs(s)i.fullDistance*i.stillCompletionRatio;p=h?i.snapVelocity:-i.snapVelocity}if(0>p||this._doesGestureOverswipe(o)){if(null==this.state.transitionFromIndex){var d=this.state.presentedIndex;this.state.presentedIndex=a,this._transitionTo(d,-p,1-this.spring.getCurrentValue())}}else this._emitWillFocus(this.state.routeStack[a]),this._transitionTo(a,p,null,function(){"pop"===o&&n._cleanScenesPastIndex(a)});this._detachGesture()}},_handlePanResponderTerminate:function(e,t){var n=this.state.presentedIndex+this._deltaForGestureAction(this.state.activeGesture);this._detachGesture();var r=this.state.presentedIndex;this.state.presentedIndex=n,this._transitionTo(r,null,1-this.spring.getCurrentValue())},_attachGesture:function(e){this.state.activeGesture=e;var t=this.state.presentedIndex+this._deltaForGestureAction(this.state.activeGesture);this._enableScene(t)},_detachGesture:function(){this.state.activeGesture=null,this.state.pendingGestureProgress=null,this._hideScenes()},_handlePanResponderMove:function(e,t){var n=this.state.sceneConfigStack[this.state.presentedIndex];if(this.state.activeGesture){var r=n.gestures[this.state.activeGesture];return this._moveAttachedGesture(r,t)}var o=this._matchGestureAction(M,n.gestures,t);o&&this._attachGesture(o)},_moveAttachedGesture:function(e,t){var n="top-to-bottom"===e.direction||"bottom-to-top"===e.direction,r="right-to-left"===e.direction||"bottom-to-top"===e.direction,o=n?t.dy:t.dx;o=r?-o:o;var i=e.gestureDetectMovement,a=(o-i)/(e.fullDistance-i);if(0>a&&e.isDetachable){var s=this.state.presentedIndex+this._deltaForGestureAction(this.state.activeGesture);return this._transitionBetween(this.state.presentedIndex,s,0),this._detachGesture(),void(null!=this.state.pendingGestureProgress&&this.spring.setCurrentValue(0))}if(this._doesGestureOverswipe(this.state.activeGesture)){var u=e.overswipe.frictionConstant,c=e.overswipe.frictionByDistance,l=1/(u+Math.abs(a)*c);a*=l}a=E(0,a,1),null!=this.state.transitionFromIndex?this.state.pendingGestureProgress=a:this.state.pendingGestureProgress?this.spring.setEndValue(a):this.spring.setCurrentValue(a)},_matchGestureAction:function(e,t,n){var r=this;if(!t)return null;var o=null;return e.some(function(e,i){var a=t[e];if(a){if(null==a.overswipe&&r._doesGestureOverswipe(e))return!1;var s="top-to-bottom"===a.direction||"bottom-to-top"===a.direction,u="right-to-left"===a.direction||"bottom-to-top"===a.direction,c=s?n.moveY:n.moveX,l=s?n.dy:n.dx,p=s?n.dx:n.dy,h=a.edgeHitWidth;u&&(c=-c,l=-l,p=-p,h=s?-(O-h):-(x-h));var d=null==a.edgeHitWidth||h>c;if(!d)return!1;var f=l>=a.gestureDetectMovement;if(!f)return!1;var v=Math.abs(l)>Math.abs(p)*a.directionRatio;return v?(o=e,!0):void(r._eligibleGestures=r._eligibleGestures.slice().splice(i,1))}}),o},_transitionSceneStyle:function(e,t,n,r){var o=this.refs["scene_"+r];if(null!==o&&void 0!==o){var i=t>e?t:e,a=this.state.sceneConfigStack[i];a||(a=this.state.sceneConfigStack[i-1]);var s={},u=e>r||t>r?a.animationInterpolators.out:a.animationInterpolators.into,c=t>e?n:1-n,l=u(s,c);l&&o.setNativeProps({style:s})}},_transitionBetween:function(e,t,n){this._transitionSceneStyle(e,t,n,e),this._transitionSceneStyle(e,t,n,t);var r=this._navBar;r&&r.updateProgress&&t>=0&&e>=0&&r.updateProgress(n,e,t)},_handleResponderTerminationRequest:function(){return!1},_getDestIndexWithinBounds:function(e){var t=this.state.presentedIndex,n=t+e;w(n>=0,"Cannot jump before the first route.");var r=this.state.routeStack.length-1;return w(r>=n,"Cannot jump past the last route."),n},_jumpN:function(e){var t=this._getDestIndexWithinBounds(e);this._enableScene(t),this._emitWillFocus(this.state.routeStack[t]),this._transitionTo(t)},jumpTo:function(e){var t=this.state.routeStack.indexOf(e);w(-1!==t,"Cannot jump to route that is not in the route stack"),this._jumpN(t-this.state.presentedIndex)},jumpForward:function(){this._jumpN(1)},jumpBack:function(){this._jumpN(-1)},push:function(e){var t=this;w(!!e,"Must supply route to push");var n=this.state.presentedIndex+1,r=this.state.routeStack.slice(0,n),o=this.state.sceneConfigStack.slice(0,n),i=r.concat([e]),a=i.length-1,s=o.concat([this.props.configureScene(e)]);this._emitWillFocus(i[a]),this.setState({routeStack:i,sceneConfigStack:s},function(){t._enableScene(a),t._transitionTo(a)})},_popN:function(e){var t=this;if(0!==e){w(this.state.presentedIndex-e>=0,"Cannot pop below zero");var n=this.state.presentedIndex-e;this._enableScene(n),this._emitWillFocus(this.state.routeStack[n]),this._transitionTo(n,null,null,function(){t._cleanScenesPastIndex(n)})}},pop:function(){this._popN(1)},replaceAtIndex:function(e,t,n){var r=this;if(w(!!e,"Must supply route to replace"),0>t&&(t+=this.state.routeStack.length),!(this.state.routeStack.length<=t)){var o=this.state.routeStack.slice(),i=this.state.sceneConfigStack.slice();o[t]=e,i[t]=this.props.configureScene(e),t===this.state.presentedIndex&&this._emitWillFocus(e),this.setState({routeStack:o,sceneConfigStack:i},function(){t===r.state.presentedIndex&&r._emitDidFocus(e),n&&n()})}},replace:function(e){this.replaceAtIndex(e,this.state.presentedIndex)},replacePrevious:function(e){this.replaceAtIndex(e,this.state.presentedIndex-1)},popToTop:function(){this.popToRoute(this.state.routeStack[0])},popToRoute:function(e){var t=this.state.routeStack.indexOf(e);w(-1!==t,"Calling popToRoute for a route that doesn't exist!");var n=this.state.presentedIndex-t;this._popN(n)},replacePreviousAndPop:function(e){this.state.routeStack.length<2||(this.replacePrevious(e),this.pop())},resetTo:function(e){var t=this;w(!!e,"Must supply route to push"),this.replaceAtIndex(e,0,function(){t.state.presentedIndex>0&&t._popN(t.state.presentedIndex)})},getCurrentRoutes:function(){return this.state.routeStack.slice()},_cleanScenesPastIndex:function(e){var t=e+1;t0?(r=this._list.pop(),r.constructor.call(r,e,t,n)):r=new p(e,t,n),r}},{key:"put",value:function(e){this._list.push(e)}}]),e}(),l=new c,p=function(){function e(t,n,r){a(this,e),this._type=t,this._target=n,this._data=r,this._defaultPrevented=!1,this._disposed=!1}return s(e,[{key:"preventDefault",value:function(){this._defaultPrevented=!0}},{key:"dispose",value:function(){u(!this._disposed,"NavigationEvent is already disposed"),this._disposed=!0,this._type=null,this._target=null,this._data=null,this._defaultPrevented=!1,l.put(this)}},{key:"type",get:function(){return this._type}},{key:"target",get:function(){return this._target}},{key:"data",get:function(){return this._data}},{key:"defaultPrevented",get:function(){return this._defaultPrevented}}],[{key:"pool",value:function(e,t,n){return l.get(e,t,n)}}]),e}();o.exports=p}),__d("NavigationEventEmitter",["EventEmitter","NavigationEvent"],function(e,t,n,r,o,i){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;ne?a.Left[e]:a.Right[e]},E=u.createClass({displayName:"NavigatorBreadcrumbNavigationBar",propTypes:{navigator:v.shape({push:v.func,pop:v.func,replace:v.func,popToRoute:v.func,popToTop:v.func}),routeMapper:v.shape({rightContentForRoute:v.func,titleContentForRoute:v.func,iconForRoute:v.func}),navState:u.PropTypes.shape({routeStack:u.PropTypes.arrayOf(u.PropTypes.object),presentedIndex:u.PropTypes.number}),style:l.propTypes.style},statics:{Styles:a},_updateIndexProgress:function(e,t,n,r){var o,i=r>n?e:1-e,a=t-n,s=t-r;d(f[t],"Cannot find breadcrumb interpolators for "+t),o=a>0&&0===s||s>0&&0===a?f[t].RightToCenter:0>a&&0===s||0>s&&0===a?f[t].CenterToLeft:a===s?f[t].RightToCenter:f[t].RightToLeft,o.Crumb(m[t].style,i)&&this.refs["crumb_"+t].setNativeProps(m[t]),o.Icon(g[t].style,i)&&this.refs["icon_"+t].setNativeProps(g[t]),o.Separator(y[t].style,i)&&this.refs["separator_"+t].setNativeProps(y[t]),o.Title(_[t].style,i)&&this.refs["title_"+t].setNativeProps(_[t]);var u=this.refs["right_"+t];u&&o.RightItem(b[t].style,i)&&u.setNativeProps(b[t])},updateProgress:function(e,t,n){for(var r=Math.max(t,n),o=Math.min(t,n),i=o;r>=i;i++)this._updateIndexProgress(e,i,t,n)},onAnimationStart:function(e,t){for(var n=Math.max(e,t),r=Math.min(e,t),o=r;n>=o;o++)this._setRenderViewsToHardwareTextureAndroid(o,!0)},onAnimationEnd:function(){for(var e=this.props.navState.routeStack.length-1,t=0;e>=t;t++)this._setRenderViewsToHardwareTextureAndroid(t,!1)},_setRenderViewsToHardwareTextureAndroid:function(e,t){var n={renderToHardwareTextureAndroid:t};this.refs["icon_"+e].setNativeProps(n),this.refs["separator_"+e].setNativeProps(n),this.refs["title_"+e].setNativeProps(n);var r=this.refs["right_"+e];r&&r.setNativeProps(n)},componentWillMount:function(){this._descriptors={crumb:new h,title:new h,right:new h}},render:function(){var e=this.props.navState,t=e&&e.routeStack.map(this._getBreadcrumb),n=e.routeStack.map(this._getTitle),r=e.routeStack.map(this._getRightButton);return u.createElement(l,{style:[T.breadCrumbContainer,this.props.style]},n,t,r)},_getBreadcrumb:function(e,t){if(this._descriptors.crumb.has(e))return this._descriptors.crumb.get(e);var n=this.props.routeMapper,r=R(t,S(this.props.navState)),o=u.createElement(l,{ref:"crumb_"+t,style:r.Crumb},u.createElement(l,{ref:"icon_"+t,style:r.Icon},n.iconForRoute(e,this.props.navigator)),u.createElement(l,{ref:"separator_"+t,style:r.Separator},n.separatorForRoute(e,this.props.navigator)));return this._descriptors.crumb=this._descriptors.crumb.set(e,o),o},_getTitle:function(e,t){if(this._descriptors.title.has(e))return this._descriptors.title.get(e);var n=this.props.routeMapper.titleContentForRoute(this.props.navState.routeStack[t],this.props.navigator),r=R(t,S(this.props.navState)),o=u.createElement(l,{ref:"title_"+t,style:r.Title},n);return this._descriptors.title=this._descriptors.title.set(e,o),o},_getRightButton:function(e,t){if(this._descriptors.right.has(e))return this._descriptors.right.get(e);var n=this.props.routeMapper.rightContentForRoute(this.props.navState.routeStack[t],this.props.navigator);if(!n)return this._descriptors.right=this._descriptors.right.set(e,null),null;var r=R(t,S(this.props.navState)),o=u.createElement(l,{ref:"right_"+t,style:r.RightItem},n);return this._descriptors.right=this._descriptors.right.set(e,o),o}}),T=c.create({breadCrumbContainer:{overflow:"hidden",position:"absolute",height:s.General.TotalNavHeight,top:0,left:0,right:0}});o.exports=E}),__d("NavigatorBreadcrumbNavigationBarStyles",["Dimensions","NavigatorNavigationBarStyles","buildStyleInterpolator","merge"],function(e,t,n,r,o,i){"use strict";for(var a=t("Dimensions"),s=t("NavigatorNavigationBarStyles"),u=t("buildStyleInterpolator"),c=t("merge"),l=a.get("window").width,p=s.General.StatusBarHeight,h=s.General.NavBarHeight,d=4,f=40,v=9,m=f+v,g=100,y=.6,_=10,b={position:"absolute",flexDirection:"row",top:p,width:m,height:h,backgroundColor:"transparent"},S={width:f,height:h},R={width:v,height:h},E={position:"absolute",top:p,height:h,backgroundColor:"transparent"},T=c(E,{left:0,right:0,alignItems:"center",height:h}),w={position:"absolute",top:p,right:d,overflow:"hidden",opacity:1,height:h,backgroundColor:"transparent"},C=[],I=[],x=[],O=0;_>O;O++){var P=m*O+d;C[O]={Crumb:c(b,{left:P}),Icon:c(S,{opacity:y}),Separator:c(R,{opacity:1}),Title:c(E,{left:P,opacity:0}),RightItem:c(w,{opacity:0})},I[O]={Crumb:c(b,{left:P}),Icon:c(S,{opacity:1}),Separator:c(R,{opacity:0}),Title:c(E,{left:P+f,opacity:1}),RightItem:c(w,{opacity:1})};var N=l-100;x[O]={Crumb:c(b,{left:N}),Icon:c(S,{opacity:0}),Separator:c(R,{opacity:0}),Title:c(E,{left:N+f,opacity:0}),RightItem:c(w,{opacity:0})}}I[0]={Crumb:c(b,{left:l/4}),Icon:c(S,{opacity:0}),Separator:c(R,{opacity:0}),Title:c(T,{opacity:1}),RightItem:I[0].RightItem},C[0].Title=c(T,{left:-l/4,opacity:0}),x[0].Title=c(T,{opacity:0});var D=function(e,t){return{Crumb:u({left:{type:"linear",from:e.Crumb.left,to:t.Crumb.left,min:0,max:1,extrapolate:!0}}),Icon:u({opacity:{type:"linear",from:e.Icon.opacity,to:t.Icon.opacity,min:0,max:1}}),Separator:u({opacity:{type:"linear",from:e.Separator.opacity,to:t.Separator.opacity,min:0,max:1}}),Title:u({opacity:{type:"linear",from:e.Title.opacity,to:t.Title.opacity,min:0,max:1},left:{type:"linear",from:e.Title.left,to:t.Title.left,min:0,max:1,extrapolate:!0}}),RightItem:u({opacity:{type:"linear",from:e.RightItem.opacity,to:t.RightItem.opacity,min:0,max:1,round:g}})}},M=I.map(function(e,t){return{RightToCenter:D(x[t],I[t]),CenterToLeft:D(I[t],C[t]),RightToLeft:D(x[t],C[t])}});o.exports={Interpolators:M,Left:C,Center:I,Right:x,IconWidth:f,IconHeight:h,SeparatorWidth:v,SeparatorHeight:h}}),__d("NavigatorNavigationBarStyles",["Dimensions","buildStyleInterpolator","merge"],function(e,t,n,r,o,i){"use strict";function a(e,t){return{Title:u({opacity:{type:"linear",from:e.Title.opacity,to:t.Title.opacity,min:0,max:1},left:{type:"linear",from:e.Title.left,to:t.Title.left,min:0,max:1,extrapolate:!0}}),LeftButton:u({opacity:{type:"linear",from:e.LeftButton.opacity,to:t.LeftButton.opacity,min:0,max:1,round:m},left:{type:"linear",from:e.LeftButton.left,to:t.LeftButton.left,min:0,max:1}}),RightButton:u({opacity:{type:"linear",from:e.RightButton.opacity,to:t.RightButton.opacity,min:0,max:1,round:m},left:{type:"linear",from:e.RightButton.left,to:t.RightButton.left,min:0,max:1,extrapolate:!0}})}}var s=t("Dimensions"),u=t("buildStyleInterpolator"),c=t("merge"),l=s.get("window").width,p=44,h=20,d=p+h,f={Title:{position:"absolute",top:h,left:0,alignItems:"center",width:l,height:p,backgroundColor:"transparent"},LeftButton:{position:"absolute",top:h,left:0,overflow:"hidden",opacity:1,width:l/3,height:p,backgroundColor:"transparent"},RightButton:{position:"absolute",top:h,left:2*l/3,overflow:"hidden",opacity:1,alignItems:"flex-end",width:l/3,height:p,backgroundColor:"transparent"}},v={Left:{Title:c(f.Title,{left:-l/2,opacity:0}),LeftButton:c(f.LeftButton,{left:-l/3,opacity:1}),RightButton:c(f.RightButton,{left:l/3,opacity:0})},Center:{Title:c(f.Title,{left:0,opacity:1}),LeftButton:c(f.LeftButton,{left:0,opacity:1}),RightButton:c(f.RightButton,{left:2*l/3-0,opacity:1})},Right:{Title:c(f.Title,{left:l/2,opacity:0}),LeftButton:c(f.LeftButton,{left:0,opacity:0}),RightButton:c(f.RightButton,{left:l,opacity:0})}},m=100,g={RightToCenter:a(v.Right,v.Center),CenterToLeft:a(v.Center,v.Left),RightToLeft:a(v.Right,v.Left)};o.exports={General:{NavBarHeight:p,StatusBarHeight:h,TotalNavHeight:d},Interpolators:g,Stages:v}}),__d("buildStyleInterpolator",["keyOf"],function(e,t,n,r,o,i){for(var a=t("keyOf"),s=a({x:null}),u=a({y:null}),c=a({z:null}),l=a({w:null}),p=a({transformRotateRadians:null}),h={transformRotateRadians:!0,transformScale:!0,transformTranslate:!0},d={transformRotateRadians:[0,0,0,1],transformTranslate:[0,0,0],transformScale:[1,1,1]},f=/([^\s,]+)/g,v=function(e,t){var n=e.toString(),r=n.slice(n.indexOf("(")+1,n.indexOf(")")).match(f)||[],o=r.map(function(e){return"\\b"+e+"\\b"}).join("|"),i=new RegExp(o,"g"),a=n.substring(n.indexOf("{")+1,n.lastIndexOf("}")),s=a.replace(i,function(e){var n=r.indexOf(e),o=t[n];return o});return s.split("\n")},m={unroll:function(e,t,n,r,o,i,a,s,u,c,l,p,h,d,f,v,m){t=e[0],n=e[1],r=e[2],o=e[3],i=e[4],a=e[5],s=e[6],u=e[7],c=e[8],l=e[9],p=e[10],h=e[11],d=e[12],f=e[13],v=e[14],m=e[15]},matrixDiffers:function(e,t,n,r,o,i,a,s,u,c,l,p,h,d,f,v,m,g){e=e||n!==t[0]||r!==t[1]||o!==t[2]||i!==t[3]||a!==t[4]||s!==t[5]||u!==t[6]||c!==t[7]||l!==t[8]||p!==t[9]||h!==t[10]||d!==t[11]||f!==t[12]||v!==t[13]||m!==t[14]||g!==t[15]},transformScale:function(e,t){var n=t[0],r=t[1],o=t[2];e[0]=e[0]*n,e[1]=e[1]*n,e[2]=e[2]*n,e[3]=e[3]*n,e[4]=e[4]*r,e[5]=e[5]*r,e[6]=e[6]*r,e[7]=e[7]*r,e[8]=e[8]*o,e[9]=e[9]*o,e[10]=e[10]*o,e[11]=e[11]*o,e[12]=e[12],e[13]=e[13],e[14]=e[14],e[15]=e[15]},transformTranslate:function(e,t){var n=t[0],r=t[1],o=t[2];e[12]=e[0]*n+e[4]*r+e[8]*o+e[12],e[13]=e[1]*n+e[5]*r+e[9]*o+e[13],e[14]=e[2]*n+e[6]*r+e[10]*o+e[14],e[15]=e[3]*n+e[7]*r+e[11]*o+e[15]},transformRotateRadians:function(e,t){var n=t[0],r=t[1],o=t[2],i=t[3],a=n+n,s=r+r,u=o+o,c=n*a,l=n*s,p=n*u,h=r*s,d=r*u,f=o*u,v=i*a,m=i*s,g=i*u,y=1-(h+f),_=l+g,b=p-m,S=l-g,R=1-(c+f),E=d+v,T=p+m,w=d-v,C=1-(c+h),I=e[0],x=e[1],O=e[2],P=e[3],N=e[4],D=e[5],M=e[6],k=e[7],A=e[8],j=e[9],L=e[10],V=e[11],F=y,B=_,H=b; +e[0]=F*I+B*N+H*A,e[1]=F*x+B*D+H*j,e[2]=F*O+B*M+H*L,e[3]=F*P+B*k+H*V,F=S,B=R,H=E,e[4]=F*I+B*N+H*A,e[5]=F*x+B*D+H*j,e[6]=F*O+B*M+H*L,e[7]=F*P+B*k+H*V,F=T,B=w,H=C,e[8]=F*I+B*N+H*A,e[9]=F*x+B*D+H*j,e[10]=F*O+B*M+H*L,e[11]=F*P+B*k+H*V}},g={transformScale:function(e,t){e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1},transformTranslate:function(e,t){e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=t[0],e[13]=t[1],e[14]=t[2],e[15]=1},transformRotateRadians:function(e,t){var n=t[0],r=t[1],o=t[2],i=t[3],a=n+n,s=r+r,u=o+o,c=n*a,l=n*s,p=n*u,h=r*s,d=r*u,f=o*u,v=i*a,m=i*s,g=i*u,y=1-(h+f),_=l+g,b=p-m,S=l-g,R=1-(c+f),E=d+v,T=p+m,w=d-v,C=1-(c+h),I=y,x=_,O=b;e[0]=I,e[1]=x,e[2]=O,e[3]=0,I=S,x=R,O=E,e[4]=I,e[5]=x,e[6]=O,e[7]=0,I=T,x=w,O=C,e[8]=I,e[9]=x,e[10]=O,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1}},y=function(e,t){return" if (!didChange) {\n var prevVal = result."+e+";\n result."+e+" = "+t+";\n didChange = didChange || ("+t+" !== prevVal);\n } else {\n result."+e+" = "+t+";\n }\n"},_=(function(e,t,n,r){var o="round"in e,i=e.round,a=" ratio = (value - "+e.min+") / "+(e.max-e.min)+";\n";e.extrapolate||(a+=" ratio = ratio > 1 ? 1 : (ratio < 0 ? 0 : ratio);\n");var s=o?"Math.round("+i+" * ":"",u=o?") / "+i:"";return a+=" "+r+" = "+s+"("+t+" * (1 - ratio) + "+n+" * ratio)"+u+";\n"}),b=function(e){return _(e,e.from,e.to,"nextScalarVal")},S=function(e){var t=JSON.stringify(e.value);return" nextScalarVal = "+t+";\n"},R=function(e){return" nextScalarVal = value >= "+(e.threshold+" ? "+e.to+" : "+e.from)+";\n"},E=function(e){return" nextScalarVal = value;\n"},T=function(e){return e+"ReuseOp"},w=function(e){var t="";for(var n in e)h[n]&&(t+="var "+T(n)+" = [];\n");return t},C=function(e){return"\n"+e.join("\n")+"\n"},I=function(e,t,n,r){var o=T(t)+"["+r+"]";return void 0!==e.from[n]&&void 0!==e.to[n]?" "+e.from[n]!==e.to[n]?_(e,e.from[n],e.to[n],o):o+" = "+e.from[n]+";":" "+o+" = "+d[t][r]+";"},x=[],O=0;16>O;O++)x.push("m"+O);var P=function(e){var t=[" var transformMatrix = result.transformMatrix !== undefined ? result.transformMatrix : (result.transformMatrix = []);"];t.push.apply(t,v(m.unroll,["transformMatrix"].concat(x)));for(var n=0;no;o++)r[o]=e[o+t];return r}function i(e){return void 0===e.size&&(e.size=e.__iterate(s)),e.size}function a(e,t){return t>=0?+t:i(e)+ +t}function s(){return!0}function u(e,t,n){return(0===e||void 0!==n&&-n>=e)&&(void 0===t||void 0!==n&&t>=n)}function c(e,t){return p(e,t,0)}function l(e,t){return p(e,t,t)}function p(e,t,n){return void 0===e?n:0>e?Math.max(0,t+e):void 0===t?e:Math.min(t,e)}function h(e){return m(e)?e:O(e)}function d(e){return g(e)?e:P(e)}function f(e){return y(e)?e:N(e)}function v(e){return m(e)&&!_(e)?e:D(e)}function m(e){return!(!e||!e[vn])}function g(e){return!(!e||!e[mn])}function y(e){return!(!e||!e[gn])}function _(e){return g(e)||y(e)}function b(e){return!(!e||!e[yn])}function S(e){this.next=e}function R(e,t,n,r){var o=0===e?t:1===e?n:[t,n];return r?r.value=o:r={value:o,done:!1},r}function E(){return{value:void 0,done:!0}}function T(e){return!!I(e)}function w(e){return e&&"function"==typeof e.next}function C(e){var t=I(e);return t&&t.call(e)}function I(e){var t=e&&(Rn&&e[Rn]||e[En]);return"function"==typeof t?t:void 0}function x(e){return e&&"number"==typeof e.length}function O(e){return null===e||void 0===e?V():m(e)?e.toSeq():H(e)}function P(e){return null===e||void 0===e?V().toKeyedSeq():m(e)?g(e)?e.toSeq():e.fromEntrySeq():F(e)}function N(e){return null===e||void 0===e?V():m(e)?g(e)?e.entrySeq():e.toIndexedSeq():B(e)}function D(e){return(null===e||void 0===e?V():m(e)?g(e)?e.entrySeq():e:B(e)).toSetSeq()}function M(e){this._array=e,this.size=e.length}function k(e){var t=Object.keys(e);this._object=e,this._keys=t,this.size=t.length}function A(e){this._iterable=e,this.size=e.length||e.size}function j(e){this._iterator=e,this._iteratorCache=[]}function L(e){return!(!e||!e[wn])}function V(){return Cn||(Cn=new M([]))}function F(e){var t=Array.isArray(e)?new M(e).fromEntrySeq():w(e)?new j(e).fromEntrySeq():T(e)?new A(e).fromEntrySeq():"object"==typeof e?new k(e):void 0;if(!t)throw new TypeError("Expected Array or iterable object of [k, v] entries, or keyed object: "+e);return t}function B(e){var t=U(e);if(!t)throw new TypeError("Expected Array or iterable object of values: "+e);return t}function H(e){var t=U(e)||"object"==typeof e&&new k(e);if(!t)throw new TypeError("Expected Array or iterable object of values, or keyed object: "+e);return t}function U(e){return x(e)?new M(e):w(e)?new j(e):T(e)?new A(e):void 0}function q(e,t,n,r){var o=e._cache;if(o){for(var i=o.length-1,a=0;i>=a;a++){var s=o[n?i-a:a];if(t(s[1],r?s[0]:a,e)===!1)return a+1}return a}return e.__iterateUncached(t,n)}function z(e,t,n,r){var o=e._cache;if(o){var i=o.length-1,a=0;return new S(function(){var e=o[n?i-a:a];return a++>i?E():R(t,r?e[0]:a-1,e[1])})}return e.__iteratorUncached(t,n)}function G(){throw TypeError("Abstract")}function W(){}function Y(){}function K(){}function X(e,t){if(e===t||e!==e&&t!==t)return!0;if(!e||!t)return!1;if("function"==typeof e.valueOf&&"function"==typeof t.valueOf){if(e=e.valueOf(),t=t.valueOf(),e===t||e!==e&&t!==t)return!0;if(!e||!t)return!1}return"function"==typeof e.equals&&"function"==typeof t.equals&&e.equals(t)?!0:!1}function J(e,t){return t?Q(t,e,"",{"":e}):$(e)}function Q(e,t,n,r){return Array.isArray(t)?e.call(r,n,N(t).map(function(n,r){return Q(e,n,r,t)})):Z(t)?e.call(r,n,P(t).map(function(n,r){return Q(e,n,r,t)})):t}function $(e){return Array.isArray(e)?N(e).map($).toList():Z(e)?P(e).map($).toMap():e}function Z(e){return e&&(e.constructor===Object||void 0===e.constructor)}function ee(e){return e>>>1&1073741824|3221225471&e}function te(e){if(e===!1||null===e||void 0===e)return 0;if("function"==typeof e.valueOf&&(e=e.valueOf(),e===!1||null===e||void 0===e))return 0;if(e===!0)return 1;var t=typeof e;if("number"===t){var n=0|e;for(n!==e&&(n^=4294967295*e);e>4294967295;)e/=4294967295,n^=e;return ee(n)}return"string"===t?e.length>kn?ne(e):re(e):"function"==typeof e.hashCode?e.hashCode():oe(e)}function ne(e){var t=Ln[e];return void 0===t&&(t=re(e),jn===An&&(jn=0,Ln={}),jn++,Ln[e]=t),t}function re(e){for(var t=0,n=0;n0)switch(e.nodeType){case 1:return e.uniqueID;case 9:return e.documentElement&&e.documentElement.uniqueID}}function ae(e,t){if(!e)throw new Error(t)}function se(e){ae(e!==1/0,"Cannot perform this action with an infinite size.")}function ue(e,t){this._iter=e,this._useKeys=t,this.size=e.size}function ce(e){this._iter=e,this.size=e.size}function le(e){this._iter=e,this.size=e.size}function pe(e){this._iter=e,this.size=e.size}function he(e){var t=Me(e);return t._iter=e,t.size=e.size,t.flip=function(){return e},t.reverse=function(){var t=e.reverse.apply(this);return t.flip=function(){return e.reverse()},t},t.has=function(t){return e.includes(t)},t.includes=function(t){return e.has(t)},t.cacheResult=ke,t.__iterateUncached=function(t,n){var r=this;return e.__iterate(function(e,n){return t(n,e,r)!==!1},n)},t.__iteratorUncached=function(t,n){if(t===Sn){var r=e.__iterator(t,n);return new S(function(){var e=r.next();if(!e.done){var t=e.value[0];e.value[0]=e.value[1],e.value[1]=t}return e})}return e.__iterator(t===bn?_n:bn,n)},t}function de(e,t,n){var r=Me(e);return r.size=e.size,r.has=function(t){return e.has(t)},r.get=function(r,o){var i=e.get(r,hn);return i===hn?o:t.call(n,i,r,e)},r.__iterateUncached=function(r,o){var i=this;return e.__iterate(function(e,o,a){return r(t.call(n,e,o,a),o,i)!==!1},o)},r.__iteratorUncached=function(r,o){var i=e.__iterator(Sn,o);return new S(function(){var o=i.next();if(o.done)return o;var a=o.value,s=a[0];return R(r,s,t.call(n,a[1],s,e),o)})},r}function fe(e,t){var n=Me(e);return n._iter=e,n.size=e.size,n.reverse=function(){return e},e.flip&&(n.flip=function(){var t=he(e);return t.reverse=function(){return e.flip()},t}),n.get=function(n,r){return e.get(t?n:-1-n,r)},n.has=function(n){return e.has(t?n:-1-n)},n.includes=function(t){return e.includes(t)},n.cacheResult=ke,n.__iterate=function(t,n){var r=this;return e.__iterate(function(e,n){return t(e,n,r)},!n)},n.__iterator=function(t,n){return e.__iterator(t,!n)},n}function ve(e,t,n,r){var o=Me(e);return r&&(o.has=function(r){var o=e.get(r,hn);return o!==hn&&!!t.call(n,o,r,e)},o.get=function(r,o){var i=e.get(r,hn);return i!==hn&&t.call(n,i,r,e)?i:o}),o.__iterateUncached=function(o,i){var a=this,s=0;return e.__iterate(function(e,i,u){return t.call(n,e,i,u)?(s++,o(e,r?i:s-1,a)):void 0},i),s},o.__iteratorUncached=function(o,i){var a=e.__iterator(Sn,i),s=0;return new S(function(){for(;;){var i=a.next();if(i.done)return i;var u=i.value,c=u[0],l=u[1];if(t.call(n,l,c,e))return R(o,r?c:s++,l,i)}})},o}function me(e,t,n){var r=Le().asMutable();return e.__iterate(function(o,i){r.update(t.call(n,o,i,e),0,function(e){return e+1})}),r.asImmutable()}function ge(e,t,n){var r=g(e),o=(b(e)?Et():Le()).asMutable();e.__iterate(function(i,a){o.update(t.call(n,i,a,e),function(e){return e=e||[],e.push(r?[a,i]:i),e})});var i=De(e);return o.map(function(t){return Oe(e,i(t))})}function ye(e,t,n,r){var o=e.size;if(u(t,n,o))return e;var i=c(t,o),s=l(n,o);if(i!==i||s!==s)return ye(e.toSeq().cacheResult(),t,n,r);var p,h=s-i;h===h&&(p=0>h?0:h);var d=Me(e);return d.size=p,!r&&L(e)&&p>=0&&(d.get=function(t,n){return t=a(this,t),t>=0&&p>t?e.get(t+i,n):n}),d.__iterateUncached=function(t,n){var o=this;if(0===p)return 0;if(n)return this.cacheResult().__iterate(t,n);var a=0,s=!0,u=0;return e.__iterate(function(e,n){return s&&(s=a++p)return E();var e=o.next();return r||t===bn?e:t===_n?R(t,s-1,void 0,e):R(t,s-1,e.value[1],e)})},d}function _e(e,t,n){var r=Me(e);return r.__iterateUncached=function(r,o){var i=this;if(o)return this.cacheResult().__iterate(r,o);var a=0;return e.__iterate(function(e,o,s){return t.call(n,e,o,s)&&++a&&r(e,o,i)}),a},r.__iteratorUncached=function(r,o){var i=this;if(o)return this.cacheResult().__iterator(r,o);var a=e.__iterator(Sn,o),s=!0;return new S(function(){if(!s)return E();var e=a.next();if(e.done)return e;var o=e.value,u=o[0],c=o[1];return t.call(n,c,u,i)?r===Sn?e:R(r,u,c,e):(s=!1,E())})},r}function be(e,t,n,r){var o=Me(e);return o.__iterateUncached=function(o,i){var a=this;if(i)return this.cacheResult().__iterate(o,i);var s=!0,u=0;return e.__iterate(function(e,i,c){return s&&(s=t.call(n,e,i,c))?void 0:(u++,o(e,r?i:u-1,a))}),u},o.__iteratorUncached=function(o,i){var a=this;if(i)return this.cacheResult().__iterator(o,i);var s=e.__iterator(Sn,i),u=!0,c=0;return new S(function(){var e,i,l;do{if(e=s.next(),e.done)return r||o===bn?e:o===_n?R(o,c++,void 0,e):R(o,c++,e.value[1],e);var p=e.value;i=p[0],l=p[1],u&&(u=t.call(n,l,i,a))}while(u);return o===Sn?e:R(o,i,l,e)})},o}function Se(e,t){var n=g(e),r=[e].concat(t).map(function(e){return m(e)?n&&(e=d(e)):e=n?F(e):B(Array.isArray(e)?e:[e]),e}).filter(function(e){return 0!==e.size});if(0===r.length)return e;if(1===r.length){var o=r[0];if(o===e||n&&g(o)||y(e)&&y(o))return o}var i=new M(r);return n?i=i.toKeyedSeq():y(e)||(i=i.toSetSeq()),i=i.flatten(!0),i.size=r.reduce(function(e,t){if(void 0!==e){var n=t.size;if(void 0!==n)return e+n}},0),i}function Re(e,t,n){var r=Me(e);return r.__iterateUncached=function(r,o){function i(e,u){var c=this;e.__iterate(function(e,o){return(!t||t>u)&&m(e)?i(e,u+1):r(e,n?o:a++,c)===!1&&(s=!0),!s},o)}var a=0,s=!1;return i(e,0),a},r.__iteratorUncached=function(r,o){var i=e.__iterator(r,o),a=[],s=0;return new S(function(){for(;i;){var e=i.next();if(e.done===!1){var u=e.value;if(r===Sn&&(u=u[1]),t&&!(a.length0}function xe(e,t,n){var r=Me(e);return r.size=new M(n).map(function(e){return e.size}).min(),r.__iterate=function(e,t){for(var n,r=this.__iterator(bn,t),o=0;!(n=r.next()).done&&e(n.value,o++,this)!==!1;);return o},r.__iteratorUncached=function(e,r){var o=n.map(function(e){return e=h(e),C(r?e.reverse():e)}),i=0,a=!1;return new S(function(){var n;return a||(n=o.map(function(e){return e.next()}),a=n.some(function(e){return e.done})),a?E():R(e,i++,t.apply(null,n.map(function(e){return e.value})))})},r}function Oe(e,t){return L(e)?t:e.constructor(t)}function Pe(e){if(e!==Object(e))throw new TypeError("Expected [K, V] tuple: "+e)}function Ne(e){return se(e.size),i(e)}function De(e){return g(e)?d:y(e)?f:v}function Me(e){return Object.create((g(e)?P:y(e)?N:D).prototype)}function ke(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):O.prototype.cacheResult.call(this)}function Ae(e,t){return e>t?1:t>e?-1:0}function je(e){var t=C(e);if(!t){if(!x(e))throw new TypeError("Expected iterable or array-like: "+e);t=C(h(e))}return t}function Le(e){return null===e||void 0===e?Ke():Ve(e)?e:Ke().withMutations(function(t){var n=d(e);se(n.size),n.forEach(function(e,n){return t.set(n,e)})})}function Ve(e){return!(!e||!e[Vn])}function Fe(e,t){this.ownerID=e,this.entries=t}function Be(e,t,n){this.ownerID=e,this.bitmap=t,this.nodes=n}function He(e,t,n){this.ownerID=e,this.count=t,this.nodes=n}function Ue(e,t,n){this.ownerID=e,this.keyHash=t,this.entries=n}function qe(e,t,n){this.ownerID=e,this.keyHash=t,this.entry=n}function ze(e,t,n){this._type=t,this._reverse=n,this._stack=e._root&&We(e._root)}function Ge(e,t){return R(e,t[0],t[1])}function We(e,t){return{node:e,index:0,__prev:t}}function Ye(e,t,n,r){var o=Object.create(Fn);return o.size=e,o._root=t,o.__ownerID=n,o.__hash=r,o.__altered=!1,o}function Ke(){return Bn||(Bn=Ye(0))}function Xe(e,n,r){var o,i;if(e._root){var a=t(dn),s=t(fn);if(o=Je(e._root,e.__ownerID,0,void 0,n,r,a,s),!s.value)return e;i=e.size+(a.value?r===hn?-1:1:0)}else{if(r===hn)return e;i=1,o=new Fe(e.__ownerID,[[n,r]])}return e.__ownerID?(e.size=i,e._root=o,e.__hash=void 0,e.__altered=!0,e):o?Ye(i,o):Ke()}function Je(e,t,r,o,i,a,s,u){return e?e.update(t,r,o,i,a,s,u):a===hn?e:(n(u),n(s),new qe(t,o,[i,a]))}function Qe(e){return e.constructor===qe||e.constructor===Ue}function $e(e,t,n,r,o){if(e.keyHash===r)return new Ue(t,r,[e.entry,o]);var i,a=(0===n?e.keyHash:e.keyHash>>>n)&pn,s=(0===n?r:r>>>n)&pn,u=a===s?[$e(e,t,n+cn,r,o)]:(i=new qe(t,r,o),s>a?[e,i]:[i,e]);return new Be(t,1<s;s++,u<<=1){var l=t[s];void 0!==l&&s!==r&&(o|=u,a[i++]=l)}return new Be(e,o,a)}function tt(e,t,n,r,o){for(var i=0,a=new Array(ln),s=0;0!==n;s++,n>>>=1)a[s]=1&n?t[i++]:void 0;return a[r]=o,new He(e,i+1,a)}function nt(e,t,n){for(var r=[],o=0;o>1&1431655765,e=(858993459&e)+(e>>2&858993459),e=e+(e>>4)&252645135,e+=e>>8,e+=e>>16,127&e}function st(e,t,n,r){var i=r?e:o(e);return i[t]=n,i}function ut(e,t,n,r){var o=e.length+1;if(r&&t+1===o)return e[t]=n,e;for(var i=new Array(o),a=0,s=0;o>s;s++)s===t?(i[s]=n,a=-1):i[s]=e[s+a];return i}function ct(e,t,n){var r=e.length-1;if(n&&t===r)return e.pop(),e;for(var o=new Array(r),i=0,a=0;r>a;a++)a===t&&(i=1),o[a]=e[a+i];return o}function lt(e){var t=vt();if(null===e||void 0===e)return t;if(pt(e))return e;var n=f(e),r=n.size;return 0===r?t:(se(r),r>0&&ln>r?ft(0,r,cn,null,new ht(n.toArray())):t.withMutations(function(e){e.setSize(r),n.forEach(function(t,n){return e.set(n,t)})}))}function pt(e){return!(!e||!e[zn])}function ht(e,t){this.array=e,this.ownerID=t}function dt(e,t){function n(e,t,n){return 0===t?r(e,n):o(e,t,n)}function r(e,n){var r=n===s?u&&u.array:e&&e.array,o=n>i?0:i-n,c=a-n;return c>ln&&(c=ln),function(){if(o===c)return Yn;var e=t?--c:o++;return r&&r[e]}}function o(e,r,o){var s,u=e&&e.array,c=o>i?0:i-o>>r,l=(a-o>>r)+1;return l>ln&&(l=ln),function(){for(;;){if(s){var e=s();if(e!==Yn)return e;s=null}if(c===l)return Yn;var i=t?--l:c++;s=n(u&&u[i],r-cn,o+(i<=e.size||0>n)return e.withMutations(function(e){0>n?bt(e,n).set(0,r):bt(e,0,n+1).set(n,r)});n+=e._origin;var o=e._tail,i=e._root,s=t(fn);return n>=Rt(e._capacity)?o=gt(o,e.__ownerID,0,n,r,s):i=gt(i,e.__ownerID,e._level,n,r,s),s.value?e.__ownerID?(e._root=i,e._tail=o,e.__hash=void 0,e.__altered=!0,e):ft(e._origin,e._capacity,e._level,i,o):e}function gt(e,t,r,o,i,a){var s=o>>>r&pn,u=e&&s0){var l=e&&e.array[s],p=gt(l,t,r-cn,o,i,a);return p===l?e:(c=yt(e,t),c.array[s]=p,c)}return u&&e.array[s]===i?e:(n(a),c=yt(e,t),void 0===i&&s===c.array.length-1?c.array.pop():c.array[s]=i,c)}function yt(e,t){return t&&e&&t===e.ownerID?e:new ht(e?e.array.slice():[],t)}function _t(e,t){if(t>=Rt(e._capacity))return e._tail;if(t<1<0;)n=n.array[t>>>r&pn],r-=cn;return n}}function bt(e,t,n){var o=e.__ownerID||new r,i=e._origin,a=e._capacity,s=i+t,u=void 0===n?a:0>n?a+n:i+n;if(s===i&&u===a)return e;if(s>=u)return e.clear();for(var c=e._level,l=e._root,p=0;0>s+p;)l=new ht(l&&l.array.length?[void 0,l]:[],o),c+=cn,p+=1<=1<d?_t(e,u-1):d>h?new ht([],o):f;if(f&&d>h&&a>s&&f.array.length){l=yt(l,o);for(var m=l,g=c;g>cn;g-=cn){var y=h>>>g&pn;m=m.array[y]=yt(m.array[y],o)}m.array[h>>>cn&pn]=f}if(a>u&&(v=v&&v.removeAfter(o,0,u)),s>=d)s-=d,u-=d,c=cn,l=null,v=v&&v.removeBefore(o,0,s);else if(s>i||h>d){for(p=0;l;){var _=s>>>c&pn;if(_!==d>>>c&pn)break;_&&(p+=(1<i&&(l=l.removeBefore(o,c,s-p)),l&&h>d&&(l=l.removeAfter(o,c,d-p)),p&&(s-=p,u-=p)}return e.__ownerID?(e.size=u-s,e._origin=s,e._capacity=u,e._level=c,e._root=l,e._tail=v,e.__hash=void 0,e.__altered=!0,e):ft(s,u,c,l,v)}function St(e,t,n){for(var r=[],o=0,i=0;io&&(o=s.size),m(a)||(s=s.map(function(e){return J(e)})),r.push(s)}return o>e.size&&(e=e.setSize(o)),ot(e,t,r)}function Rt(e){return ln>e?0:e-1>>>cn<=ln&&a.size>=2*i.size?(o=a.filter(function(e,t){return void 0!==e&&s!==t}),r=o.toKeyedSeq().map(function(e){return e[0]}).flip().toMap(),e.__ownerID&&(r.__ownerID=o.__ownerID=e.__ownerID)):(r=i.remove(t),o=s===a.size-1?a.pop():a.set(s,void 0))}else if(u){if(n===a.get(s)[1])return e;r=i,o=a.set(s,[t,n])}else r=i.set(t,a.size),o=a.set(a.size,[t,n]);return e.__ownerID?(e.size=r.size,e._map=r,e._list=o,e.__hash=void 0,e):wt(r,o)}function xt(e){return null===e||void 0===e?Nt():Ot(e)?e:Nt().unshiftAll(e)}function Ot(e){return!(!e||!e[Xn])}function Pt(e,t,n,r){var o=Object.create(Jn);return o.size=e,o._head=t,o.__ownerID=n,o.__hash=r,o.__altered=!1,o}function Nt(){return Qn||(Qn=Pt(0))}function Dt(e){return null===e||void 0===e?jt():Mt(e)?e:jt().withMutations(function(t){var n=v(e);se(n.size),n.forEach(function(e){return t.add(e)})})}function Mt(e){return!(!e||!e[$n])}function kt(e,t){return e.__ownerID?(e.size=t.size,e._map=t,e):t===e._map?e:0===t.size?e.__empty():e.__make(t)}function At(e,t){var n=Object.create(Zn);return n.size=e?e.size:0,n._map=e,n.__ownerID=t,n}function jt(){return er||(er=At(Ke()))}function Lt(e){return null===e||void 0===e?Bt():Vt(e)?e:Bt().withMutations(function(t){var n=v(e);se(n.size),n.forEach(function(e){return t.add(e)})})}function Vt(e){return Mt(e)&&b(e)}function Ft(e,t){var n=Object.create(tr);return n.size=e?e.size:0,n._map=e,n.__ownerID=t,n}function Bt(){return nr||(nr=Ft(Ct()))}function Ht(e,t){var n,r=function(i){if(i instanceof r)return i;if(!(this instanceof r))return new r(i);if(!n){n=!0;var a=Object.keys(e);zt(o,a),o.size=a.length,o._name=t,o._keys=a,o._defaultValues=e}this._map=Le(i)},o=r.prototype=Object.create(rr);return o.constructor=r,r}function Ut(e,t,n){var r=Object.create(Object.getPrototypeOf(e));return r._map=t,r.__ownerID=n,r}function qt(e){return e._name||e.constructor.name||"Record"}function zt(e,t){try{t.forEach(Gt.bind(void 0,e))}catch(n){}}function Gt(e,t){Object.defineProperty(e,t,{get:function(){return this.get(t)},set:function(e){ae(this.__ownerID,"Cannot set on an immutable record."),this.set(t,e)}})}function Wt(e,t){if(e===t)return!0;if(!m(t)||void 0!==e.size&&void 0!==t.size&&e.size!==t.size||void 0!==e.__hash&&void 0!==t.__hash&&e.__hash!==t.__hash||g(e)!==g(t)||y(e)!==y(t)||b(e)!==b(t))return!1;if(0===e.size&&0===t.size)return!0;var n=!_(e);if(b(e)){var r=e.entries();return t.every(function(e,t){var o=r.next().value;return o&&X(o[1],e)&&(n||X(o[0],t))})&&r.next().done}var o=!1;if(void 0===e.size)if(void 0===t.size)"function"==typeof e.cacheResult&&e.cacheResult();else{o=!0;var i=e;e=t,t=i}var a=!0,s=t.__iterate(function(t,r){return(n?e.has(t):o?X(t,e.get(r,hn)):X(e.get(r,hn),t))?void 0:(a=!1,!1)});return a&&e.size===s}function Yt(e,t,n){if(!(this instanceof Yt))return new Yt(e,t,n);if(ae(0!==n,"Cannot step a Range by 0"),e=e||0,void 0===t&&(t=1/0),n=void 0===n?1:Math.abs(n),e>t&&(n=-n),this._start=e,this._end=t,this._step=n,this.size=Math.max(0,Math.ceil((t-e)/n-1)+1),0===this.size){if(or)return or;or=this}}function Kt(e,t){if(!(this instanceof Kt))return new Kt(e,t);if(this._value=e,this.size=void 0===t?1/0:Math.max(0,t),0===this.size){if(ir)return ir;ir=this}}function Xt(e,t){var n=function(n){e.prototype[n]=t[n]};return Object.keys(t).forEach(n),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(t).forEach(n),e}function Jt(e,t){return t}function Qt(e,t){return[t,e]}function $t(e){return function(){return!e.apply(this,arguments)}}function Zt(e){return function(){return-e.apply(this,arguments)}}function en(e){return"string"==typeof e?JSON.stringify(e):e}function tn(){return o(arguments)}function nn(e,t){return t>e?1:e>t?-1:0}function rn(e){if(e.size===1/0)return 0;var t=b(e),n=g(e),r=t?1:0,o=e.__iterate(n?t?function(e,t){r=31*r+an(te(e),te(t))|0}:function(e,t){r=r+an(te(e),te(t))|0}:t?function(e){r=31*r+te(e)|0}:function(e){r=r+te(e)|0});return on(o,r)}function on(e,t){return t=xn(t,3432918353),t=xn(t<<15|t>>>-15,461845907),t=xn(t<<13|t>>>-13,5),t=(t+3864292196|0)^e,t=xn(t^t>>>16,2246822507),t=xn(t^t>>>13,3266489909),t=ee(t^t>>>16)}function an(e,t){return e^t+2654435769+(e<<6)+(e>>2)|0}var sn=Array.prototype.slice,un="delete",cn=5,ln=1<=o;o++)if(e(n[t?r-o:o],o,this)===!1)return o+1;return o},M.prototype.__iterator=function(e,t){var n=this._array,r=n.length-1,o=0;return new S(function(){return o>r?E():R(e,o,n[t?r-o++:o++])})},e(k,P),k.prototype.get=function(e,t){return void 0===t||this.has(e)?this._object[e]:t},k.prototype.has=function(e){return this._object.hasOwnProperty(e)},k.prototype.__iterate=function(e,t){for(var n=this._object,r=this._keys,o=r.length-1,i=0;o>=i;i++){var a=r[t?o-i:i];if(e(n[a],a,this)===!1)return i+1}return i},k.prototype.__iterator=function(e,t){var n=this._object,r=this._keys,o=r.length-1,i=0;return new S(function(){var a=r[t?o-i:i];return i++>o?E():R(e,a,n[a])})},k.prototype[yn]=!0,e(A,N),A.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);var n=this._iterable,r=C(n),o=0;if(w(r))for(var i;!(i=r.next()).done&&e(i.value,o++,this)!==!1;);return o},A.prototype.__iteratorUncached=function(e,t){if(t)return this.cacheResult().__iterator(e,t);var n=this._iterable,r=C(n);if(!w(r))return new S(E);var o=0;return new S(function(){var t=r.next();return t.done?t:R(e,o++,t.value)})},e(j,N),j.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);for(var n=this._iterator,r=this._iteratorCache,o=0;o=r.length){var t=n.next();if(t.done)return t;r[o]=t.value}return R(e,o,r[o++])})};var Cn;e(G,h),e(W,G),e(Y,G),e(K,G),G.Keyed=W,G.Indexed=Y,G.Set=K;var In,xn="function"==typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function(e,t){ +e=0|e,t=0|t;var n=65535&e,r=65535&t;return n*r+((e>>>16)*r+n*(t>>>16)<<16>>>0)|0},On=Object.isExtensible,Pn=function(){try{return Object.defineProperty({},"@",{}),!0}catch(e){return!1}}(),Nn="function"==typeof WeakMap;Nn&&(In=new WeakMap);var Dn=0,Mn="__immutablehash__";"function"==typeof Symbol&&(Mn=Symbol(Mn));var kn=16,An=255,jn=0,Ln={};e(ue,P),ue.prototype.get=function(e,t){return this._iter.get(e,t)},ue.prototype.has=function(e){return this._iter.has(e)},ue.prototype.valueSeq=function(){return this._iter.valueSeq()},ue.prototype.reverse=function(){var e=this,t=fe(this,!0);return this._useKeys||(t.valueSeq=function(){return e._iter.toSeq().reverse()}),t},ue.prototype.map=function(e,t){var n=this,r=de(this,e,t);return this._useKeys||(r.valueSeq=function(){return n._iter.toSeq().map(e,t)}),r},ue.prototype.__iterate=function(e,t){var n,r=this;return this._iter.__iterate(this._useKeys?function(t,n){return e(t,n,r)}:(n=t?Ne(this):0,function(o){return e(o,t?--n:n++,r)}),t)},ue.prototype.__iterator=function(e,t){if(this._useKeys)return this._iter.__iterator(e,t);var n=this._iter.__iterator(bn,t),r=t?Ne(this):0;return new S(function(){var o=n.next();return o.done?o:R(e,t?--r:r++,o.value,o)})},ue.prototype[yn]=!0,e(ce,N),ce.prototype.includes=function(e){return this._iter.includes(e)},ce.prototype.__iterate=function(e,t){var n=this,r=0;return this._iter.__iterate(function(t){return e(t,r++,n)},t)},ce.prototype.__iterator=function(e,t){var n=this._iter.__iterator(bn,t),r=0;return new S(function(){var t=n.next();return t.done?t:R(e,r++,t.value,t)})},e(le,D),le.prototype.has=function(e){return this._iter.includes(e)},le.prototype.__iterate=function(e,t){var n=this;return this._iter.__iterate(function(t){return e(t,t,n)},t)},le.prototype.__iterator=function(e,t){var n=this._iter.__iterator(bn,t);return new S(function(){var t=n.next();return t.done?t:R(e,t.value,t.value,t)})},e(pe,P),pe.prototype.entrySeq=function(){return this._iter.toSeq()},pe.prototype.__iterate=function(e,t){var n=this;return this._iter.__iterate(function(t){if(t){Pe(t);var r=m(t);return e(r?t.get(1):t[1],r?t.get(0):t[0],n)}},t)},pe.prototype.__iterator=function(e,t){var n=this._iter.__iterator(bn,t);return new S(function(){for(;;){var t=n.next();if(t.done)return t;var r=t.value;if(r){Pe(r);var o=m(r);return R(e,o?r.get(0):r[0],o?r.get(1):r[1],t)}}})},ce.prototype.cacheResult=ue.prototype.cacheResult=le.prototype.cacheResult=pe.prototype.cacheResult=ke,e(Le,W),Le.prototype.toString=function(){return this.__toString("Map {","}")},Le.prototype.get=function(e,t){return this._root?this._root.get(0,void 0,e,t):t},Le.prototype.set=function(e,t){return Xe(this,e,t)},Le.prototype.setIn=function(e,t){return this.updateIn(e,hn,function(){return t})},Le.prototype.remove=function(e){return Xe(this,e,hn)},Le.prototype.deleteIn=function(e){return this.updateIn(e,function(){return hn})},Le.prototype.update=function(e,t,n){return 1===arguments.length?e(this):this.updateIn([e],t,n)},Le.prototype.updateIn=function(e,t,n){n||(n=t,t=void 0);var r=it(this,je(e),t,n);return r===hn?void 0:r},Le.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):Ke()},Le.prototype.merge=function(){return nt(this,void 0,arguments)},Le.prototype.mergeWith=function(e){var t=sn.call(arguments,1);return nt(this,e,t)},Le.prototype.mergeIn=function(e){var t=sn.call(arguments,1);return this.updateIn(e,Ke(),function(e){return"function"==typeof e.merge?e.merge.apply(e,t):t[t.length-1]})},Le.prototype.mergeDeep=function(){return nt(this,rt(void 0),arguments)},Le.prototype.mergeDeepWith=function(e){var t=sn.call(arguments,1);return nt(this,rt(e),t)},Le.prototype.mergeDeepIn=function(e){var t=sn.call(arguments,1);return this.updateIn(e,Ke(),function(e){return"function"==typeof e.mergeDeep?e.mergeDeep.apply(e,t):t[t.length-1]})},Le.prototype.sort=function(e){return Et(we(this,e))},Le.prototype.sortBy=function(e,t){return Et(we(this,t,e))},Le.prototype.withMutations=function(e){var t=this.asMutable();return e(t),t.wasAltered()?t.__ensureOwner(this.__ownerID):this},Le.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new r)},Le.prototype.asImmutable=function(){return this.__ensureOwner()},Le.prototype.wasAltered=function(){return this.__altered},Le.prototype.__iterator=function(e,t){return new ze(this,e,t)},Le.prototype.__iterate=function(e,t){var n=this,r=0;return this._root&&this._root.iterate(function(t){return r++,e(t[1],t[0],n)},t),r},Le.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?Ye(this.size,this._root,e,this.__hash):(this.__ownerID=e,this.__altered=!1,this)},Le.isMap=Ve;var Vn="@@__IMMUTABLE_MAP__@@",Fn=Le.prototype;Fn[Vn]=!0,Fn[un]=Fn.remove,Fn.removeIn=Fn.deleteIn,Fe.prototype.get=function(e,t,n,r){for(var o=this.entries,i=0,a=o.length;a>i;i++)if(X(n,o[i][0]))return o[i][1];return r},Fe.prototype.update=function(e,t,r,i,a,s,u){for(var c=a===hn,l=this.entries,p=0,h=l.length;h>p&&!X(i,l[p][0]);p++);var d=h>p;if(d?l[p][1]===a:c)return this;if(n(u),(c||!d)&&n(s),!c||1!==l.length){if(!d&&!c&&l.length>=Hn)return Ze(e,l,i,a);var f=e&&e===this.ownerID,v=f?l:o(l);return d?c?p===h-1?v.pop():v[p]=v.pop():v[p]=[i,a]:v.push([i,a]),f?(this.entries=v,this):new Fe(e,v)}},Be.prototype.get=function(e,t,n,r){void 0===t&&(t=te(n));var o=1<<((0===e?t:t>>>e)&pn),i=this.bitmap;return 0===(i&o)?r:this.nodes[at(i&o-1)].get(e+cn,t,n,r)},Be.prototype.update=function(e,t,n,r,o,i,a){void 0===n&&(n=te(r));var s=(0===t?n:n>>>t)&pn,u=1<=Un)return tt(e,h,c,s,f);if(l&&!f&&2===h.length&&Qe(h[1^p]))return h[1^p];if(l&&f&&1===h.length&&Qe(f))return f;var v=e&&e===this.ownerID,m=l?f?c:c^u:c|u,g=l?f?st(h,p,f,v):ct(h,p,v):ut(h,p,f,v);return v?(this.bitmap=m,this.nodes=g,this):new Be(e,m,g)},He.prototype.get=function(e,t,n,r){void 0===t&&(t=te(n));var o=(0===e?t:t>>>e)&pn,i=this.nodes[o];return i?i.get(e+cn,t,n,r):r},He.prototype.update=function(e,t,n,r,o,i,a){void 0===n&&(n=te(r));var s=(0===t?n:n>>>t)&pn,u=o===hn,c=this.nodes,l=c[s];if(u&&!l)return this;var p=Je(l,e,t+cn,n,r,o,i,a);if(p===l)return this;var h=this.count;if(l){if(!p&&(h--,qn>h))return et(e,c,h,s)}else h++;var d=e&&e===this.ownerID,f=st(c,s,p,d);return d?(this.count=h,this.nodes=f,this):new He(e,h,f)},Ue.prototype.get=function(e,t,n,r){for(var o=this.entries,i=0,a=o.length;a>i;i++)if(X(n,o[i][0]))return o[i][1];return r},Ue.prototype.update=function(e,t,r,i,a,s,u){void 0===r&&(r=te(i));var c=a===hn;if(r!==this.keyHash)return c?this:(n(u),n(s),$e(this,e,t,r,[i,a]));for(var l=this.entries,p=0,h=l.length;h>p&&!X(i,l[p][0]);p++);var d=h>p;if(d?l[p][1]===a:c)return this;if(n(u),(c||!d)&&n(s),c&&2===h)return new qe(e,this.keyHash,l[1^p]);var f=e&&e===this.ownerID,v=f?l:o(l);return d?c?p===h-1?v.pop():v[p]=v.pop():v[p]=[i,a]:v.push([i,a]),f?(this.entries=v,this):new Ue(e,this.keyHash,v)},qe.prototype.get=function(e,t,n,r){return X(n,this.entry[0])?this.entry[1]:r},qe.prototype.update=function(e,t,r,o,i,a,s){var u=i===hn,c=X(o,this.entry[0]);return(c?i===this.entry[1]:u)?this:(n(s),u?void n(a):c?e&&e===this.ownerID?(this.entry[1]=i,this):new qe(e,this.keyHash,[o,i]):(n(a),$e(this,e,t,te(o),[o,i])))},Fe.prototype.iterate=Ue.prototype.iterate=function(e,t){for(var n=this.entries,r=0,o=n.length-1;o>=r;r++)if(e(n[t?o-r:r])===!1)return!1},Be.prototype.iterate=He.prototype.iterate=function(e,t){for(var n=this.nodes,r=0,o=n.length-1;o>=r;r++){var i=n[t?o-r:r];if(i&&i.iterate(e,t)===!1)return!1}},qe.prototype.iterate=function(e,t){return e(this.entry)},e(ze,S),ze.prototype.next=function(){for(var e=this._type,t=this._stack;t;){var n,r=t.node,o=t.index++;if(r.entry){if(0===o)return Ge(e,r.entry)}else if(r.entries){if(n=r.entries.length-1,n>=o)return Ge(e,r.entries[this._reverse?n-o:o])}else if(n=r.nodes.length-1,n>=o){var i=r.nodes[this._reverse?n-o:o];if(i){if(i.entry)return Ge(e,i.entry);t=this._stack=We(i,t)}continue}t=this._stack=this._stack.__prev}return E()};var Bn,Hn=ln/4,Un=ln/2,qn=ln/4;e(lt,Y),lt.of=function(){return this(arguments)},lt.prototype.toString=function(){return this.__toString("List [","]")},lt.prototype.get=function(e,t){if(e=a(this,e),0>e||e>=this.size)return t;e+=this._origin;var n=_t(this,e);return n&&n.array[e&pn]},lt.prototype.set=function(e,t){return mt(this,e,t)},lt.prototype.remove=function(e){return this.has(e)?0===e?this.shift():e===this.size-1?this.pop():this.splice(e,1):this},lt.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=this._origin=this._capacity=0,this._level=cn,this._root=this._tail=null,this.__hash=void 0,this.__altered=!0,this):vt()},lt.prototype.push=function(){var e=arguments,t=this.size;return this.withMutations(function(n){bt(n,0,t+e.length);for(var r=0;r>>t&pn;if(r>=this.array.length)return new ht([],e);var o,i=0===r;if(t>0){var a=this.array[r];if(o=a&&a.removeBefore(e,t-cn,n),o===a&&i)return this}if(i&&!o)return this;var s=yt(this,e);if(!i)for(var u=0;r>u;u++)s.array[u]=void 0;return o&&(s.array[r]=o),s},ht.prototype.removeAfter=function(e,t,n){if(n===t?1<>>t&pn;if(r>=this.array.length)return this;var o,i=r===this.array.length-1;if(t>0){var a=this.array[r];if(o=a&&a.removeAfter(e,t-cn,n),o===a&&i)return this}if(i&&!o)return this;var s=yt(this,e);return i||s.array.pop(),o&&(s.array[r]=o),s};var Wn,Yn={};e(Et,Le),Et.of=function(){return this(arguments)},Et.prototype.toString=function(){return this.__toString("OrderedMap {","}")},Et.prototype.get=function(e,t){var n=this._map.get(e);return void 0!==n?this._list.get(n)[1]:t},Et.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._map.clear(),this._list.clear(),this):Ct()},Et.prototype.set=function(e,t){return It(this,e,t)},Et.prototype.remove=function(e){return It(this,e,hn)},Et.prototype.wasAltered=function(){return this._map.wasAltered()||this._list.wasAltered()},Et.prototype.__iterate=function(e,t){var n=this;return this._list.__iterate(function(t){return t&&e(t[1],t[0],n)},t)},Et.prototype.__iterator=function(e,t){return this._list.fromEntrySeq().__iterator(e,t)},Et.prototype.__ensureOwner=function(e){if(e===this.__ownerID)return this;var t=this._map.__ensureOwner(e),n=this._list.__ensureOwner(e);return e?wt(t,n,e,this.__hash):(this.__ownerID=e,this._map=t,this._list=n,this)},Et.isOrderedMap=Tt,Et.prototype[yn]=!0,Et.prototype[un]=Et.prototype.remove;var Kn;e(xt,Y),xt.of=function(){return this(arguments)},xt.prototype.toString=function(){return this.__toString("Stack [","]")},xt.prototype.get=function(e,t){var n=this._head;for(e=a(this,e);n&&e--;)n=n.next;return n?n.value:t},xt.prototype.peek=function(){return this._head&&this._head.value},xt.prototype.push=function(){if(0===arguments.length)return this;for(var e=this.size+arguments.length,t=this._head,n=arguments.length-1;n>=0;n--)t={value:arguments[n],next:t};return this.__ownerID?(this.size=e,this._head=t,this.__hash=void 0,this.__altered=!0,this):Pt(e,t)},xt.prototype.pushAll=function(e){if(e=f(e),0===e.size)return this;se(e.size);var t=this.size,n=this._head;return e.reverse().forEach(function(e){t++,n={value:e,next:n}}),this.__ownerID?(this.size=t,this._head=n,this.__hash=void 0,this.__altered=!0,this):Pt(t,n)},xt.prototype.pop=function(){return this.slice(1)},xt.prototype.unshift=function(){return this.push.apply(this,arguments)},xt.prototype.unshiftAll=function(e){return this.pushAll(e)},xt.prototype.shift=function(){return this.pop.apply(this,arguments)},xt.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):Nt()},xt.prototype.slice=function(e,t){if(u(e,t,this.size))return this;var n=c(e,this.size),r=l(t,this.size);if(r!==this.size)return Y.prototype.slice.call(this,e,t);for(var o=this.size-n,i=this._head;n--;)i=i.next;return this.__ownerID?(this.size=o,this._head=i,this.__hash=void 0,this.__altered=!0,this):Pt(o,i)},xt.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?Pt(this.size,this._head,e,this.__hash):(this.__ownerID=e,this.__altered=!1,this)},xt.prototype.__iterate=function(e,t){if(t)return this.reverse().__iterate(e);for(var n=0,r=this._head;r&&e(r.value,n++,this)!==!1;)r=r.next;return n},xt.prototype.__iterator=function(e,t){if(t)return this.reverse().__iterator(e);var n=0,r=this._head;return new S(function(){if(r){var t=r.value;return r=r.next,R(e,n++,t)}return E()})},xt.isStack=Ot;var Xn="@@__IMMUTABLE_STACK__@@",Jn=xt.prototype;Jn[Xn]=!0,Jn.withMutations=Fn.withMutations,Jn.asMutable=Fn.asMutable,Jn.asImmutable=Fn.asImmutable,Jn.wasAltered=Fn.wasAltered;var Qn;e(Dt,K),Dt.of=function(){return this(arguments)},Dt.fromKeys=function(e){return this(d(e).keySeq())},Dt.prototype.toString=function(){return this.__toString("Set {","}")},Dt.prototype.has=function(e){return this._map.has(e)},Dt.prototype.add=function(e){return kt(this,this._map.set(e,!0))},Dt.prototype.remove=function(e){return kt(this,this._map.remove(e))},Dt.prototype.clear=function(){return kt(this,this._map.clear())},Dt.prototype.union=function(){var e=sn.call(arguments,0);return e=e.filter(function(e){return 0!==e.size}),0===e.length?this:0!==this.size||this.__ownerID||1!==e.length?this.withMutations(function(t){for(var n=0;n1?" by "+this._step:"")+" ]"},Yt.prototype.get=function(e,t){return this.has(e)?this._start+a(this,e)*this._step:t},Yt.prototype.includes=function(e){var t=(e-this._start)/this._step;return t>=0&&t=t?new Yt(0,0):new Yt(this.get(e,this._end),this.get(t,this._end),this._step))},Yt.prototype.indexOf=function(e){var t=e-this._start;if(t%this._step===0){var n=t/this._step;if(n>=0&&n=i;i++){if(e(o,i,this)===!1)return i+1;o+=t?-r:r}return i},Yt.prototype.__iterator=function(e,t){var n=this.size-1,r=this._step,o=t?this._start+n*r:this._start,i=0;return new S(function(){var a=o;return o+=t?-r:r,i>n?E():R(e,i++,a)})},Yt.prototype.equals=function(e){return e instanceof Yt?this._start===e._start&&this._end===e._end&&this._step===e._step:Wt(this,e)};var or;e(Kt,N),Kt.prototype.toString=function(){return 0===this.size?"Repeat []":"Repeat [ "+this._value+" "+this.size+" times ]"},Kt.prototype.get=function(e,t){return this.has(e)?this._value:t},Kt.prototype.includes=function(e){return X(this._value,e)},Kt.prototype.slice=function(e,t){var n=this.size;return u(e,t,n)?this:new Kt(this._value,l(t,n)-c(e,n))},Kt.prototype.reverse=function(){return this},Kt.prototype.indexOf=function(e){return X(this._value,e)?0:-1},Kt.prototype.lastIndexOf=function(e){return X(this._value,e)?this.size:-1},Kt.prototype.__iterate=function(e,t){for(var n=0;ne||this.size===1/0||void 0!==this.size&&e>this.size?t:this.find(function(t,n){return n===e},void 0,t)},has:function(e){return e=a(this,e),e>=0&&(void 0!==this.size?this.size===1/0||en?e:1-e,a=t-n,u=t-r;o=a>0&&0===u||u>0&&0===a?s.Interpolators.RightToCenter:0>a&&0===u||0>u&&0===a?s.Interpolators.CenterToLeft:a===u?s.Interpolators.RightToCenter:s.Interpolators.RightToLeft,h.forEach(function(e){var n=this._components[e].get(this.props.navState.routeStack[t]),r=this._getReusableProps(e,t);n&&o[e](r.style,i)&&n.setNativeProps(r)},this)},updateProgress:function(e,t,n){for(var r=Math.max(t,n),o=Math.min(t,n),i=o;r>=i;i++)this._updateIndexProgress(e,i,t,n)},render:function(){var e=this.props.navState,t=h.map(function(t){return e.routeStack.map(this._getComponent.bind(this,t))},this);return a.createElement(c,{style:[v.navBarContainer,this.props.style]},t)},_getComponent:function(e,t,n){var r=this;if(this._descriptors[e].includes(t))return this._descriptors[e].get(t);var o=null,i=this.props.routeMapper[e](this.props.navState.routeStack[n],this.props.navigator,n,this.props.navState);if(!i)return null;var u=n===d(this.props.navState)?s.Stages.Center:s.Stages.Left;return o=a.createElement(c,{ref:function(n){r._components[e]=r._components[e].set(t,n)},style:u[e]},i),this._descriptors[e]=this._descriptors[e].set(t,o),o}}),v=u.create({navBarContainer:{position:"absolute",height:s.General.TotalNavHeight,top:0,left:0,right:0,backgroundColor:"transparent"}});o.exports=f}),__d("NavigatorSceneConfigs",["Dimensions","PixelRatio","buildStyleInterpolator"],function(e,t,n,r,o,i){"use strict";var a=Object.assign||function(e){for(var t=1;tt&&(i+=r&&n?u.currentPageX:r&&!n?u.currentPageY:!r&&n?u.previousPageX:u.previousPageY,s=1);else for(var c=0;c=t){var p;p=r&&n?l.currentPageX:r&&!n?l.currentPageY:!r&&n?l.previousPageX:l.previousPageY,i+=p,s++}}return s>0?i/s:a.noCentroid},currentCentroidXOfTouchesChangedAfter:function(e,t){return a.centroidDimension(e,t,!0,!0)},currentCentroidYOfTouchesChangedAfter:function(e,t){return a.centroidDimension(e,t,!1,!0)},previousCentroidXOfTouchesChangedAfter:function(e,t){return a.centroidDimension(e,t,!0,!1)},previousCentroidYOfTouchesChangedAfter:function(e,t){return a.centroidDimension(e,t,!1,!1)},currentCentroidX:function(e){return a.centroidDimension(e,0,!0,!0)},currentCentroidY:function(e){return a.centroidDimension(e,0,!1,!0)},noCentroid:-1};o.exports=a}),__d("clamp",[],function(e,t,n,r,o,i){function a(e,t,n){return e>t?e:t>n?n:t}o.exports=a}),__d("rebound/rebound.js",[],function(e,t,n,r,o,i){!function(){function e(e,t){var n=e.indexOf(t);-1!=n&&e.splice(n,1)}var t={},n=t.util={},r=Array.prototype.concat,o=Array.prototype.slice;n.bind=function(e,t){var n=o.call(arguments,2);return function(){e.apply(t,r.call(n,o.call(arguments)))}},n.extend=function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};var a=t.SpringSystem=function(e){this._springRegistry={},this._activeSprings=[],this.listeners=[],this._idleSpringIndices=[],this.looper=e||new l,this.looper.springSystem=this};n.extend(a.prototype,{_springRegistry:null,_isIdle:!0,_lastTimeMillis:-1,_activeSprings:null,listeners:null,_idleSpringIndices:null,setLooper:function(e){this.looper=e,e.springSystem=this},createSpring:function(e,t){var n;return n=void 0===e||void 0===t?c.DEFAULT_ORIGAMI_SPRING_CONFIG:c.fromOrigamiTensionAndFriction(e,t),this.createSpringWithConfig(n)},createSpringWithBouncinessAndSpeed:function(e,t){var n;return n=void 0===e||void 0===t?c.DEFAULT_ORIGAMI_SPRING_CONFIG:c.fromBouncinessAndSpeed(e,t),this.createSpringWithConfig(n)},createSpringWithConfig:function(e){var t=new s(this);return this.registerSpring(t),t.setSpringConfig(e),t},getIsIdle:function(){return this._isIdle},getSpringById:function(e){return this._springRegistry[e]},getAllSprings:function(){var e=[];for(var t in this._springRegistry)this._springRegistry.hasOwnProperty(t)&&e.push(this._springRegistry[t]);return e},registerSpring:function(e){this._springRegistry[e.getId()]=e},deregisterSpring:function(t){e(this._activeSprings,t),delete this._springRegistry[t.getId()]},advance:function(e,t){for(;this._idleSpringIndices.length>0;)this._idleSpringIndices.pop();for(var n=0,r=this._activeSprings.length;r>n;n++){var o=this._activeSprings[n];o.systemShouldAdvance()?o.advance(e/1e3,t/1e3):this._idleSpringIndices.push(this._activeSprings.indexOf(o))}for(;this._idleSpringIndices.length>0;){var i=this._idleSpringIndices.pop();i>=0&&this._activeSprings.splice(i,1)}},loop:function(e){var t;-1===this._lastTimeMillis&&(this._lastTimeMillis=e-1);var n=e-this._lastTimeMillis;this._lastTimeMillis=e;var r=0,o=this.listeners.length;for(r=0;o>r;r++)t=this.listeners[r],t.onBeforeIntegrate&&t.onBeforeIntegrate(this);for(this.advance(e,n),0===this._activeSprings.length&&(this._isIdle=!0,this._lastTimeMillis=-1),r=0;o>r;r++)t=this.listeners[r],t.onAfterIntegrate&&t.onAfterIntegrate(this);this._isIdle||this.looper.run()},activateSpring:function(e){var t=this._springRegistry[e];-1==this._activeSprings.indexOf(t)&&this._activeSprings.push(t),this.getIsIdle()&&(this._isIdle=!1,this.looper.run())},addListener:function(e){this.listeners.push(e)},removeListener:function(t){e(this.listeners,t)},removeAllListeners:function(){this.listeners=[]}});var s=t.Spring=function m(e){this._id="s"+m._ID++,this._springSystem=e,this.listeners=[],this._currentState=new u,this._previousState=new u,this._tempState=new u};n.extend(s,{_ID:0,MAX_DELTA_TIME_SEC:.064,SOLVER_TIMESTEP_SEC:.001}),n.extend(s.prototype,{_id:0,_springConfig:null,_overshootClampingEnabled:!1,_currentState:null,_previousState:null,_tempState:null,_startValue:0,_endValue:0,_wasAtRest:!0,_restSpeedThreshold:.001,_displacementFromRestThreshold:.001,listeners:null,_timeAccumulator:0,_springSystem:null,destroy:function(){this.listeners=[],this.frames=[],this._springSystem.deregisterSpring(this)},getId:function(){return this._id},setSpringConfig:function(e){return this._springConfig=e,this},getSpringConfig:function(){return this._springConfig},setCurrentValue:function(e,t){return this._startValue=e,this._currentState.position=e,t||this.setAtRest(),this.notifyPositionUpdated(!1,!1),this},getStartValue:function(){return this._startValue},getCurrentValue:function(){return this._currentState.position},getCurrentDisplacementDistance:function(){return this.getDisplacementDistanceForState(this._currentState)},getDisplacementDistanceForState:function(e){return Math.abs(this._endValue-e.position)},setEndValue:function(e){if(this._endValue==e&&this.isAtRest())return this;this._startValue=this.getCurrentValue(),this._endValue=e,this._springSystem.activateSpring(this.getId());for(var t=0,n=this.listeners.length;n>t;t++){var r=this.listeners[t],o=r.onSpringEndStateChange;o&&o(this)}return this},getEndValue:function(){return this._endValue},setVelocity:function(e){return e===this._currentState.velocity?this:(this._currentState.velocity=e,this._springSystem.activateSpring(this.getId()),this)},getVelocity:function(){return this._currentState.velocity},setRestSpeedThreshold:function(e){return this._restSpeedThreshold=e,this},getRestSpeedThreshold:function(){return this._restSpeedThreshold},setRestDisplacementThreshold:function(e){this._displacementFromRestThreshold=e},getRestDisplacementThreshold:function(){return this._displacementFromRestThreshold},setOvershootClampingEnabled:function(e){return this._overshootClampingEnabled=e,this},isOvershootClampingEnabled:function(){return this._overshootClampingEnabled},isOvershooting:function(){var e=this._startValue,t=this._endValue;return this._springConfig.tension>0&&(t>e&&this.getCurrentValue()>t||e>t&&this.getCurrentValue()s.MAX_DELTA_TIME_SEC&&(r=s.MAX_DELTA_TIME_SEC),this._timeAccumulator+=r;for(var o,i,a,u,c,l,p,h,d,f,v=this._springConfig.tension,m=this._springConfig.friction,g=this._currentState.position,y=this._currentState.velocity,_=this._tempState.position,b=this._tempState.velocity;this._timeAccumulator>=s.SOLVER_TIMESTEP_SEC;)this._timeAccumulator-=s.SOLVER_TIMESTEP_SEC,this._timeAccumulator0&&this.interpolate(this._timeAccumulator/s.SOLVER_TIMESTEP_SEC),(this.isAtRest()||this._overshootClampingEnabled&&this.isOvershooting())&&(this._springConfig.tension>0?(this._startValue=this._endValue,this._currentState.position=this._endValue):(this._endValue=this._currentState.position,this._startValue=this._endValue),this.setVelocity(0),n=!0);var S=!1;this._wasAtRest&&(this._wasAtRest=!1,S=!0);var R=!1;n&&(this._wasAtRest=!0,R=!0),this.notifyPositionUpdated(S,R)}},notifyPositionUpdated:function(e,t){for(var n=0,r=this.listeners.length;r>n;n++){var o=this.listeners[n];e&&o.onSpringActivate&&o.onSpringActivate(this),o.onSpringUpdate&&o.onSpringUpdate(this),t&&o.onSpringAtRest&&o.onSpringAtRest(this)}},systemShouldAdvance:function(){return!this.isAtRest()||!this.wasAtRest()},wasAtRest:function(){return this._wasAtRest},isAtRest:function(){return Math.abs(this._currentState.velocity)=e?this.b3Friction1(e):e>18&&44>=e?this.b3Friction2(e):this.b3Friction3(e)}}),n.extend(c,{fromOrigamiTensionAndFriction:function(e,t){return new c(p.tensionFromOrigamiValue(e),p.frictionFromOrigamiValue(t))},fromBouncinessAndSpeed:function(e,n){var r=new t.BouncyConversion(e,n);return this.fromOrigamiTensionAndFriction(r.bouncyTension,r.bouncyFriction)},coastingConfigWithOrigamiFriction:function(e){return new c(0,p.frictionFromOrigamiValue(e))}}),c.DEFAULT_ORIGAMI_SPRING_CONFIG=c.fromOrigamiTensionAndFriction(40,7),n.extend(c.prototype,{friction:0,tension:0});var d={};n.hexToRGB=function(e){if(d[e])return d[e];e=e.replace("#",""),3===e.length&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]);var t=e.match(/.{2}/g),n={r:parseInt(t[0],16),g:parseInt(t[1],16),b:parseInt(t[2],16)};return d[e]=n,n},n.rgbToHex=function(e,t,n){return e=e.toString(16),t=t.toString(16),n=n.toString(16),e=e.length<2?"0"+e:e,t=t.length<2?"0"+t:t,n=n.length<2?"0"+n:n,"#"+e+t+n};var f=t.MathUtil={mapValueInRange:function(e,t,n,r,o){var i=n-t,a=o-r,s=(e-t)/i;return r+s*a},interpolateColor:function(e,t,r,o,i,a){o=void 0===o?0:o,i=void 0===i?1:i,t=n.hexToRGB(t),r=n.hexToRGB(r);var s=Math.floor(n.mapValueInRange(e,o,i,t.r,r.r)),u=Math.floor(n.mapValueInRange(e,o,i,t.g,r.g)),c=Math.floor(n.mapValueInRange(e,o,i,t.b,r.b));return a?"rgb("+s+","+u+","+c+")":n.rgbToHex(s,u,c)},degreesToRadians:function(e){return e*Math.PI/180},radiansToDegrees:function(e){return 180*e/Math.PI}};n.extend(n,f);var v;"undefined"!=typeof window&&(v=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),v||"undefined"==typeof process||"node"!==process.title||(v=setImmediate),n.onFrame=function(e){return v(e)},"undefined"!=typeof i?n.extend(i,t):"undefined"!=typeof window&&(window.rebound=t)}()}),__d("NavigatorIOS",["EventEmitter","Image","NavigationContext","React","NativeModules","StyleSheet","StaticContainer.react","View","requireNativeComponent","invariant","logError"],function(e,t,n,r,o,i){"use strict";function a(){return S++}var s=Object.assign||function(e){for(var t=1;tthis.state.observedTopOfStack+1?this.state.observedTopOfStack+1:null;this.setState({idStack:this.state.idStack.slice(0,this.state.observedTopOfStack+1),routeStack:this.state.routeStack.slice(0,this.state.observedTopOfStack+1),requestedTopOfStack:this.state.observedTopOfStack,makingNavigatorRequest:!0,updatingAllIndicesAtOrBeyond:e})},_emitDidFocus:function(e){this.navigationContext.emit("didfocus",{route:e})},_emitWillFocus:function(e){this.navigationContext.emit("willfocus",{route:e})},push:function(e){var t=this;g(!!e,"Must supply route to push"),this.state.requestedTopOfStack===this.state.observedTopOfStack&&this._tryLockNavigator(function(){t._emitWillFocus(e);var n=t.state.routeStack.concat([e]),r=t.state.idStack.concat([a()]);t.setState({idStack:r,routeStack:n,requestedTopOfStack:n.length-1,makingNavigatorRequest:!0,updatingAllIndicesAtOrBeyond:n.length-1})})},popN:function(e){var t=this;0!==e&&this.state.requestedTopOfStack===this.state.observedTopOfStack&&this.state.requestedTopOfStack>0&&this._tryLockNavigator(function(){var n=t.state.requestedTopOfStack-e;g(n>=0,"Cannot pop below 0"),t._emitWillFocus(t.state.routeStack[n]),t.setState({requestedTopOfStack:n,makingNavigatorRequest:!0,updatingAllIndicesAtOrBeyond:null})})},pop:function(){this.popN(1)},replaceAtIndex:function(e,t){if(g(!!e,"Must supply route to replace"),0>t&&(t+=this.state.routeStack.length),!(this.state.routeStack.length<=t)){var n=this.state.idStack.slice(),r=this.state.routeStack.slice();n[t]=a(),r[t]=e,this.setState({idStack:n,routeStack:r,makingNavigatorRequest:!1,updatingAllIndicesAtOrBeyond:t}),this._emitWillFocus(e),this._emitDidFocus(e)}},replace:function(e){this.replaceAtIndex(e,-1)},replacePrevious:function(e){this.replaceAtIndex(e,-2)},popToTop:function(){this.popToRoute(this.state.routeStack[0])},popToRoute:function(e){var t=this.state.routeStack.indexOf(e);g(-1!==t,"Calling pop to route for a route that doesn't exist!");var n=this.state.routeStack.length-t-1;this.popN(n)},replacePreviousAndPop:function(e){var t=this;this.state.requestedTopOfStack===this.state.observedTopOfStack&&(this.state.routeStack.length<2||this._tryLockNavigator(function(){t.replacePrevious(e),t.setState({requestedTopOfStack:t.state.requestedTopOfStack-1,makingNavigatorRequest:!0})}))},resetTo:function(e){g(!!e,"Must supply route to push"),this.state.requestedTopOfStack===this.state.observedTopOfStack&&(this.replaceAtIndex(e,0),this.popToRoute(e))},handleNavigationComplete:function(e){this._toFocusOnNavigationComplete&&(this._getFocusEmitter().emit("focus",this._toFocusOnNavigationComplete),this._toFocusOnNavigationComplete=null),this._handleNavigatorStackChanged(e)},_routeToStackItem:function(e,t){var n=e.component,r=null!==this.state.updatingAllIndicesAtOrBeyond&&this.state.updatingAllIndicesAtOrBeyond>=t;return p.createElement(f,{key:"nav"+t,shouldUpdate:r},p.createElement(C,{title:e.title,style:[T.stackItem,this.props.itemWrapperStyle,e.wrapperStyle],backButtonIcon:this._imageNameFromSource(e.backButtonIcon),backButtonTitle:e.backButtonTitle,leftButtonIcon:this._imageNameFromSource(e.leftButtonIcon),leftButtonTitle:e.leftButtonTitle,onNavLeftButtonTap:e.onLeftButtonPress,rightButtonIcon:this._imageNameFromSource(e.rightButtonIcon),rightButtonTitle:e.rightButtonTitle,onNavRightButtonTap:e.onRightButtonPress,navigationBarHidden:this.props.navigationBarHidden,shadowHidden:this.props.shadowHidden,tintColor:this.props.tintColor,barTintColor:this.props.barTintColor,translucent:this.props.translucent!==!1,titleTextColor:this.props.titleTextColor},p.createElement(n,s({navigator:this.navigator,route:e},e.passProps))))},_imageNameFromSource:function(e){return e?e.uri:void 0},renderNavigationStackItems:function(){var e=this.state.makingNavigatorRequest||null!==this.state.updatingAllIndicesAtOrBeyond,t=e?this.state.routeStack.map(this._routeToStackItem):null;return p.createElement(f,{shouldUpdate:e},p.createElement(R,{ref:_,style:T.transitioner,vertical:this.props.vertical,requestedTopOfStack:this.state.requestedTopOfStack,onNavigationComplete:this.handleNavigationComplete},t))},render:function(){return p.createElement(v,{style:this.props.style},this.renderNavigationStackItems())}}),T=d.create({stackItem:{backgroundColor:"white",overflow:"hidden",position:"absolute",top:0,left:0,right:0,bottom:0},transitioner:{flex:1}}),w=m("RCTNavigator"),C=m("RCTNavItem");o.exports=E}),__d("PickerIOS",["NativeMethodsMixin","React","ReactChildren","ReactNativeViewAttributes","NativeModules","StyleSheet","View","requireNativeComponent","merge"],function(e,t,n,r,o,i){"use strict";var a=t("NativeMethodsMixin"),s=t("React"),u=t("ReactChildren"),c=(t("ReactNativeViewAttributes"),t("NativeModules").UIManager.RCTPicker.Constants),l=t("StyleSheet"),p=t("View"),h=t("requireNativeComponent"),d=(t("merge"),"picker"),f=s.createClass({displayName:"PickerIOS",mixins:[a],propTypes:{onValueChange:s.PropTypes.func,selectedValue:s.PropTypes.any},getInitialState:function(){return this._stateFromProps(this.props)},componentWillReceiveProps:function(e){this.setState(this._stateFromProps(e))},_stateFromProps:function(e){var t=0,n=[];return u.forEach(e.children,function(r,o){r.props.value===e.selectedValue&&(t=o),n.push({value:r.props.value,label:r.props.label})}),{selectedIndex:t,items:n}},render:function(){return s.createElement(p,{style:this.props.style},s.createElement(m,{ref:d,style:v.pickerIOS,items:this.state.items,selectedIndex:this.state.selectedIndex,onChange:this._onChange}))},_onChange:function(e){this.props.onChange&&this.props.onChange(e),this.props.onValueChange&&this.props.onValueChange(e.nativeEvent.newValue),this.state.selectedIndex!==e.nativeEvent.newIndex&&this.refs[d].setNativeProps({selectedIndex:this.state.selectedIndex})}});f.Item=s.createClass({displayName:"Item",propTypes:{value:s.PropTypes.any,label:s.PropTypes.string},render:function(){return null}});var v=l.create({pickerIOS:{height:c.ComponentHeight}}),m=h("RCTPicker",null);o.exports=f}),__d("ProgressViewIOS",["Image","NativeMethodsMixin","NativeModules","ReactPropTypes","React","StyleSheet","requireNativeComponent"],function(e,t,n,r,o,i){"use strict";var a=Object.assign||function(e){for(var t=1;tS&&this._cancelLongPressDelayTimeout()}var f=l>t.left-o&&h>t.top-i&&l0,o=n&&n.length>0;return!r&&o?n[0]:r?t[0]:e}};o.exports=a}),__d("queryLayoutByID",["ReactNativeTagHandles","NativeModules"],function(e,t,n,r,o,i){"use strict";var a=t("ReactNativeTagHandles"),s=t("NativeModules").UIManager,u=function(e,t,n){s.measure(a.rootNodeIDToTag[e],n)};o.exports=u}),__d("TextInput",["DocumentSelectionState","EventEmitter","NativeMethodsMixin","NativeModules","Platform","ReactPropTypes","React","ReactChildren","StyleSheet","Text","TextInputState","TouchableWithoutFeedback","createReactNativeComponentClass","emptyFunction","invariant","requireNativeComponent","react-timer-mixin/TimerMixin.js"],function(e,t,n,r,o,i){"use strict";var a=Object.assign||function(e){for(var t=1;t1&&(r=d.createElement(m,null,r)),t.inputView&&(r=[r,t.inputView]),e=d.createElement(x,a({ref:"input"},t,{children:r,mostRecentEventCount:this.state.mostRecentEventCount,onFocus:this._onFocus,onBlur:this._onBlur,onChange:this._onChange,onSelectionChange:this._onSelectionChange,onTextInput:this._onTextInput,onSelectionChangeShouldSetResponder:S.thatReturnsTrue,text:this._getText()}))}else{for(var n in T)if(t[n])throw new Error("TextInput prop `"+n+"` is only supported with multiline.");e=d.createElement(O,a({ref:"input"},t,{onFocus:this._onFocus,onBlur:this._onBlur,onChange:this._onChange,onSelectionChangeShouldSetResponder:function(){return!0},text:this._getText(),mostRecentEventCount:this.state.mostRecentEventCount}))}return d.createElement(_,{onPress:this._onPress,rejectResponderTermination:!0,testID:t.testID},e)},_renderAndroid:function(){var e=l.UIText.AutocapitalizationType[this.props.autoCapitalize],t=l.AndroidTextInput.Constants.TextAlign[this.props.textAlign],n=l.AndroidTextInput.Constants.TextAlignVertical[this.props.textAlignVertical],r=this.props.children,o=0;f.forEach(r,function(){return++o}),R(!(this.props.value&&o),"Cannot specify both value and children."),o>1&&(r=d.createElement(m,null,r));var i=d.createElement(D,{ref:"input",style:[this.props.style],autoCapitalize:e,autoCorrect:this.props.autoCorrect,textAlign:t,textAlignVertical:n,keyboardType:this.props.keyboardType,multiline:this.props.multiline,onFocus:this._onFocus,onBlur:this._onBlur,onChange:this._onChange,onTextInput:this._onTextInput,onEndEditing:this.props.onEndEditing,onSubmitEditing:this.props.onSubmitEditing,onLayout:this.props.onLayout,password:this.props.password||this.props.secureTextEntry,placeholder:this.props.placeholder,placeholderTextColor:this.props.placeholderTextColor,text:this._getText(),underlineColorAndroid:this.props.underlineColorAndroid,children:r});return d.createElement(_,{onPress:this._onPress,testID:this.props.testID},i)},_onFocus:function(e){this.props.onFocus&&this.props.onFocus(e)},_onPress:function(e){(this.props.editable||void 0===this.props.editable)&&this.focus()},_onChange:function(e){var t=this,n=e.nativeEvent.text,r=e.nativeEvent.eventCount;this.props.onChange&&this.props.onChange(e),this.props.onChangeText&&this.props.onChangeText(n),this.setState({mostRecentEventCount:r},function(){n!==t.props.value&&"string"==typeof t.props.value&&t.refs.input.setNativeProps({text:t.props.value})})},_onBlur:function(e){this.blur(),this.props.onBlur&&this.props.onBlur(e)},_onSelectionChange:function(e){if(this.props.selectionState){var t=e.nativeEvent.selection;this.props.selectionState.update(t.start,t.end)}this.props.onSelectionChange&&this.props.onSelectionChange(e)},_onTextInput:function(e){this.props.onTextInput&&this.props.onTextInput(e)}}),N=v.create({input:{alignSelf:"stretch"}}),D=b({validAttributes:C,uiViewClassName:"AndroidTextInput"});o.exports=P}),__d("DocumentSelectionState",["mixInEventEmitter"],function(e,t,n,r,o,i){function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var s=function(){function e(e,t){for(var n=0;nthis._focusOffset}},{key:"getAnchorOffset",value:function(){return this._hasFocus?this._anchorOffset:null}},{key:"getFocusOffset",value:function(){return this._hasFocus?this._focusOffset:null}},{key:"getStartOffset",value:function(){return this._hasFocus?Math.min(this._anchorOffset,this._focusOffset):null}},{key:"getEndOffset",value:function(){return this._hasFocus?Math.max(this._anchorOffset,this._focusOffset):null}},{key:"overlaps",value:function(e,t){return this.hasFocus()&&this.getStartOffset()<=t&&e<=this.getEndOffset()}}]),e}();u(c,{blur:!0,focus:!0,update:!0}),o.exports=c}),__d("mixInEventEmitter",["EventEmitter","EventEmitterWithHolding","EventHolder","EventValidator","copyProperties","invariant","keyOf"],function(e,t,n,r,o,i){function a(e,t){h(t,"Must supply set of valid event types"),h(!this.__eventEmitter,"An active emitter is already mixed in");var n=e.prototype||e,r=e.constructor;r&&h(r===Object||r===Function,"Mix EventEmitter into a class, not an instance"),n.hasOwnProperty(f)?p(n.__types,t):n.__types?n.__types=p({},n.__types,t):n.__types=t,p(n,v)}var s=t("EventEmitter"),u=t("EventEmitterWithHolding"),c=t("EventHolder"),l=t("EventValidator"),p=t("copyProperties"),h=t("invariant"),d=t("keyOf"),f=d({__types:!0}),v={emit:function(e,t,n,r,o,i,a){return this.__getEventEmitter().emit(e,t,n,r,o,i,a)},emitAndHold:function(e,t,n,r,o,i,a){return this.__getEventEmitter().emitAndHold(e,t,n,r,o,i,a)},addListener:function(e,t,n){return this.__getEventEmitter().addListener(e,t,n)},once:function(e,t,n){return this.__getEventEmitter().once(e,t,n)},addRetroactiveListener:function(e,t,n){return this.__getEventEmitter().addRetroactiveListener(e,t,n)},addListenerMap:function(e,t){return this.__getEventEmitter().addListenerMap(e,t)},addRetroactiveListenerMap:function(e,t){return this.__getEventEmitter().addListenerMap(e,t)},removeAllListeners:function(){this.__getEventEmitter().removeAllListeners()},removeCurrentListener:function(){this.__getEventEmitter().removeCurrentListener()},releaseHeldEventType:function(e){this.__getEventEmitter().releaseHeldEventType(e)},__getEventEmitter:function(){if(!this.__eventEmitter){var e=new s;e=l.addValidation(e,this.__types);var t=new c;this.__eventEmitter=new u(e,t)}return this.__eventEmitter}};o.exports=a}),__d("EventEmitterWithHolding",[],function(e,t,n,r,o,i){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var s=function(){function e(e,t){for(var n=0;nt.distance?1:0},f=function(e,t){return e.distance/t.length<.334},v=function(e,t){var n,r,o=[];for(n=0;n<=e.length;n++)o[n]=[n];for(r=1;r<=t.length;r++)o[0][r]=r;for(n=1;n<=e.length;n++)for(r=1;r<=t.length;r++){var i=e.charAt(n-1)===t.charAt(r-1)?0:1;o[n][r]=Math.min(o[n-1][r]+1,o[n][r-1]+1,o[n-1][r-1]+i),n>1&&r>1&&e.charAt(n-1)==t.charAt(r-2)&&e.charAt(n-2)==t.charAt(r-1)&&(o[n][r]=Math.min(o[n][r],o[n-2][r-2]+i))}return o[e.length][t.length]};o.exports=c}),__d("copyProperties",[],function(e,t,n,r,o,i){function a(e,t,n,r,o,i,a){if(e=e||{},__DEV__&&a)throw new Error("Too many arguments passed to copyProperties");for(var s,u=[t,n,r,o,i],c=0;u[c];){s=u[c++];for(var l in s)e[l]=s[l];s.hasOwnProperty&&s.hasOwnProperty("toString")&&"undefined"!=typeof s.toString&&e.toString!==s.toString&&(e.toString=s.toString)}return e}o.exports=a}),__d("TouchableWithoutFeedback",["React","Touchable","ensurePositiveDelayProps","onlyChild","react-timer-mixin/TimerMixin.js"],function(e,t,n,r,o,i){"use strict";var a=t("React"),s=t("react-timer-mixin/TimerMixin.js"),u=t("Touchable"),c=t("ensurePositiveDelayProps"),l=t("onlyChild"),p={top:20,left:20,right:20,bottom:30},h=a.createClass({displayName:"TouchableWithoutFeedback",mixins:[s,u.Mixin],propTypes:{accessible:a.PropTypes.bool,onPress:a.PropTypes.func,onPressIn:a.PropTypes.func, +onPressOut:a.PropTypes.func,onLongPress:a.PropTypes.func,delayPressIn:a.PropTypes.number,delayPressOut:a.PropTypes.number,delayLongPress:a.PropTypes.number},getInitialState:function(){return this.touchableGetInitialState()},componentDidMount:function(){c(this.props)},componentWillReceiveProps:function(e){c(e)},touchableHandlePress:function(e){this.props.onPress&&this.props.onPress(e)},touchableHandleActivePressIn:function(){this.props.onPressIn&&this.props.onPressIn()},touchableHandleActivePressOut:function(){this.props.onPressOut&&this.props.onPressOut()},touchableHandleLongPress:function(){this.props.onLongPress&&this.props.onLongPress()},touchableGetPressRectOffset:function(){return p},touchableGetHighlightDelayMS:function(){return this.props.delayPressIn||0},touchableGetLongPressDelayMS:function(){return 0===this.props.delayLongPress?0:this.props.delayLongPress||500},touchableGetPressOutDelayMS:function(){return this.props.delayPressOut||0},render:function(){return a.cloneElement(l(this.props.children),{accessible:this.props.accessible!==!1,testID:this.props.testID,onStartShouldSetResponder:this.touchableHandleStartShouldSetResponder,onResponderTerminationRequest:this.touchableHandleResponderTerminationRequest,onResponderGrant:this.touchableHandleResponderGrant,onResponderMove:this.touchableHandleResponderMove,onResponderRelease:this.touchableHandleResponderRelease,onResponderTerminate:this.touchableHandleResponderTerminate})}});o.exports=h}),__d("ensurePositiveDelayProps",["invariant"],function(e,t,n,r,o,i){"use strict";var a=t("invariant"),s=function(e){a(!(e.delayPressIn<0||e.delayPressOut<0||e.delayLongPress<0),"Touchable components cannot have negative delay properties")};o.exports=s}),__d("TouchableHighlight",["NativeMethodsMixin","React","ReactNativeViewAttributes","StyleSheet","Touchable","TouchableWithoutFeedback","View","cloneWithProps","ensureComponentIsNative","ensurePositiveDelayProps","keyOf","merge","onlyChild","react-timer-mixin/TimerMixin.js"],function(e,t,n,r,o,i){"use strict";var a=Object.assign||function(e){for(var t=1;t1)for(var r=1;n>r;r++)t=arguments[r],t&&(e=(e?e+" ":"")+t);return e}o.exports=a}),__d("ensureComponentIsNative",["invariant"],function(e,t,n,r,o,i){"use strict";var a=t("invariant"),s=function(e){a(e&&"function"==typeof e.setNativeProps,"Touchable child must either be native or forward setNativeProps to a native component")};o.exports=s}),__d("TouchableOpacity",["Animated","NativeMethodsMixin","React","Touchable","TouchableWithoutFeedback","ensurePositiveDelayProps","flattenStyle","keyOf","react-timer-mixin/TimerMixin.js"],function(e,t,n,r,o,i){"use strict";var a=Object.assign||function(e){for(var t=1;t=this._startTime+this._duration?(0===this._duration?this._onUpdate(this._toValue):this._onUpdate(this._fromValue+this._easing(1)*(this._toValue-this._fromValue)),void this.__debouncedOnEnd({finished:!0})):(this._onUpdate(this._fromValue+this._easing((e-this._startTime)/this._duration)*(this._toValue-this._fromValue)),void(this.__active&&(this._animationFrame=w(this.onUpdate.bind(this)))))}},{key:"stop",value:function(){this.__active=!1,clearTimeout(this._timeout),window.cancelAnimationFrame(this._animationFrame),this.__debouncedOnEnd({finished:!1})}}]),t}(I),N=function(e){function t(e){s(this,t),h(Object.getPrototypeOf(t.prototype),"constructor",this).call(this),this._deceleration=e.deceleration||.998,this._velocity=e.velocity}return a(t,e),d(t,[{key:"start",value:function(e,t,n){this.__active=!0,this._lastValue=e,this._fromValue=e,this._onUpdate=t,this.__onEnd=n,this._startTime=Date.now(),this._animationFrame=w(this.onUpdate.bind(this))}},{key:"onUpdate",value:function(){var e=Date.now(),t=this._fromValue+this._velocity/(1-this._deceleration)*(1-Math.exp(-(1-this._deceleration)*(e-this._startTime)));return this._onUpdate(t),Math.abs(this._lastValue-t)<.1?void this.__debouncedOnEnd({finished:!0}):(this._lastValue=t,void(this.__active&&(this._animationFrame=w(this.onUpdate.bind(this)))))}},{key:"stop",value:function(){this.__active=!1,window.cancelAnimationFrame(this._animationFrame),this.__debouncedOnEnd({finished:!1})}}]),t}(I),D=function(e){function t(e){s(this,t),h(Object.getPrototypeOf(t.prototype),"constructor",this).call(this),this._overshootClamping=c(e.overshootClamping,!1),this._restDisplacementThreshold=c(e.restDisplacementThreshold,.001),this._restSpeedThreshold=c(e.restSpeedThreshold,.001),this._initialVelocity=e.velocity,this._lastVelocity=c(e.velocity,0),this._toValue=e.toValue;var n;void 0!==e.bounciness||void 0!==e.speed?(R(void 0===e.tension&&void 0===e.friction,"You can only define bounciness/speed or tension/friction but not both"),n=T.SpringConfig.fromBouncinessAndSpeed(c(e.bounciness,8),c(e.speed,12))):n=T.SpringConfig.fromOrigamiTensionAndFriction(c(e.tension,40),c(e.friction,7)),this._tension=n.tension,this._friction=n.friction}return a(t,e),d(t,[{key:"start",value:function(e,n,r,o){if(this.__active=!0,this._startPosition=e,this._lastPosition=this._startPosition,this._onUpdate=n,this.__onEnd=r,this._lastTime=Date.now(),o instanceof t){var i=o.getInternalState();this._lastPosition=i.lastPosition,this._lastVelocity=i.lastVelocity,this._lastTime=i.lastTime}void 0!==this._initialVelocity&&null!==this._initialVelocity&&(this._lastVelocity=this._initialVelocity),this.onUpdate()}},{key:"getInternalState",value:function(){return{lastPosition:this._lastPosition,lastVelocity:this._lastVelocity,lastTime:this._lastTime}}},{key:"onUpdate",value:function(){var e=this._lastPosition,t=this._lastVelocity,n=this._lastPosition,r=this._lastVelocity,o=64,i=Date.now();i>this._lastTime+o&&(i=this._lastTime+o);for(var a=1,s=Math.floor((i-this._lastTime)/a),u=0;s>u;++u){var c=a/1e3,l=t,p=this._tension*(this._toValue-n)-this._friction*r,n=e+l*c/2,r=t+p*c/2,h=r,d=this._tension*(this._toValue-n)-this._friction*r;n=e+h*c/2,r=t+d*c/2;var f=r,v=this._tension*(this._toValue-n)-this._friction*r;n=e+f*c/2,r=t+v*c/2;var m=r,g=this._tension*(this._toValue-n)-this._friction*r;n=e+f*c/2,r=t+v*c/2;var y=(l+2*(h+f)+m)/6,_=(p+2*(d+v)+g)/6;e+=y*c,t+=_*c}if(this._lastTime=i,this._lastPosition=e,this._lastVelocity=t,this._onUpdate(e),this.__active){var b=!1;this._overshootClamping&&0!==this._tension&&(b=this._startPositionthis._toValue:eo;o++)r[o]=arguments[o];var i=function(e,t,n){if("number"==typeof t)return R(e instanceof k,"Bad mapping of type "+typeof e+" for key "+n+", event value must map to AnimatedValue"),void e.setValue(t);R("object"==typeof e,"Bad mapping of type "+typeof e+" for key "+n),R("object"==typeof t,"Bad event of type "+typeof t+" for key "+n);for(var n in e)i(e[n],t[n],n)};e.forEach(function(e,t){i(e,r[t],"arg"+t)}),t&&t.listener&&t.listener.apply(null,r)}};o.exports={delay:Y,sequence:G,parallel:W,stagger:K,decay:z,timing:q,spring:U,event:X,Value:k,ValueXY:A,__PropsOnlyForTests:F,View:l(S),Text:l(b),Image:l(v),createAnimatedComponent:l}}),__d("Interpolation",[],function(e,t,n,r,o,i){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t,n,r,o,i,a,s){var u=e;if(t>u){if("identity"===a)return u;"clamp"===a&&(u=t)}if(u>n){if("identity"===s)return u;"clamp"===s&&(u=n)}return r===o?r:t===n?t>=e?r:o:(t===-(1/0)?u=-u:n===1/0?u-=t:u=(u-t)/(n-t),u=i(u),r===-(1/0)?u=-u:o===1/0?u+=r:u=u*(o-r)+r,u)}function u(e){var t=e.outputRange;v(t.length>=2,"Bad output range"),c(t);var n=t[0].match(y).map(function(){return[]});t.forEach(function(e){e.match(y).forEach(function(e,t){n[t].push(+e)})});var r=t[0].match(y).map(function(t,r){return g.create(d({},e,{outputRange:n[r]}))});return function(e){var n=0;return t[0].replace(y,function(){return String(r[n++](e))})}}function c(e){for(var t=e[0].replace(y,""),n=1;n=e);++n);return n-1}function p(e){v(e.length>=2,"inputRange must have at least 2 elements");for(var t=1;t=e[t-1],"inputRange must be monotonically increasing "+e)}function h(e,t){v(t.length>=2,e+" must have at least 2 elements"),v(2!==t.length||t[0]!==-(1/0)||t[1]!==1/0,e+"cannot be ]-infinity;+infinity[ "+t)}var d=Object.assign||function(e){for(var t=1;t0?1:0}},{key:"step1",value:function(e){return e>=1?1:0}},{key:"linear",value:function(e){return e}},{key:"ease",value:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}(function(e){return l(e)})},{key:"quad",value:function(e){return e*e}},{key:"cubic",value:function(e){return e*e*e}},{key:"poly",value:function(e){return function(t){return Math.pow(t,e)}}},{key:"sin",value:function(e){return 1-Math.cos(e*Math.PI/2)}},{key:"circle",value:function(e){return 1-Math.sqrt(1-e*e)}},{key:"exp",value:function(e){return Math.pow(2,10*(e-1))}},{key:"elastic",value:function(e,t){var n,r=2*Math.PI;return arguments.length<2&&(t=.45),arguments.length?n=t/r*Math.asin(1/e):(e=1,n=t/4),function(o){return 1+e*Math.pow(2,-10*o)*Math.sin((o-n)*r/t)}}},{key:"back",value:function(e){return void 0===e&&(e=1.70158),function(t){return t*t*((e+1)*t-e)}}},{key:"bounce",value:function(e){return 1/2.75>e?7.5625*e*e:2/2.75>e?(e-=1.5/2.75,7.5625*e*e+.75):2.5/2.75>e?(e-=2.25/2.75,7.5625*e*e+.9375):(e-=2.625/2.75,7.5625*e*e+.984375)}},{key:"bezier",value:function(e,t,n,r,o){if(void 0===o){var i=500;o=1e3/60/i/4}return u(e,t,n,r,o)}},{key:"in",value:function(e){return e}},{key:"out",value:function(e){return function(t){return 1-e(1-t)}}},{key:"inOut",value:function(e){return function(t){return.5>t?e(2*t)/2:1-e(2*(1-t))/2}}}]),e}(),l=c.bezier(.42,0,1,1);o.exports=c}),__d("bezier",[],function(e,t,n,r,o,i){o.exports=function(e,t,n,r,o){var i=function(t){var r=1-t;return 3*r*r*t*e+3*r*t*t*n+t*t*t},a=function(e){var n=1-e;return 3*n*n*e*t+3*n*e*e*r+e*e*e},s=function(t){var r=1-t;return 3*(2*(t-1)*t+r*r)*e+3*(-t*t*t+2*r*t)*n};return function(e){var t,n,r,u,c,l,p=e;for(r=p,l=0;8>l;l++){if(u=i(r)-p,Math.abs(u)r)return a(t);if(r>n)return a(n);for(;n>t;){if(u=i(r),Math.abs(u-p)u?t=r:n=r,r=.5*(n-t)+t}return a(r)}}}),__d("requestAnimationFrame",["emptyFunction","nativeRequestAnimationFrame"],function(e,t,n,r,o,i){ +var a=t("emptyFunction"),s=t("nativeRequestAnimationFrame"),u=0,c=s||function(t){var n=Date.now(),r=Math.max(0,16-(n-u));return u=n+r,e.setTimeout(function(){t(Date.now())},r)};c(a),o.exports=c}),__d("nativeRequestAnimationFrame",[],function(e,t,n,r,o,i){var a=e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame;o.exports=a}),__d("WebView",["ActivityIndicatorIOS","EdgeInsetsPropType","React","StyleSheet","Text","View","invariant","keyMirror","requireNativeComponent","NativeModules"],function(e,t,n,r,o,i){"use strict";var a=t("ActivityIndicatorIOS"),s=t("EdgeInsetsPropType"),u=t("React"),c=t("StyleSheet"),l=t("Text"),p=t("View"),h=t("invariant"),d=t("keyMirror"),f=t("requireNativeComponent"),v=u.PropTypes,m=t("NativeModules").WebViewManager,g="rgba(255,255,255,0.8)",y="webview",_=d({IDLE:null,LOADING:null,ERROR:null}),b={click:m.NavigationType.LinkClicked,formsubmit:m.NavigationType.FormSubmitted,backforward:m.NavigationType.BackForward,reload:m.NavigationType.Reload,formresubmit:m.NavigationType.FormResubmitted,other:m.NavigationType.Other},S=m.JSNavigationScheme,R=function(){return u.createElement(p,{style:C.loadingView},u.createElement(a,null))},E=function(e,t,n){return u.createElement(p,{style:C.errorContainer},u.createElement(l,{style:C.errorTextTitle},"Error loading page"),u.createElement(l,{style:C.errorText},"Domain: "+e),u.createElement(l,{style:C.errorText},"Error Code: "+t),u.createElement(l,{style:C.errorText},"Description: "+n))},T=u.createClass({displayName:"WebView",statics:{JSNavigationScheme:S,NavigationType:b},propTypes:{url:v.string,html:v.string,renderError:v.func,renderLoading:v.func,bounces:v.bool,scrollEnabled:v.bool,automaticallyAdjustContentInsets:v.bool,contentInset:s,onNavigationStateChange:v.func,startInLoadingState:v.bool,style:p.propTypes.style,javaScriptEnabledAndroid:v.bool,injectedJavaScript:v.string,scalesPageToFit:v.bool},getInitialState:function(){return{viewState:_.IDLE,lastErrorEvent:null,startInLoadingState:!0}},componentWillMount:function(){this.props.startInLoadingState&&this.setState({viewState:_.LOADING})},render:function(){var e=null;if(this.state.viewState===_.LOADING)e=(this.props.renderLoading||R)();else if(this.state.viewState===_.ERROR){var t=this.state.lastErrorEvent;h(null!=t,"lastErrorEvent expected to be non-null"),e=(this.props.renderError||E)(t.domain,t.code,t.description)}else this.state.viewState!==_.IDLE&&console.error("RCTWebView invalid state encountered: "+this.state.loading);var n=[C.container,C.webView,this.props.style];(this.state.viewState===_.LOADING||this.state.viewState===_.ERROR)&&n.push(C.hidden);var r=u.createElement(w,{ref:y,key:"webViewKey",style:n,url:this.props.url,html:this.props.html,injectedJavaScript:this.props.injectedJavaScript,bounces:this.props.bounces,scrollEnabled:this.props.scrollEnabled,contentInset:this.props.contentInset,automaticallyAdjustContentInsets:this.props.automaticallyAdjustContentInsets,onLoadingStart:this.onLoadingStart,onLoadingFinish:this.onLoadingFinish,onLoadingError:this.onLoadingError,scalesPageToFit:this.props.scalesPageToFit});return u.createElement(p,{style:C.container},r,e)},goForward:function(){m.goForward(this.getWebViewHandle())},goBack:function(){m.goBack(this.getWebViewHandle())},reload:function(){m.reload(this.getWebViewHandle())},updateNavigationState:function(e){this.props.onNavigationStateChange&&this.props.onNavigationStateChange(e.nativeEvent)},getWebViewHandle:function(){return u.findNodeHandle(this.refs[y])},onLoadingStart:function(e){this.updateNavigationState(e)},onLoadingError:function(e){e.persist(),console.error("Encountered an error loading page",e.nativeEvent),this.setState({lastErrorEvent:e.nativeEvent,viewState:_.ERROR})},onLoadingFinish:function(e){this.setState({viewState:_.IDLE}),this.updateNavigationState(e)}}),w=f("RCTWebView",T),C=c.create({container:{flex:1},errorContainer:{flex:1,justifyContent:"center",alignItems:"center",backgroundColor:g},errorText:{fontSize:14,textAlign:"center",marginBottom:2},errorTextTitle:{fontSize:15,fontWeight:"500",marginBottom:10},hidden:{height:0,flex:0},loadingView:{backgroundColor:g,flex:1,justifyContent:"center",alignItems:"center"},webView:{backgroundColor:"#ffffff"}});o.exports=T}),__d("ActionSheetIOS",["NativeModules","invariant"],function(e,t,n,r,o,i){"use strict";var a=t("NativeModules").ActionSheetManager,s=t("invariant"),u={showActionSheetWithOptions:function(e,t){s("object"==typeof e&&null!==e,"Options must a valid object"),s("function"==typeof t,"Must provide a valid callback"),a.showActionSheetWithOptions(e,function(){},t)},showShareActionSheetWithOptions:function(e,t,n){s("object"==typeof e&&null!==e,"Options must a valid object"),s("function"==typeof t,"Must provide a valid failureCallback"),s("function"==typeof n,"Must provide a valid successCallback"),a.showShareActionSheetWithOptions(e,t,n)}};o.exports=u}),__d("AdSupportIOS",["NativeModules"],function(e,t,n,r,o,i){"use strict";var a=t("NativeModules").AdSupport;o.exports={getAdvertisingId:function(e,t){a.getAdvertisingId(e,t)},getAdvertisingTrackingEnabled:function(e,t){a.getAdvertisingTrackingEnabled(e,t)}}}),__d("AlertIOS",["NativeModules","invariant"],function(e,t,n,r,o,i){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var s=function(){function e(e,t){for(var n=0;nl.get("window").height/2?"top":"bottom",selection:r.length-1,hierarchy:r,inspected:{style:i.style||{},frame:t}})}},{key:"setPerfing",value:function(e){this.setState({perfing:e,inspecting:!1,inspected:null})}},{key:"setInspecting",value:function(e){this.setState({inspecting:e,inspected:null})}},{key:"render",value:function(){var e="bottom"===this.state.panelPos?{bottom:0}:{top:0};return f.createElement(g,{style:_.container,pointerEvents:"box-none"},this.state.inspecting&&f.createElement(p,{rootTag:this.props.rootTag,inspected:this.state.inspected,inspectedViewTag:this.props.inspectedViewTag,onTouchInstance:this.onTouchInstance.bind(this)}),f.createElement(g,{style:[_.panelContainer,e]},f.createElement(h,{devtoolsIsOpen:!!this.state.devtoolsAgent,inspecting:this.state.inspecting,perfing:this.state.perfing,setPerfing:this.setPerfing.bind(this),setInspecting:this.setInspecting.bind(this),inspected:this.state.inspected,hierarchy:this.state.hierarchy,selection:this.state.selection,setSelection:this.setSelection.bind(this)})))}}]),t}(f.Component),_=v.create({container:{position:"absolute",backgroundColor:"transparent",top:0,left:0,right:0,bottom:0},panelContainer:{position:"absolute",left:0,right:0}});o.exports=y}),__d("InspectorOverlay",["Dimensions","InspectorUtils","React","StyleSheet","NativeModules","View","ElementBox"],function(e,t,n,r,o,i){"use strict";var a=t("Dimensions"),s=t("InspectorUtils"),u=t("React"),c=t("StyleSheet"),l=t("NativeModules").UIManager,p=t("View"),h=t("ElementBox"),d=u.PropTypes,f=u.createClass({displayName:"InspectorOverlay",propTypes:{inspected:d.shape({frame:d.object,style:d.any}),inspectedViewTag:d.number,onTouchInstance:d.func.isRequired},findViewForTouchEvent:function(e){var t=this,n=e.nativeEvent.touches[0],r=n.locationX,o=n.locationY;l.findSubviewIn(this.props.inspectedViewTag,[r,o],function(e,n,r,i,a){var u=s.findInstanceByNativeTag(t.props.rootTag,e);u&&t.props.onTouchInstance(u,{left:n,top:r,width:i,height:a},o)})},shouldSetResponser:function(e){return this.findViewForTouchEvent(e),!0},render:function(){var e=null;return this.props.inspected&&(e=u.createElement(h,{frame:this.props.inspected.frame,style:this.props.inspected.style})),u.createElement(p,{onStartShouldSetResponder:this.shouldSetResponser,onResponderMove:this.findViewForTouchEvent,style:[v.inspector,{height:a.get("window").height}]},e)}}),v=c.create({inspector:{backgroundColor:"transparent",position:"absolute",left:0,top:0,right:0}});o.exports=f}),__d("ElementBox",["React","View","StyleSheet","BorderBox","resolveBoxStyle","flattenStyle"],function(e,t,n,r,o,i){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n.5;e.dismissalSpring.setEndValue(o?1:0)}}})},render:function(){var e,t=this;return E.get(this.props.warning)>1&&(e=h.createElement(f,{style:N.bold},"(",E.get(this.props.warning),")"," ")),h.createElement(m,s({style:N.warningBox,ref:function(e){t.container=e}},this.panGesture.panHandlers),h.createElement(v,{onPress:this.props.onOpened},h.createElement(f,{style:N.warningText,numberOfLines:2,ref:function(e){t.text=e}},e,this.props.warning)),h.createElement(m,{ref:function(e){t.closeButton=e},style:N.closeButton},h.createElement(v,{onPress:function(){t.dismissalSpring.setEndValue(1)}},h.createElement(f,{style:N.closeButtonText},"✕"))))}}),x=h.createClass({displayName:"WarningBoxOpened",render:function(){var e;return E.get(this.props.warning)>1&&(e=h.createElement(f,{style:N.bold},"(",E.get(this.props.warning),")"," ")),h.createElement(v,{activeOpacity:.9,onPress:this.props.onClose,style:N.yellowBox},h.createElement(f,{ +style:N.yellowBoxText},e,this.props.warning),h.createElement(m,{style:N.yellowBoxButtons},h.createElement(v,{onPress:this.props.onDismissed,style:N.yellowBoxButton},h.createElement(f,{style:N.yellowBoxButtonText},"Dismiss")),h.createElement(v,{onPress:this.props.onIgnored,style:N.yellowBoxButton},h.createElement(f,{style:N.yellowBoxButtonText},"Ignore"))))}}),O=!0,P=h.createClass({displayName:"WarningBox",getInitialState:function(){return{totalWarningCount:w,openWarning:null}},componentWillMount:function(){console.yellowBoxResetIgnored&&(u.setItem(S,"[]",function(e){e&&console.warn("Could not reset ignored warnings.",e)}),T=[])},componentDidMount:function(){g(O,"There can only be one WarningBox"),O=!1,C.addListener("count",this._onWarningCount)},componentWillUnmount:function(){C.removeAllListeners(),O=!0},_onWarningCount:function(e){var t=this;setImmediate(function(){t.setState({totalWarningCount:e})})},_onDismiss:function(e){E["delete"](e),this.setState({openWarning:null})},render:function(){var e=this;if(0===E.size)return h.createElement(m,null);if(this.state.openWarning)return h.createElement(x,{warning:this.state.openWarning,onClose:function(){e.setState({openWarning:null})},onDismissed:this._onDismiss.bind(this,this.state.openWarning),onIgnored:function(){T.push(e.state.openWarning),a(),e._onDismiss(e.state.openWarning)}});var t=[];return E.forEach(function(n,r){t.push(h.createElement(I,{key:r,onOpened:function(){e.setState({openWarning:r})},onDismissed:e._onDismiss.bind(e,r),warning:r}))}),h.createElement(m,{style:N.warningContainer},t)}}),N=d.create({bold:{fontWeight:"bold"},closeButton:{position:"absolute",right:0,height:46,width:46},closeButtonText:{color:"white",fontSize:32,position:"relative",left:8},warningContainer:{position:"absolute",left:0,right:0,bottom:0},warningBox:{position:"relative",backgroundColor:"rgba(171, 124, 36, 0.9)",flex:1,height:46},warningText:{color:"white",position:"absolute",left:0,marginLeft:15,marginRight:46,top:7},yellowBox:{backgroundColor:"rgba(171, 124, 36, 0.9)",position:"absolute",left:0,right:0,top:0,bottom:0,padding:15,paddingTop:35},yellowBoxText:{color:"white",fontSize:20},yellowBoxButtons:{flexDirection:"row",position:"absolute",bottom:0},yellowBoxButton:{flex:1,padding:25},yellowBoxButtonText:{color:"white",fontSize:16}});o.exports=P}),__d("AsyncStorage",["NativeModules"],function(e,t,n,r,o,i){"use strict";function a(e){if(!e)return null;var t=new Error(e.message);return t.key=e.key,t}var s=t("NativeModules"),u=s.AsyncLocalStorage,c=s.AsyncRocksDBStorage,l=c||u,p={getItem:function(e,t){return new Promise(function(n,r){l.multiGet([e],function(e,o){var i=o&&o[0]&&o[0][1]?o[0][1]:null;t&&t(e&&a(e[0])||null,i),e?r(a(e[0])):n(i)})})},setItem:function(e,t,n){return new Promise(function(r,o){l.multiSet([[e,t]],function(e){n&&n(e&&a(e[0])||null),e?o(a(e[0])):r(null)})})},removeItem:function(e,t){return new Promise(function(n,r){l.multiRemove([e],function(e){t&&t(e&&a(e[0])||null),e?r(a(e[0])):n(null)})})},mergeItem:function(e,t,n){return new Promise(function(r,o){l.multiMerge([[e,t]],function(e){n&&n(e&&a(e[0])||null),e?o(a(e[0])):r(null)})})},clear:function(e){return new Promise(function(t,n){l.clear(function(r){e&&e(a(r)),r&&a(r)?n(a(r)):t(null)})})},getAllKeys:function(e){return new Promise(function(t,n){l.getAllKeys(function(r,o){e&&e(a(r),o),r?n(a(r)):t(o)})})},multiGet:function(e,t){return new Promise(function(n,r){l.multiGet(e,function(e,o){var i=e&&e.map(function(e){return a(e)})||null;t&&t(i,o),e?r(i):n(o)})})},multiSet:function(e,t){return new Promise(function(n,r){l.multiSet(e,function(e){var o=e&&e.map(function(e){return a(e)})||null;t&&t(o),e?r(o):n(null)})})},multiRemove:function(e,t){return new Promise(function(n,r){l.multiRemove(e,function(e){var o=e&&e.map(function(e){return a(e)})||null;t&&t(o),e?r(o):n(null)})})},multiMerge:function(e,t){return new Promise(function(n,r){l.multiMerge(e,function(e){var o=e&&e.map(function(e){return a(e)})||null;t&&t(o),e?r(o):n(null)})})}};l.multiMerge||(delete p.mergeItem,delete p.multiMerge),o.exports=p}),__d("setupDevtools",["flattenStyle","ReactCurrentOwner","ReactInstanceHandles","ReactNativeMount","ReactReconciler","ReactNativeTextComponent"],function(global,require,requireDynamic,requireLazy,module,exports){"use strict";function setupDevtools(){function tryToConnect(){ws.send("attach:agent");var e=setInterval(function(){return ws.send("attach:agent")},500);ws.onmessage=function(t){0===t.data.indexOf("eval:")&&(clearInterval(e),initialize(t.data.slice("eval:".length)))}}function initialize(text){try{eval(text)}catch(e){return void console.error("Failed to eval"+e.message)}window.__REACT_DEVTOOLS_GLOBAL_HOOK__.inject({CurrentOwner:require("ReactCurrentOwner"),InstanceHandles:require("ReactInstanceHandles"),Mount:require("ReactNativeMount"),Reconciler:require("ReactReconciler"),TextComponent:require("ReactNativeTextComponent")}),ws.onmessage=handleMessage}function handleMessage(e){var t;try{t=JSON.parse(e.data)}catch(n){return console.error("failed to parse json: "+e.data)}return t.$close||t.$error?(closeListeners.forEach(function(e){return e()}),window.__REACT_DEVTOOLS_GLOBAL_HOOK__.emit("shutdown"),void tryToConnect()):void(t.$open||messageListeners.forEach(function(e){try{e(t)}catch(n){throw console.log(t),n}}))}var messageListeners=[],closeListeners=[],ws=new window.WebSocket("ws://localhost:8081/devtools"),FOR_BACKEND={resolveRNStyle:require("flattenStyle"),wall:{listen:function(e){messageListeners.push(e)},onClose:function(e){closeListeners.push(e)},send:function(e){ws.send(JSON.stringify(e))}}};ws.onclose=function(){console.warn("devtools socket closed"),closeListeners.forEach(function(e){return e()})},ws.onerror=function(e){console.warn("devtools socket errored",e),closeListeners.forEach(function(e){return e()})},ws.onopen=function(){tryToConnect()}}module.exports=setupDevtools}),__d("RCTRenderingPerf",["ReactDefaultPerf","invariant"],function(e,t,n,r,o,i){"use strict";var a=t("ReactDefaultPerf"),s=t("invariant"),u=[],c=!1,l={toggle:function(){console.log("Render perfomance measurements enabled"),c=!0},start:function(){c&&(a.start(),u.forEach(function(e){return e.start()}))},stop:function(){if(c){a.stop(),a.printInclusive(),a.printWasted();for(var e=0,t=0,n=a.getLastMeasurements(),r=0;r component":e.componentName,"Inclusive time (ms)":a(e.time),Instances:e.count}})),console.log("Total time:",c.getTotalTime(e).toFixed(2)+" ms")},getMeasurementsSummaryMap:function(e){var t=c.getInclusiveSummary(e,!0);return t.map(function(e){return{"Owner > component":e.componentName,"Wasted time (ms)":e.time,Instances:e.count}})},printWasted:function(e){e=e||d._allMeasurements,console.table(d.getMeasurementsSummaryMap(e)),console.log("Total time:",c.getTotalTime(e).toFixed(2)+" ms")},printDOM:function(e){e=e||d._allMeasurements;var t=c.getDOMSummary(e);console.table(t.map(function(e){var t={};return t[u.ID_ATTRIBUTE_NAME]=e.id,t.type=e.type,t.args=JSON.stringify(e.args),t})),console.log("Total time:",c.getTotalTime(e).toFixed(2)+" ms")},_recordWrite:function(e,t,n,r){var o=d._allMeasurements[d._allMeasurements.length-1].writes;o[e]=o[e]||[],o[e].push({type:t,time:n,args:r})},measure:function(e,t,n){return function(){for(var r=arguments.length,o=Array(r),i=0;r>i;i++)o[i]=arguments[i];var a,u,c;if("_renderNewRootComponent"===t||"flushBatchedUpdates"===t)return d._allMeasurements.push({exclusive:{},inclusive:{},render:{},counts:{},writes:{},displayNames:{},totalTime:0}),c=h(),u=n.apply(this,o),d._allMeasurements[d._allMeasurements.length-1].totalTime=h()-c,u;if("_mountImageIntoNode"===t||"ReactDOMIDOperations"===e){if(c=h(),u=n.apply(this,o),a=h()-c,"_mountImageIntoNode"===t){var p=l.getID(o[1]);d._recordWrite(p,t,a,o[0])}else"dangerouslyProcessChildrenUpdates"===t?o[0].forEach(function(e){var t={};null!==e.fromIndex&&(t.fromIndex=e.fromIndex),null!==e.toIndex&&(t.toIndex=e.toIndex),null!==e.textContent&&(t.textContent=e.textContent),null!==e.markupIndex&&(t.markup=o[1][e.markupIndex]),d._recordWrite(e.parentID,e.type,a,t)}):d._recordWrite(o[0],t,a,Array.prototype.slice.call(o,1));return u}if("ReactCompositeComponent"!==e||"mountComponent"!==t&&"updateComponent"!==t&&"_renderValidatedComponent"!==t)return n.apply(this,o);if("string"==typeof this._currentElement.type)return n.apply(this,o);var f="mountComponent"===t?o[0]:this._rootNodeID,v="_renderValidatedComponent"===t,m="mountComponent"===t,g=d._mountStack,y=d._allMeasurements[d._allMeasurements.length-1];if(v?s(y.counts,f,1):m&&g.push(0),c=h(),u=n.apply(this,o),a=h()-c,v)s(y.render,f,a);else if(m){var _=g.pop();g[g.length-1]+=a,s(y.exclusive,f,a-_),s(y.inclusive,f,a)}else s(y.inclusive,f,a);return y.displayNames[f]={current:this.getName(),owner:this._currentElement._owner?this._currentElement._owner.getName():""},u}}};o.exports=d}),__d("DOMProperty",["invariant"],function(e,t,n,r,o,i){"use strict";function a(e,t){return(e&t)===t}var s=t("invariant"),u={MUST_USE_ATTRIBUTE:1,MUST_USE_PROPERTY:2,HAS_SIDE_EFFECTS:4,HAS_BOOLEAN_VALUE:8,HAS_NUMERIC_VALUE:16,HAS_POSITIVE_NUMERIC_VALUE:48,HAS_OVERLOADED_BOOLEAN_VALUE:64,injectDOMPropertyConfig:function(e){var t=u,n=e.Properties||{},r=e.DOMAttributeNamespaces||{},o=e.DOMAttributeNames||{},i=e.DOMPropertyNames||{},c=e.DOMMutationMethods||{};e.isCustomAttribute&&l._isCustomAttributeFunctions.push(e.isCustomAttribute);for(var p in n){s(!l.properties.hasOwnProperty(p),"injectDOMPropertyConfig(...): You're trying to inject DOM property '%s' which has already been injected. You may be accidentally injecting the same DOM property config twice, or you may be injecting two configs that have conflicting property names.",p);var h=p.toLowerCase(),d=n[p],f={attributeName:h,attributeNamespace:null,propertyName:p,mutationMethod:null,mustUseAttribute:a(d,t.MUST_USE_ATTRIBUTE),mustUseProperty:a(d,t.MUST_USE_PROPERTY),hasSideEffects:a(d,t.HAS_SIDE_EFFECTS),hasBooleanValue:a(d,t.HAS_BOOLEAN_VALUE),hasNumericValue:a(d,t.HAS_NUMERIC_VALUE),hasPositiveNumericValue:a(d,t.HAS_POSITIVE_NUMERIC_VALUE),hasOverloadedBooleanValue:a(d,t.HAS_OVERLOADED_BOOLEAN_VALUE)};if(s(!f.mustUseAttribute||!f.mustUseProperty,"DOMProperty: Cannot require using both attribute and property: %s",p),s(f.mustUseProperty||!f.hasSideEffects,"DOMProperty: Properties that have side effects must use property: %s",p),s(f.hasBooleanValue+f.hasNumericValue+f.hasOverloadedBooleanValue<=1,"DOMProperty: Value can be one of boolean, overloaded boolean, or numeric value, but not a combination: %s",p),__DEV__&&(l.getPossibleStandardName[h]=p),o.hasOwnProperty(p)){var v=o[p];f.attributeName=v,__DEV__&&(l.getPossibleStandardName[v]=p)}r.hasOwnProperty(p)&&(f.attributeNamespace=r[p]),i.hasOwnProperty(p)&&(f.propertyName=i[p]),c.hasOwnProperty(p)&&(f.mutationMethod=c[p]),l.properties[p]=f}}},c={},l={ID_ATTRIBUTE_NAME:"data-reactid",properties:{},getPossibleStandardName:__DEV__?{}:null,_isCustomAttributeFunctions:[],isCustomAttribute:function(e){for(var t=0;t=h&&s.push(n[t]);return s.sort(function(e,t){return t.exclusive-e.exclusive}),s}function c(e,t){for(var n,r={},o=0;o "+c.current,r[n]=r[n]||{componentName:n,time:0,count:0},a.inclusive[u]&&(r[n].time+=a.inclusive[u]),a.counts[u]&&(r[n].count+=a.counts[u])}}var d=[];for(n in r)r[n].time>=h&&d.push(r[n]);return d.sort(function(e,t){return t.time-e.time}),d}function l(e){var t={},n=Object.keys(e.writes),r=p({},e.exclusive,e.inclusive);for(var o in r){for(var i=!1,a=0;a0&&(t[o]=!0)}return t}var p=t("Object.assign"),h=1.2,d={_mountImageIntoNode:"set innerHTML",INSERT_MARKUP:"set innerHTML",MOVE_EXISTING:"move",REMOVE_NODE:"remove",TEXT_CONTENT:"set textContent",updatePropertyByID:"update attribute",deletePropertyByID:"delete attribute",updateStylesByID:"update styles",updateInnerHTMLByID:"set innerHTML",dangerouslyReplaceNodeWithMarkupByID:"replace"},f={getExclusiveSummary:u,getInclusiveSummary:c,getDOMSummary:s,getTotalTime:a};o.exports=f}),__d("ReactMount",["DOMProperty","ReactBrowserEventEmitter","ReactCurrentOwner","ReactElement","ReactEmptyComponent","ReactInstanceHandles","ReactInstanceMap","ReactMarkupChecksum","ReactPerf","ReactReconciler","ReactUpdateQueue","ReactUpdates","emptyObject","containsNode","instantiateReactComponent","invariant","setInnerHTML","shouldUpdateReactComponent","validateDOMNesting","warning"],function(e,t,n,r,o,i){"use strict";function a(e,t){for(var n=Math.min(e.length,t.length),r=0;n>r;r++)if(e.charAt(r)!==t.charAt(r))return r;return e.length===t.length?-1:n}function s(e){return e?e.nodeType===G?e.documentElement:e.firstChild:null}function u(e){var t=s(e);return t&&Z.getID(t)}function c(e){var t=l(e);if(t)if(q.hasOwnProperty(t)){var n=q[t];n!==e&&(j(!f(n,t),"ReactMount: Two valid but unequal nodes with the same `%s`: %s",U,t),q[t]=e)}else q[t]=e;return t}function l(e){return e&&e.getAttribute&&e.getAttribute(U)||""}function p(e,t){var n=l(e);n!==t&&delete q[n],e.setAttribute(U,t),q[t]=e}function h(e){return q.hasOwnProperty(e)&&f(q[e],e)||(q[e]=Z.findReactNodeByID(e)),q[e]}function d(e){var t=I.get(e)._rootNodeID;return w.isNullComponentID(t)?null:(q.hasOwnProperty(t)&&f(q[t],t)||(q[t]=Z.findReactNodeByID(t)),q[t])}function f(e,t){if(e){j(l(e)===t,"ReactMount: Unexpected modification of `%s`",U);var n=Z.findReactContainerForID(t);if(n&&k(n,e))return!0}return!1}function v(e){delete q[e]}function m(e){var t=q[e];return t&&f(t,e)?void(Q=t):!1}function g(e){Q=null,C.traverseAncestors(e,m);var t=Q;return Q=null,t}function y(e,t,n,r,o,i){if(__DEV__){i===M&&(i={});var a=n.nodeName.toLowerCase();i[F.ancestorInfoContextKey]=F.updatedAncestorInfo(null,a,null)}var s=P.mountComponent(e,t,r,i);e._renderedComponent._topLevelWrapper=e,Z._mountImageIntoNode(s,n,o)}function _(e,t,n,r,o){var i=D.ReactReconcileTransaction.getPooled();i.perform(y,null,e,t,n,i,r,o),D.ReactReconcileTransaction.release(i)}function b(e,t){for(P.unmountComponent(e),t.nodeType===G&&(t=t.documentElement);t.lastChild;)t.removeChild(t.lastChild)}var S=t("DOMProperty"),R=t("ReactBrowserEventEmitter"),E=t("ReactCurrentOwner"),T=t("ReactElement"),w=t("ReactEmptyComponent"),C=t("ReactInstanceHandles"),I=t("ReactInstanceMap"),x=t("ReactMarkupChecksum"),O=t("ReactPerf"),P=t("ReactReconciler"),N=t("ReactUpdateQueue"),D=t("ReactUpdates"),M=t("emptyObject"),k=t("containsNode"),A=t("instantiateReactComponent"),j=t("invariant"),L=t("setInnerHTML"),V=t("shouldUpdateReactComponent"),F=t("validateDOMNesting"),B=t("warning"),H=C.SEPARATOR,U=S.ID_ATTRIBUTE_NAME,q={},z=1,G=9,W=11,Y={},K={};if(__DEV__)var X={};var J=[],Q=null,$=function(){};$.prototype.render=function(){return this.props};var Z={_instancesByReactRootID:Y,scrollMonitor:function(e,t){t()},_updateRootComponent:function(e,t,n,r){return Z.scrollMonitor(n,function(){N.enqueueElementInternal(e,t),r&&N.enqueueCallbackInternal(e,r)}),__DEV__&&(X[u(n)]=s(n)),e},_registerComponent:function(e,t){j(t&&(t.nodeType===z||t.nodeType===G||t.nodeType===W),"_registerComponent(...): Target container is not a DOM element."),R.ensureScrollValueMonitoring();var n=Z.registerContainer(t);return Y[n]=e,n},_renderNewRootComponent:function(e,t,n,r){B(null==E.current,"_renderNewRootComponent(): Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate. Check the render method of %s.",E.current&&E.current.getName()||"ReactCompositeComponent");var o=A(e,null),i=Z._registerComponent(o,t);return D.batchedUpdates(_,o,i,t,n,r),__DEV__&&(X[i]=s(t)),o},renderSubtreeIntoContainer:function(e,t,n,r){return j(null!=e&&null!=e._reactInternalInstance,"parentComponent must be a valid React Component"),Z._renderSubtreeIntoContainer(e,t,n,r)},_renderSubtreeIntoContainer:function(e,t,n,r){j(T.isValidElement(t),"React.render(): Invalid component element.%s","string"==typeof t?" Instead of passing an element string, make sure to instantiate it by passing it to React.createElement.":"function"==typeof t?" Instead of passing a component class, make sure to instantiate it by passing it to React.createElement.":null!=t&&void 0!==t.props?" This may be caused by unintentionally loading two independent copies of React.":""),B(!n||!n.tagName||"BODY"!==n.tagName.toUpperCase(),"render(): Rendering components directly into document.body is discouraged, since its children are often manipulated by third-party scripts and browser extensions. This may lead to subtle reconciliation issues. Try rendering into a container element created for your app.");var o=new T($,null,null,null,t),i=Y[u(n)];if(i){var a=i._currentElement,c=a.props;if(V(c,t))return Z._updateRootComponent(i,o,n,r)._renderedComponent.getPublicInstance();Z.unmountComponentAtNode(n)}var l=s(n),p=l&&Z.isRenderedByReact(l);if(__DEV__&&(!p||l.nextSibling))for(var h=l;h;){if(Z.isRenderedByReact(h)){B(!1,"render(): Target node has markup rendered by React, but there are unrelated nodes as well. This is most commonly caused by white-space inserted around server-rendered markup.");break}h=h.nextSibling}var d=p&&!i,f=Z._renderNewRootComponent(o,n,d,null!=e?e._reactInternalInstance._processChildContext(e._reactInternalInstance._context):M)._renderedComponent.getPublicInstance();return r&&r.call(f),f},render:function(e,t,n){return Z._renderSubtreeIntoContainer(null,e,t,n)},registerContainer:function(e){var t=u(e);return t&&(t=C.getReactRootIDFromNodeID(t)),t||(t=C.createReactRootID()),K[t]=e,t},unmountComponentAtNode:function(e){B(null==E.current,"unmountComponentAtNode(): Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate. Check the render method of %s.",E.current&&E.current.getName()||"ReactCompositeComponent"),j(e&&(e.nodeType===z||e.nodeType===G||e.nodeType===W),"unmountComponentAtNode(...): Target container is not a DOM element.");var t=u(e),n=Y[t];return n?(D.batchedUpdates(b,n,e),delete Y[t],delete K[t],__DEV__&&delete X[t],!0):!1},findReactContainerForID:function(e){var t=C.getReactRootIDFromNodeID(e),n=K[t];if(__DEV__){var r=X[t];if(r&&r.parentNode!==n){B(l(r)===t,"ReactMount: Root element ID differed from reactRootID.");var o=n.firstChild;o&&t===l(o)?X[t]=o:B(!1,"ReactMount: Root element has been removed from its original container. New container: %s",r.parentNode)}}return n},findReactNodeByID:function(e){var t=Z.findReactContainerForID(e);return Z.findComponentRoot(t,e)},isRenderedByReact:function(e){if(1!==e.nodeType)return!1;var t=Z.getID(e);return t?t.charAt(0)===H:!1},getFirstReactDOM:function(e){for(var t=e;t&&t.parentNode!==t;){if(Z.isRenderedByReact(t))return t;t=t.parentNode}return null},findComponentRoot:function(e,t){var n=J,r=0,o=g(t)||e;for(n[0]=o.firstChild,n.length=1;r when using tables, nesting tags like
,

, or , or using non-SVG elements in an parent. Try inspecting the child nodes of the element with React ID `%s`.",t,Z.getID(e))},_mountImageIntoNode:function(e,t,n){if(j(t&&(t.nodeType===z||t.nodeType===G||t.nodeType===W),"mountComponentIntoNode(...): Target container is not valid."),n){var r=s(t);if(x.canReuseMarkup(e,r))return;var o=r.getAttribute(x.CHECKSUM_ATTR_NAME);r.removeAttribute(x.CHECKSUM_ATTR_NAME);var i=r.outerHTML;r.setAttribute(x.CHECKSUM_ATTR_NAME,o);var u=a(e,i),c=" (client) "+e.substring(u-20,u+20)+"\n (server) "+i.substring(u-20,u+20);j(t.nodeType!==G,"You're trying to render a component to the document using server rendering but the checksum was invalid. This usually means you rendered a different component type or props on the client from the one on the server, or your render() methods are impure. React cannot handle this case due to cross-browser quirks by rendering at the document root. You should look for environment dependent code in your components and ensure the props are the same client and server side:\n%s",c),__DEV__&&B(!1,"React attempted to reuse markup in a container but the checksum was invalid. This generally means that you are using server rendering and the markup generated on the server was not what the client was expecting. React injected new markup to compensate which works but you have lost many of the benefits of server rendering. Instead, figure out why the markup being generated is different on the client or server:\n%s",c)}j(t.nodeType!==G,"You're trying to render a component to the document but you didn't use server rendering. We can't do this without using server rendering due to cross-browser quirks. See React.renderToString() for server rendering."),L(t,e)},getReactRootID:u,getID:c,setID:p,getNode:h,getNodeFromInstance:d,purgeID:v};O.measureMethods(Z,"ReactMount",{_renderNewRootComponent:"_renderNewRootComponent",_mountImageIntoNode:"_mountImageIntoNode"}),o.exports=Z}),__d("ReactBrowserEventEmitter",["EventConstants","EventPluginHub","EventPluginRegistry","ReactEventEmitterMixin","ViewportMetrics","Object.assign","isEventSupported"],function(e,t,n,r,o,i){"use strict";function a(e){return Object.prototype.hasOwnProperty.call(e,y)||(e[y]=m++,f[e[y]]={}),f[e[y]]}var s=t("EventConstants"),u=t("EventPluginHub"),c=t("EventPluginRegistry"),l=t("ReactEventEmitterMixin"),p=t("ViewportMetrics"),h=t("Object.assign"),d=t("isEventSupported"),f={},v=!1,m=0,g={topBlur:"blur",topChange:"change",topClick:"click",topCompositionEnd:"compositionend",topCompositionStart:"compositionstart",topCompositionUpdate:"compositionupdate",topContextMenu:"contextmenu",topCopy:"copy",topCut:"cut",topDoubleClick:"dblclick",topDrag:"drag",topDragEnd:"dragend",topDragEnter:"dragenter",topDragExit:"dragexit",topDragLeave:"dragleave",topDragOver:"dragover",topDragStart:"dragstart",topDrop:"drop",topFocus:"focus",topInput:"input",topKeyDown:"keydown",topKeyPress:"keypress",topKeyUp:"keyup",topMouseDown:"mousedown",topMouseMove:"mousemove",topMouseOut:"mouseout",topMouseOver:"mouseover",topMouseUp:"mouseup",topPaste:"paste",topScroll:"scroll",topSelectionChange:"selectionchange",topTextInput:"textInput",topTouchCancel:"touchcancel",topTouchEnd:"touchend",topTouchMove:"touchmove",topTouchStart:"touchstart",topWheel:"wheel"},y="_reactListenersID"+String(Math.random()).slice(2),_=h({},l,{ReactEventListener:null,injection:{injectReactEventListener:function(e){e.setHandleTopLevel(_.handleTopLevel),_.ReactEventListener=e}},setEnabled:function(e){_.ReactEventListener&&_.ReactEventListener.setEnabled(e)},isEnabled:function(){return!(!_.ReactEventListener||!_.ReactEventListener.isEnabled())},listenTo:function(e,t){for(var n=t,r=a(n),o=c.registrationNameDependencies[e],i=s.topLevelTypes,u=0;u"," "+s.CHECKSUM_ATTR_NAME+'="'+t+'">')},canReuseMarkup:function(e,t){var n=t.getAttribute(s.CHECKSUM_ATTR_NAME);n=n&&parseInt(n,10);var r=a(e);return r===n}};o.exports=s}),__d("adler32",[],function(e,t,n,r,o,i){"use strict";function a(e){for(var t=1,n=0,r=0;r]/,c=function(e,t){e.innerHTML=t};if("undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction&&(c=function(e,t){MSApp.execUnsafeLocalFunction(function(){e.innerHTML=t})}),a.canUseDOM){var l=document.createElement("div");l.innerHTML=" ",""===l.innerHTML&&(c=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),s.test(t)||"<"===t[0]&&u.test(t)){e.innerHTML=String.fromCharCode(65279)+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t})}o.exports=c}),__d("validateDOMNesting",["Object.assign","emptyFunction","warning"],function(e,t,n,r,o,i){"use strict";var a=t("Object.assign"),s=t("emptyFunction"),u=t("warning"),c=s;if(__DEV__){var l=["address","applet","area","article","aside","base","basefont","bgsound","blockquote","body","br","button","caption","center","col","colgroup","dd","details","dir","div","dl","dt","embed","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","iframe","img","input","isindex","li","link","listing","main","marquee","menu","menuitem","meta","nav","noembed","noframes","noscript","object","ol","p","param","plaintext","pre","script","section","select","source","style","summary","table","tbody","td","template","textarea","tfoot","th","thead","title","tr","track","ul","wbr","xmp"],p=["applet","caption","html","table","td","th","marquee","object","template","foreignObject","desc","title"],h=p.concat(["button"]),d=["dd","dt","li","option","optgroup","p","rp","rt"],f={parentTag:null,formTag:null,aTagInScope:null,buttonTagInScope:null,nobrTagInScope:null,pTagInButtonScope:null,listItemTagAutoclosing:null,dlItemTagAutoclosing:null},v=function(e,t,n){var r=a({},e||f),o={tag:t,instance:n};return-1!==p.indexOf(t)&&(r.aTagInScope=null,r.buttonTagInScope=null,r.nobrTagInScope=null),-1!==h.indexOf(t)&&(r.pTagInButtonScope=null),-1!==l.indexOf(t)&&"address"!==t&&"div"!==t&&"p"!==t&&(r.listItemTagAutoclosing=null,r.dlItemTagAutoclosing=null),r.parentTag=o,"form"===t&&(r.formTag=o),"a"===t&&(r.aTagInScope=o),"button"===t&&(r.buttonTagInScope=o),"nobr"===t&&(r.nobrTagInScope=o),"p"===t&&(r.pTagInButtonScope=o),"li"===t&&(r.listItemTagAutoclosing=o),("dd"===t||"dt"===t)&&(r.dlItemTagAutoclosing=o),r},m=function(e,t){switch(t){case"select":return"option"===e||"optgroup"===e||"#text"===e;case"optgroup":return"option"===e||"#text"===e;case"option":return"#text"===e;case"tr":return"th"===e||"td"===e||"style"===e||"script"===e||"template"===e;case"tbody":case"thead":case"tfoot":return"tr"===e||"style"===e||"script"===e||"template"===e;case"colgroup":return"col"===e||"template"===e;case"table":return"caption"===e||"colgroup"===e||"tbody"===e||"tfoot"===e||"thead"===e||"style"===e||"script"===e||"template"===e;case"head":return"base"===e||"basefont"===e||"bgsound"===e||"link"===e||"meta"===e||"title"===e||"noscript"===e||"noframes"===e||"style"===e||"script"===e||"template"===e;case"html":return"head"===e||"body"===e}switch(e){case"h1":case"h2": +case"h3":case"h4":case"h5":case"h6":return"h1"!==t&&"h2"!==t&&"h3"!==t&&"h4"!==t&&"h5"!==t&&"h6"!==t;case"rp":case"rt":return-1===d.indexOf(t);case"caption":case"col":case"colgroup":case"frame":case"head":case"tbody":case"td":case"tfoot":case"th":case"thead":case"tr":return null==t}return!0},g=function(e,t){switch(e){case"address":case"article":case"aside":case"blockquote":case"center":case"details":case"dialog":case"dir":case"div":case"dl":case"fieldset":case"figcaption":case"figure":case"footer":case"header":case"hgroup":case"main":case"menu":case"nav":case"ol":case"p":case"section":case"summary":case"ul":case"pre":case"listing":case"table":case"hr":case"xmp":case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":return t.pTagInButtonScope;case"form":return t.formTag||t.pTagInButtonScope;case"li":return t.listItemTagAutoclosing;case"dd":case"dt":return t.dlItemTagAutoclosing;case"button":return t.buttonTagInScope;case"a":return t.aTagInScope;case"nobr":return t.nobrTagInScope}return null},y=function(e){if(!e)return[];var t=[];do t.push(e);while(e=e._currentElement._owner);return t.reverse(),t},_={};c=function(e,t,n){n=n||f;var r=n.parentTag,o=r&&r.tag,i=m(e,o)?null:r,a=i?null:g(e,n),s=i||a;if(s){var c,l=s.tag,p=s.instance,h=t&&t._currentElement._owner,d=p&&p._currentElement._owner,v=y(h),b=y(d),S=Math.min(v.length,b.length),R=-1;for(c=0;S>c&&v[c]===b[c];c++)R=c;var E="(unknown)",T=v.slice(R+1).map(function(e){return e.getName()||E}),w=b.slice(R+1).map(function(e){return e.getName()||E}),C=[].concat(-1!==R?v[R].getName()||E:[],w,l,a?["..."]:[],T,e).join(" > "),I=!!i+"|"+e+"|"+l+"|"+C;if(_[I])return;if(_[I]=!0,i){var x="";"table"===l&&"tr"===e&&(x+=" Add a to your code to match the DOM tree generated by the browser."),u(!1,"validateDOMNesting(...): <%s> cannot appear as a child of <%s>. See %s.%s",e,l,C,x)}else u(!1,"validateDOMNesting(...): <%s> cannot appear as a descendant of <%s>. See %s.",e,l,C)}},c.ancestorInfoContextKey="__validateDOMNesting_ancestorInfo$"+Math.random().toString(36).slice(2),c.updatedAncestorInfo=v,c.isTagValidInContext=function(e,t){t=t||f;var n=t.parentTag,r=n&&n.tag;return m(e,r)&&!g(e,t)}}o.exports=c}),__d("AppStateIOS",["Map","NativeModules","RCTDeviceEventEmitter","logError","invariant"],function(e,t,n,r,o,i){"use strict";var a=t("Map"),s=t("NativeModules"),u=t("RCTDeviceEventEmitter"),c=s.AppState,l=t("logError"),p=t("invariant"),h={change:new a,memoryWarning:new a},d={addEventListener:function(e,t){p(-1!==["change","memoryWarning"].indexOf(e),'Trying to subscribe to unknown event: "%s"',e),"change"===e?h[e].set(t,u.addListener("appStateDidChange",function(e){t(e.app_state)})):"memoryWarning"===e&&h[e].set(t,u.addListener("memoryWarning",t))},removeEventListener:function(e,t){p(-1!==["change","memoryWarning"].indexOf(e),'Trying to remove listener for unknown event: "%s"',e),h[e].has(t)&&(h[e].get(t).remove(),h[e]["delete"](t))},currentState:"active"};u.addListener("appStateDidChange",function(e){d.currentState=e.app_state}),c.getCurrentAppState(function(e){d.currentState=e.app_state},l),o.exports=d}),__d("CameraRoll",["ReactPropTypes","NativeModules","createStrictShapeTypeChecker","deepFreezeAndThrowOnMutationInDev","invariant"],function(e,t,n,r,o,i){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var s=function(){function e(e,t){for(var n=0;n=1&&t>e}};return n}}),__d("invariant",[],function(e,t,n,r,o,i){"use strict";var a=function(e,t,n,r,o,i,a,s){if("production"!==process.env.NODE_ENV&&void 0===t)throw new Error("invariant requires an error message argument");if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,i,a,s],l=0;u=new Error("Invariant Violation: "+t.replace(/%s/g,function(){return c[l++]}))}throw u.framesToPop=1,u}};o.exports=a}),__d("gl-react-core/src/createTarget.js",["invariant"],function(e,t,n,r,o,i){function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n @@ -111,6 +114,16 @@ class Simple extends React.Component { /> + 7. Blur (2-pass) + + + http://i.imgur.com/3On9QEu.jpg + + this.setState({ factor })} /> + + ; } diff --git a/RNGL.xcodeproj/project.pbxproj b/RNGL.xcodeproj/project.pbxproj index 4fc86170acb9dea554e95144e7a12a48f5d9c94d..ad09207c9a44de0fc1e2a39e15505aa7cda094a2 100644 --- a/RNGL.xcodeproj/project.pbxproj +++ b/RNGL.xcodeproj/project.pbxproj @@ -8,14 +8,17 @@ /* Begin PBXBuildFile section */ 34B3300F1B821571003856F8 /* libRNGL.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 34B330031B821571003856F8 /* libRNGL.a */; }; - 34EA054A1B82179E00A4FAFF /* GLReactImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 34EA053B1B82179E00A4FAFF /* GLReactImage.m */; }; + 34D202891B8CE20B000A6FB5 /* GLCanvas.m in Sources */ = {isa = PBXBuildFile; fileRef = 34D202861B8CE20B000A6FB5 /* GLCanvas.m */; }; + 34D2028A1B8CE20B000A6FB5 /* GLCanvasManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 34D202881B8CE20B000A6FB5 /* GLCanvasManager.m */; }; + 34D2028D1B8DBF07000A6FB5 /* GLData.m in Sources */ = {isa = PBXBuildFile; fileRef = 34D2028C1B8DBF07000A6FB5 /* GLData.m */; }; + 34D202901B8DC278000A6FB5 /* RCTConvert+GLData.m in Sources */ = {isa = PBXBuildFile; fileRef = 34D2028F1B8DC278000A6FB5 /* RCTConvert+GLData.m */; }; + 34D2029F1B8DD2FC000A6FB5 /* GLRenderData.m in Sources */ = {isa = PBXBuildFile; fileRef = 34D2029D1B8DD2FC000A6FB5 /* GLRenderData.m */; }; + 34D202A31B8DDDEF000A6FB5 /* GLFBO.m in Sources */ = {isa = PBXBuildFile; fileRef = 34D202A21B8DDDEF000A6FB5 /* GLFBO.m */; }; + 34EA054A1B82179E00A4FAFF /* GLImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 34EA053B1B82179E00A4FAFF /* GLImage.m */; }; 34EA054B1B82179E00A4FAFF /* GLShader.m in Sources */ = {isa = PBXBuildFile; fileRef = 34EA053D1B82179E00A4FAFF /* GLShader.m */; }; 34EA054C1B82179E00A4FAFF /* GLShadersRegistry.m in Sources */ = {isa = PBXBuildFile; fileRef = 34EA053F1B82179E00A4FAFF /* GLShadersRegistry.m */; }; 34EA054D1B82179E00A4FAFF /* GLTexture.m in Sources */ = {isa = PBXBuildFile; fileRef = 34EA05411B82179E00A4FAFF /* GLTexture.m */; }; - 34EA054E1B82179E00A4FAFF /* GLUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 34EA05431B82179E00A4FAFF /* GLUtils.m */; }; - 34EA054F1B82179E00A4FAFF /* GLView.m in Sources */ = {isa = PBXBuildFile; fileRef = 34EA05451B82179E00A4FAFF /* GLView.m */; }; - 34EA05501B82179E00A4FAFF /* GLViewManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 34EA05471B82179E00A4FAFF /* GLViewManager.m */; }; - 34EA05511B82179E00A4FAFF /* ImageData.m in Sources */ = {isa = PBXBuildFile; fileRef = 34EA05491B82179E00A4FAFF /* ImageData.m */; }; + 34EA05511B82179E00A4FAFF /* GLImageData.m in Sources */ = {isa = PBXBuildFile; fileRef = 34EA05491B82179E00A4FAFF /* GLImageData.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -44,22 +47,28 @@ 34B330031B821571003856F8 /* libRNGL.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRNGL.a; sourceTree = BUILT_PRODUCTS_DIR; }; 34B3300E1B821571003856F8 /* RNGLTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RNGLTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 34B330141B821571003856F8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 34EA053A1B82179E00A4FAFF /* GLReactImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLReactImage.h; sourceTree = ""; }; - 34EA053B1B82179E00A4FAFF /* GLReactImage.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.c.objc; path = GLReactImage.m; sourceTree = ""; tabWidth = 2; }; + 34D202851B8CE20B000A6FB5 /* GLCanvas.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLCanvas.h; sourceTree = ""; }; + 34D202861B8CE20B000A6FB5 /* GLCanvas.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GLCanvas.m; sourceTree = ""; }; + 34D202871B8CE20B000A6FB5 /* GLCanvasManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLCanvasManager.h; sourceTree = ""; }; + 34D202881B8CE20B000A6FB5 /* GLCanvasManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GLCanvasManager.m; sourceTree = ""; }; + 34D2028B1B8DBF07000A6FB5 /* GLData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLData.h; sourceTree = ""; }; + 34D2028C1B8DBF07000A6FB5 /* GLData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GLData.m; sourceTree = ""; }; + 34D2028E1B8DC278000A6FB5 /* RCTConvert+GLData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "RCTConvert+GLData.h"; sourceTree = ""; }; + 34D2028F1B8DC278000A6FB5 /* RCTConvert+GLData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "RCTConvert+GLData.m"; sourceTree = ""; }; + 34D2029D1B8DD2FC000A6FB5 /* GLRenderData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GLRenderData.m; sourceTree = ""; }; + 34D202A01B8DD31B000A6FB5 /* GLRenderData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GLRenderData.h; sourceTree = ""; }; + 34D202A11B8DDDEF000A6FB5 /* GLFBO.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLFBO.h; sourceTree = ""; }; + 34D202A21B8DDDEF000A6FB5 /* GLFBO.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GLFBO.m; sourceTree = ""; }; + 34EA053A1B82179E00A4FAFF /* GLImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLImage.h; sourceTree = ""; }; + 34EA053B1B82179E00A4FAFF /* GLImage.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.c.objc; path = GLImage.m; sourceTree = ""; tabWidth = 2; }; 34EA053C1B82179E00A4FAFF /* GLShader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLShader.h; sourceTree = ""; }; 34EA053D1B82179E00A4FAFF /* GLShader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GLShader.m; sourceTree = ""; }; 34EA053E1B82179E00A4FAFF /* GLShadersRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLShadersRegistry.h; sourceTree = ""; }; 34EA053F1B82179E00A4FAFF /* GLShadersRegistry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GLShadersRegistry.m; sourceTree = ""; }; 34EA05401B82179E00A4FAFF /* GLTexture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLTexture.h; sourceTree = ""; }; 34EA05411B82179E00A4FAFF /* GLTexture.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GLTexture.m; sourceTree = ""; }; - 34EA05421B82179E00A4FAFF /* GLUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLUtils.h; sourceTree = ""; }; - 34EA05431B82179E00A4FAFF /* GLUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GLUtils.m; sourceTree = ""; }; - 34EA05441B82179E00A4FAFF /* GLView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLView.h; sourceTree = ""; }; - 34EA05451B82179E00A4FAFF /* GLView.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.c.objc; path = GLView.m; sourceTree = ""; tabWidth = 2; }; - 34EA05461B82179E00A4FAFF /* GLViewManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLViewManager.h; sourceTree = ""; }; - 34EA05471B82179E00A4FAFF /* GLViewManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GLViewManager.m; sourceTree = ""; }; - 34EA05481B82179E00A4FAFF /* ImageData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageData.h; sourceTree = ""; }; - 34EA05491B82179E00A4FAFF /* ImageData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ImageData.m; sourceTree = ""; }; + 34EA05481B82179E00A4FAFF /* GLImageData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLImageData.h; sourceTree = ""; }; + 34EA05491B82179E00A4FAFF /* GLImageData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GLImageData.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -112,22 +121,28 @@ 34B330051B821571003856F8 /* RNGL */ = { isa = PBXGroup; children = ( - 34EA053A1B82179E00A4FAFF /* GLReactImage.h */, - 34EA053B1B82179E00A4FAFF /* GLReactImage.m */, + 34D202851B8CE20B000A6FB5 /* GLCanvas.h */, + 34D202861B8CE20B000A6FB5 /* GLCanvas.m */, + 34D202A11B8DDDEF000A6FB5 /* GLFBO.h */, + 34D202A21B8DDDEF000A6FB5 /* GLFBO.m */, + 34D202871B8CE20B000A6FB5 /* GLCanvasManager.h */, + 34D202881B8CE20B000A6FB5 /* GLCanvasManager.m */, + 34D202A01B8DD31B000A6FB5 /* GLRenderData.h */, + 34D2029D1B8DD2FC000A6FB5 /* GLRenderData.m */, + 34D2028B1B8DBF07000A6FB5 /* GLData.h */, + 34D2028C1B8DBF07000A6FB5 /* GLData.m */, + 34D2028E1B8DC278000A6FB5 /* RCTConvert+GLData.h */, + 34D2028F1B8DC278000A6FB5 /* RCTConvert+GLData.m */, + 34EA053A1B82179E00A4FAFF /* GLImage.h */, + 34EA053B1B82179E00A4FAFF /* GLImage.m */, + 34EA05481B82179E00A4FAFF /* GLImageData.h */, + 34EA05491B82179E00A4FAFF /* GLImageData.m */, 34EA053C1B82179E00A4FAFF /* GLShader.h */, 34EA053D1B82179E00A4FAFF /* GLShader.m */, 34EA053E1B82179E00A4FAFF /* GLShadersRegistry.h */, 34EA053F1B82179E00A4FAFF /* GLShadersRegistry.m */, 34EA05401B82179E00A4FAFF /* GLTexture.h */, 34EA05411B82179E00A4FAFF /* GLTexture.m */, - 34EA05421B82179E00A4FAFF /* GLUtils.h */, - 34EA05431B82179E00A4FAFF /* GLUtils.m */, - 34EA05441B82179E00A4FAFF /* GLView.h */, - 34EA05451B82179E00A4FAFF /* GLView.m */, - 34EA05461B82179E00A4FAFF /* GLViewManager.h */, - 34EA05471B82179E00A4FAFF /* GLViewManager.m */, - 34EA05481B82179E00A4FAFF /* ImageData.h */, - 34EA05491B82179E00A4FAFF /* ImageData.m */, ); path = RNGL; sourceTree = ""; @@ -236,14 +251,17 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 34D202901B8DC278000A6FB5 /* RCTConvert+GLData.m in Sources */, 34EA054C1B82179E00A4FAFF /* GLShadersRegistry.m in Sources */, - 34EA054A1B82179E00A4FAFF /* GLReactImage.m in Sources */, + 34EA054A1B82179E00A4FAFF /* GLImage.m in Sources */, + 34D2029F1B8DD2FC000A6FB5 /* GLRenderData.m in Sources */, 34EA054D1B82179E00A4FAFF /* GLTexture.m in Sources */, - 34EA05511B82179E00A4FAFF /* ImageData.m in Sources */, - 34EA05501B82179E00A4FAFF /* GLViewManager.m in Sources */, + 34D202891B8CE20B000A6FB5 /* GLCanvas.m in Sources */, + 34D202A31B8DDDEF000A6FB5 /* GLFBO.m in Sources */, + 34EA05511B82179E00A4FAFF /* GLImageData.m in Sources */, + 34D2028D1B8DBF07000A6FB5 /* GLData.m in Sources */, + 34D2028A1B8CE20B000A6FB5 /* GLCanvasManager.m in Sources */, 34EA054B1B82179E00A4FAFF /* GLShader.m in Sources */, - 34EA054E1B82179E00A4FAFF /* GLUtils.m in Sources */, - 34EA054F1B82179E00A4FAFF /* GLView.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/RNGL/GLCanvas.h b/RNGL/GLCanvas.h new file mode 100644 index 0000000000000000000000000000000000000000..e66fe814365cfef86ac5c00861269fea5dff5a4a --- /dev/null +++ b/RNGL/GLCanvas.h @@ -0,0 +1,13 @@ +#import +#import "GLData.h" + +@interface GLCanvas: GLKView + +@property (nonatomic) GLData *data; +@property (nonatomic) BOOL opaque; +@property (nonatomic) NSNumber *nbTargets; + +- (instancetype)initWithBridge:(RCTBridge *)bridge + withContext:(EAGLContext*)context; + +@end diff --git a/RNGL/GLCanvas.m b/RNGL/GLCanvas.m new file mode 100644 index 0000000000000000000000000000000000000000..6feff6cb9cfa8e0bd3f0cf077658c57d54e7fe43 --- /dev/null +++ b/RNGL/GLCanvas.m @@ -0,0 +1,290 @@ + +#import "RCTBridge.h" +#import "RCTUtils.h" +#import "RCTConvert.h" +#import "RCTLog.h" +#import "GLCanvas.h" +#import "GLShader.h" +#import "GLShadersRegistry.h" +#import "GLTexture.h" +#import "GLImage.h" +#import "GLRenderData.h" + +// For reference, see implementation of gl-shader's GLCanvas + +@implementation GLCanvas +{ + RCTBridge *_bridge; // bridge is required to instanciate GLReactImage + + GLRenderData *_renderData; + + NSArray *_targetTextures; + NSDictionary *_images; // This caches the currently used images (imageSrc -> GLReactImage) + + BOOL _opaque; // opaque prop (if false, the GLCanvas will become transparent) + + BOOL _deferredRendering; // This flag indicates a render has been deferred to the next frame (when using GL.Target) + + GLint defaultFBO; +} + +- (instancetype)initWithBridge:(RCTBridge *)bridge + withContext:(EAGLContext*)context +{ + if ((self = [super init])) { + _bridge = bridge; + _images = @{}; + self.context = context; + } + return self; +} + +RCT_NOT_IMPLEMENTED(-init) + + +- (void)setOpaque:(BOOL)opaque +{ + _opaque = opaque; + [self setNeedsDisplay]; +} + +NSString* srcResource (id res) +{ + NSString *src; + if ([res isKindOfClass:[NSString class]]) { + src = [RCTConvert NSString:res]; + } else { + BOOL isStatic = [RCTConvert BOOL:res[@"isStatic"]]; + src = [RCTConvert NSString:res[@"path"]]; + if (!src || isStatic) src = [RCTConvert NSString:res[@"uri"]]; + } + return src; +} + +- (void)setData:(GLData *)data +{ + _data = data; + [self requestSyncData]; +} + +- (void)requestSyncData +{ + [self syncData]; +} + +- (void)syncData +{ + [EAGLContext setCurrentContext:self.context]; + @autoreleasepool { + + NSDictionary *prevImages = _images; + NSMutableDictionary *images = [[NSMutableDictionary alloc] init]; + + GLRenderData * (^traverseTree) (GLData *data, int frameIndex); + __block __weak GLRenderData * (^weak_traverseTree)(GLData *data, int frameIndex); + weak_traverseTree = traverseTree = ^GLRenderData *(GLData *data, int frameIndex) { + NSNumber *width = data.width; + NSNumber *height = data.height; + + // Traverse children and compute GLRenderData + NSMutableArray *children = [[NSMutableArray alloc] init]; + NSMutableDictionary *fbosMapping = [[NSMutableDictionary alloc] init]; + int fboId = 0; + int i = 0; + for (GLData *child in data.children) { + if (fboId == frameIndex) fboId ++; + fbosMapping[[NSNumber numberWithInt:i]] = [NSNumber numberWithInt:fboId]; + [children addObject:traverseTree(child, fboId)]; + fboId ++; + i ++; + } + + GLShader *shader = [GLShadersRegistry getShader:data.shader]; + + NSDictionary *uniformTypes = [shader uniformTypes]; + NSMutableDictionary *uniforms = [[NSMutableDictionary alloc] init]; + NSMutableDictionary *textures = [[NSMutableDictionary alloc] init]; + int units = 0; + for (NSString *uniformName in data.uniforms) { + id value = [data.uniforms objectForKey:uniformName]; + GLenum type = [uniformTypes[uniformName] intValue]; + + if (value && (type == GL_SAMPLER_2D || type == GL_SAMPLER_CUBE)) { + uniforms[uniformName] = [NSNumber numberWithInt:units++]; + NSString *type = [RCTConvert NSString:value[@"type"]]; + if ([type isEqualToString:@"target"]) { + int id = [[RCTConvert NSNumber:value[@"id"]] intValue]; + if (id >= [_targetTextures count]) { + [self resizeTargets:id+1]; + } + textures[uniformName] = _targetTextures[id]; + } + else if ([type isEqualToString:@"framebuffer"]) { + NSNumber *id = fbosMapping[[RCTConvert NSNumber:value[@"id"]]]; + GLFBO *fbo = [GLShadersRegistry getFBO:id]; + textures[uniformName] = fbo.color[0]; + } + else if ([type isEqualToString:@"image"]) { + NSObject *val = value[@"value"]; + NSString *src = srcResource(val); + if (!src) { + RCTLogError(@"invalid uniform '%@' texture value '%@'", uniformName, value); + } + + GLImage *image = images[src]; + if (image == nil) { + image = prevImages[src]; + if (image != nil) + images[src] = image; + } + if (image == nil) { + image = [[GLImage alloc] initWithBridge:_bridge withOnLoad:^{ + [self setNeedsDisplay]; + }]; + image.src = src; + images[src] = image; + } + textures[uniformName] = [image getTexture]; + } + else { + RCTLogError(@"invalid uniform '%@' value of type '%@'", uniformName, type); + } + } + else { + uniforms[uniformName] = value; + } + } + + int maxTextureUnits; + glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &maxTextureUnits); + if (units > maxTextureUnits) { + RCTLogError(@"Maximum number of texture reach. got %i >= max %i", units, maxTextureUnits); + } + + for (NSString *uniformName in shader.uniformTypes) { + if (uniforms[uniformName] == nil) { + RCTLogError(@"All defined uniforms must be provided. Missing '%@'", uniformName); + } + } + + return [[GLRenderData alloc] initWithShader:shader withUniforms:uniforms withTextures:textures withWidth:width withHeight:height withFrameIndex:frameIndex withChildren:children]; + }; + + _renderData = traverseTree(_data, -1); + _images = images; + + [self setNeedsDisplay]; + } +} + +- (void)setNbTargets:(NSNumber *)nbTargets +{ + [self resizeTargets:[nbTargets intValue]]; +} + +- (void)resizeTargets:(int)n +{ + [EAGLContext setCurrentContext:self.context]; + int length = (int) [_targetTextures count]; + if (length == n) return; + if (n < length) { + _targetTextures = [_targetTextures subarrayWithRange:NSMakeRange(0, n)]; + } + else { + NSMutableArray *targetTextures = [[NSMutableArray alloc] initWithArray:_targetTextures]; + for (int i = (int) [_targetTextures count]; i < n; i++) { + [targetTextures addObject:[[GLTexture alloc] init]]; + } + _targetTextures = targetTextures; + } +} + + +- (void)syncTargetTextures +{ + int i = 0; + for (GLTexture *texture in _targetTextures) { + UIView* view = self.superview.subviews[i]; // We take siblings by index (closely related to the JS code) + if (view) { + [texture setPixelsWithView:view]; + } else { + [texture setPixelsEmpty]; + } + i ++; + } +} + +- (void)drawRect:(CGRect)rect +{ + BOOL needsDeferredRendering = _nbTargets > 0; + if (needsDeferredRendering && !_deferredRendering) { + dispatch_async(dispatch_get_main_queue(), ^{ + _deferredRendering = true; + [self setNeedsDisplay]; + }); + } + else { + [self render:rect]; + _deferredRendering = false; + } +} + +- (void)render:(CGRect)rect +{ + if (!_renderData) return; + + self.layer.opaque = _opaque; + + CGFloat scale = RCTScreenScale(); + + @autoreleasepool { + void (^recDraw) (GLRenderData *renderData); + __block __weak void (^weak_recDraw) (GLRenderData *renderData); + weak_recDraw = recDraw = ^void(GLRenderData *renderData) { + float w = [renderData.width floatValue] * scale; + float h = [renderData.height floatValue] * scale; + + for (GLRenderData *child in renderData.children) + recDraw(child); + + if (renderData.frameIndex == -1) { + glBindFramebuffer(GL_FRAMEBUFFER, defaultFBO); + glViewport(0, 0, w, h); + } + else { + GLFBO *fbo = [GLShadersRegistry getFBO:[NSNumber numberWithInt:renderData.frameIndex]]; + [fbo setShapeWithWidth:w withHeight:h]; + [fbo bind]; + } + + glClear(GL_COLOR_BUFFER_BIT); + glClearColor(0.0, 0.0, 0.0, 0.0); + + [renderData.shader bind]; + + for (NSString *uniformName in renderData.textures) { + GLTexture *texture = renderData.textures[uniformName]; + int unit = [((NSNumber *)renderData.uniforms[uniformName]) intValue]; + [texture bind:unit]; + } + + for (NSString *uniformName in renderData.uniforms) { + [renderData.shader setUniform:uniformName withValue:renderData.uniforms[uniformName]]; + } + + glDrawArrays(GL_TRIANGLES, 0, 6); + }; + + glGetIntegerv(GL_FRAMEBUFFER_BINDING, &defaultFBO); + + [self syncTargetTextures]; + + recDraw(_renderData); + + glBindFramebuffer(GL_FRAMEBUFFER, defaultFBO); + } +} + + + +@end \ No newline at end of file diff --git a/RNGL/GLCanvasManager.h b/RNGL/GLCanvasManager.h new file mode 100644 index 0000000000000000000000000000000000000000..0001d97e512bc0eb28927e48f903d4d512722c9b --- /dev/null +++ b/RNGL/GLCanvasManager.h @@ -0,0 +1,5 @@ +#import "RCTViewManager.h" + +@interface GLCanvasManager : RCTViewManager + +@end diff --git a/RNGL/GLCanvasManager.m b/RNGL/GLCanvasManager.m new file mode 100644 index 0000000000000000000000000000000000000000..0fe2883d355e30d3a3f0b37655a82ac723b33952 --- /dev/null +++ b/RNGL/GLCanvasManager.m @@ -0,0 +1,33 @@ +#import "GLCanvasManager.h" +#import "GLCanvas.h" +#import "RCTConvert+GLData.h" +#import "RCTLog.h" +#import + +#import "GLShadersRegistry.h" + +@implementation GLCanvasManager + +RCT_EXPORT_MODULE(); + +- (instancetype)init +{ + self = [super init]; + if (self) { + } + return self; +} + +RCT_EXPORT_VIEW_PROPERTY(nbTargets, NSNumber); +RCT_EXPORT_VIEW_PROPERTY(opaque, BOOL); +RCT_EXPORT_VIEW_PROPERTY(data, GLData); + +- (UIView *)view +{ + GLCanvas * v; + v = [[GLCanvas alloc] initWithBridge:self.bridge withContext:[GLShadersRegistry getContext]]; + return v; + +} + +@end \ No newline at end of file diff --git a/RNGL/GLData.h b/RNGL/GLData.h new file mode 100644 index 0000000000000000000000000000000000000000..9717c2fe13f7ae5a56933a953e6801638adfb06a --- /dev/null +++ b/RNGL/GLData.h @@ -0,0 +1,17 @@ +#import + +@interface GLData: NSObject + +@property (nonatomic) NSNumber *shader; +@property (nonatomic) NSDictionary *uniforms; +@property (nonatomic) NSNumber *width; +@property (nonatomic) NSNumber *height; +@property (nonatomic) NSArray *children; + +-(instancetype)initWithShader: (NSNumber *)shader + withUniforms: (NSDictionary *)uniforms + withWidth: (NSNumber *)width + withHeight: (NSNumber *)height + withChildren: (NSArray *)children; + +@end diff --git a/RNGL/GLData.m b/RNGL/GLData.m new file mode 100644 index 0000000000000000000000000000000000000000..0146aacf57d44c6e1f26f5afb1e1868c41c7bd27 --- /dev/null +++ b/RNGL/GLData.m @@ -0,0 +1,21 @@ +#import "GLData.h" + +@implementation GLData + +-(instancetype)initWithShader: (NSNumber *)shader + withUniforms: (NSDictionary *)uniforms + withWidth: (NSNumber *)width + withHeight: (NSNumber *)height + withChildren: (NSArray *)children +{ + if ((self = [super init])) { + self.shader = shader; + self.uniforms = uniforms; + self.width = width; + self.height = height; + self.children = children; + } + return self; +} + +@end diff --git a/RNGL/GLFBO.h b/RNGL/GLFBO.h new file mode 100644 index 0000000000000000000000000000000000000000..86208ef6da26bff0a317d8304ca2c55095804ce7 --- /dev/null +++ b/RNGL/GLFBO.h @@ -0,0 +1,16 @@ +#import + +@interface GLFBO: NSObject + +@property (nonatomic) EAGLContext *context; + +// This contains the framebuffer GLTexture instances +@property (nonatomic) NSArray *color; + +- (instancetype)init; + +- (void)bind; + +- (void)setShapeWithWidth:(float)width withHeight:(float)height; + +@end diff --git a/RNGL/GLFBO.m b/RNGL/GLFBO.m new file mode 100644 index 0000000000000000000000000000000000000000..2a0e6ac149f90e072b9d290a11696cf2ad7eca42 --- /dev/null +++ b/RNGL/GLFBO.m @@ -0,0 +1,151 @@ +#import "GLFBO.h" +#import "GLTexture.h" +#import "RCTLog.h" + +@interface FBOState: NSObject + +@property (nonatomic) GLint fbo; +@property (nonatomic) GLint rbo; +@property (nonatomic) GLint tex; + +- (instancetype)initFromContext; +- (void)restore; + +@end + +@implementation FBOState + +- (instancetype)initFromContext +{ + if ((self = [super init])) { + GLint fbo, rbo, tex; + glGetIntegerv(GL_FRAMEBUFFER_BINDING, &fbo); + glGetIntegerv(GL_RENDERBUFFER_BINDING, &rbo); + glGetIntegerv(GL_TEXTURE_BINDING_2D, &tex); + self.fbo = fbo; + self.rbo = rbo; + self.tex = tex; + } + return self; +} + +- (void)restore +{ + glBindFramebuffer(GL_FRAMEBUFFER, _fbo); + glBindRenderbuffer(GL_FRAMEBUFFER, _rbo); + glBindTexture(GL_FRAMEBUFFER, _tex); +} + +@end + +GLTexture *initTexture (float width, float height, GLuint attachment) +{ + GLTexture *texture = [[GLTexture alloc] init]; + [texture bind]; + [texture setShapeWithWidth:width withHeight:height]; + glFramebufferTexture2D(GL_FRAMEBUFFER, attachment, GL_TEXTURE_2D, texture.handle, 0); + return texture; +} + +GLuint initRenderBuffer (float width, float height, GLuint component, GLuint attachment) +{ + GLuint handle; + glGenRenderbuffers(1, &handle); + glBindRenderbuffer(GL_RENDERBUFFER, handle); + glRenderbufferStorage(GL_RENDERBUFFER, component, width, height); + glFramebufferRenderbuffer(GL_FRAMEBUFFER, attachment, GL_RENDERBUFFER, handle); + return handle; +} + + +@implementation GLFBO +{ + GLuint _handle; + float _width; + float _height; + NSArray *_color; +} + +-(void)dealloc +{ + glDeleteFramebuffers(1, &_handle); +} + +-(instancetype)init +{ + if ((self = [super init])) { + _color = [[NSArray alloc] init]; + FBOState *state = [[FBOState alloc] initFromContext]; + + glGenFramebuffers(1, &_handle); + + int numColors = 1; + + glBindFramebuffer(GL_FRAMEBUFFER, _handle); + + NSMutableArray *color = [[NSMutableArray alloc] init]; + for(int i=0; i maxFBOSize || + _height < 0 || _height > maxFBOSize) { + RCTLogError(@"Can't resize framebuffer. Invalid dimensions"); + return; + } + _width = width; + _height = height; + + FBOState *state = [[FBOState alloc] initFromContext]; + + for (GLTexture *clr in _color) { + [clr setShapeWithWidth:width withHeight:height]; + } + + glBindFramebuffer(GL_FRAMEBUFFER, _handle); + [self checkStatus]; + + [state restore]; +} + +@end diff --git a/RNGL/GLReactImage.h b/RNGL/GLImage.h similarity index 72% rename from RNGL/GLReactImage.h rename to RNGL/GLImage.h index 8f11d360f498c51e9e596d2e7123e82c01bdf2e4..b30c333533dd3ac88ef09f290b7eb6b4027c6f8c 100644 --- a/RNGL/GLReactImage.h +++ b/RNGL/GLImage.h @@ -1,8 +1,8 @@ #import "RCTBridge.h" -#import "ImageData.h" +#import "GLTexture.h" -@interface GLReactImage: NSObject +@interface GLImage: NSObject @property (nonatomic, copy) NSString *src; @property (nonatomic) UIImage *image; @@ -10,6 +10,6 @@ - (instancetype)initWithBridge:(RCTBridge *)bridge withOnLoad:(void (^)(void))onload NS_DESIGNATED_INITIALIZER; -- (ImageData *) getImageData; +- (GLTexture *) getTexture; @end diff --git a/RNGL/GLReactImage.m b/RNGL/GLImage.m similarity index 79% rename from RNGL/GLReactImage.m rename to RNGL/GLImage.m index 12ef0ab6b20c3d821a5e0c9e72078424511356a3..6d25620b32826e00b5a0352b0b45527d8e3913d6 100644 --- a/RNGL/GLReactImage.m +++ b/RNGL/GLImage.m @@ -1,17 +1,17 @@ -#import "GLReactImage.h" -#import "GLUtils.h" -#import "ImageData.h" +#import "GLImage.h" +#import "GLImageData.h" #import "RCTBridge.h" #import "RCTImageLoader.h" #import "RCTLog.h" +#import "GLTexture.h" - -@implementation GLReactImage +@implementation GLImage { RCTBridge *_bridge; // React's bridge allow to access the imageLoader UIImage *_image; // The currently loaded image (nil if no image fully loaded yet) - ImageData *_data; // Cache of the _data related to this image (computed by getImageData) + GLImageData *_data; // Cache of the data related to this image (computed by getImageData) + GLTexture *_texture; // Cache of the texture void (^_onload)(void); // called everytime an image loads RCTImageLoaderCancellationBlock _loading; // the current loading cancellation function } @@ -23,6 +23,7 @@ _onload = onload; _image = nil; _loading = nil; + _texture = [[GLTexture alloc] init]; } return self; } @@ -34,6 +35,7 @@ _onload = nil; _loading = nil; _bridge = nil; + _texture = nil; } RCT_NOT_IMPLEMENTED(-init) @@ -44,17 +46,23 @@ RCT_NOT_IMPLEMENTED(-init) _data = nil; } -- (ImageData *) getImageData +- (GLTexture *) getTexture { - if (!_data) { - _data = genPixelsWithImage(_image); + if (_image) { + if (!_data) { + _data = genPixelsWithImage(_image); + } + [_texture setPixels:_data]; + } + else { + [_texture setPixelsEmpty]; } - return _data; + return _texture; } - (void)setSrc:(NSString *)src { - if (![src isEqual:_src]) { + if (![src isEqualToString:_src]) { _src = [src copy]; [self reloadImage]; } diff --git a/RNGL/ImageData.h b/RNGL/GLImageData.h similarity index 87% rename from RNGL/ImageData.h rename to RNGL/GLImageData.h index ece94e5783f63a019ab46a89ae827c164091837f..18d0f6f21bde956137f0964117cf3d7ddc6c1772 100644 --- a/RNGL/ImageData.h +++ b/RNGL/GLImageData.h @@ -1,6 +1,6 @@ #import -@interface ImageData: NSObject +@interface GLImageData: NSObject @property (nonatomic) GLubyte *data; @property (nonatomic) int width; diff --git a/RNGL/ImageData.m b/RNGL/GLImageData.m similarity index 83% rename from RNGL/ImageData.m rename to RNGL/GLImageData.m index 74ecf3e44195320a4d8060b7baabf64b1a07cd5c..1d5d1508605f88cdf8ae9c5462a4267459f9e27b 100644 --- a/RNGL/ImageData.m +++ b/RNGL/GLImageData.m @@ -1,8 +1,10 @@ -#import "ImageData.h" +#import "GLImageData.h" + +// TODO: rename to GLImageData // This structure aims to be used in an immutable way -@implementation ImageData +@implementation GLImageData { GLubyte *_data; int _width; diff --git a/RNGL/GLRenderData.h b/RNGL/GLRenderData.h new file mode 100644 index 0000000000000000000000000000000000000000..d1a83019d9a05a1a53cca556a9beea3cbedd990d --- /dev/null +++ b/RNGL/GLRenderData.h @@ -0,0 +1,21 @@ +#import "GLShader.h" + +@interface GLRenderData : NSObject + +@property (nonatomic) GLShader *shader; +@property (nonatomic) NSDictionary *uniforms; +@property (nonatomic) NSDictionary *textures; +@property (nonatomic) NSNumber *width; +@property (nonatomic) NSNumber *height; +@property (nonatomic) int frameIndex; +@property (nonatomic) NSArray *children; + +-(instancetype) initWithShader: (GLShader *)shader + withUniforms:(NSDictionary *)uniforms + withTextures: (NSDictionary *)textures + withWidth: (NSNumber *)width + withHeight: (NSNumber *)height + withFrameIndex: (int)frameIndex + withChildren: (NSArray *)children; + +@end diff --git a/RNGL/GLRenderData.m b/RNGL/GLRenderData.m new file mode 100644 index 0000000000000000000000000000000000000000..28d6550cc92c0ad3a95b9fd58d31dc4a2a73e3f6 --- /dev/null +++ b/RNGL/GLRenderData.m @@ -0,0 +1,27 @@ +#include "GLRenderData.h" + +@implementation GLRenderData + + +-(instancetype) initWithShader: (GLShader *)shader + withUniforms:(NSDictionary *)uniforms + withTextures: (NSDictionary *)textures + withWidth: (NSNumber *)width + withHeight: (NSNumber *)height + withFrameIndex: (int)frameIndex + withChildren: (NSArray *)children +{ + + if ((self = [super init])) { + self.shader = shader; + self.uniforms = uniforms; + self.textures = textures; + self.width = width; + self.height = height; + self.frameIndex = frameIndex; + self.children = children; + } + return self; +} + +@end \ No newline at end of file diff --git a/RNGL/GLShader.m b/RNGL/GLShader.m index 65c99d0424730e2c051f68545b34c0e0538248a3..1dd692e0cae98adf145ff13f292f90828104b15a 100644 --- a/RNGL/GLShader.m +++ b/RNGL/GLShader.m @@ -3,9 +3,31 @@ #import "RCTBridgeModule.h" #import "RCTLog.h" #import "RCTConvert.h" -#import "GLUtils.h" #import "GLShader.h" +GLuint compileShader (NSString* shaderName, NSString* shaderString, GLenum shaderType) { + + GLuint shaderHandle = glCreateShader(shaderType); + + const char * shaderStringUTF8 = [shaderString UTF8String]; + int shaderStringLength = (int) [shaderString length]; + glShaderSource(shaderHandle, 1, &shaderStringUTF8, &shaderStringLength); + + glCompileShader(shaderHandle); + + GLint compileSuccess; + glGetShaderiv(shaderHandle, GL_COMPILE_STATUS, &compileSuccess); + if (compileSuccess == GL_FALSE) { + GLchar messages[256]; + glGetShaderInfoLog(shaderHandle, sizeof(messages), 0, &messages[0]); + NSString *messageString = [NSString stringWithUTF8String:messages]; + RCTLogError(@"Shader '%@' failed to compile: %@", shaderName, messageString); + return -1; + } + + return shaderHandle; +} + /** * a GLShader represents the atomic component of GL React Native. * It currently statically holds a program that renders 2 static triangles over the full viewport (2D) diff --git a/RNGL/GLShadersRegistry.h b/RNGL/GLShadersRegistry.h index 19673dd80a73e415178b42e5e57348fce92e87b7..5002aba9d0226760470c0fa414b0654d18d3d044 100644 --- a/RNGL/GLShadersRegistry.h +++ b/RNGL/GLShadersRegistry.h @@ -1,6 +1,7 @@ #import #import "RCTBridgeModule.h" #import "GLShader.h" +#import "GLFBO.h" @interface GLShadersRegistry : NSObject @@ -8,7 +9,11 @@ /** * Get the global shader for a given id. */ -+ (GLShader*) getShader: (NSNumber *)ctxid; ++ (GLShader*) getShader: (NSNumber *)id; + ++ (GLFBO*) getFBO: (NSNumber *)id; + ++ (EAGLContext *) getContext; @property NSMutableDictionary *shaders; @end diff --git a/RNGL/GLShadersRegistry.m b/RNGL/GLShadersRegistry.m index 3eb7007f145cbdc02244176ff88081a92200910b..101899011d67308ceccb7884abfb5839274992dd 100644 --- a/RNGL/GLShadersRegistry.m +++ b/RNGL/GLShadersRegistry.m @@ -5,22 +5,36 @@ #import "RCTLog.h" #import "GLShadersRegistry.h" +// FIXME: current context and fbos live here... this should be global somewhere else. @implementation GLShadersRegistry { NSMutableDictionary *_shaders; EAGLContext *_context; + NSMutableDictionary *_fbos; } GLShadersRegistry *GLShadersRegistry_instance; // FIXME is that the proper way to do singleton? RCT_EXPORT_MODULE(); -+ (GLShader*) getShader: (NSNumber *)ctxid ++ (GLShader*) getShader: (NSNumber *)id { - return [GLShadersRegistry_instance shaders][ctxid]; + return [GLShadersRegistry_instance getShader:id]; } ++ (GLFBO *) getFBO: (NSNumber *)id +{ + return [GLShadersRegistry_instance getFBO:id]; +} + ++ (EAGLContext *) getContext +{ + return [GLShadersRegistry_instance getContext]; +} + +// methods + - (instancetype)init { self = [super init]; @@ -30,15 +44,37 @@ RCT_EXPORT_MODULE(); RCTLogError(@"Failed to initialize OpenGLES 2.0 context"); } _shaders = @{}.mutableCopy; + _fbos = @{}.mutableCopy; GLShadersRegistry_instance = self; } return self; } +- (GLShader *) getShader: (NSNumber *)id +{ + return _shaders[id]; +} + +- (GLFBO *) getFBO: (NSNumber *)id +{ + GLFBO *fbo = _fbos[id]; + if (!fbo) { + fbo = [[GLFBO alloc] init]; + _fbos[id] = fbo; + } + return fbo; +} + +- (EAGLContext *) getContext +{ + return _context; +} + static NSString* fullViewportVert = @"attribute vec2 position;varying vec2 uv;void main() {gl_Position = vec4(position,0.0,1.0);uv = vec2(0.5, 0.5) * (position+vec2(1.0, 1.0));}"; -RCT_EXPORT_METHOD(register:(nonnull NSNumber *)id withConfig:(NSDictionary *)config withName:(NSString *)name) { +RCT_EXPORT_METHOD(register:(nonnull NSNumber *)id withConfig:(NSDictionary *)config) { NSString *frag = [RCTConvert NSString:config[@"frag"]]; + NSString *name = [RCTConvert NSString:config[@"name"]]; if (!frag) { RCTLogError(@"Shader '%@': missing frag field", name); return; diff --git a/RNGL/GLTexture.h b/RNGL/GLTexture.h index 87417cbae6bfe9ee2f25a62ad01940b420142724..7837b19e90c639f52c489f75458b708c8b18de9b 100644 --- a/RNGL/GLTexture.h +++ b/RNGL/GLTexture.h @@ -1,15 +1,21 @@ #import #import "RCTBridge.h" -#import "ImageData.h" +#import "GLImageData.h" + +GLImageData* genPixelsWithImage (UIImage *image); @interface GLTexture: NSObject @property EAGLContext *context; +@property GLuint handle; - (instancetype)init; - (int)bind: (int)unit; +- (void)bind; + +- (void)setShapeWithWidth:(float)width withHeight:(float)height; -- (void)setPixels: (ImageData *)data; +- (void)setPixels: (GLImageData *)data; - (void)setPixelsEmpty; - (void)setPixelsRandom: (int)width withHeight:(int)height; - (void)setPixelsWithImage: (UIImage *)image; diff --git a/RNGL/GLTexture.m b/RNGL/GLTexture.m index 6d7d8882dbcae3ef590520659eab390710071b3b..9de818c3751a61896fb7df87bacfa20f183e9adf 100644 --- a/RNGL/GLTexture.m +++ b/RNGL/GLTexture.m @@ -1,15 +1,83 @@ #import "GLTexture.h" -#import "GLUtils.h" #import "RCTLog.h" +GLImageData* genPixelsEmpty (int width, int height) +{ + GLubyte* data = (GLubyte *) malloc(width*height*4*sizeof(GLubyte)); + for (int i = 0; i < width * height * 4; i+=4) { + data[i] = data[i+1] = data[i+2] = 0; + data[i+3] = 0; + } + return [[GLImageData alloc] initWithData:data withWidth:width withHeight:height]; +} + +GLImageData* genPixelsRandom (int width, int height) +{ + GLubyte* data = (GLubyte *) malloc(width*height*4*sizeof(GLubyte)); + for (int i = 0; i < width * height * 4; i+=4) { + data[i] = rand() % 255; + data[i+1] = rand() % 255; + data[i+2] = rand() % 255; + data[i+3] = 255; + } + return [[GLImageData alloc] initWithData:data withWidth:width withHeight:height]; +} + +GLImageData* genPixelsWithImage (UIImage *image) +{ + int width = image.size.width; + int height = image.size.height; + if (width == 0 || height == 0) { + RCTLogError(@"The image must be loaded in setPixelsWithImage call"); + return nil; + } + GLubyte* data = malloc(width * height * 4); + CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); + CGContextRef ctx = CGBitmapContextCreate(data, width, height, 8, width * 4, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big); + if (ctx == NULL) { + RCTLogError(@"unable to create the bitmap context"); + CGColorSpaceRelease(colorSpace); + free(data); + return nil; + } + CGAffineTransform flipVertical = CGAffineTransformMake(1, 0, 0, -1, 0, height); + CGContextConcatCTM(ctx, flipVertical); + + CGRect rect = CGRectMake(0.0, 0.0, width, height); + CGContextClearRect(ctx, rect); + CGContextDrawImage(ctx, rect, image.CGImage); + CGColorSpaceRelease(colorSpace); + CGContextRelease(ctx); + return [[GLImageData alloc] initWithData:data withWidth:width withHeight:height]; +} + +GLImageData* genPixelsWithView (UIView *view) +{ + int width = view.bounds.size.width; + int height = view.bounds.size.height; + GLubyte *data = (GLubyte *)malloc(4 * width * height); + CGColorSpaceRef colourSpace = CGColorSpaceCreateDeviceRGB(); + CGContextRef ctx = CGBitmapContextCreate(data, width, height, 8, 4 * width, colourSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big); + CGColorSpaceRelease(colourSpace); + CGContextClearRect(ctx, view.bounds); + [view.layer renderInContext:ctx]; + CGContextRelease(ctx); + return [[GLImageData alloc] initWithData:data withWidth:width withHeight:height]; +} + @implementation GLTexture { - GLuint handle; // The identifier of the gl texture - ImageData* dataCurrentlyUploaded; // The last set data (cache) + GLuint _handle; // The identifier of the gl texture + GLImageData* dataCurrentlyUploaded; // The last set data (cache) } +GLImageData *EMPTY_PIXELS; + - (instancetype)init { + if (!EMPTY_PIXELS) { + EMPTY_PIXELS = genPixelsEmpty(2, 2); + } self = [super init]; if (self) { [self makeTexture]; @@ -19,67 +87,68 @@ - (void)dealloc { - glDeleteTextures(1, &handle); + glDeleteTextures(1, &_handle); dataCurrentlyUploaded = nil; } - (void) makeTexture { - glGenTextures(1, &handle); - glBindTexture(GL_TEXTURE_2D, handle); + glGenTextures(1, &_handle); + glBindTexture(GL_TEXTURE_2D, _handle); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); } -- (bool) ensureContext -{ - if (![EAGLContext setCurrentContext:_context]) { - RCTLogError(@"Failed to set current OpenGL context"); - return false; - } - return true; -} - - (int)bind: (int)unit { glActiveTexture(GL_TEXTURE0 + unit); - glBindTexture(GL_TEXTURE_2D, handle); + glBindTexture(GL_TEXTURE_2D, _handle); return unit; } -- (void)setPixels: (ImageData *)data +- (void)bind +{ + glBindTexture(GL_TEXTURE_2D, _handle); +} + +- (void)setShapeWithWidth:(float)width withHeight:(float)height +{ + [self bind]; + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); +} + +- (void)setPixels: (GLImageData *)data { if (data != dataCurrentlyUploaded) { dataCurrentlyUploaded = data; - glBindTexture(GL_TEXTURE_2D, handle); + [self bind]; glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, data.width, data.height, 0, GL_RGBA, GL_UNSIGNED_BYTE, data.data); } } - (void)setPixelsEmpty { - ImageData* data = genPixelsEmpty(2, 2); - [self setPixels:data]; + [self setPixels:EMPTY_PIXELS]; } - (void)setPixelsRandom: (int)width withHeight:(int)height // for testing { - ImageData* data = genPixelsRandom(width, height); + GLImageData* data = genPixelsRandom(width, height); [self setPixels:data]; } - (void)setPixelsWithImage: (UIImage *)image { - ImageData *data = genPixelsWithImage(image); + GLImageData *data = genPixelsWithImage(image); if (!data) return; [self setPixels:data]; } - (void)setPixelsWithView: (UIView *)view { - ImageData *data = genPixelsWithView(view); + GLImageData *data = genPixelsWithView(view); [self setPixels:data]; } diff --git a/RNGL/GLUtils.h b/RNGL/GLUtils.h deleted file mode 100644 index dec5c071e6314d995a19b44ada404353df3c4c4c..0000000000000000000000000000000000000000 --- a/RNGL/GLUtils.h +++ /dev/null @@ -1,9 +0,0 @@ -#import -#import "ImageData.h" - -GLuint compileShader (NSString *shaderName, NSString *shaderString, GLenum shaderType); - -ImageData* genPixelsEmpty (int width, int height); -ImageData* genPixelsRandom (int width, int height); -ImageData* genPixelsWithImage (UIImage *image); -ImageData* genPixelsWithView (UIView *view); \ No newline at end of file diff --git a/RNGL/GLUtils.m b/RNGL/GLUtils.m deleted file mode 100644 index ed8a00f3654a2db103020773f5c9dd3816f96504..0000000000000000000000000000000000000000 --- a/RNGL/GLUtils.m +++ /dev/null @@ -1,92 +0,0 @@ - -#import "GLUtils.h" -#import "RCTLog.h" - -GLuint compileShader (NSString* shaderName, NSString* shaderString, GLenum shaderType) { - - GLuint shaderHandle = glCreateShader(shaderType); - - const char * shaderStringUTF8 = [shaderString UTF8String]; - int shaderStringLength = (int) [shaderString length]; - glShaderSource(shaderHandle, 1, &shaderStringUTF8, &shaderStringLength); - - glCompileShader(shaderHandle); - - GLint compileSuccess; - glGetShaderiv(shaderHandle, GL_COMPILE_STATUS, &compileSuccess); - if (compileSuccess == GL_FALSE) { - GLchar messages[256]; - glGetShaderInfoLog(shaderHandle, sizeof(messages), 0, &messages[0]); - NSString *messageString = [NSString stringWithUTF8String:messages]; - RCTLogError(@"Shader '%@' failed to compile: %@", shaderName, messageString); - return -1; - } - - return shaderHandle; -} - - - -ImageData* genPixelsEmpty (int width, int height) -{ - GLubyte* data = (GLubyte *) malloc(width*height*4*sizeof(GLubyte)); - for (int i = 0; i < width * height * 4; i+=4) { - data[i] = data[i+1] = data[i+2] = 0; - data[i+3] = 0; - } - return [[ImageData alloc] initWithData:data withWidth:width withHeight:height]; -} - -ImageData* genPixelsRandom (int width, int height) -{ - GLubyte* data = (GLubyte *) malloc(width*height*4*sizeof(GLubyte)); - for (int i = 0; i < width * height * 4; i+=4) { - data[i] = rand() % 255; - data[i+1] = rand() % 255; - data[i+2] = rand() % 255; - data[i+3] = 255; - } - return [[ImageData alloc] initWithData:data withWidth:width withHeight:height]; -} - -ImageData* genPixelsWithImage (UIImage *image) -{ - int width = image.size.width; - int height = image.size.height; - if (width == 0 || height == 0) { - RCTLogError(@"The image must be loaded in setPixelsWithImage call"); - return nil; - } - GLubyte* data = malloc(width * height * 4); - CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); - CGContextRef ctx = CGBitmapContextCreate(data, width, height, 8, width * 4, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big); - if (ctx == NULL) { - RCTLogError(@"unable to create the bitmap context"); - CGColorSpaceRelease(colorSpace); - free(data); - return nil; - } - CGAffineTransform flipVertical = CGAffineTransformMake(1, 0, 0, -1, 0, height); - CGContextConcatCTM(ctx, flipVertical); - - CGRect rect = CGRectMake(0.0, 0.0, width, height); - CGContextClearRect(ctx, rect); - CGContextDrawImage(ctx, rect, image.CGImage); - CGColorSpaceRelease(colorSpace); - CGContextRelease(ctx); - return [[ImageData alloc] initWithData:data withWidth:width withHeight:height]; -} - -ImageData* genPixelsWithView (UIView *view) -{ - int width = view.bounds.size.width; - int height = view.bounds.size.height; - GLubyte *data = (GLubyte *)malloc(4 * width * height); - CGColorSpaceRef colourSpace = CGColorSpaceCreateDeviceRGB(); - CGContextRef ctx = CGBitmapContextCreate(data, width, height, 8, 4 * width, colourSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big); - CGColorSpaceRelease(colourSpace); - CGContextClearRect(ctx, view.bounds); - [view.layer renderInContext:ctx]; - CGContextRelease(ctx); - return [[ImageData alloc] initWithData:data withWidth:width withHeight:height]; -} \ No newline at end of file diff --git a/RNGL/GLView.h b/RNGL/GLView.h deleted file mode 100644 index d466a4bafc4d24f04766cc3fc67f12ecbd230869..0000000000000000000000000000000000000000 --- a/RNGL/GLView.h +++ /dev/null @@ -1,13 +0,0 @@ -#import - -@interface GLView : GLKView - -@property (nonatomic) NSNumber *shader; -@property (nonatomic) NSDictionary *uniforms; -@property (nonatomic) NSArray *targetUniforms; -@property (nonatomic) BOOL opaque; -@property (nonatomic) NSNumber *targetIncrement; - -- (instancetype)initWithBridge:(RCTBridge *)bridge; - -@end diff --git a/RNGL/GLView.m b/RNGL/GLView.m deleted file mode 100644 index 71d42f6d6ca2bcbe1c1fbca8e7237d1ba3862795..0000000000000000000000000000000000000000 --- a/RNGL/GLView.m +++ /dev/null @@ -1,234 +0,0 @@ - -#import "RCTBridge.h" -#import "RCTUtils.h" -#import "RCTConvert.h" -#import "RCTLog.h" -#import "GLView.h" -#import "GLUtils.h" -#import "GLShader.h" -#import "GLShadersRegistry.h" -#import "GLTexture.h" -#import "GLReactImage.h" - -@implementation GLView -{ - RCTBridge *_bridge; // bridge is required to instanciate GLReactImage - - GLShader *glShader; // The current GLShader used by the view - NSDictionary *_uniforms; // The current uniforms bound to the shader (name -> value) - NSArray *_targetUniforms; // When using GL.Target, this defines the uniform names to render into - - NSDictionary *_textures; // This allocate the sampler2D uniforms of the shaders (name -> glTexture) - NSDictionary *_textureUnits; // This stores the image unit for a given sampler2D uniform (name -> int) - - NSDictionary *_images; // This caches the currently used images (imageSrc -> GLReactImage) - - BOOL _opaque; // opaque prop (if false, the GLView will become transparent) - - BOOL _deferredRendering; // This flag indicates a render has been deferred to the next frame (when using GL.Target) -} - - -- (instancetype)initWithBridge:(RCTBridge *)bridge -{ - if ((self = [super init])) { - _bridge = bridge; - _images = @{}; - } - return self; -} - -RCT_NOT_IMPLEMENTED(-init) - -- (void)setShader:(NSNumber *)ctxid -{ - glShader = [GLShadersRegistry getShader:ctxid]; - if (!glShader) { - return; // the shader might not have been uploaded yet from the JS (invalid ctxid are checked on JS side to avoid concurrency issues) - } - - [glShader bind]; - - // Cache the textures - NSMutableDictionary *textures = @{}.mutableCopy; - NSMutableDictionary *textureUnits = @{}.mutableCopy; - int unit = 0; - NSDictionary *uniformTypes = [glShader uniformTypes]; - for (NSString *uniformName in [uniformTypes allKeys]) { - GLenum type = [uniformTypes[uniformName] intValue]; - if (type == GL_SAMPLER_2D || type == GL_SAMPLER_CUBE) { - textures[uniformName] = [[GLTexture alloc] init]; - textureUnits[uniformName] = [NSNumber numberWithInt: unit ++]; - } - } - int maxTextureUnits; - glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &maxTextureUnits); - if (unit > maxTextureUnits) { - RCTLogError(@"Maximum number of texture reach. got %i >= max %i", unit, maxTextureUnits); - } - _textures = textures; - _textureUnits = textureUnits; - - [self setContext:glShader.context]; // use the shader's context (currently it is the same for all shaders) - [self setUniforms:_uniforms]; // Ensure uniforms are not set before - [self setNeedsDisplay]; -} - -NSString* srcResource (id res) -{ - NSString *src; - if ([res isKindOfClass:[NSString class]]) { - src = [RCTConvert NSString:res]; - } else { - BOOL isStatic = [RCTConvert BOOL:res[@"isStatic"]]; - src = [RCTConvert NSString:res[@"path"]]; - if (!src || isStatic) src = [RCTConvert NSString:res[@"uri"]]; - } - return src; -} - -- (void)setUniforms:(NSDictionary *)uniforms -{ - /// Diff logic on texture uniforms to manage the _images cache. - - NSMutableSet *currentResources = [[NSMutableSet alloc] init]; - NSMutableDictionary *images = _images.mutableCopy; - - for (NSString *name in [_uniforms allKeys]) { - id uniformValue = _uniforms[name]; - - GLTexture *texture = _textures[name]; - if (texture) { - // Texture uniform - NSString *src = srcResource(uniformValue); - if (!src) { - RCTLogError(@"resource is not valid."); - return; - } - GLReactImage *image = _images[src]; - if (!image) { - image = [[GLReactImage alloc] initWithBridge:_bridge withOnLoad:^{ - [self setNeedsDisplay]; - }]; - images[src] = image; - } - image.src = src; - [currentResources addObject:src]; - } - } - - // remove old resources (that are not anymore used in new uniforms) - NSMutableSet *toDelete = [NSMutableSet setWithArray:[images allKeys]]; - [toDelete minusSet:currentResources]; - for (NSString *src in toDelete) { - GLReactImage *image = images[src]; - image.src = nil; - } - [images removeObjectsForKeys:[toDelete allObjects]]; - - // Finally set the new state and request a rendering. - _images = images; - _uniforms = uniforms; - [self setNeedsDisplay]; -} - -- (void)setTargetIncrement:(NSNumber *)targetIncrement -{ - [self setNeedsDisplay]; -} - -- (void)setTargetUniforms:(NSArray *)targetUniforms -{ - _targetUniforms = targetUniforms; - [self setNeedsDisplay]; -} - -- (void)setOpaque:(BOOL)opaque -{ - _opaque = opaque; - [self setNeedsDisplay]; -} - - -- (void)drawRect:(CGRect)rect -{ - BOOL needsDeferredRendering = _targetUniforms != nil; - if (needsDeferredRendering && !_deferredRendering) { - dispatch_async(dispatch_get_main_queue(), ^{ - _deferredRendering = true; - [self setNeedsDisplay]; - }); - } - else { - [self render:rect]; - _deferredRendering = false; - } -} - -- (void)render:(CGRect)rect -{ - if (!glShader) { - return; - } - - self.layer.opaque = _opaque; - - [glShader bind]; - - // Setting uniforms - for (NSString *name in [_uniforms allKeys]) { - id uniformValue = _uniforms[name]; - - GLTexture *texture = _textures[name]; - if (texture) { - // Texture uniform - int unit = [_textureUnits[name] intValue]; - GLReactImage *image = _images[srcResource(uniformValue)]; - NSNumber *value = [NSNumber numberWithInt: [texture bind:unit]]; - if (image.image) { - [texture setPixels:[image getImageData]]; - } else { - [texture setPixelsEmpty]; - } - [glShader setUniform:name withValue:value]; - - } else { - // Simple uniform - [glShader setUniform:name withValue:uniformValue]; - } - } - - // Handling children rasterisation - if (_targetUniforms) { - int i = 0; - for (NSString *uniformName in _targetUniforms) { - GLTexture *texture = _textures[uniformName]; - if (!texture) { - RCTLogError(@"There is no sampler uniform called '%@' in your shader", uniformName); - return; - } - UIView* view = self.superview.subviews[i]; // We take siblings by index (closely related to the JS code) - int unit = [_textureUnits[uniformName] intValue]; - NSNumber *value = [NSNumber numberWithInt: [texture bind:unit]]; - if (view) { - [texture setPixelsWithView:view]; - } else { - [texture setPixelsEmpty]; - } - [glShader setUniform:uniformName withValue:value]; - i ++; - } - } - - glClear(GL_COLOR_BUFFER_BIT); - glClearColor(0.0, 0.0, 0.0, 0.0); - - CGFloat scale = RCTScreenScale(); - glViewport(0, 0, scale * self.frame.size.width, scale * self.frame.size.height); - glScissor(scale * rect.origin.x, scale * rect.origin.y, scale * rect.size.width, scale * rect.size.height); - glDrawArrays(GL_TRIANGLES, 0, 6); -} - - - -@end \ No newline at end of file diff --git a/RNGL/GLViewManager.h b/RNGL/GLViewManager.h deleted file mode 100644 index 669a35da6325fe339408d6bf7c0494572d6e31e2..0000000000000000000000000000000000000000 --- a/RNGL/GLViewManager.h +++ /dev/null @@ -1,5 +0,0 @@ -#import "RCTViewManager.h" - -@interface GLViewManager : RCTViewManager - -@end diff --git a/RNGL/GLViewManager.m b/RNGL/GLViewManager.m deleted file mode 100644 index 0ce3588fbfac85d15f2817037f536544ebe1eb48..0000000000000000000000000000000000000000 --- a/RNGL/GLViewManager.m +++ /dev/null @@ -1,32 +0,0 @@ -#import "GLViewManager.h" -#import "GLView.h" -#import "RCTLog.h" -#import - -@implementation GLViewManager - -RCT_EXPORT_MODULE(); - -- (instancetype)init -{ - self = [super init]; - if (self) { - } - return self; -} - -RCT_EXPORT_VIEW_PROPERTY(uniforms, NSDictionary); -RCT_EXPORT_VIEW_PROPERTY(shader, NSNumber); -RCT_EXPORT_VIEW_PROPERTY(targetUniforms, NSArray); -RCT_EXPORT_VIEW_PROPERTY(opaque, BOOL); -RCT_EXPORT_VIEW_PROPERTY(targetIncrement, NSNumber); - -- (UIView *)view -{ - GLView * v; - v = [[GLView alloc] initWithBridge:self.bridge]; - return v; - -} - -@end \ No newline at end of file diff --git a/RNGL/RCTConvert+GLData.h b/RNGL/RCTConvert+GLData.h new file mode 100644 index 0000000000000000000000000000000000000000..9a74b5454d853b50429650dec9f978d27a252022 --- /dev/null +++ b/RNGL/RCTConvert+GLData.h @@ -0,0 +1,8 @@ +#import "RCTConvert.h" +#import "GLData.h" + +@interface RCTConvert (GLData) + ++ (GLData *)GLData:(id)json; + +@end diff --git a/RNGL/RCTConvert+GLData.m b/RNGL/RCTConvert+GLData.m new file mode 100644 index 0000000000000000000000000000000000000000..3172cb7917ece6da1f3053ef21be494c6eec4ea3 --- /dev/null +++ b/RNGL/RCTConvert+GLData.m @@ -0,0 +1,28 @@ +#import "RCTConvert+GLData.h" + +@implementation RCTConvert (GLData) + ++ (GLData *)GLData:(id)json +{ + json = [self NSDictionary:json]; + + NSNumber *shader = [self NSNumber:json[@"shader"]]; + NSDictionary *uniforms = [self NSDictionary:json[@"uniforms"]]; + NSNumber *width = [self NSNumber:json[@"width"]]; + NSNumber *height = [self NSNumber:json[@"height"]]; + NSArray *childrenJSON = [self NSArray: json[@"children"]]; + NSMutableArray *children = [NSMutableArray array]; + + for (NSObject *childJSON in childrenJSON) { + GLData *child = [self GLData:childJSON]; + [children addObject:child]; + } + + return [[GLData alloc] initWithShader: shader + withUniforms: uniforms + withWidth: width + withHeight: height + withChildren: children]; +} + +@end diff --git a/index.js b/index.js deleted file mode 100644 index b7d61a8880a848573217fab63fadf733fa02f95f..0000000000000000000000000000000000000000 --- a/index.js +++ /dev/null @@ -1,124 +0,0 @@ -const invariant = require("invariant"); -const React = require("react-native"); -const { - NativeModules: { GLShadersRegistry }, - requireNativeComponent, - Component, - PropTypes, - View, -} = React; - -let _uid = 1; - -const Shaders = { - create: function (obj) { - invariant(typeof obj === "object", "config must be an object"); - const result = {}; - for (let key in obj) { - const shader = obj[key]; - invariant(typeof shader === "object" && typeof shader.frag === "string", - "invalid shader given to Shaders.create(). A valid shader is a { frag: String }"); - const id = _uid ++; - GLShadersRegistry.register(id, shader, key); - result[key] = id; - } - return result; - }, - exists: function (id) { - return typeof id === "number" && id >= 1 && id < _uid; - } -}; - -class Target extends Component { - render () { - invariant( - false, - "GL.Target elements are for GL.View configuration only and should not be rendered" - ); - } -} -Target.displayName = "GL.Target"; -Target.propTypes = { - children: PropTypes.any.isRequired, - uniform: PropTypes.string.isRequired -}; - -const GLViewNative = requireNativeComponent("GLView", GLView); -class GLView extends Component { - - constructor (props, context) { - super(props, context); - this._targetIncrement = 0; // This is a current workaround to force the refresh of targets - } - - setNativeProps (props) { - this.refs.native.setNativeProps(props); - } - - render() { - const props = this.props; - const { style, width, height, children, shader } = props; - - invariant(Shaders.exists(shader), "Shader #%s does not exists", shader); - - const nativeStyle = { - width: width, - height: height, - ...style - }; - - if (children) { - const parentStyle = { - position: "relative", - width: width, - height: height, - overflow: "hidden" - }; - const childrenStyle = { - position: "absolute", - top: 0, - left: 0, - width: width, - height: height - }; - - const targetUniforms = []; - const targets = React.Children.map(children, child => { - invariant(child.type === Target, "GL.View can only contains children of type GL.Target. Got '%s'", child.type && child.type.displayName || child); - const uniform = child.props.uniform; - targetUniforms.push(uniform); - return {child.props.children}; - }); - return - {targets} - - ; - } - else { - return ; - } - } -} -GLView.displayName = "GL.View"; -GLView.propTypes = { - shader: PropTypes.number.isRequired, - width: PropTypes.number.isRequired, - height: PropTypes.number.isRequired, - uniforms: PropTypes.object, - opaque: PropTypes.bool -}; -GLView.defaultProps = { - opaque: true -}; - -module.exports = { - View: GLView, - Target, - Shaders -}; diff --git a/package.json b/package.json index 7cdc1a837c696b15b4c3a3089bce7d7778fcce42..78671fc55d584209bcd773eb63ef596ad3a42e8f 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "gl-react-native", "version": "0.0.1", "description": "OpenGL bindings for react-native to implement complex effects over images and components, in VDOM descriptive paradigm", - "main": "index.js", + "main": "src/index.js", "repository": { "type": "git", "url": "github.com:ProjectSeptemberInc/gl-react-native.git" @@ -20,10 +20,11 @@ }, "dependencies": { "invariant": "^2.1.0", - "react-native": "^0.9.0" + "react-native": "^0.9.0", + "gl-react-core": "git+ssh://git@github.com:ProjectSeptemberInc/gl-react-core.git" }, "devDependencies": { - "eslint": "^1.1.0", + "eslint": "^1.2.1", "eslint-plugin-react": "^3.2.3" } } diff --git a/src/Component.js b/src/Component.js new file mode 100644 index 0000000000000000000000000000000000000000..89ac8c68b06536013eb28a5db73b96dd1a02c49e --- /dev/null +++ b/src/Component.js @@ -0,0 +1,3 @@ +const React = require("react-native"); +const {createComponent} = require("gl-react-core"); +module.exports = createComponent(React); diff --git a/src/Shaders.js b/src/Shaders.js new file mode 100644 index 0000000000000000000000000000000000000000..88b1d8b74c71b256135a8c58271fc69b43b9d1a1 --- /dev/null +++ b/src/Shaders.js @@ -0,0 +1,6 @@ +const {createShaders} = require("gl-react-core"); +const { NativeModules: { GLShadersRegistry } } = require("react-native"); + +module.exports = createShaders(function (id, shader) { + GLShadersRegistry.register(id, shader); +}); diff --git a/src/Target.js b/src/Target.js new file mode 100644 index 0000000000000000000000000000000000000000..c571a17bb25da9b77edf7aac0aee614b2413aa92 --- /dev/null +++ b/src/Target.js @@ -0,0 +1,3 @@ +const {createTarget} = require("gl-react-core"); +const React = require("react-native"); +module.exports = createTarget(React); diff --git a/src/View.js b/src/View.js new file mode 100644 index 0000000000000000000000000000000000000000..e635ad9772addde34aec6ff4bfccf2a3c648ef93 --- /dev/null +++ b/src/View.js @@ -0,0 +1,61 @@ +const {createView} = require("gl-react-core"); +const React = require("react-native"); +const Shaders = require("./Shaders"); +const Target = require("./Target"); +const Component = require("./Component"); + +const { + requireNativeComponent, + View, +} = React; + +const GLCanvas = requireNativeComponent("GLCanvas", null); + +const renderVtarget = function (style, width, height, id, children) { + const childrenStyle = { + position: "absolute", + top: 0, + left: 0, + width: width, + height: height, + overflow: "hidden" + }; + return {children}; +}; + +const renderVGL = function (props, width, height, data, nbTargets) { + return ; +}; + +const renderVcontainer = function (style, width, height, targets, renderer) { + if (targets) { + const parentStyle = { + ...style, + position: "relative", + width: width, + height: height, + overflow: "hidden" + }; + return + {targets} + {renderer} + ; + } + else { + return renderer; + } +}; + +const GLView = createView(React, Shaders, Target, Component, renderVcontainer, renderVtarget, renderVGL); + +GLView.prototype.setNativeProps = function (props) { + this.refs.native.setNativeProps(props); +}; + +module.exports = GLView; diff --git a/src/index.js b/src/index.js new file mode 100644 index 0000000000000000000000000000000000000000..31468fd08d38b3a43f764792ceab5554230a5fa4 --- /dev/null +++ b/src/index.js @@ -0,0 +1,11 @@ +const Shaders = require("./Shaders"); +const View = require("./View"); +const Target = require("./Target"); +const Component = require("./Component"); + +module.exports = { + Shaders, + View, + Target, + Component +};