diff --git a/bin/brass.pill b/bin/brass.pill index c4542539a..85eba8b72 100644 --- a/bin/brass.pill +++ b/bin/brass.pill @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8f6e93cb3ee5fcb0970851bd10d2d2a640ff968292d147c35385623b86570296 -size 6662042 +oid sha256:5debf91880c73d052429ca487555aa60aa2ee4f173c9f059e30b61372689910e +size 7118127 diff --git a/bin/ivory.pill b/bin/ivory.pill index 858f27e1c..6798650b3 100644 --- a/bin/ivory.pill +++ b/bin/ivory.pill @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:99de9b440bbcb2a88dff3b2312a804dd7987e9d0bf2f9fc32ae2a1e4c0cbc005 -size 4610076 +oid sha256:e2730c39b096cae303b50c81145b5f700f1f8522cf7340a3b0654fc0d7489e6c +size 4687851 diff --git a/bin/solid.pill b/bin/solid.pill index d92252eb8..f8082e1f9 100644 --- a/bin/solid.pill +++ b/bin/solid.pill @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fbd9d5d8c7f57c589a9294368fffe2d768c60913e1c33fb03a266265d5cccec4 -size 9486186 +oid sha256:43982dec302e0b974af7a818110ae4a905ee74076f5410d025ee96de8fc70fcd +size 9565704 diff --git a/nix/crossdeps.nix b/nix/crossdeps.nix index af2b8b9c5..df2829fd9 100644 --- a/nix/crossdeps.nix +++ b/nix/crossdeps.nix @@ -1,13 +1,15 @@ crossenv: rec { - argon2 = import ./deps/argon2/cross.nix { inherit crossenv; }; - murmur3 = import ./deps/murmur3/cross.nix { inherit crossenv; }; - uv = import ./deps/uv/cross.nix { inherit crossenv; }; - ed25519 = import ./deps/ed25519/cross.nix { inherit crossenv; }; - sni = import ./deps/sni/cross.nix { inherit crossenv; }; - scrypt = import ./deps/scrypt/cross.nix { inherit crossenv; }; - softfloat3 = import ./deps/softfloat3/cross.nix { inherit crossenv; }; - secp256k1 = import ./deps/secp256k1/cross.nix { inherit crossenv; }; - h2o = import ./deps/h2o/cross.nix { inherit crossenv uv; }; + argon2 = import ./deps/argon2/cross.nix { inherit crossenv; }; + murmur3 = import ./deps/murmur3/cross.nix { inherit crossenv; }; + uv = import ./deps/uv/cross.nix { inherit crossenv; }; + ed25519 = import ./deps/ed25519/cross.nix { inherit crossenv; }; + sni = import ./deps/sni/cross.nix { inherit crossenv; }; + scrypt = import ./deps/scrypt/cross.nix { inherit crossenv; }; + softfloat3 = import ./deps/softfloat3/cross.nix { inherit crossenv; }; + secp256k1 = import ./deps/secp256k1/cross.nix { inherit crossenv; }; + h2o = import ./deps/h2o/cross.nix { inherit crossenv uv; }; + ivory-header = import ./deps/ivory-header/cross.nix { inherit crossenv; }; + ca-header = import ./deps/ca-header/cross.nix { inherit crossenv; }; } diff --git a/nix/deps-env.nix b/nix/deps-env.nix index ec773fe79..cd945bceb 100644 --- a/nix/deps-env.nix +++ b/nix/deps-env.nix @@ -20,7 +20,7 @@ let vendor = with deps; - [ argon2 ed25519 h2o murmur3 scrypt secp256k1 sni softfloat3 uv ent ge-additions ]; + [ argon2 ed25519 h2o murmur3 scrypt secp256k1 sni softfloat3 uv ent ge-additions ivory-header ca-header ]; in diff --git a/nix/deps/ca-header/builder.sh b/nix/deps/ca-header/builder.sh new file mode 100755 index 000000000..413a515ec --- /dev/null +++ b/nix/deps/ca-header/builder.sh @@ -0,0 +1,27 @@ +source $stdenv/setup + +set -ex + +cleanup () { + echo "done" +} + +trap cleanup EXIT + + +if ! [ -f "$SSL_CERT_FILE" ]; then + echo "$SSL_CERT_FILE doesn't exist" + exit 1 +fi + +mkdir -p ./include + +cat $SSL_CERT_FILE > include/ca-bundle.crt +xxd -i include/ca-bundle.crt > ca-bundle.h + +mkdir -p $out/include + +mv ca-bundle.h $out/include +rm -rf ./include + +set +x diff --git a/nix/deps/ca-header/cross.nix b/nix/deps/ca-header/cross.nix new file mode 100644 index 000000000..2595eb01a --- /dev/null +++ b/nix/deps/ca-header/cross.nix @@ -0,0 +1,8 @@ +{ crossenv }: + +crossenv.make_derivation rec { + name = "ca-bundle.h"; + builder = ./builder.sh; + native_inputs = with crossenv.nixpkgs; [ cacert xxd ]; + SSL_CERT_FILE = "${crossenv.nixpkgs.cacert}/etc/ssl/certs/ca-bundle.crt"; +} diff --git a/nix/deps/ca-header/default.nix b/nix/deps/ca-header/default.nix new file mode 100644 index 000000000..6e65f1454 --- /dev/null +++ b/nix/deps/ca-header/default.nix @@ -0,0 +1,7 @@ +{ pkgs }: + +pkgs.stdenv.mkDerivation { + name = "ca-bundle.h"; + builder = ./builder.sh; + nativeBuildInputs = with pkgs; [ cacert xxd ]; +} diff --git a/nix/deps/default.nix b/nix/deps/default.nix index 40e15b46b..b14746f1a 100644 --- a/nix/deps/default.nix +++ b/nix/deps/default.nix @@ -1,13 +1,15 @@ { pkgs ? import ../nixpkgs.nix }: rec { - argon2 = import ./argon2 { inherit pkgs; }; - murmur3 = import ./murmur3 { inherit pkgs; }; - uv = import ./uv { inherit pkgs; }; - ed25519 = import ./ed25519 { inherit pkgs; }; - sni = import ./sni { inherit pkgs; }; - scrypt = import ./scrypt { inherit pkgs; }; - softfloat3 = import ./softfloat3 { inherit pkgs; }; - secp256k1 = import ./secp256k1 { inherit pkgs; }; - h2o = import ./h2o { inherit pkgs uv; }; + argon2 = import ./argon2 { inherit pkgs; }; + murmur3 = import ./murmur3 { inherit pkgs; }; + uv = import ./uv { inherit pkgs; }; + ed25519 = import ./ed25519 { inherit pkgs; }; + sni = import ./sni { inherit pkgs; }; + scrypt = import ./scrypt { inherit pkgs; }; + softfloat3 = import ./softfloat3 { inherit pkgs; }; + secp256k1 = import ./secp256k1 { inherit pkgs; }; + h2o = import ./h2o { inherit pkgs uv; }; + ivory-header = import ./ivory-header { inherit pkgs; }; + ca-header = import ./ca-header { inherit pkgs; }; } diff --git a/nix/deps/ivory-header/builder.sh b/nix/deps/ivory-header/builder.sh new file mode 100755 index 000000000..07ee7af98 --- /dev/null +++ b/nix/deps/ivory-header/builder.sh @@ -0,0 +1,41 @@ +source $stdenv/setup + +set -ex + +cleanup () { + echo "done" +} + +trap cleanup EXIT + + +if ! [ -f "$IVORY" ]; then + echo "$IVORY doesn't exist" + exit 1 +fi + +# +# heuristics to confirm the ivory pill is valid +# + +# greater than 10KB +# +if [ $(du -k $IVORY | cut -f1) -gt 10 ]; then + echo "$IVORY is less than 10KB" +fi + +# first 7 bytes != "version" (start of an lfs pointer) +# +if [ "$(cat $(IVORY) | head -c 7)" = "version" ]; then + echo "$IVORY starts with 'version'; it's an LFS pointer" +fi + +cat $IVORY > u3_Ivory.pill +xxd -i u3_Ivory.pill > ivory.h + +mkdir -p $out/include + +mv ivory.h $out/include +rm u3_Ivory.pill + +set +x diff --git a/nix/deps/ivory-header/cross.nix b/nix/deps/ivory-header/cross.nix new file mode 100644 index 000000000..6939a84de --- /dev/null +++ b/nix/deps/ivory-header/cross.nix @@ -0,0 +1,11 @@ +{ + crossenv, + ivory ? ../../../bin/ivory.pill +}: + +crossenv.make_derivation rec { + name = "ivory.h"; + builder = ./builder.sh; + native_inputs = with crossenv.nixpkgs; [ xxd ]; + IVORY = ivory; +} diff --git a/nix/deps/ivory-header/default.nix b/nix/deps/ivory-header/default.nix new file mode 100644 index 000000000..0e461a7ca --- /dev/null +++ b/nix/deps/ivory-header/default.nix @@ -0,0 +1,11 @@ +{ + pkgs, + ivory ? ../../../bin/ivory.pill +}: + +pkgs.stdenv.mkDerivation { + name = "ivory.h"; + builder = ./builder.sh; + nativeBuildInputs = with pkgs; [ xxd ]; + IVORY = ivory; +} diff --git a/nix/pkgs/default.nix b/nix/pkgs/default.nix index 76924d26d..15285186a 100644 --- a/nix/pkgs/default.nix +++ b/nix/pkgs/default.nix @@ -17,7 +17,7 @@ let import ./urbit { inherit pkgs ent debug ge-additions; inherit (deps) argon2 murmur3 uv ed25519 sni scrypt softfloat3; - inherit (deps) secp256k1 h2o; + inherit (deps) secp256k1 h2o ivory-header ca-header; }; urbit = mkUrbit { debug=false; }; diff --git a/nix/pkgs/urbit/default.nix b/nix/pkgs/urbit/default.nix index 4bac93c1f..0e64c5cf1 100644 --- a/nix/pkgs/urbit/default.nix +++ b/nix/pkgs/urbit/default.nix @@ -1,8 +1,7 @@ { pkgs, debug, - ivory ? ../../../bin/ivory.pill, - argon2, ed25519, ent, ge-additions, h2o, murmur3, scrypt, secp256k1, sni, softfloat3, uv + argon2, ed25519, ent, ge-additions, h2o, murmur3, scrypt, secp256k1, sni, softfloat3, uv, ivory-header, ca-header }: let @@ -12,10 +11,10 @@ let deps = with pkgs; - [ curl gmp libsigsegv ncurses openssl zlib lmdb cacert xxd ]; + [ curl gmp libsigsegv ncurses openssl zlib lmdb ]; vendor = - [ argon2 softfloat3 ed25519 ent ge-additions h2o scrypt uv murmur3 secp256k1 sni ]; + [ argon2 softfloat3 ed25519 ent ge-additions h2o scrypt uv murmur3 secp256k1 sni ivory-header ca-header ]; in @@ -31,7 +30,6 @@ pkgs.stdenv.mkDerivation { hardeningDisable = if debug then [ "all" ] else []; CFLAGS = if debug then "-O3 -g -Werror" else "-O3 -Werror"; - IVORY = ivory; MEMORY_DEBUG = debug; CPU_DEBUG = debug; EVENT_TIME_DEBUG = false; diff --git a/nix/pkgs/urbit/release.nix b/nix/pkgs/urbit/release.nix index 7beda08b6..d30514878 100644 --- a/nix/pkgs/urbit/release.nix +++ b/nix/pkgs/urbit/release.nix @@ -4,8 +4,7 @@ ent, name ? "urbit", debug ? false, - ivory ? ../../../bin/ivory.pill, - ge-additions, cacert, xxd + ge-additions }: let @@ -16,7 +15,7 @@ let vendor = with deps; - [ argon2 softfloat3 ed25519 ge-additions h2o scrypt uv murmur3 secp256k1 sni ]; + [ argon2 softfloat3 ed25519 ge-additions h2o scrypt uv murmur3 secp256k1 sni ivory-header ca-header ]; in @@ -27,13 +26,10 @@ env.make_derivation { CPU_DEBUG = debug; EVENT_TIME_DEBUG = false; NCURSES = env.ncurses; - SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; - IVORY = ivory; name = "${name}-${env_name}"; exename = name; src = ../../../pkg/urbit; - native_inputs = [ xxd ]; cross_inputs = crossdeps ++ vendor ++ [ ent ]; builder = ./release.sh; } diff --git a/nix/pkgs/urbit/shell.nix b/nix/pkgs/urbit/shell.nix index 60591b5b9..2c7475c0d 100644 --- a/nix/pkgs/urbit/shell.nix +++ b/nix/pkgs/urbit/shell.nix @@ -12,5 +12,5 @@ import ./default.nix { inherit (tlon) ent ge-additions; inherit (deps) - argon2 ed25519 h2o murmur3 scrypt secp256k1 sni softfloat3 uv; + argon2 ed25519 h2o murmur3 scrypt secp256k1 sni softfloat3 uv ivory-header ca-header; } diff --git a/nix/release.nix b/nix/release.nix index 648d5e6b1..3e563fa91 100644 --- a/nix/release.nix +++ b/nix/release.nix @@ -21,8 +21,7 @@ let urbit = env: import ./pkgs/urbit/release.nix env - { ent = ent env; ge-additions = ge-additions env; cacert = nixpkgs.cacert; - xxd = nixpkgs.xxd; debug = false; name = "urbit"; }; + { ent = ent env; ge-additions = ge-additions env; debug = false; name = "urbit"; }; builds-for-platform = plat: plat.deps // { diff --git a/pkg/arvo/app/azimuth-tracker.hoon b/pkg/arvo/app/azimuth-tracker.hoon index 2ef6e2ee7..fe075797e 100644 --- a/pkg/arvo/app/azimuth-tracker.hoon +++ b/pkg/arvo/app/azimuth-tracker.hoon @@ -299,7 +299,7 @@ =* walk-loop $ ?: (gth number.state number.id.latest-block) ;< now=@da bind:m get-time:stdio - ;< ~ bind:m (wait-effect:stdio (add now ~s10)) + ;< ~ bind:m (wait-effect:stdio (add now ~m5)) (pure:m state) ;< =block bind:m (get-block-by-number url.state number.state) ;< [=new=pending-udiffs new-blocks=(lest ^block)] bind:m diff --git a/pkg/arvo/app/chat/css/index.css b/pkg/arvo/app/chat/css/index.css index 504262bb6..4fd7bd562 100644 Binary files a/pkg/arvo/app/chat/css/index.css and b/pkg/arvo/app/chat/css/index.css differ diff --git a/pkg/arvo/app/chat/js/index.js b/pkg/arvo/app/chat/js/index.js index c50d90959..d72afb114 100644 --- a/pkg/arvo/app/chat/js/index.js +++ b/pkg/arvo/app/chat/js/index.js @@ -1 +1 @@ -!function(e){"function"==typeof define&&define.amd?define("index",e):e()}(function(){"use strict";var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function t(){throw new Error("Dynamic requires are not currently supported by rollup-plugin-commonjs")}function n(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function r(e,t){return e(t={exports:{}},t.exports),t.exports}var i=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable;var o=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,r,o=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s2?n-2:0),i=2;i1?t-1:0),r=1;r2?n-2:0),i=2;i8)throw new Error("warningWithoutStack() currently supports at most 8 arguments.");if(!e){if("undefined"!=typeof console){var a=r.map(function(e){return""+e});a.unshift("Warning: "+t),Function.prototype.apply.call(console.error,console,a)}try{var l=0,o="Warning: "+t.replace(/%s/g,function(){return r[l++]});throw new Error(o)}catch(e){}}},M={};function S(e,t){var n=e.constructor,r=n&&(n.displayName||n.name)||"ReactClass",i=r+"."+t;M[i]||(C(!1,"Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",t,r),M[i]=!0)}var T={isMounted:function(e){return!1},enqueueForceUpdate:function(e,t,n){S(e,"forceUpdate")},enqueueReplaceState:function(e,t,n,r){S(e,"replaceState")},enqueueSetState:function(e,t,n,r){S(e,"setState")}},E={};function P(e,t,n){this.props=e,this.context=t,this.refs=E,this.updater=n||T}Object.freeze(E),P.prototype.isReactComponent={},P.prototype.setState=function(e,t){"object"!=typeof e&&"function"!=typeof e&&null!=e&&x(!1,"setState(...): takes an object of state variables to update or a function which returns an object of state variables."),this.updater.enqueueSetState(this,e,t,"setState")},P.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};var N={isMounted:["isMounted","Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."],replaceState:["replaceState","Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."]},R=function(e,t){Object.defineProperty(P.prototype,e,{get:function(){_(!1,"%s(...) is deprecated in plain JavaScript React classes. %s",t[0],t[1])}})};for(var L in N)N.hasOwnProperty(L)&&R(L,N[L]);function O(){}function D(e,t,n){this.props=e,this.context=t,this.refs=E,this.updater=n||T}O.prototype=P.prototype;var A=D.prototype=new O;A.constructor=D,t(A,P.prototype),A.isPureReactComponent=!0;var I={current:null},U={current:null},j=/^(.*)[\\\/]/,H=1;function z(e){if(null==e)return null;if("number"==typeof e.tag&&C(!1,"Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."),"function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case d:return"ConcurrentMode";case l:return"Fragment";case a:return"Portal";case c:return"Profiler";case s:return"StrictMode";case p:return"Suspense"}if("object"==typeof e)switch(e.$$typeof){case f:return"Context.Consumer";case u:return"Context.Provider";case h:return r=e,i=e.render,o="ForwardRef",g=i.displayName||i.name||"",r.displayName||(""!==g?o+"("+g+")":o);case m:return z(e.type);case v:var t=(n=e)._status===H?n._result:null;if(t)return z(t)}var n,r,i,o,g;return null}var Z={},F=null;function W(e){F=e}Z.getCurrentStack=null,Z.getStackAddendum=function(){var e="";if(F){var t=z(F.type),n=F._owner;e+=function(e,t,n){var r="";if(t){var i=t.fileName,a=i.replace(j,"");if(/^index\./.test(a)){var l=i.match(j);if(l){var o=l[1];o&&(a=o.replace(j,"")+"/"+a)}}r=" (at "+a+":"+t.lineNumber+")"}else n&&(r=" (created by "+n+")");return"\n in "+(e||"Unknown")+r}(t,F._source,n&&z(n.type))}var r=Z.getCurrentStack;return r&&(e+=r()||""),e};var V={ReactCurrentDispatcher:I,ReactCurrentOwner:U,assign:t};t(V,{ReactDebugCurrentFrame:Z,ReactComponentTreeHook:{}});var q=function(e,t){if(!e){for(var n=V.ReactDebugCurrentFrame.getStackAddendum(),r=arguments.length,i=Array(r>2?r-2:0),a=2;a1){for(var u=Array(c),f=0;f.")}return t}(t);if(!ye[n]){ye[n]=!0;var r="";e&&e._owner&&e._owner!==U.current&&(r=" It was passed a child from "+z(e._owner.type)+"."),W(e),q(!1,'Each child in a list should have a unique "key" prop.%s%s See https://fb.me/react-warning-keys for more information.',n,r),W(null)}}}function we(e,t){if("object"==typeof e)if(Array.isArray(e))for(var n=0;n",a=" Did you accidentally export a JSX literal instead of a component?"):s=typeof e,q(!1,"React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",s,a)}var c=J.apply(this,arguments);if(null==c)return c;if(r)for(var u=2;u is not supported and will be removed in a future major release. Did you mean to render instead?")),n.Provider},set:function(e){n.Provider=e}},_currentValue:{get:function(){return n._currentValue},set:function(e){n._currentValue=e}},_currentValue2:{get:function(){return n._currentValue2},set:function(e){n._currentValue2=e}},_threadCount:{get:function(){return n._threadCount},set:function(e){n._threadCount=e}},Consumer:{get:function(){return r||(r=!0,q(!1,"Rendering is not supported and will be removed in a future major release. Did you mean to render instead?")),n.Consumer}}}),n.Consumer=a,n._currentRenderer=null,n._currentRenderer2=null,n},forwardRef:function(e){return null!=e&&e.$$typeof===m?C(!1,"forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):"function"!=typeof e?C(!1,"forwardRef requires a render function but was given %s.",null===e?"null":typeof e):0!==e.length&&2!==e.length&&C(!1,"forwardRef render functions accept exactly two parameters: props and ref. %s",1===e.length?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),null!=e&&(null!=e.defaultProps||null!=e.propTypes)&&C(!1,"forwardRef render functions do not support propTypes or defaultProps. Did you accidentally pass a React component?"),{$$typeof:h,render:e}},lazy:function(e){var t={$$typeof:v,_ctor:e,_status:-1,_result:null},n=void 0,r=void 0;return Object.defineProperties(t,{defaultProps:{configurable:!0,get:function(){return n},set:function(e){q(!1,"React.lazy(...): It is not supported to assign `defaultProps` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),n=e,Object.defineProperty(t,"defaultProps",{enumerable:!0})}},propTypes:{configurable:!0,get:function(){return r},set:function(e){q(!1,"React.lazy(...): It is not supported to assign `propTypes` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),r=e,Object.defineProperty(t,"propTypes",{enumerable:!0})}}}),t},memo:function(e,t){return me(e)||C(!1,"memo: The first argument must be a component. Instead received: %s",null===e?"null":typeof e),{$$typeof:m,type:e,compare:void 0===t?null:t}},useCallback:function(e,t){return ve().useCallback(e,t)},useContext:function(e,t){var n=ve();if(void 0!==t&&q(!1,"useContext() second argument is reserved for future use in React. Passing it is not supported. You passed: %s.%s",t,"number"==typeof t&&Array.isArray(arguments[2])?"\n\nDid you call array.map(useContext)? Calling Hooks inside a loop is not supported. Learn more at https://fb.me/rules-of-hooks":""),void 0!==e._context){var r=e._context;r.Consumer===e?q(!1,"Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be removed in a future major release. Did you mean to call useContext(Context) instead?"):r.Provider===e&&q(!1,"Calling useContext(Context.Provider) is not supported. Did you mean to call useContext(Context) instead?")}return n.useContext(e,t)},useEffect:function(e,t){return ve().useEffect(e,t)},useImperativeHandle:function(e,t,n){return ve().useImperativeHandle(e,t,n)},useDebugValue:function(e,t){return ve().useDebugValue(e,t)},useLayoutEffect:function(e,t){return ve().useLayoutEffect(e,t)},useMemo:function(e,t){return ve().useMemo(e,t)},useReducer:function(e,t,n){return ve().useReducer(e,t,n)},useRef:function(e){return ve().useRef(e)},useState:function(e){return ve().useState(e)},Fragment:l,StrictMode:s,Suspense:p,createElement:_e,cloneElement:function(e,n,r){for(var i=function(e,n,r){null==e&&x(!1,"React.cloneElement(...): The argument must be a React element, but you passed %s.",e);var i=void 0,a=t({},e.props),l=e.key,o=e.ref,s=e._self,c=e._source,u=e._owner;if(null!=n){Q(n)&&(o=n.ref,u=U.current),K(n)&&(l=""+n.key);var f=void 0;for(i in e.type&&e.type.defaultProps&&(f=e.type.defaultProps),n)Y.call(n,i)&&!B.hasOwnProperty(i)&&(void 0===n[i]&&void 0!==f?a[i]=f[i]:a[i]=n[i])}var d=arguments.length-2;if(1===d)a.children=r;else if(d>1){for(var h=Array(d),p=0;p=t){n=e;break}e=e.next}while(e!==r);null===n?n=r:n===r&&(r=s,u()),(t=n.previous).next=n.previous=s,s.next=n,s.previous=t}}function d(){if(-1===l&&null!==r&&1===r.priorityLevel){s=!0;try{do{f()}while(null!==r&&1===r.priorityLevel)}finally{s=!1,null!==r?u():c=!1}}}function h(e){s=!0;var t=i;i=e;try{if(e)for(;null!==r;){var a=n.unstable_now();if(!(r.expirationTime<=a))break;do{f()}while(null!==r&&r.expirationTime<=a)}else if(null!==r)do{f()}while(null!==r&&!M())}finally{s=!1,i=t,null!==r?u():c=!1,d()}}var p,m,v=Date,g="function"==typeof setTimeout?setTimeout:void 0,b="function"==typeof clearTimeout?clearTimeout:void 0,y="function"==typeof requestAnimationFrame?requestAnimationFrame:void 0,k="function"==typeof cancelAnimationFrame?cancelAnimationFrame:void 0;function w(e){p=y(function(t){b(m),e(t)}),m=g(function(){k(p),e(n.unstable_now())},100)}if("object"==typeof performance&&"function"==typeof performance.now){var x=performance;n.unstable_now=function(){return x.now()}}else n.unstable_now=function(){return v.now()};var _,C,M,S=null;if("undefined"!=typeof window?S=window:void 0!==e&&(S=e),S&&S._schedMock){var T=S._schedMock;_=T[0],C=T[1],M=T[2],n.unstable_now=T[3]}else if("undefined"==typeof window||"function"!=typeof MessageChannel){var E=null,P=function(e){if(null!==E)try{E(e)}finally{E=null}};_=function(e){null!==E?setTimeout(_,0,e):(E=e,setTimeout(P,0,!1))},C=function(){E=null},M=function(){return!1}}else{"undefined"!=typeof console&&("function"!=typeof y&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!=typeof k&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"));var N=null,R=!1,L=-1,O=!1,D=!1,A=0,I=33,U=33;M=function(){return A<=n.unstable_now()};var j=new MessageChannel,H=j.port2;j.port1.onmessage=function(){R=!1;var e=N,t=L;N=null,L=-1;var r=n.unstable_now(),i=!1;if(0>=A-r){if(!(-1!==t&&t<=r))return O||(O=!0,w(z)),N=e,void(L=t);i=!0}if(null!==e){D=!0;try{e(i)}finally{D=!1}}};var z=function(e){if(null!==N){w(z);var t=e-A+U;tt&&(t=8),U=tt?H.postMessage(void 0):O||(O=!0,w(z))},C=function(){N=null,R=!1,L=-1}}n.unstable_ImmediatePriority=1,n.unstable_UserBlockingPriority=2,n.unstable_NormalPriority=3,n.unstable_IdlePriority=5,n.unstable_LowPriority=4,n.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var r=a,i=l;a=e,l=n.unstable_now();try{return t()}finally{a=r,l=i,d()}},n.unstable_next=function(e){switch(a){case 1:case 2:case 3:var t=3;break;default:t=a}var r=a,i=l;a=t,l=n.unstable_now();try{return e()}finally{a=r,l=i,d()}},n.unstable_scheduleCallback=function(e,t){var i=-1!==l?l:n.unstable_now();if("object"==typeof t&&null!==t&&"number"==typeof t.timeout)t=i+t.timeout;else switch(a){case 1:t=i+-1;break;case 2:t=i+250;break;case 5:t=i+1073741823;break;case 4:t=i+1e4;break;default:t=i+5e3}if(e={callback:e,priorityLevel:a,expirationTime:t,next:null,previous:null},null===r)r=e.next=e.previous=e,u();else{i=null;var o=r;do{if(o.expirationTime>t){i=o;break}o=o.next}while(o!==r);null===i?i=r:i===r&&(r=e,u()),(t=i.previous).next=i.previous=e,e.next=i,e.previous=t}return e},n.unstable_cancelCallback=function(e){var t=e.next;if(null!==t){if(t===e)r=null;else{e===r&&(r=t);var n=e.previous;n.next=t,t.previous=n}e.next=e.previous=null}},n.unstable_wrapCallback=function(e){var t=a;return function(){var r=a,i=l;a=t,l=n.unstable_now();try{return e.apply(this,arguments)}finally{a=r,l=i,d()}}},n.unstable_getCurrentPriorityLevel=function(){return a},n.unstable_shouldYield=function(){return!i&&(null!==r&&r.expirationTime=a){u=f;break}f=f.next}while(f!==h);null===u?u=h:u===h&&(h=c,x());var d=u.previous;d.next=u.previous=c,c.next=u,c.previous=d}}}function C(){if(-1===g&&null!==h&&h.priorityLevel===r){y=!0;try{do{_()}while(null!==h&&h.priorityLevel===r)}finally{y=!1,null!==h?x():k=!1}}}function M(e){y=!0;var r=p;p=e;try{if(e)for(;!(null===h||t&&m);){var i=n.unstable_now();if(!(h.expirationTime<=i))break;do{_()}while(null!==h&&h.expirationTime<=i&&(!t||!m))}else if(null!==h)do{if(t&&m)break;_()}while(null!==h&&!N())}finally{y=!1,p=r,null!==h?x():k=!1,C()}}var S,T,E,P,N,R=Date,L="function"==typeof setTimeout?setTimeout:void 0,O="function"==typeof clearTimeout?clearTimeout:void 0,D="function"==typeof requestAnimationFrame?requestAnimationFrame:void 0,A="function"==typeof cancelAnimationFrame?cancelAnimationFrame:void 0,I=function(e){S=D(function(t){O(T),e(t)}),T=L(function(){A(S),e(n.unstable_now())},100)};if(w){var U=performance;n.unstable_now=function(){return U.now()}}else n.unstable_now=function(){return R.now()};var j=null;if("undefined"!=typeof window?j=window:void 0!==e&&(j=e),j&&j._schedMock){var H=j._schedMock;E=H[0],P=H[1],N=H[2],n.unstable_now=H[3]}else if("undefined"==typeof window||"function"!=typeof MessageChannel){var z=null,Z=function(e){if(null!==z)try{z(e)}finally{z=null}};E=function(e,t){null!==z?setTimeout(E,0,e):(z=e,setTimeout(Z,0,!1))},P=function(){z=null},N=function(){return!1}}else{"undefined"!=typeof console&&("function"!=typeof D&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!=typeof A&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"));var F=null,W=!1,V=-1,q=!1,Y=!1,B=0,$=33,G=33;N=function(){return B<=n.unstable_now()};var Q=new MessageChannel,K=Q.port2;Q.port1.onmessage=function(e){W=!1;var t=F,r=V;F=null,V=-1;var i=n.unstable_now(),a=!1;if(B-i<=0){if(!(-1!==r&&r<=i))return q||(q=!0,I(X)),F=t,void(V=r);a=!0}if(null!==t){Y=!0;try{t(a)}finally{Y=!1}}};var X=function(e){if(null!==F){I(X);var t=e-B+G;tp){y=k;break}k=k.next}while(k!==h);null===y?y=h:y===h&&(h=b,x());var w=y.previous;w.next=y.previous=b,b.next=y,b.previous=w}return b},n.unstable_cancelCallback=function(e){var t=e.next;if(null!==t){if(t===e)h=null;else{e===h&&(h=t);var n=e.previous;n.next=t,t.previous=n}e.next=e.previous=null}},n.unstable_wrapCallback=function(e){var t=v;return function(){var r=v,i=g;v=t,g=n.unstable_now();try{return e.apply(this,arguments)}finally{v=r,g=i,C()}}},n.unstable_getCurrentPriorityLevel=function(){return v},n.unstable_shouldYield=function(){return!p&&(null!==h&&h.expirationTimethis.eventPool.length&&this.eventPool.push(e)}function Le(e){e.eventPool=[],e.getPooled=Ne,e.release=Re}o(Pe.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=Te)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=Te)},persist:function(){this.isPersistent=Te},isPersistent:Ee,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=Ee,this._dispatchInstances=this._dispatchListeners=null}}),Pe.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},Pe.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var i=new t;return o(i,n.prototype),n.prototype=i,n.prototype.constructor=n,n.Interface=o({},r.Interface,e),n.extend=r.extend,Le(n),n},Le(Pe);var Oe=Pe.extend({data:null}),De=Pe.extend({data:null}),Ae=[9,13,27,32],Ie=de&&"CompositionEvent"in window,Ue=null;de&&"documentMode"in document&&(Ue=document.documentMode);var je=de&&"TextEvent"in window&&!Ue,He=de&&(!Ie||Ue&&8=Ue),ze=String.fromCharCode(32),Ze={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},Fe=!1;function We(e,t){switch(e){case"keyup":return-1!==Ae.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function Ve(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var qe=!1;var Ye={eventTypes:Ze,extractEvents:function(e,t,n,r){var i=void 0,a=void 0;if(Ie)e:{switch(e){case"compositionstart":i=Ze.compositionStart;break e;case"compositionend":i=Ze.compositionEnd;break e;case"compositionupdate":i=Ze.compositionUpdate;break e}i=void 0}else qe?We(e,n)&&(i=Ze.compositionEnd):"keydown"===e&&229===n.keyCode&&(i=Ze.compositionStart);return i?(He&&"ko"!==n.locale&&(qe||i!==Ze.compositionStart?i===Ze.compositionEnd&&qe&&(a=Se()):(Ce="value"in(_e=r)?_e.value:_e.textContent,qe=!0)),i=Oe.getPooled(i,t,n,r),a?i.data=a:null!==(a=Ve(n))&&(i.data=a),fe(i),a=i):a=null,(e=je?function(e,t){switch(e){case"compositionend":return Ve(t);case"keypress":return 32!==t.which?null:(Fe=!0,ze);case"textInput":return(e=t.data)===ze&&Fe?null:e;default:return null}}(e,n):function(e,t){if(qe)return"compositionend"===e||!Ie&&We(e,t)?(e=Se(),Me=Ce=_e=null,qe=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1